@nolanrigo/cloudformation
Version:
TypeScript-based imperative way to define AWS CloudFormation templates
96 lines (95 loc) • 3.86 kB
TypeScript
import { ResourceBase } from "../../resource";
import { Value, List } from "../../data-types";
export declare class MixedInstancesPolicy {
InstancesDistribution?: InstancesDistribution;
LaunchTemplate: LaunchTemplate;
constructor(properties: MixedInstancesPolicy);
}
export declare class LifecycleHookSpecification {
DefaultResult?: Value<string>;
HeartbeatTimeout?: Value<number>;
LifecycleHookName: Value<string>;
LifecycleTransition: Value<string>;
NotificationMetadata?: Value<string>;
NotificationTargetARN?: Value<string>;
RoleARN?: Value<string>;
constructor(properties: LifecycleHookSpecification);
}
export declare class TagProperty {
Key: Value<string>;
PropagateAtLaunch: Value<boolean>;
Value: Value<string>;
constructor(properties: TagProperty);
}
export declare class LaunchTemplateSpecification {
LaunchTemplateId?: Value<string>;
LaunchTemplateName?: Value<string>;
Version: Value<string>;
constructor(properties: LaunchTemplateSpecification);
}
export declare class LaunchTemplateOverrides {
InstanceType?: Value<string>;
WeightedCapacity?: Value<string>;
constructor(properties: LaunchTemplateOverrides);
}
export declare class MetricsCollection {
Granularity: Value<string>;
Metrics?: List<Value<string>>;
constructor(properties: MetricsCollection);
}
export declare class InstancesDistribution {
OnDemandAllocationStrategy?: Value<string>;
OnDemandBaseCapacity?: Value<number>;
OnDemandPercentageAboveBaseCapacity?: Value<number>;
SpotAllocationStrategy?: Value<string>;
SpotInstancePools?: Value<number>;
SpotMaxPrice?: Value<string>;
constructor(properties: InstancesDistribution);
}
export declare class LaunchTemplate {
LaunchTemplateSpecification: LaunchTemplateSpecification;
Overrides?: List<LaunchTemplateOverrides>;
constructor(properties: LaunchTemplate);
}
export declare class NotificationConfiguration {
NotificationTypes?: List<Value<string>>;
TopicARN: Value<string>;
constructor(properties: NotificationConfiguration);
}
export interface AutoScalingGroupProperties {
MetricsCollection?: List<MetricsCollection>;
MaxInstanceLifetime?: Value<number>;
TargetGroupARNs?: List<Value<string>>;
MaxSize: Value<string>;
HealthCheckType?: Value<string>;
NotificationConfigurations?: List<NotificationConfiguration>;
Cooldown?: Value<string>;
LoadBalancerNames?: List<Value<string>>;
AvailabilityZones?: List<Value<string>>;
HealthCheckGracePeriod?: Value<number>;
LaunchTemplate?: LaunchTemplateSpecification;
LaunchConfigurationName?: Value<string>;
InstanceId?: Value<string>;
AutoScalingGroupName?: Value<string>;
MinSize: Value<string>;
LifecycleHookSpecificationList?: List<LifecycleHookSpecification>;
TerminationPolicies?: List<Value<string>>;
DesiredCapacity?: Value<string>;
MixedInstancesPolicy?: MixedInstancesPolicy;
Tags?: List<TagProperty>;
ServiceLinkedRoleARN?: Value<string>;
PlacementGroup?: Value<string>;
VPCZoneIdentifier?: List<Value<string>>;
}
export default class Inner_AutoScalingGroup extends ResourceBase<AutoScalingGroupProperties> {
static MixedInstancesPolicy: typeof MixedInstancesPolicy;
static LifecycleHookSpecification: typeof LifecycleHookSpecification;
static TagProperty: typeof TagProperty;
static LaunchTemplateSpecification: typeof LaunchTemplateSpecification;
static LaunchTemplateOverrides: typeof LaunchTemplateOverrides;
static MetricsCollection: typeof MetricsCollection;
static InstancesDistribution: typeof InstancesDistribution;
static LaunchTemplate: typeof LaunchTemplate;
static NotificationConfiguration: typeof NotificationConfiguration;
constructor(properties: AutoScalingGroupProperties);
}