import * as core from "@terrascript/core"; export interface PreferencesArgs extends core.SchemaArgs { checkpointDelay?: string | core.StringOut; checkpointPercentages?: core.Array | core.ArrayOut; instanceWarmup?: string | core.StringOut; minHealthyPercentage?: number | core.NumberOut; skipMatching?: boolean | core.BooleanOut; } export declare class Preferences extends core.Schema { checkpointDelay?: string | core.StringOut; checkpointPercentages?: core.Array | core.ArrayOut; instanceWarmup?: string | core.StringOut; minHealthyPercentage?: number | core.NumberOut; skipMatching?: boolean | core.BooleanOut; } export interface InstanceRefreshArgs extends core.SchemaArgs { preferences?: Preferences; strategy: string | core.StringOut; triggers?: core.Array | core.ArrayOut; } export declare class InstanceRefresh extends core.Schema { preferences?: Preferences; strategy: string | core.StringOut; triggers?: core.Array | core.ArrayOut; } export interface TagArgs extends core.SchemaArgs { key: string | core.StringOut; propagateAtLaunch: boolean | core.BooleanOut; value: string | core.StringOut; } export declare class Tag extends core.Schema { key: string | core.StringOut; propagateAtLaunch: boolean | core.BooleanOut; value: string | core.StringOut; } export interface InitialLifecycleHookArgs extends core.SchemaArgs { defaultResult?: string | core.StringOut; heartbeatTimeout?: number | core.NumberOut; lifecycleTransition: string | core.StringOut; name: string | core.StringOut; notificationMetadata?: string | core.StringOut; notificationTargetArn?: string | core.StringOut; roleArn?: string | core.StringOut; } export declare class InitialLifecycleHook extends core.Schema { defaultResult?: string | core.StringOut; heartbeatTimeout?: number | core.NumberOut; lifecycleTransition: string | core.StringOut; name: string | core.StringOut; notificationMetadata?: string | core.StringOut; notificationTargetArn?: string | core.StringOut; roleArn?: string | core.StringOut; } export interface LaunchTemplateArgs extends core.SchemaArgs { id?: string | core.StringOut; name?: string | core.StringOut; version?: string | core.StringOut; } export declare class LaunchTemplate extends core.Schema { id?: string | core.StringOut; name?: string | core.StringOut; version?: string | core.StringOut; } export interface InstanceReusePolicyArgs extends core.SchemaArgs { reuseOnScaleIn?: boolean | core.BooleanOut; } export declare class InstanceReusePolicy extends core.Schema { reuseOnScaleIn?: boolean | core.BooleanOut; } export interface WarmPoolArgs extends core.SchemaArgs { instanceReusePolicy?: InstanceReusePolicy; maxGroupPreparedCapacity?: number | core.NumberOut; minSize?: number | core.NumberOut; poolState?: string | core.StringOut; } export declare class WarmPool extends core.Schema { instanceReusePolicy?: InstanceReusePolicy; maxGroupPreparedCapacity?: number | core.NumberOut; minSize?: number | core.NumberOut; poolState?: string | core.StringOut; } export interface InstancesDistributionArgs extends core.SchemaArgs { onDemandAllocationStrategy?: string | core.StringOut; onDemandBaseCapacity?: number | core.NumberOut; onDemandPercentageAboveBaseCapacity?: number | core.NumberOut; spotAllocationStrategy?: string | core.StringOut; spotInstancePools?: number | core.NumberOut; spotMaxPrice?: string | core.StringOut; } export declare class InstancesDistribution extends core.Schema { onDemandAllocationStrategy?: string | core.StringOut; onDemandBaseCapacity?: number | core.NumberOut; onDemandPercentageAboveBaseCapacity?: number | core.NumberOut; spotAllocationStrategy?: string | core.StringOut; spotInstancePools?: number | core.NumberOut; spotMaxPrice?: string | core.StringOut; } export interface LaunchTemplateSpecificationArgs extends core.SchemaArgs { launchTemplateId?: string | core.StringOut; launchTemplateName?: string | core.StringOut; version?: string | core.StringOut; } export declare class LaunchTemplateSpecification extends core.Schema { launchTemplateId?: string | core.StringOut; launchTemplateName?: string | core.StringOut; version?: string | core.StringOut; } export interface MemoryMibArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class MemoryMib extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface TotalLocalStorageGbArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class TotalLocalStorageGb extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface MemoryGibPerVcpuArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class MemoryGibPerVcpu extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface VcpuCountArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class VcpuCount extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface AcceleratorCountArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class AcceleratorCount extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface AcceleratorTotalMemoryMibArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class AcceleratorTotalMemoryMib extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface NetworkInterfaceCountArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class NetworkInterfaceCount extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface BaselineEbsBandwidthMbpsArgs extends core.SchemaArgs { max?: number | core.NumberOut; min?: number | core.NumberOut; } export declare class BaselineEbsBandwidthMbps extends core.Schema { max?: number | core.NumberOut; min?: number | core.NumberOut; } export interface InstanceRequirementsArgs extends core.SchemaArgs { acceleratorCount?: AcceleratorCount; acceleratorManufacturers?: core.Array | core.ArrayOut; acceleratorNames?: core.Array | core.ArrayOut; acceleratorTotalMemoryMib?: AcceleratorTotalMemoryMib; acceleratorTypes?: core.Array | core.ArrayOut; bareMetal?: string | core.StringOut; baselineEbsBandwidthMbps?: BaselineEbsBandwidthMbps; burstablePerformance?: string | core.StringOut; cpuManufacturers?: core.Array | core.ArrayOut; excludedInstanceTypes?: core.Array | core.ArrayOut; instanceGenerations?: core.Array | core.ArrayOut; localStorage?: string | core.StringOut; localStorageTypes?: core.Array | core.ArrayOut; memoryGibPerVcpu?: MemoryGibPerVcpu; memoryMib?: MemoryMib; networkInterfaceCount?: NetworkInterfaceCount; onDemandMaxPricePercentageOverLowestPrice?: number | core.NumberOut; requireHibernateSupport?: boolean | core.BooleanOut; spotMaxPricePercentageOverLowestPrice?: number | core.NumberOut; totalLocalStorageGb?: TotalLocalStorageGb; vcpuCount?: VcpuCount; } export declare class InstanceRequirements extends core.Schema { acceleratorCount?: AcceleratorCount; acceleratorManufacturers?: core.Array | core.ArrayOut; acceleratorNames?: core.Array | core.ArrayOut; acceleratorTotalMemoryMib?: AcceleratorTotalMemoryMib; acceleratorTypes?: core.Array | core.ArrayOut; bareMetal?: string | core.StringOut; baselineEbsBandwidthMbps?: BaselineEbsBandwidthMbps; burstablePerformance?: string | core.StringOut; cpuManufacturers?: core.Array | core.ArrayOut; excludedInstanceTypes?: core.Array | core.ArrayOut; instanceGenerations?: core.Array | core.ArrayOut; localStorage?: string | core.StringOut; localStorageTypes?: core.Array | core.ArrayOut; memoryGibPerVcpu?: MemoryGibPerVcpu; memoryMib?: MemoryMib; networkInterfaceCount?: NetworkInterfaceCount; onDemandMaxPricePercentageOverLowestPrice?: number | core.NumberOut; requireHibernateSupport?: boolean | core.BooleanOut; spotMaxPricePercentageOverLowestPrice?: number | core.NumberOut; totalLocalStorageGb?: TotalLocalStorageGb; vcpuCount?: VcpuCount; } export interface OverrideArgs extends core.SchemaArgs { instanceRequirements?: InstanceRequirements; instanceType?: string | core.StringOut; launchTemplateSpecification?: LaunchTemplateSpecification; weightedCapacity?: string | core.StringOut; } export declare class Override extends core.Schema { instanceRequirements?: InstanceRequirements; instanceType?: string | core.StringOut; launchTemplateSpecification?: LaunchTemplateSpecification; weightedCapacity?: string | core.StringOut; } export interface MixedInstancesPolicyLaunchTemplateArgs extends core.SchemaArgs { launchTemplateSpecification: LaunchTemplateSpecification; override?: core.Array | core.ArrayOut; } export declare class MixedInstancesPolicyLaunchTemplate extends core.Schema { launchTemplateSpecification: LaunchTemplateSpecification; override?: core.Array | core.ArrayOut; } export interface MixedInstancesPolicyArgs extends core.SchemaArgs { instancesDistribution?: InstancesDistribution; launchTemplate: MixedInstancesPolicyLaunchTemplate; } export declare class MixedInstancesPolicy extends core.Schema { instancesDistribution?: InstancesDistribution; launchTemplate: MixedInstancesPolicyLaunchTemplate; } export interface GroupArgs extends core.ResourceArgs { /** * (Optional) A list of one or more availability zones for the group. Used for EC2-Classic, attaching a * network interface via id from a launch template and default subnets when not specified with `vpc_zo * ne_identifier` argument. Conflicts with `vpc_zone_identifier`. */ availabilityZones?: core.Array | core.ArrayOut; /** * (Optional) Indicates whether capacity rebalance is enabled. Otherwise, capacity rebalance is disable * d. */ capacityRebalance?: boolean | core.BooleanOut; /** * (Optional) Reserved. */ context?: string | core.StringOut; /** * (Optional) The amount of time, in seconds, after a scaling activity completes before another scaling * activity can start. */ defaultCooldown?: number | core.NumberOut; /** * (Optional) The amount of time, in seconds, until a newly launched instance can contribute to the Ama * zon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scali * ng aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the a * mount of time that it takes for resource consumption to become stable after an instance reaches the * InService state. (See [Set the default instance warmup for an Auto Scaling group](https://docs.aws.a * mazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html)) */ defaultInstanceWarmup?: number | core.NumberOut; /** * (Optional) The number of Amazon EC2 instances that */ desiredCapacity?: number | core.NumberOut; /** * (Optional) A list of metrics to collect. The allowed values are defined by the [underlying AWS API]( * https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html). */ enabledMetrics?: core.Array | core.ArrayOut; /** * (Optional) Allows deleting the Auto Scaling Group without waiting */ forceDelete?: boolean | core.BooleanOut; forceDeleteWarmPool?: boolean | core.BooleanOut; /** * (Optional, Default: 300) Time (in seconds) after instance comes into service before checking health. */ healthCheckGracePeriod?: number | core.NumberOut; /** * (Optional) "EC2" or "ELB". Controls how health checking is done. */ healthCheckType?: string | core.StringOut; /** * (Optional) One or more */ initialLifecycleHook?: core.Array | core.ArrayOut; /** * (Optional) If this block is configured, start an */ instanceRefresh?: InstanceRefresh; /** * (Optional) The name of the launch configuration to use. */ launchConfiguration?: string | core.StringOut; /** * (Optional) Nested argument with Launch template specification to use to launch instances. See [Launc * h Template](#launch_template) below for more details. */ launchTemplate?: LaunchTemplate; loadBalancers?: core.Array | core.ArrayOut; maxInstanceLifetime?: number | core.NumberOut; /** * (Required) The maximum size of the Auto Scaling Group. */ maxSize: number | core.NumberOut; /** * (Optional) The granularity to associate with the metrics to collect. The only valid value is `1Minut * e`. Default is `1Minute`. */ metricsGranularity?: string | core.StringOut; /** * (Optional) Setting this causes Terraform to wait for */ minElbCapacity?: number | core.NumberOut; /** * (Required) The minimum size of the Auto Scaling Group. */ minSize: number | core.NumberOut; mixedInstancesPolicy?: MixedInstancesPolicy; /** * (Optional) The name of the Auto Scaling Group. By default generated by Terraform. Conflicts with `na * me_prefix`. */ name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified */ namePrefix?: string | core.StringOut; placementGroup?: string | core.StringOut; protectFromScaleIn?: boolean | core.BooleanOut; serviceLinkedRoleArn?: string | core.StringOut; /** * (Optional) A list of processes to suspend for the Auto Scaling Group. The allowed values are `Launch * , `Terminate`, `HealthCheck`, `ReplaceUnhealthy`, `AZRebalance`, `AlarmNotification`, `ScheduledAct * ions`, `AddToLoadBalancer`, `InstanceRefresh`. */ suspendedProcesses?: core.Array | core.ArrayOut; tag?: core.Array | core.ArrayOut; tags?: core.Array> | core.MapArrayOut; targetGroupArns?: core.Array | core.ArrayOut; terminationPolicies?: core.Array | core.ArrayOut; vpcZoneIdentifier?: core.Array | core.ArrayOut; waitForCapacityTimeout?: string | core.StringOut; /** * (Optional) Setting this will cause Terraform to wait */ waitForElbCapacity?: number | core.NumberOut; /** * (Optional) If this block is configured, add a [Warm Pool](https://docs.aws.amazon.com/autoscaling/ec * 2/userguide/ec2-auto-scaling-warm-pools.html) */ warmPool?: WarmPool; } export declare class Group extends core.Resource { /** * The ARN for this Auto Scaling Group */ arn: string | core.StringOut; /** * (Optional) A list of one or more availability zones for the group. Used for EC2-Classic, attaching a * network interface via id from a launch template and default subnets when not specified with `vpc_zo * ne_identifier` argument. Conflicts with `vpc_zone_identifier`. */ availabilityZones?: core.Array | core.ArrayOut; /** * (Optional) Indicates whether capacity rebalance is enabled. Otherwise, capacity rebalance is disable * d. */ capacityRebalance?: boolean | core.BooleanOut; /** * (Optional) Reserved. */ context?: string | core.StringOut; /** * (Optional) The amount of time, in seconds, after a scaling activity completes before another scaling * activity can start. */ defaultCooldown?: number | core.NumberOut; /** * (Optional) The amount of time, in seconds, until a newly launched instance can contribute to the Ama * zon CloudWatch metrics. This delay lets an instance finish initializing before Amazon EC2 Auto Scali * ng aggregates instance metrics, resulting in more reliable usage data. Set this value equal to the a * mount of time that it takes for resource consumption to become stable after an instance reaches the * InService state. (See [Set the default instance warmup for an Auto Scaling group](https://docs.aws.a * mazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html)) */ defaultInstanceWarmup?: number | core.NumberOut; /** * (Optional) The number of Amazon EC2 instances that */ desiredCapacity?: number | core.NumberOut; /** * (Optional) A list of metrics to collect. The allowed values are defined by the [underlying AWS API]( * https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html). */ enabledMetrics?: core.Array | core.ArrayOut; /** * (Optional) Allows deleting the Auto Scaling Group without waiting */ forceDelete?: boolean | core.BooleanOut; forceDeleteWarmPool?: boolean | core.BooleanOut; /** * (Optional, Default: 300) Time (in seconds) after instance comes into service before checking health. */ healthCheckGracePeriod?: number | core.NumberOut; /** * (Optional) "EC2" or "ELB". Controls how health checking is done. */ healthCheckType?: string | core.StringOut; /** * (Optional) The ID of the launch template. Conflicts with `name`. */ id: string | core.StringOut; /** * (Optional) One or more */ initialLifecycleHook?: core.Array | core.ArrayOut; /** * (Optional) If this block is configured, start an */ instanceRefresh?: InstanceRefresh; /** * (Optional) The name of the launch configuration to use. */ launchConfiguration?: string | core.StringOut; /** * (Optional) Nested argument with Launch template specification to use to launch instances. See [Launc * h Template](#launch_template) below for more details. */ launchTemplate?: LaunchTemplate; loadBalancers?: core.Array | core.ArrayOut; maxInstanceLifetime?: number | core.NumberOut; /** * (Required) The maximum size of the Auto Scaling Group. */ maxSize: number | core.NumberOut; /** * (Optional) The granularity to associate with the metrics to collect. The only valid value is `1Minut * e`. Default is `1Minute`. */ metricsGranularity?: string | core.StringOut; /** * (Optional) Setting this causes Terraform to wait for */ minElbCapacity?: number | core.NumberOut; /** * (Required) The minimum size of the Auto Scaling Group. */ minSize: number | core.NumberOut; mixedInstancesPolicy?: MixedInstancesPolicy; /** * (Optional) The name of the Auto Scaling Group. By default generated by Terraform. Conflicts with `na * me_prefix`. */ name?: string | core.StringOut; /** * (Optional) Creates a unique name beginning with the specified */ namePrefix?: string | core.StringOut; placementGroup?: string | core.StringOut; protectFromScaleIn?: boolean | core.BooleanOut; serviceLinkedRoleArn?: string | core.StringOut; /** * (Optional) A list of processes to suspend for the Auto Scaling Group. The allowed values are `Launch * , `Terminate`, `HealthCheck`, `ReplaceUnhealthy`, `AZRebalance`, `AlarmNotification`, `ScheduledAct * ions`, `AddToLoadBalancer`, `InstanceRefresh`. */ suspendedProcesses?: core.Array | core.ArrayOut; tag?: core.Array | core.ArrayOut; tags?: core.Array> | core.MapArrayOut; targetGroupArns?: core.Array | core.ArrayOut; terminationPolicies?: core.Array | core.ArrayOut; vpcZoneIdentifier?: core.Array | core.ArrayOut; waitForCapacityTimeout?: string | core.StringOut; /** * (Optional) Setting this will cause Terraform to wait */ waitForElbCapacity?: number | core.NumberOut; /** * (Optional) If this block is configured, add a [Warm Pool](https://docs.aws.amazon.com/autoscaling/ec * 2/userguide/ec2-auto-scaling-warm-pools.html) */ warmPool?: WarmPool; constructor(name: string, args?: GroupArgs); getNamespace(): string; } //# sourceMappingURL=group.d.ts.map