import * as core from "@terrascript/core"; 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 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; tags?: core.Map | core.MapOut; throughput?: number | core.NumberOut; volumeId: string | core.StringOut; 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; tags?: core.Map | core.MapOut; throughput?: number | core.NumberOut; volumeId: string | core.StringOut; volumeSize?: number | core.NumberOut; volumeType?: string | core.StringOut; } export interface EphemeralBlockDeviceArgs extends core.SchemaArgs { deviceName: string | core.StringOut; noDevice?: boolean | core.BooleanOut; virtualName?: string | core.StringOut; } export declare class EphemeralBlockDevice extends core.Schema { deviceName: string | core.StringOut; noDevice?: boolean | core.BooleanOut; virtualName?: string | core.StringOut; } export interface CreditSpecificationArgs extends core.SchemaArgs { cpuCredits?: string | core.StringOut; } export declare class CreditSpecification extends core.Schema { cpuCredits?: string | core.StringOut; } export interface EnclaveOptionsArgs extends core.SchemaArgs { enabled?: boolean | core.BooleanOut; } export declare class EnclaveOptions extends core.Schema { enabled?: boolean | core.BooleanOut; } export interface CapacityReservationTargetArgs extends core.SchemaArgs { capacityReservationId?: string | core.StringOut; capacityReservationResourceGroupArn?: string | core.StringOut; } export declare class CapacityReservationTarget extends core.Schema { capacityReservationId?: string | core.StringOut; capacityReservationResourceGroupArn?: string | core.StringOut; } export interface CapacityReservationSpecificationArgs extends core.SchemaArgs { capacityReservationPreference?: string | core.StringOut; capacityReservationTarget?: CapacityReservationTarget; } export declare class CapacityReservationSpecification extends core.Schema { capacityReservationPreference?: string | core.StringOut; capacityReservationTarget?: CapacityReservationTarget; } export interface MaintenanceOptionsArgs extends core.SchemaArgs { autoRecovery?: string | core.StringOut; } export declare class MaintenanceOptions extends core.Schema { autoRecovery?: string | core.StringOut; } export interface PrivateDnsNameOptionsArgs extends core.SchemaArgs { enableResourceNameDnsARecord?: boolean | core.BooleanOut; enableResourceNameDnsAaaaRecord?: boolean | core.BooleanOut; hostnameType?: string | core.StringOut; } export declare class PrivateDnsNameOptions extends core.Schema { enableResourceNameDnsARecord?: boolean | core.BooleanOut; enableResourceNameDnsAaaaRecord?: boolean | core.BooleanOut; hostnameType?: string | core.StringOut; } export interface MetadataOptionsArgs extends core.SchemaArgs { httpEndpoint?: string | core.StringOut; httpPutResponseHopLimit?: number | core.NumberOut; httpTokens?: string | core.StringOut; instanceMetadataTags?: string | core.StringOut; } export declare class MetadataOptions extends core.Schema { httpEndpoint?: string | core.StringOut; httpPutResponseHopLimit?: number | core.NumberOut; httpTokens?: string | core.StringOut; instanceMetadataTags?: string | core.StringOut; } export interface NetworkInterfaceArgs extends core.SchemaArgs { deleteOnTermination?: boolean | core.BooleanOut; deviceIndex: number | core.NumberOut; networkCardIndex?: number | core.NumberOut; networkInterfaceId: string | core.StringOut; } export declare class NetworkInterface extends core.Schema { deleteOnTermination?: boolean | core.BooleanOut; deviceIndex: number | core.NumberOut; networkCardIndex?: number | core.NumberOut; networkInterfaceId: string | core.StringOut; } export interface RootBlockDeviceArgs extends core.SchemaArgs { deleteOnTermination?: boolean | core.BooleanOut; deviceName: string | core.StringOut; encrypted?: boolean | core.BooleanOut; iops?: number | core.NumberOut; kmsKeyId?: string | core.StringOut; tags?: core.Map | core.MapOut; throughput?: number | core.NumberOut; volumeId: string | core.StringOut; volumeSize?: number | core.NumberOut; volumeType?: string | core.StringOut; } export declare class RootBlockDevice extends core.Schema { deleteOnTermination?: boolean | core.BooleanOut; deviceName: string | core.StringOut; encrypted?: boolean | core.BooleanOut; iops?: number | core.NumberOut; kmsKeyId?: string | core.StringOut; tags?: core.Map | core.MapOut; throughput?: number | core.NumberOut; volumeId: string | core.StringOut; volumeSize?: number | core.NumberOut; volumeType?: string | core.StringOut; } export interface SpotInstanceRequestArgs extends core.ResourceArgs { ami?: string | core.StringOut; associatePublicIpAddress?: boolean | core.BooleanOut; availabilityZone?: string | core.StringOut; /** * (Optional) The required duration for the Spot instances, in minutes. This value must be a multiple o * f 60 (60, 120, 180, 240, 300, or 360). */ blockDurationMinutes?: number | core.NumberOut; capacityReservationSpecification?: CapacityReservationSpecification; cpuCoreCount?: number | core.NumberOut; cpuThreadsPerCore?: number | core.NumberOut; creditSpecification?: CreditSpecification; disableApiStop?: boolean | core.BooleanOut; disableApiTermination?: boolean | core.BooleanOut; ebsBlockDevice?: core.Array | core.ArrayOut; ebsOptimized?: boolean | core.BooleanOut; enclaveOptions?: EnclaveOptions; ephemeralBlockDevice?: core.Array | core.ArrayOut; getPasswordData?: boolean | core.BooleanOut; hibernation?: boolean | core.BooleanOut; hostId?: string | core.StringOut; iamInstanceProfile?: string | core.StringOut; instanceInitiatedShutdownBehavior?: string | core.StringOut; /** * (Optional) Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `s * top`, or `hibernate`. Default value is `terminate`. */ instanceInterruptionBehavior?: string | core.StringOut; instanceType?: string | core.StringOut; ipv6AddressCount?: number | core.NumberOut; ipv6Addresses?: core.Array | core.ArrayOut; keyName?: string | core.StringOut; /** * (Optional) A launch group is a group of spot instances that launch together and terminate together. */ launchGroup?: string | core.StringOut; launchTemplate?: LaunchTemplate; maintenanceOptions?: MaintenanceOptions; metadataOptions?: MetadataOptions; monitoring?: boolean | core.BooleanOut; networkInterface?: core.Array | core.ArrayOut; placementGroup?: string | core.StringOut; placementPartitionNumber?: number | core.NumberOut; privateDnsNameOptions?: PrivateDnsNameOptions; /** * The private IP address assigned to the instance */ privateIp?: string | core.StringOut; rootBlockDevice?: RootBlockDevice; secondaryPrivateIps?: core.Array | core.ArrayOut; securityGroups?: core.Array | core.ArrayOut; sourceDestCheck?: boolean | core.BooleanOut; /** * (Optional; Default: On-demand price) The maximum price to request on the spot market. */ spotPrice?: string | core.StringOut; /** * (Optional; Default: `persistent`) If set to `one-time`, after */ spotType?: string | core.StringOut; subnetId?: string | core.StringOut; /** * (Optional) A map of tags to assign to the Spot Instance Request. These tags are not automatically ap * plied to the launched Instance. If configured with a provider [`default_tags` configuration block](h * ttps://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) p * resent, tags with matching keys will overwrite those defined at the provider-level. */ 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; tenancy?: string | core.StringOut; userData?: string | core.StringOut; userDataBase64?: string | core.StringOut; userDataReplaceOnChange?: 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. The default end date is 7 days from the current dat * e. */ validUntil?: string | core.StringOut; volumeTags?: core.Map | core.MapOut; vpcSecurityGroupIds?: core.Array | core.ArrayOut; /** * (Optional; Default: false) If set, Terraform will */ waitForFulfillment?: boolean | core.BooleanOut; } export declare class SpotInstanceRequest extends core.Resource { ami?: string | core.StringOut; arn: string | core.StringOut; associatePublicIpAddress?: boolean | core.BooleanOut; availabilityZone?: string | core.StringOut; /** * (Optional) The required duration for the Spot instances, in minutes. This value must be a multiple o * f 60 (60, 120, 180, 240, 300, or 360). */ blockDurationMinutes?: number | core.NumberOut; capacityReservationSpecification?: CapacityReservationSpecification; cpuCoreCount?: number | core.NumberOut; cpuThreadsPerCore?: number | core.NumberOut; creditSpecification?: CreditSpecification; disableApiStop?: boolean | core.BooleanOut; disableApiTermination?: boolean | core.BooleanOut; ebsBlockDevice?: core.Array | core.ArrayOut; ebsOptimized?: boolean | core.BooleanOut; enclaveOptions?: EnclaveOptions; ephemeralBlockDevice?: core.Array | core.ArrayOut; getPasswordData?: boolean | core.BooleanOut; hibernation?: boolean | core.BooleanOut; hostId?: string | core.StringOut; iamInstanceProfile?: string | core.StringOut; /** * The Spot Instance Request ID. */ id: string | core.StringOut; instanceInitiatedShutdownBehavior?: string | core.StringOut; /** * (Optional) Indicates Spot instance behavior when it is interrupted. Valid values are `terminate`, `s * top`, or `hibernate`. Default value is `terminate`. */ instanceInterruptionBehavior?: string | core.StringOut; instanceState: string | core.StringOut; instanceType?: string | core.StringOut; ipv6AddressCount?: number | core.NumberOut; ipv6Addresses?: core.Array | core.ArrayOut; keyName?: string | core.StringOut; /** * (Optional) A launch group is a group of spot instances that launch together and terminate together. */ launchGroup?: string | core.StringOut; launchTemplate?: LaunchTemplate; maintenanceOptions?: MaintenanceOptions; metadataOptions?: MetadataOptions; monitoring?: boolean | core.BooleanOut; networkInterface?: core.Array | core.ArrayOut; outpostArn: string | core.StringOut; passwordData: string | core.StringOut; placementGroup?: string | core.StringOut; placementPartitionNumber?: number | core.NumberOut; primaryNetworkInterfaceId: string | core.StringOut; /** * The private DNS name assigned to the instance. Can only be */ privateDns: string | core.StringOut; privateDnsNameOptions?: PrivateDnsNameOptions; /** * The private IP address assigned to the instance */ privateIp?: string | core.StringOut; /** * The public DNS name assigned to the instance. For EC2-VPC, this */ publicDns: string | core.StringOut; /** * The public IP address assigned to the instance, if applicable. */ publicIp: string | core.StringOut; rootBlockDevice?: RootBlockDevice; secondaryPrivateIps?: core.Array | core.ArrayOut; securityGroups?: core.Array | core.ArrayOut; sourceDestCheck?: boolean | core.BooleanOut; /** * The current [bid */ spotBidStatus: string | core.StringOut; /** * The Instance ID (if any) that is currently fulfilling */ spotInstanceId: string | core.StringOut; /** * (Optional; Default: On-demand price) The maximum price to request on the spot market. */ spotPrice?: string | core.StringOut; spotRequestState: string | core.StringOut; /** * (Optional; Default: `persistent`) If set to `one-time`, after */ spotType?: string | core.StringOut; subnetId?: string | core.StringOut; /** * (Optional) A map of tags to assign to the Spot Instance Request. These tags are not automatically ap * plied to the launched Instance. If configured with a provider [`default_tags` configuration block](h * ttps://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) p * resent, tags with matching keys will overwrite those defined at the provider-level. */ 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; tenancy?: string | core.StringOut; userData?: string | core.StringOut; userDataBase64?: string | core.StringOut; userDataReplaceOnChange?: 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. The default end date is 7 days from the current dat * e. */ validUntil?: string | core.StringOut; volumeTags?: core.Map | core.MapOut; vpcSecurityGroupIds?: core.Array | core.ArrayOut; /** * (Optional; Default: false) If set, Terraform will */ waitForFulfillment?: boolean | core.BooleanOut; constructor(name: string, args?: SpotInstanceRequestArgs); getNamespace(): string; } //# sourceMappingURL=spot_instance_request.d.ts.map