SpotInstanceRequest

Provides an EC2 Spot Instance Request resource. This allows instances to be requested on the spot market.

By default this provider creates Spot Instance Requests with a persistent type, which means that for the duration of their lifetime, AWS will launch an instance with the configured details if and when the spot market will accept the requested price.

On destruction, this provider will make an attempt to terminate the associated Spot Instance if there is one present.

Spot Instances requests with a one-time type will close the spot request when the instance is terminated either by the request being below the current spot price availability or by a user.

NOTE: Because their behavior depends on the live status of the spot market, Spot Instance Requests have a unique lifecycle that makes them behave differently than other resources. Most importantly: there is no guarantee that a Spot Instance exists to fulfill the request at any given point in time. See the AWS Spot Instance documentation for more information.

Example Usage

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
    public MyStack()
    {
        // Request a spot instance at $0.03
        var cheapWorker = new Aws.Ec2.SpotInstanceRequest("cheapWorker", new Aws.Ec2.SpotInstanceRequestArgs
        {
            Ami = "ami-1234",
            InstanceType = "c4.xlarge",
            SpotPrice = "0.03",
            Tags = 
            {
                { "Name", "CheapWorker" },
            },
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2.NewSpotInstanceRequest(ctx, "cheapWorker", &ec2.SpotInstanceRequestArgs{
			Ami:          pulumi.String("ami-1234"),
			InstanceType: pulumi.String("c4.xlarge"),
			SpotPrice:    pulumi.String("0.03"),
			Tags: pulumi.StringMap{
				"Name": pulumi.String("CheapWorker"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
import pulumi
import pulumi_aws as aws

# Request a spot instance at $0.03
cheap_worker = aws.ec2.SpotInstanceRequest("cheapWorker",
    ami="ami-1234",
    instance_type="c4.xlarge",
    spot_price="0.03",
    tags={
        "Name": "CheapWorker",
    })
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

// Request a spot instance at $0.03
const cheapWorker = new aws.ec2.SpotInstanceRequest("cheap_worker", {
    ami: "ami-1234",
    instanceType: "c4.xlarge",
    spotPrice: "0.03",
    tags: {
        Name: "CheapWorker",
    },
});

Create a SpotInstanceRequest Resource

new SpotInstanceRequest(name: string, args: SpotInstanceRequestArgs, opts?: CustomResourceOptions);
@overload
def SpotInstanceRequest(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        ami: Optional[str] = None,
                        associate_public_ip_address: Optional[bool] = None,
                        availability_zone: Optional[str] = None,
                        block_duration_minutes: Optional[int] = None,
                        cpu_core_count: Optional[int] = None,
                        cpu_threads_per_core: Optional[int] = None,
                        credit_specification: Optional[SpotInstanceRequestCreditSpecificationArgs] = None,
                        disable_api_termination: Optional[bool] = None,
                        ebs_block_devices: Optional[Sequence[SpotInstanceRequestEbsBlockDeviceArgs]] = None,
                        ebs_optimized: Optional[bool] = None,
                        enclave_options: Optional[SpotInstanceRequestEnclaveOptionsArgs] = None,
                        ephemeral_block_devices: Optional[Sequence[SpotInstanceRequestEphemeralBlockDeviceArgs]] = None,
                        get_password_data: Optional[bool] = None,
                        hibernation: Optional[bool] = None,
                        host_id: Optional[str] = None,
                        iam_instance_profile: Optional[str] = None,
                        instance_initiated_shutdown_behavior: Optional[str] = None,
                        instance_interruption_behaviour: Optional[str] = None,
                        instance_type: Optional[str] = None,
                        ipv6_address_count: Optional[int] = None,
                        ipv6_addresses: Optional[Sequence[str]] = None,
                        key_name: Optional[str] = None,
                        launch_group: Optional[str] = None,
                        metadata_options: Optional[SpotInstanceRequestMetadataOptionsArgs] = None,
                        monitoring: Optional[bool] = None,
                        network_interfaces: Optional[Sequence[SpotInstanceRequestNetworkInterfaceArgs]] = None,
                        placement_group: Optional[str] = None,
                        private_ip: Optional[str] = None,
                        root_block_device: Optional[SpotInstanceRequestRootBlockDeviceArgs] = None,
                        secondary_private_ips: Optional[Sequence[str]] = None,
                        security_groups: Optional[Sequence[str]] = None,
                        source_dest_check: Optional[bool] = None,
                        spot_price: Optional[str] = None,
                        spot_type: Optional[str] = None,
                        subnet_id: Optional[str] = None,
                        tags: Optional[Mapping[str, str]] = None,
                        tags_all: Optional[Mapping[str, str]] = None,
                        tenancy: Optional[str] = None,
                        user_data: Optional[str] = None,
                        user_data_base64: Optional[str] = None,
                        valid_from: Optional[str] = None,
                        valid_until: Optional[str] = None,
                        volume_tags: Optional[Mapping[str, str]] = None,
                        vpc_security_group_ids: Optional[Sequence[str]] = None,
                        wait_for_fulfillment: Optional[bool] = None)
@overload
def SpotInstanceRequest(resource_name: str,
                        args: SpotInstanceRequestArgs,
                        opts: Optional[ResourceOptions] = None)
func NewSpotInstanceRequest(ctx *Context, name string, args SpotInstanceRequestArgs, opts ...ResourceOption) (*SpotInstanceRequest, error)
public SpotInstanceRequest(string name, SpotInstanceRequestArgs args, CustomResourceOptions? opts = null)
name string
The unique name of the resource.
args SpotInstanceRequestArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args SpotInstanceRequestArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args SpotInstanceRequestArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args SpotInstanceRequestArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.

SpotInstanceRequest Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Programming Model docs.

Inputs

The SpotInstanceRequest resource accepts the following input properties:

Ami string
AMI to use for the instance.
InstanceType string
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
AssociatePublicIpAddress bool
Whether to associate a public IP address with an instance in a VPC.
AvailabilityZone string
AZ to start the instance in.
BlockDurationMinutes int
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
CpuCoreCount int
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
CpuThreadsPerCore int
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
CreditSpecification SpotInstanceRequestCreditSpecificationArgs
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
DisableApiTermination bool
If true, enables EC2 Instance Termination Protection.
EbsBlockDevices List<SpotInstanceRequestEbsBlockDeviceArgs>
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
EbsOptimized bool
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
EnclaveOptions SpotInstanceRequestEnclaveOptionsArgs
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
EphemeralBlockDevices List<SpotInstanceRequestEphemeralBlockDeviceArgs>
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
GetPasswordData bool
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
Hibernation bool
If true, the launched EC2 instance will support hibernation.
HostId string
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
IamInstanceProfile string
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
InstanceInitiatedShutdownBehavior string
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
Ipv6AddressCount int
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
Ipv6Addresses List<string>
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
KeyName string
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
LaunchGroup string
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
MetadataOptions SpotInstanceRequestMetadataOptionsArgs
Customize the metadata options of the instance. See Metadata Options below for more details.
Monitoring bool
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
NetworkInterfaces List<SpotInstanceRequestNetworkInterfaceArgs>
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
PlacementGroup string
Placement Group to start the instance in.
PrivateIp string
Private IP address to associate with the instance in a VPC.
RootBlockDevice SpotInstanceRequestRootBlockDeviceArgs
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
SecondaryPrivateIps List<string>
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
SecurityGroups List<string>
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
SourceDestCheck bool
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
SpotPrice string
The maximum price to request on the spot market.
SpotType string
If set to one-time, after the instance is terminated, the spot request will be closed.
SubnetId string
VPC Subnet ID to launch in.
Tags Dictionary<string, string>
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll Dictionary<string, string>
A map of tags assigned to the resource, including those inherited from the provider .
Tenancy string
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
UserData string
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
UserDataBase64 string
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
VolumeTags Dictionary<string, string>
A map of tags to assign, at instance-creation time, to root and EBS volumes.
VpcSecurityGroupIds List<string>
A list of security group IDs to associate with.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
Ami string
AMI to use for the instance.
InstanceType string
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
AssociatePublicIpAddress bool
Whether to associate a public IP address with an instance in a VPC.
AvailabilityZone string
AZ to start the instance in.
BlockDurationMinutes int
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
CpuCoreCount int
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
CpuThreadsPerCore int
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
CreditSpecification SpotInstanceRequestCreditSpecification
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
DisableApiTermination bool
If true, enables EC2 Instance Termination Protection.
EbsBlockDevices []SpotInstanceRequestEbsBlockDevice
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
EbsOptimized bool
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
EnclaveOptions SpotInstanceRequestEnclaveOptions
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
EphemeralBlockDevices []SpotInstanceRequestEphemeralBlockDevice
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
GetPasswordData bool
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
Hibernation bool
If true, the launched EC2 instance will support hibernation.
HostId string
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
IamInstanceProfile string
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
InstanceInitiatedShutdownBehavior string
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
Ipv6AddressCount int
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
Ipv6Addresses []string
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
KeyName string
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
LaunchGroup string
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
MetadataOptions SpotInstanceRequestMetadataOptions
Customize the metadata options of the instance. See Metadata Options below for more details.
Monitoring bool
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
NetworkInterfaces []SpotInstanceRequestNetworkInterface
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
PlacementGroup string
Placement Group to start the instance in.
PrivateIp string
Private IP address to associate with the instance in a VPC.
RootBlockDevice SpotInstanceRequestRootBlockDevice
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
SecondaryPrivateIps []string
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
SecurityGroups []string
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
SourceDestCheck bool
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
SpotPrice string
The maximum price to request on the spot market.
SpotType string
If set to one-time, after the instance is terminated, the spot request will be closed.
SubnetId string
VPC Subnet ID to launch in.
Tags map[string]string
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll map[string]string
A map of tags assigned to the resource, including those inherited from the provider .
Tenancy string
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
UserData string
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
UserDataBase64 string
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
VolumeTags map[string]string
A map of tags to assign, at instance-creation time, to root and EBS volumes.
VpcSecurityGroupIds []string
A list of security group IDs to associate with.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
ami string
AMI to use for the instance.
instanceType string
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
associatePublicIpAddress boolean
Whether to associate a public IP address with an instance in a VPC.
availabilityZone string
AZ to start the instance in.
blockDurationMinutes number
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
cpuCoreCount number
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
cpuThreadsPerCore number
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
creditSpecification SpotInstanceRequestCreditSpecificationArgs
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
disableApiTermination boolean
If true, enables EC2 Instance Termination Protection.
ebsBlockDevices SpotInstanceRequestEbsBlockDeviceArgs[]
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
ebsOptimized boolean
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
enclaveOptions SpotInstanceRequestEnclaveOptionsArgs
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
ephemeralBlockDevices SpotInstanceRequestEphemeralBlockDeviceArgs[]
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
getPasswordData boolean
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
hibernation boolean
If true, the launched EC2 instance will support hibernation.
hostId string
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
iamInstanceProfile string
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
instanceInitiatedShutdownBehavior string
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
instanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
ipv6AddressCount number
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
ipv6Addresses string[]
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
keyName string
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
launchGroup string
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
metadataOptions SpotInstanceRequestMetadataOptionsArgs
Customize the metadata options of the instance. See Metadata Options below for more details.
monitoring boolean
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
networkInterfaces SpotInstanceRequestNetworkInterfaceArgs[]
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
placementGroup string
Placement Group to start the instance in.
privateIp string
Private IP address to associate with the instance in a VPC.
rootBlockDevice SpotInstanceRequestRootBlockDeviceArgs
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
secondaryPrivateIps string[]
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
securityGroups string[]
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
sourceDestCheck boolean
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
spotPrice string
The maximum price to request on the spot market.
spotType string
If set to one-time, after the instance is terminated, the spot request will be closed.
subnetId string
VPC Subnet ID to launch in.
tags {[key: string]: string}
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll {[key: string]: string}
A map of tags assigned to the resource, including those inherited from the provider .
tenancy string
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
userData string
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
userDataBase64 string
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
validFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
validUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
volumeTags {[key: string]: string}
A map of tags to assign, at instance-creation time, to root and EBS volumes.
vpcSecurityGroupIds string[]
A list of security group IDs to associate with.
waitForFulfillment boolean
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
ami str
AMI to use for the instance.
instance_type str
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
associate_public_ip_address bool
Whether to associate a public IP address with an instance in a VPC.
availability_zone str
AZ to start the instance in.
block_duration_minutes int
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
cpu_core_count int
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
cpu_threads_per_core int
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
credit_specification SpotInstanceRequestCreditSpecificationArgs
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
disable_api_termination bool
If true, enables EC2 Instance Termination Protection.
ebs_block_devices Sequence[SpotInstanceRequestEbsBlockDeviceArgs]
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
ebs_optimized bool
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
enclave_options SpotInstanceRequestEnclaveOptionsArgs
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
ephemeral_block_devices Sequence[SpotInstanceRequestEphemeralBlockDeviceArgs]
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
get_password_data bool
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
hibernation bool
If true, the launched EC2 instance will support hibernation.
host_id str
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
iam_instance_profile str
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
instance_initiated_shutdown_behavior str
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
instance_interruption_behaviour str
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
ipv6_address_count int
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
ipv6_addresses Sequence[str]
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
key_name str
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
launch_group str
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
metadata_options SpotInstanceRequestMetadataOptionsArgs
Customize the metadata options of the instance. See Metadata Options below for more details.
monitoring bool
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
network_interfaces Sequence[SpotInstanceRequestNetworkInterfaceArgs]
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
placement_group str
Placement Group to start the instance in.
private_ip str
Private IP address to associate with the instance in a VPC.
root_block_device SpotInstanceRequestRootBlockDeviceArgs
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
secondary_private_ips Sequence[str]
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
security_groups Sequence[str]
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
source_dest_check bool
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
spot_price str
The maximum price to request on the spot market.
spot_type str
If set to one-time, after the instance is terminated, the spot request will be closed.
subnet_id str
VPC Subnet ID to launch in.
tags Mapping[str, str]
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tags_all Mapping[str, str]
A map of tags assigned to the resource, including those inherited from the provider .
tenancy str
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
user_data str
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
user_data_base64 str
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
valid_from str
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
valid_until str
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
volume_tags Mapping[str, str]
A map of tags to assign, at instance-creation time, to root and EBS volumes.
vpc_security_group_ids Sequence[str]
A list of security group IDs to associate with.
wait_for_fulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.

Outputs

All input properties are implicitly available as output properties. Additionally, the SpotInstanceRequest resource produces the following output properties:

Arn string
Id string
The provider-assigned unique ID for this managed resource.
InstanceState string
OutpostArn string
PasswordData string
PrimaryNetworkInterfaceId string
PrivateDns string
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
PublicDns string
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
PublicIp string
The public IP address assigned to the instance, if applicable.
SpotBidStatus string

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
SpotInstanceId string
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
SpotRequestState string
Arn string
Id string
The provider-assigned unique ID for this managed resource.
InstanceState string
OutpostArn string
PasswordData string
PrimaryNetworkInterfaceId string
PrivateDns string
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
PublicDns string
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
PublicIp string
The public IP address assigned to the instance, if applicable.
SpotBidStatus string

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
SpotInstanceId string
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
SpotRequestState string
arn string
id string
The provider-assigned unique ID for this managed resource.
instanceState string
outpostArn string
passwordData string
primaryNetworkInterfaceId string
privateDns string
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
publicDns string
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
publicIp string
The public IP address assigned to the instance, if applicable.
spotBidStatus string

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
spotInstanceId string
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
spotRequestState string
arn str
id str
The provider-assigned unique ID for this managed resource.
instance_state str
outpost_arn str
password_data str
primary_network_interface_id str
private_dns str
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
public_dns str
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
public_ip str
The public IP address assigned to the instance, if applicable.
spot_bid_status str

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
spot_instance_id str
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
spot_request_state str

Look up an Existing SpotInstanceRequest Resource

Get an existing SpotInstanceRequest resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: SpotInstanceRequestState, opts?: CustomResourceOptions): SpotInstanceRequest
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        ami: Optional[str] = None,
        arn: Optional[str] = None,
        associate_public_ip_address: Optional[bool] = None,
        availability_zone: Optional[str] = None,
        block_duration_minutes: Optional[int] = None,
        cpu_core_count: Optional[int] = None,
        cpu_threads_per_core: Optional[int] = None,
        credit_specification: Optional[SpotInstanceRequestCreditSpecificationArgs] = None,
        disable_api_termination: Optional[bool] = None,
        ebs_block_devices: Optional[Sequence[SpotInstanceRequestEbsBlockDeviceArgs]] = None,
        ebs_optimized: Optional[bool] = None,
        enclave_options: Optional[SpotInstanceRequestEnclaveOptionsArgs] = None,
        ephemeral_block_devices: Optional[Sequence[SpotInstanceRequestEphemeralBlockDeviceArgs]] = None,
        get_password_data: Optional[bool] = None,
        hibernation: Optional[bool] = None,
        host_id: Optional[str] = None,
        iam_instance_profile: Optional[str] = None,
        instance_initiated_shutdown_behavior: Optional[str] = None,
        instance_interruption_behaviour: Optional[str] = None,
        instance_state: Optional[str] = None,
        instance_type: Optional[str] = None,
        ipv6_address_count: Optional[int] = None,
        ipv6_addresses: Optional[Sequence[str]] = None,
        key_name: Optional[str] = None,
        launch_group: Optional[str] = None,
        metadata_options: Optional[SpotInstanceRequestMetadataOptionsArgs] = None,
        monitoring: Optional[bool] = None,
        network_interfaces: Optional[Sequence[SpotInstanceRequestNetworkInterfaceArgs]] = None,
        outpost_arn: Optional[str] = None,
        password_data: Optional[str] = None,
        placement_group: Optional[str] = None,
        primary_network_interface_id: Optional[str] = None,
        private_dns: Optional[str] = None,
        private_ip: Optional[str] = None,
        public_dns: Optional[str] = None,
        public_ip: Optional[str] = None,
        root_block_device: Optional[SpotInstanceRequestRootBlockDeviceArgs] = None,
        secondary_private_ips: Optional[Sequence[str]] = None,
        security_groups: Optional[Sequence[str]] = None,
        source_dest_check: Optional[bool] = None,
        spot_bid_status: Optional[str] = None,
        spot_instance_id: Optional[str] = None,
        spot_price: Optional[str] = None,
        spot_request_state: Optional[str] = None,
        spot_type: Optional[str] = None,
        subnet_id: Optional[str] = None,
        tags: Optional[Mapping[str, str]] = None,
        tags_all: Optional[Mapping[str, str]] = None,
        tenancy: Optional[str] = None,
        user_data: Optional[str] = None,
        user_data_base64: Optional[str] = None,
        valid_from: Optional[str] = None,
        valid_until: Optional[str] = None,
        volume_tags: Optional[Mapping[str, str]] = None,
        vpc_security_group_ids: Optional[Sequence[str]] = None,
        wait_for_fulfillment: Optional[bool] = None) -> SpotInstanceRequest
func GetSpotInstanceRequest(ctx *Context, name string, id IDInput, state *SpotInstanceRequestState, opts ...ResourceOption) (*SpotInstanceRequest, error)
public static SpotInstanceRequest Get(string name, Input<string> id, SpotInstanceRequestState? state, CustomResourceOptions? opts = null)
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.

The following state arguments are supported:

Ami string
AMI to use for the instance.
Arn string
AssociatePublicIpAddress bool
Whether to associate a public IP address with an instance in a VPC.
AvailabilityZone string
AZ to start the instance in.
BlockDurationMinutes int
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
CpuCoreCount int
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
CpuThreadsPerCore int
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
CreditSpecification SpotInstanceRequestCreditSpecificationArgs
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
DisableApiTermination bool
If true, enables EC2 Instance Termination Protection.
EbsBlockDevices List<SpotInstanceRequestEbsBlockDeviceArgs>
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
EbsOptimized bool
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
EnclaveOptions SpotInstanceRequestEnclaveOptionsArgs
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
EphemeralBlockDevices List<SpotInstanceRequestEphemeralBlockDeviceArgs>
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
GetPasswordData bool
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
Hibernation bool
If true, the launched EC2 instance will support hibernation.
HostId string
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
IamInstanceProfile string
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
InstanceInitiatedShutdownBehavior string
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
InstanceState string
InstanceType string
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
Ipv6AddressCount int
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
Ipv6Addresses List<string>
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
KeyName string
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
LaunchGroup string
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
MetadataOptions SpotInstanceRequestMetadataOptionsArgs
Customize the metadata options of the instance. See Metadata Options below for more details.
Monitoring bool
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
NetworkInterfaces List<SpotInstanceRequestNetworkInterfaceArgs>
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
OutpostArn string
PasswordData string
PlacementGroup string
Placement Group to start the instance in.
PrimaryNetworkInterfaceId string
PrivateDns string
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
PrivateIp string
Private IP address to associate with the instance in a VPC.
PublicDns string
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
PublicIp string
The public IP address assigned to the instance, if applicable.
RootBlockDevice SpotInstanceRequestRootBlockDeviceArgs
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
SecondaryPrivateIps List<string>
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
SecurityGroups List<string>
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
SourceDestCheck bool
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
SpotBidStatus string

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
SpotInstanceId string
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
SpotPrice string
The maximum price to request on the spot market.
SpotRequestState string
SpotType string
If set to one-time, after the instance is terminated, the spot request will be closed.
SubnetId string
VPC Subnet ID to launch in.
Tags Dictionary<string, string>
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll Dictionary<string, string>
A map of tags assigned to the resource, including those inherited from the provider .
Tenancy string
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
UserData string
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
UserDataBase64 string
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
VolumeTags Dictionary<string, string>
A map of tags to assign, at instance-creation time, to root and EBS volumes.
VpcSecurityGroupIds List<string>
A list of security group IDs to associate with.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
Ami string
AMI to use for the instance.
Arn string
AssociatePublicIpAddress bool
Whether to associate a public IP address with an instance in a VPC.
AvailabilityZone string
AZ to start the instance in.
BlockDurationMinutes int
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
CpuCoreCount int
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
CpuThreadsPerCore int
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
CreditSpecification SpotInstanceRequestCreditSpecification
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
DisableApiTermination bool
If true, enables EC2 Instance Termination Protection.
EbsBlockDevices []SpotInstanceRequestEbsBlockDevice
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
EbsOptimized bool
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
EnclaveOptions SpotInstanceRequestEnclaveOptions
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
EphemeralBlockDevices []SpotInstanceRequestEphemeralBlockDevice
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
GetPasswordData bool
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
Hibernation bool
If true, the launched EC2 instance will support hibernation.
HostId string
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
IamInstanceProfile string
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
InstanceInitiatedShutdownBehavior string
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
InstanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
InstanceState string
InstanceType string
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
Ipv6AddressCount int
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
Ipv6Addresses []string
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
KeyName string
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
LaunchGroup string
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
MetadataOptions SpotInstanceRequestMetadataOptions
Customize the metadata options of the instance. See Metadata Options below for more details.
Monitoring bool
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
NetworkInterfaces []SpotInstanceRequestNetworkInterface
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
OutpostArn string
PasswordData string
PlacementGroup string
Placement Group to start the instance in.
PrimaryNetworkInterfaceId string
PrivateDns string
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
PrivateIp string
Private IP address to associate with the instance in a VPC.
PublicDns string
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
PublicIp string
The public IP address assigned to the instance, if applicable.
RootBlockDevice SpotInstanceRequestRootBlockDevice
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
SecondaryPrivateIps []string
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
SecurityGroups []string
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
SourceDestCheck bool
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
SpotBidStatus string

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
SpotInstanceId string
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
SpotPrice string
The maximum price to request on the spot market.
SpotRequestState string
SpotType string
If set to one-time, after the instance is terminated, the spot request will be closed.
SubnetId string
VPC Subnet ID to launch in.
Tags map[string]string
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
TagsAll map[string]string
A map of tags assigned to the resource, including those inherited from the provider .
Tenancy string
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
UserData string
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
UserDataBase64 string
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
ValidFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
ValidUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
VolumeTags map[string]string
A map of tags to assign, at instance-creation time, to root and EBS volumes.
VpcSecurityGroupIds []string
A list of security group IDs to associate with.
WaitForFulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
ami string
AMI to use for the instance.
arn string
associatePublicIpAddress boolean
Whether to associate a public IP address with an instance in a VPC.
availabilityZone string
AZ to start the instance in.
blockDurationMinutes number
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
cpuCoreCount number
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
cpuThreadsPerCore number
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
creditSpecification SpotInstanceRequestCreditSpecificationArgs
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
disableApiTermination boolean
If true, enables EC2 Instance Termination Protection.
ebsBlockDevices SpotInstanceRequestEbsBlockDeviceArgs[]
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
ebsOptimized boolean
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
enclaveOptions SpotInstanceRequestEnclaveOptionsArgs
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
ephemeralBlockDevices SpotInstanceRequestEphemeralBlockDeviceArgs[]
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
getPasswordData boolean
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
hibernation boolean
If true, the launched EC2 instance will support hibernation.
hostId string
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
iamInstanceProfile string
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
instanceInitiatedShutdownBehavior string
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
instanceInterruptionBehaviour string
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
instanceState string
instanceType string
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
ipv6AddressCount number
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
ipv6Addresses string[]
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
keyName string
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
launchGroup string
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
metadataOptions SpotInstanceRequestMetadataOptionsArgs
Customize the metadata options of the instance. See Metadata Options below for more details.
monitoring boolean
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
networkInterfaces SpotInstanceRequestNetworkInterfaceArgs[]
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
outpostArn string
passwordData string
placementGroup string
Placement Group to start the instance in.
primaryNetworkInterfaceId string
privateDns string
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
privateIp string
Private IP address to associate with the instance in a VPC.
publicDns string
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
publicIp string
The public IP address assigned to the instance, if applicable.
rootBlockDevice SpotInstanceRequestRootBlockDeviceArgs
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
secondaryPrivateIps string[]
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
securityGroups string[]
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
sourceDestCheck boolean
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
spotBidStatus string

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
spotInstanceId string
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
spotPrice string
The maximum price to request on the spot market.
spotRequestState string
spotType string
If set to one-time, after the instance is terminated, the spot request will be closed.
subnetId string
VPC Subnet ID to launch in.
tags {[key: string]: string}
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tagsAll {[key: string]: string}
A map of tags assigned to the resource, including those inherited from the provider .
tenancy string
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
userData string
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
userDataBase64 string
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
validFrom string
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
validUntil string
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
volumeTags {[key: string]: string}
A map of tags to assign, at instance-creation time, to root and EBS volumes.
vpcSecurityGroupIds string[]
A list of security group IDs to associate with.
waitForFulfillment boolean
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.
ami str
AMI to use for the instance.
arn str
associate_public_ip_address bool
Whether to associate a public IP address with an instance in a VPC.
availability_zone str
AZ to start the instance in.
block_duration_minutes int
The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can’t specify an Availability Zone group or a launch group if you specify a duration.
cpu_core_count int
Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options CPU Cores and Threads Per CPU Core Per Instance Type - specifying this option for unsupported instance types will return an error from the EC2 API.
cpu_threads_per_core int
If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See Optimizing CPU Options for more information.
credit_specification SpotInstanceRequestCreditSpecificationArgs
Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. the provider will only perform drift detection of its value when present in a configuration. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.
disable_api_termination bool
If true, enables EC2 Instance Termination Protection.
ebs_block_devices Sequence[SpotInstanceRequestEbsBlockDeviceArgs]
One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.
ebs_optimized bool
If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the EBS Optimized section of the AWS User Guide for more information.
enclave_options SpotInstanceRequestEnclaveOptionsArgs
Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.
ephemeral_block_devices Sequence[SpotInstanceRequestEphemeralBlockDeviceArgs]
One or more configuration blocks to customize Ephemeral (also known as “Instance Store”) volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.
get_password_data bool
If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the password_data attribute. See GetPasswordData for more information.
hibernation bool
If true, the launched EC2 instance will support hibernation.
host_id str
ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.
iam_instance_profile str
IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the EC2 documentation, notably iam:PassRole.
instance_initiated_shutdown_behavior str
Shutdown behavior for the instance. Amazon defaults this to stop for EBS-backed instances and terminate for instance-store instances. Cannot be set on instance-store instances. See Shutdown Behavior for more information.
instance_interruption_behaviour str
Indicates whether a Spot instance stops or terminates when it is interrupted. Default is terminate as this is the current AWS behaviour.
instance_state str
instance_type str
Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.
ipv6_address_count int
A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet.
ipv6_addresses Sequence[str]
Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface
key_name str
Key name of the Key Pair to use for the instance; which can be managed using the aws.ec2.KeyPair resource.
launch_group str
A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually.
metadata_options SpotInstanceRequestMetadataOptionsArgs
Customize the metadata options of the instance. See Metadata Options below for more details.
monitoring bool
If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0)
network_interfaces Sequence[SpotInstanceRequestNetworkInterfaceArgs]
Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.
outpost_arn str
password_data str
placement_group str
Placement Group to start the instance in.
primary_network_interface_id str
private_dns str
The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you’ve enabled DNS hostnames for your VPC
private_ip str
Private IP address to associate with the instance in a VPC.
public_dns str
The public DNS name assigned to the instance. For EC2-VPC, this is only available if you’ve enabled DNS hostnames for your VPC
public_ip str
The public IP address assigned to the instance, if applicable.
root_block_device SpotInstanceRequestRootBlockDeviceArgs
Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.
secondary_private_ips Sequence[str]
A list of secondary private IPv4 addresses to assign to the instance’s primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.
security_groups Sequence[str]
A list of security group names (EC2-Classic) or IDs (default VPC) to associate with.
source_dest_check bool
Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.
spot_bid_status str

The current bid status of the Spot Instance Request.

  • spot_request_state The current request state of the Spot Instance Request.
spot_instance_id str
The Instance ID (if any) that is currently fulfilling the Spot Instance request.
spot_price str
The maximum price to request on the spot market.
spot_request_state str
spot_type str
If set to one-time, after the instance is terminated, the spot request will be closed.
subnet_id str
VPC Subnet ID to launch in.
tags Mapping[str, str]
A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
tags_all Mapping[str, str]
A map of tags assigned to the resource, including those inherited from the provider .
tenancy str
Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.
user_data str
User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see user_data_base64 instead.
user_data_base64 str
Can be used instead of user_data to pass base64-encoded binary data directly. Use this instead of user_data whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption.
valid_from str
The start date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately.
valid_until str
The end date and time of the request, in UTC RFC3339 format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date.
volume_tags Mapping[str, str]
A map of tags to assign, at instance-creation time, to root and EBS volumes.
vpc_security_group_ids Sequence[str]
A list of security group IDs to associate with.
wait_for_fulfillment bool
If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the timeout of 10m is reached.

Supporting Types

SpotInstanceRequestCreditSpecification

CpuCredits string
Credit option for CPU usage. Valid values include standard or unlimited. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.
CpuCredits string
Credit option for CPU usage. Valid values include standard or unlimited. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.
cpuCredits string
Credit option for CPU usage. Valid values include standard or unlimited. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.
cpu_credits str
Credit option for CPU usage. Valid values include standard or unlimited. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.

SpotInstanceRequestEbsBlockDevice

DeviceName string
Name of the device to mount.
DeleteOnTermination bool
Whether the volume should be destroyed on instance termination. Defaults to true.
Encrypted bool
Enables EBS encryption on the volume. Defaults to false. Cannot be used with snapshot_id. Must be configured to perform drift detection.
Iops int
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
KmsKeyId string
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
SnapshotId string
Snapshot ID to mount.
Tags Dictionary<string, string>
A map of tags to assign to the device.
Throughput int
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
VolumeId string
VolumeSize int
Size of the volume in gibibytes (GiB).
VolumeType string
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.
DeviceName string
Name of the device to mount.
DeleteOnTermination bool
Whether the volume should be destroyed on instance termination. Defaults to true.
Encrypted bool
Enables EBS encryption on the volume. Defaults to false. Cannot be used with snapshot_id. Must be configured to perform drift detection.
Iops int
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
KmsKeyId string
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
SnapshotId string
Snapshot ID to mount.
Tags map[string]string
A map of tags to assign to the device.
Throughput int
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
VolumeId string
VolumeSize int
Size of the volume in gibibytes (GiB).
VolumeType string
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.
deviceName string
Name of the device to mount.
deleteOnTermination boolean
Whether the volume should be destroyed on instance termination. Defaults to true.
encrypted boolean
Enables EBS encryption on the volume. Defaults to false. Cannot be used with snapshot_id. Must be configured to perform drift detection.
iops number
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
kmsKeyId string
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
snapshotId string
Snapshot ID to mount.
tags {[key: string]: string}
A map of tags to assign to the device.
throughput number
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
volumeId string
volumeSize number
Size of the volume in gibibytes (GiB).
volumeType string
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.
device_name str
Name of the device to mount.
delete_on_termination bool
Whether the volume should be destroyed on instance termination. Defaults to true.
encrypted bool
Enables EBS encryption on the volume. Defaults to false. Cannot be used with snapshot_id. Must be configured to perform drift detection.
iops int
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
kms_key_id str
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
snapshot_id str
Snapshot ID to mount.
tags Mapping[str, str]
A map of tags to assign to the device.
throughput int
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
volume_id str
volume_size int
Size of the volume in gibibytes (GiB).
volume_type str
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.

SpotInstanceRequestEnclaveOptions

Enabled bool
Whether Nitro Enclaves will be enabled on the instance. Defaults to false.
Enabled bool
Whether Nitro Enclaves will be enabled on the instance. Defaults to false.
enabled boolean
Whether Nitro Enclaves will be enabled on the instance. Defaults to false.
enabled bool
Whether Nitro Enclaves will be enabled on the instance. Defaults to false.

SpotInstanceRequestEphemeralBlockDevice

DeviceName string
The name of the block device to mount on the instance.
NoDevice bool
Suppresses the specified device included in the AMI’s block device mapping.
VirtualName string
Instance Store Device Name (e.g. ephemeral0).
DeviceName string
The name of the block device to mount on the instance.
NoDevice bool
Suppresses the specified device included in the AMI’s block device mapping.
VirtualName string
Instance Store Device Name (e.g. ephemeral0).
deviceName string
The name of the block device to mount on the instance.
noDevice boolean
Suppresses the specified device included in the AMI’s block device mapping.
virtualName string
Instance Store Device Name (e.g. ephemeral0).
device_name str
The name of the block device to mount on the instance.
no_device bool
Suppresses the specified device included in the AMI’s block device mapping.
virtual_name str
Instance Store Device Name (e.g. ephemeral0).

SpotInstanceRequestMetadataOptions

HttpEndpoint string
Whether the metadata service is available. Valid values include enabled or disabled. Defaults to enabled.
HttpPutResponseHopLimit int
Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from 1 to 64. Defaults to 1.
HttpTokens string
Whether or not the metadata service requires session tokens, also referred to as Instance Metadata Service Version 2 (IMDSv2). Valid values include optional or required. Defaults to optional.
HttpEndpoint string
Whether the metadata service is available. Valid values include enabled or disabled. Defaults to enabled.
HttpPutResponseHopLimit int
Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from 1 to 64. Defaults to 1.
HttpTokens string
Whether or not the metadata service requires session tokens, also referred to as Instance Metadata Service Version 2 (IMDSv2). Valid values include optional or required. Defaults to optional.
httpEndpoint string
Whether the metadata service is available. Valid values include enabled or disabled. Defaults to enabled.
httpPutResponseHopLimit number
Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from 1 to 64. Defaults to 1.
httpTokens string
Whether or not the metadata service requires session tokens, also referred to as Instance Metadata Service Version 2 (IMDSv2). Valid values include optional or required. Defaults to optional.
http_endpoint str
Whether the metadata service is available. Valid values include enabled or disabled. Defaults to enabled.
http_put_response_hop_limit int
Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from 1 to 64. Defaults to 1.
http_tokens str
Whether or not the metadata service requires session tokens, also referred to as Instance Metadata Service Version 2 (IMDSv2). Valid values include optional or required. Defaults to optional.

SpotInstanceRequestNetworkInterface

DeviceIndex int
Integer index of the network interface attachment. Limited by instance type.
NetworkInterfaceId string
ID of the network interface to attach.
DeleteOnTermination bool
Whether or not to delete the network interface on instance termination. Defaults to false. Currently, the only valid value is false, as this is only supported when creating new network interfaces when launching an instance.
DeviceIndex int
Integer index of the network interface attachment. Limited by instance type.
NetworkInterfaceId string
ID of the network interface to attach.
DeleteOnTermination bool
Whether or not to delete the network interface on instance termination. Defaults to false. Currently, the only valid value is false, as this is only supported when creating new network interfaces when launching an instance.
deviceIndex number
Integer index of the network interface attachment. Limited by instance type.
networkInterfaceId string
ID of the network interface to attach.
deleteOnTermination boolean
Whether or not to delete the network interface on instance termination. Defaults to false. Currently, the only valid value is false, as this is only supported when creating new network interfaces when launching an instance.
device_index int
Integer index of the network interface attachment. Limited by instance type.
network_interface_id str
ID of the network interface to attach.
delete_on_termination bool
Whether or not to delete the network interface on instance termination. Defaults to false. Currently, the only valid value is false, as this is only supported when creating new network interfaces when launching an instance.

SpotInstanceRequestRootBlockDevice

DeleteOnTermination bool
Whether the volume should be destroyed on instance termination. Defaults to true.
DeviceName string
Name of the device to mount.
Encrypted bool
Whether to enable volume encryption. Defaults to false. Must be configured to perform drift detection.
Iops int
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
KmsKeyId string
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
Tags Dictionary<string, string>
A map of tags to assign to the device.
Throughput int
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
VolumeId string
VolumeSize int
Size of the volume in gibibytes (GiB).
VolumeType string
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.
DeleteOnTermination bool
Whether the volume should be destroyed on instance termination. Defaults to true.
DeviceName string
Name of the device to mount.
Encrypted bool
Whether to enable volume encryption. Defaults to false. Must be configured to perform drift detection.
Iops int
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
KmsKeyId string
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
Tags map[string]string
A map of tags to assign to the device.
Throughput int
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
VolumeId string
VolumeSize int
Size of the volume in gibibytes (GiB).
VolumeType string
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.
deleteOnTermination boolean
Whether the volume should be destroyed on instance termination. Defaults to true.
deviceName string
Name of the device to mount.
encrypted boolean
Whether to enable volume encryption. Defaults to false. Must be configured to perform drift detection.
iops number
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
kmsKeyId string
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
tags {[key: string]: string}
A map of tags to assign to the device.
throughput number
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
volumeId string
volumeSize number
Size of the volume in gibibytes (GiB).
volumeType string
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.
delete_on_termination bool
Whether the volume should be destroyed on instance termination. Defaults to true.
device_name str
Name of the device to mount.
encrypted bool
Whether to enable volume encryption. Defaults to false. Must be configured to perform drift detection.
iops int
Amount of provisioned IOPS. Only valid for volume_type of io1, io2 or gp3.
kms_key_id str
Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection.
tags Mapping[str, str]
A map of tags to assign to the device.
throughput int
Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for volume_type of gp3.
volume_id str
volume_size int
Size of the volume in gibibytes (GiB).
volume_type str
Type of volume. Valid values include standard, gp2, gp3, io1, io2, sc1, or st1. Defaults to gp2.

Package Details

Repository
https://github.com/pulumi/pulumi-aws
License
Apache-2.0
Notes
This Pulumi package is based on the aws Terraform Provider.