import * as core from "@terrascript/core"; export interface CapacityRebalanceArgs extends core.SchemaArgs { replacementStrategy?: string | core.StringOut; } export declare class CapacityRebalance extends core.Schema { replacementStrategy?: string | core.StringOut; } export interface SpotMaintenanceStrategiesArgs extends core.SchemaArgs { capacityRebalance?: CapacityRebalance; } export declare class SpotMaintenanceStrategies extends core.Schema { capacityRebalance?: CapacityRebalance; } export interface RootBlockDeviceArgs extends core.SchemaArgs { deleteOnTermination?: boolean | core.BooleanOut; encrypted?: boolean | core.BooleanOut; iops?: number | core.NumberOut; kmsKeyId?: string | core.StringOut; throughput?: number | core.NumberOut; volumeSize?: number | core.NumberOut; volumeType?: string | core.StringOut; } export declare class RootBlockDevice extends core.Schema { deleteOnTermination?: boolean | core.BooleanOut; encrypted?: boolean | core.BooleanOut; iops?: number | core.NumberOut; kmsKeyId?: string | core.StringOut; throughput?: number | core.NumberOut; volumeSize?: number | core.NumberOut; volumeType?: string | core.StringOut; } export interface EbsBlockDeviceArgs extends core.SchemaArgs { deleteOnTermination?: boolean | core.BooleanOut; deviceName: string | core.StringOut; encrypted?: boolean | core.BooleanOut; iops?: number | core.NumberOut; kmsKeyId?: string | core.StringOut; snapshotId?: string | core.StringOut; throughput?: number | core.NumberOut; volumeSize?: number | core.NumberOut; volumeType?: string | core.StringOut; } export declare class EbsBlockDevice extends core.Schema { deleteOnTermination?: boolean | core.BooleanOut; deviceName: string | core.StringOut; encrypted?: boolean | core.BooleanOut; iops?: number | core.NumberOut; kmsKeyId?: string | core.StringOut; snapshotId?: string | core.StringOut; throughput?: number | core.NumberOut; volumeSize?: number | core.NumberOut; volumeType?: string | core.StringOut; } export interface EphemeralBlockDeviceArgs extends core.SchemaArgs { deviceName: string | core.StringOut; virtualName: string | core.StringOut; } export declare class EphemeralBlockDevice extends core.Schema { deviceName: string | core.StringOut; virtualName: string | core.StringOut; } export interface LaunchSpecificationArgs extends core.SchemaArgs { ami: string | core.StringOut; associatePublicIpAddress?: boolean | core.BooleanOut; availabilityZone?: string | core.StringOut; ebsBlockDevice?: core.Array | core.ArrayOut; ebsOptimized?: boolean | core.BooleanOut; ephemeralBlockDevice?: core.Array | core.ArrayOut; iamInstanceProfile?: string | core.StringOut; iamInstanceProfileArn?: string | core.StringOut; instanceType: string | core.StringOut; keyName?: string | core.StringOut; monitoring?: boolean | core.BooleanOut; placementGroup?: string | core.StringOut; placementTenancy?: string | core.StringOut; rootBlockDevice?: core.Array | core.ArrayOut; spotPrice?: string | core.StringOut; subnetId?: string | core.StringOut; tags?: core.Map | core.MapOut; userData?: string | core.StringOut; vpcSecurityGroupIds?: core.Array | core.ArrayOut; weightedCapacity?: string | core.StringOut; } export declare class LaunchSpecification extends core.Schema { ami: string | core.StringOut; associatePublicIpAddress?: boolean | core.BooleanOut; availabilityZone?: string | core.StringOut; ebsBlockDevice?: core.Array | core.ArrayOut; ebsOptimized?: boolean | core.BooleanOut; ephemeralBlockDevice?: core.Array | core.ArrayOut; iamInstanceProfile?: string | core.StringOut; iamInstanceProfileArn?: string | core.StringOut; instanceType: string | core.StringOut; keyName?: string | core.StringOut; monitoring?: boolean | core.BooleanOut; placementGroup?: string | core.StringOut; placementTenancy?: string | core.StringOut; rootBlockDevice?: core.Array | core.ArrayOut; spotPrice?: string | core.StringOut; subnetId?: string | core.StringOut; tags?: core.Map | core.MapOut; userData?: string | core.StringOut; vpcSecurityGroupIds?: core.Array | core.ArrayOut; weightedCapacity?: string | core.StringOut; } export interface LaunchTemplateSpecificationArgs extends core.SchemaArgs { id?: string | core.StringOut; name?: string | core.StringOut; version?: string | core.StringOut; } export declare class LaunchTemplateSpecification extends core.Schema { id?: string | core.StringOut; name?: string | core.StringOut; version?: string | core.StringOut; } 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 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 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 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 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 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 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 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 OverridesArgs extends core.SchemaArgs { availabilityZone?: string | core.StringOut; instanceRequirements?: InstanceRequirements; instanceType?: string | core.StringOut; priority?: number | core.NumberOut; spotPrice?: string | core.StringOut; subnetId?: string | core.StringOut; weightedCapacity?: number | core.NumberOut; } export declare class Overrides extends core.Schema { availabilityZone?: string | core.StringOut; instanceRequirements?: InstanceRequirements; instanceType?: string | core.StringOut; priority?: number | core.NumberOut; spotPrice?: string | core.StringOut; subnetId?: string | core.StringOut; weightedCapacity?: number | core.NumberOut; } export interface LaunchTemplateConfigArgs extends core.SchemaArgs { launchTemplateSpecification: LaunchTemplateSpecification; overrides?: core.Array | core.ArrayOut; } export declare class LaunchTemplateConfig extends core.Schema { launchTemplateSpecification: LaunchTemplateSpecification; overrides?: core.Array | core.ArrayOut; } export interface SpotFleetRequestArgs extends core.ResourceArgs { /** * Indicates how to allocate the target capacity across */ allocationStrategy?: string | core.StringOut; /** * Indicates whether running Spot */ excessCapacityTerminationPolicy?: string | core.StringOut; /** * (Optional) The type of fleet request. Indicates whether the Spot Fleet only requests the target */ fleetType?: string | core.StringOut; /** * (Required) Grants the Spot fleet permission to terminate */ iamFleetRole: string | core.StringOut; /** * (Optional) Indicates whether a Spot */ instanceInterruptionBehaviour?: string | core.StringOut; /** * (Optional; Default: 1) */ instancePoolsToUseCount?: number | core.NumberOut; /** * (Optional) Used to define the launch configuration of the */ launchSpecification?: core.Array | core.ArrayOut; /** * (Optional) Launch template configuration block. See [Launch Template Configs](#launch-template-confi * gs) below for more details. Conflicts with `launch_specification`. At least one of `launch_specifica * tion` or `launch_template_config` is required. */ launchTemplateConfig?: core.Array | core.ArrayOut; loadBalancers?: core.Array | core.ArrayOut; /** * The order of the launch template overrides to use in fulfilling On-Demand capacity. the possible val * ues are: `lowestPrice` and `prioritized`. the default is `lowestPrice`. */ onDemandAllocationStrategy?: string | core.StringOut; /** * The maximum amount per hour for On-Demand Instances that you're willing to pay. When the maximum amo * unt you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the * target capacity. */ onDemandMaxTotalPrice?: string | core.StringOut; /** * The number of On-Demand units to request. If the request type is `maintain`, you can specify a targe * t capacity of 0 and add capacity later. */ onDemandTargetCapacity?: number | core.NumberOut; /** * (Optional) Indicates whether Spot fleet should replace unhealthy instances. Default `false`. */ replaceUnhealthyInstances?: boolean | core.BooleanOut; /** * (Optional) Nested argument containing maintenance strategies for managing your Spot Instances that a * re at an elevated risk of being interrupted. Defined below. */ spotMaintenanceStrategies?: SpotMaintenanceStrategies; /** * (Optional; Default: On-demand price) The maximum bid price per unit hour. */ spotPrice?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * The number of units to request. You can choose to set the */ targetCapacity: number | core.NumberOut; targetGroupArns?: core.Array | core.ArrayOut; /** * (Optional) Indicates whether running Spot */ terminateInstancesOnDelete?: string | core.StringOut; /** * (Optional) Indicates whether running Spot */ terminateInstancesWithExpiration?: boolean | core.BooleanOut; /** * (Optional) The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3 * 339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the r * equest immediately. */ validFrom?: string | core.StringOut; /** * (Optional) The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc333 * 9#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance reques * ts are placed or enabled to fulfill the request. */ validUntil?: string | core.StringOut; /** * (Optional; Default: false) If set, Terraform will */ waitForFulfillment?: boolean | core.BooleanOut; } export declare class SpotFleetRequest extends core.Resource { /** * Indicates how to allocate the target capacity across */ allocationStrategy?: string | core.StringOut; clientToken: string | core.StringOut; /** * Indicates whether running Spot */ excessCapacityTerminationPolicy?: string | core.StringOut; /** * (Optional) The type of fleet request. Indicates whether the Spot Fleet only requests the target */ fleetType?: string | core.StringOut; /** * (Required) Grants the Spot fleet permission to terminate */ iamFleetRole: string | core.StringOut; /** * The ID of the launch template. Conflicts with `name`. */ id: string | core.StringOut; /** * (Optional) Indicates whether a Spot */ instanceInterruptionBehaviour?: string | core.StringOut; /** * (Optional; Default: 1) */ instancePoolsToUseCount?: number | core.NumberOut; /** * (Optional) Used to define the launch configuration of the */ launchSpecification?: core.Array | core.ArrayOut; /** * (Optional) Launch template configuration block. See [Launch Template Configs](#launch-template-confi * gs) below for more details. Conflicts with `launch_specification`. At least one of `launch_specifica * tion` or `launch_template_config` is required. */ launchTemplateConfig?: core.Array | core.ArrayOut; loadBalancers?: core.Array | core.ArrayOut; /** * The order of the launch template overrides to use in fulfilling On-Demand capacity. the possible val * ues are: `lowestPrice` and `prioritized`. the default is `lowestPrice`. */ onDemandAllocationStrategy?: string | core.StringOut; /** * The maximum amount per hour for On-Demand Instances that you're willing to pay. When the maximum amo * unt you're willing to pay is reached, the fleet stops launching instances even if it hasn’t met the * target capacity. */ onDemandMaxTotalPrice?: string | core.StringOut; /** * The number of On-Demand units to request. If the request type is `maintain`, you can specify a targe * t capacity of 0 and add capacity later. */ onDemandTargetCapacity?: number | core.NumberOut; /** * (Optional) Indicates whether Spot fleet should replace unhealthy instances. Default `false`. */ replaceUnhealthyInstances?: boolean | core.BooleanOut; /** * (Optional) Nested argument containing maintenance strategies for managing your Spot Instances that a * re at an elevated risk of being interrupted. Defined below. */ spotMaintenanceStrategies?: SpotMaintenanceStrategies; /** * (Optional; Default: On-demand price) The maximum bid price per unit hour. */ spotPrice?: string | core.StringOut; /** * The state of the Spot fleet request. */ spotRequestState: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * The number of units to request. You can choose to set the */ targetCapacity: number | core.NumberOut; targetGroupArns?: core.Array | core.ArrayOut; /** * (Optional) Indicates whether running Spot */ terminateInstancesOnDelete?: string | core.StringOut; /** * (Optional) Indicates whether running Spot */ terminateInstancesWithExpiration?: boolean | core.BooleanOut; /** * (Optional) The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3 * 339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the r * equest immediately. */ validFrom?: string | core.StringOut; /** * (Optional) The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc333 * 9#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance reques * ts are placed or enabled to fulfill the request. */ validUntil?: string | core.StringOut; /** * (Optional; Default: false) If set, Terraform will */ waitForFulfillment?: boolean | core.BooleanOut; constructor(name: string, args?: SpotFleetRequestArgs); getNamespace(): string; } //# sourceMappingURL=spot_fleet_request.d.ts.map