1. Packages
  2. Spotinst
  3. API Docs
  4. ecs
  5. OceanLaunchSpec
Spotinst v3.94.0 published on Friday, Sep 20, 2024 by Pulumi

spotinst.ecs.OceanLaunchSpec

Explore with Pulumi AI

spotinst logo
Spotinst v3.94.0 published on Friday, Sep 20, 2024 by Pulumi

    Manages a custom Spotinst Ocean ECS Launch Spec resource.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as spotinst from "@pulumi/spotinst";
    
    const example = new spotinst.ecs.OceanLaunchSpec("example", {
        oceanId: "o-123456",
        imageId: "ami-123456",
        userData: "echo hello world",
        iamInstanceProfile: "iam-profile",
        subnetIds: ["subnet-12345"],
        securityGroupIds: ["awseb-12345"],
        restrictScaleDown: true,
        instanceTypes: [
            "m3.large",
            "m3.xlarge",
            "m3.2xlarge",
            "m4.large",
            "m4.xlarge",
            "m4.4xlarge",
            "m4.2xlarge",
            "m4.10xlarge",
            "m4.16xlarge",
            "m5.large",
            "m5.xlarge",
            "m5.2xlarge",
            "m5.4xlarge",
            "m5.12xlarge",
            "m5.24xlarge",
        ],
        preferredSpotTypes: [
            "m3.large",
            "m3.xlarge",
            "m3.2xlarge",
            "m4.large",
            "m4.xlarge",
        ],
        blockDeviceMappings: [{
            deviceName: "/dev/xvda1",
            ebs: {
                deleteOnTermination: true,
                encrypted: false,
                volumeType: "gp2",
                volumeSize: 50,
                throughput: 500,
                dynamicVolumeSize: {
                    baseSize: 50,
                    resource: "CPU",
                    sizePerResourceUnit: 20,
                },
            },
        }],
        attributes: [{
            key: "fakeKey",
            value: "fakeValue",
        }],
        instanceMetadataOptions: {
            httpTokens: "required",
            httpPutResponseHopLimit: 10,
        },
        autoscaleHeadrooms: [{
            numOfUnits: 5,
            cpuPerUnit: 1000,
            memoryPerUnit: 2048,
        }],
        strategies: [{
            spotPercentage: 50,
        }],
        tags: [{
            key: "Env",
            value: "production",
        }],
        images: [
            {
                imageId: "ami-12345",
            },
            {
                imageId: "ami-67890",
            },
        ],
        schedulingTasks: [{
            isEnabled: true,
            cronExpression: "0 1 * * *",
            taskType: "manualHeadroomUpdate",
            taskHeadrooms: [{
                numOfUnits: 5,
                cpuPerUnit: 1000,
                memoryPerUnit: 2048,
            }],
        }],
    });
    
    import pulumi
    import pulumi_spotinst as spotinst
    
    example = spotinst.ecs.OceanLaunchSpec("example",
        ocean_id="o-123456",
        image_id="ami-123456",
        user_data="echo hello world",
        iam_instance_profile="iam-profile",
        subnet_ids=["subnet-12345"],
        security_group_ids=["awseb-12345"],
        restrict_scale_down=True,
        instance_types=[
            "m3.large",
            "m3.xlarge",
            "m3.2xlarge",
            "m4.large",
            "m4.xlarge",
            "m4.4xlarge",
            "m4.2xlarge",
            "m4.10xlarge",
            "m4.16xlarge",
            "m5.large",
            "m5.xlarge",
            "m5.2xlarge",
            "m5.4xlarge",
            "m5.12xlarge",
            "m5.24xlarge",
        ],
        preferred_spot_types=[
            "m3.large",
            "m3.xlarge",
            "m3.2xlarge",
            "m4.large",
            "m4.xlarge",
        ],
        block_device_mappings=[{
            "device_name": "/dev/xvda1",
            "ebs": {
                "delete_on_termination": True,
                "encrypted": False,
                "volume_type": "gp2",
                "volume_size": 50,
                "throughput": 500,
                "dynamic_volume_size": {
                    "base_size": 50,
                    "resource": "CPU",
                    "size_per_resource_unit": 20,
                },
            },
        }],
        attributes=[{
            "key": "fakeKey",
            "value": "fakeValue",
        }],
        instance_metadata_options={
            "http_tokens": "required",
            "http_put_response_hop_limit": 10,
        },
        autoscale_headrooms=[{
            "num_of_units": 5,
            "cpu_per_unit": 1000,
            "memory_per_unit": 2048,
        }],
        strategies=[{
            "spot_percentage": 50,
        }],
        tags=[{
            "key": "Env",
            "value": "production",
        }],
        images=[
            {
                "image_id": "ami-12345",
            },
            {
                "image_id": "ami-67890",
            },
        ],
        scheduling_tasks=[{
            "is_enabled": True,
            "cron_expression": "0 1 * * *",
            "task_type": "manualHeadroomUpdate",
            "task_headrooms": [{
                "num_of_units": 5,
                "cpu_per_unit": 1000,
                "memory_per_unit": 2048,
            }],
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/ecs"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := ecs.NewOceanLaunchSpec(ctx, "example", &ecs.OceanLaunchSpecArgs{
    			OceanId:            pulumi.String("o-123456"),
    			ImageId:            pulumi.String("ami-123456"),
    			UserData:           pulumi.String("echo hello world"),
    			IamInstanceProfile: pulumi.String("iam-profile"),
    			SubnetIds: pulumi.StringArray{
    				pulumi.String("subnet-12345"),
    			},
    			SecurityGroupIds: pulumi.StringArray{
    				pulumi.String("awseb-12345"),
    			},
    			RestrictScaleDown: pulumi.Bool(true),
    			InstanceTypes: pulumi.StringArray{
    				pulumi.String("m3.large"),
    				pulumi.String("m3.xlarge"),
    				pulumi.String("m3.2xlarge"),
    				pulumi.String("m4.large"),
    				pulumi.String("m4.xlarge"),
    				pulumi.String("m4.4xlarge"),
    				pulumi.String("m4.2xlarge"),
    				pulumi.String("m4.10xlarge"),
    				pulumi.String("m4.16xlarge"),
    				pulumi.String("m5.large"),
    				pulumi.String("m5.xlarge"),
    				pulumi.String("m5.2xlarge"),
    				pulumi.String("m5.4xlarge"),
    				pulumi.String("m5.12xlarge"),
    				pulumi.String("m5.24xlarge"),
    			},
    			PreferredSpotTypes: pulumi.StringArray{
    				pulumi.String("m3.large"),
    				pulumi.String("m3.xlarge"),
    				pulumi.String("m3.2xlarge"),
    				pulumi.String("m4.large"),
    				pulumi.String("m4.xlarge"),
    			},
    			BlockDeviceMappings: ecs.OceanLaunchSpecBlockDeviceMappingArray{
    				&ecs.OceanLaunchSpecBlockDeviceMappingArgs{
    					DeviceName: pulumi.String("/dev/xvda1"),
    					Ebs: &ecs.OceanLaunchSpecBlockDeviceMappingEbsArgs{
    						DeleteOnTermination: pulumi.Bool(true),
    						Encrypted:           pulumi.Bool(false),
    						VolumeType:          pulumi.String("gp2"),
    						VolumeSize:          pulumi.Int(50),
    						Throughput:          pulumi.Int(500),
    						DynamicVolumeSize: &ecs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs{
    							BaseSize:            pulumi.Int(50),
    							Resource:            pulumi.String("CPU"),
    							SizePerResourceUnit: pulumi.Int(20),
    						},
    					},
    				},
    			},
    			Attributes: ecs.OceanLaunchSpecAttributeArray{
    				&ecs.OceanLaunchSpecAttributeArgs{
    					Key:   pulumi.String("fakeKey"),
    					Value: pulumi.String("fakeValue"),
    				},
    			},
    			InstanceMetadataOptions: &ecs.OceanLaunchSpecInstanceMetadataOptionsArgs{
    				HttpTokens:              pulumi.String("required"),
    				HttpPutResponseHopLimit: pulumi.Int(10),
    			},
    			AutoscaleHeadrooms: ecs.OceanLaunchSpecAutoscaleHeadroomArray{
    				&ecs.OceanLaunchSpecAutoscaleHeadroomArgs{
    					NumOfUnits:    pulumi.Int(5),
    					CpuPerUnit:    pulumi.Int(1000),
    					MemoryPerUnit: pulumi.Int(2048),
    				},
    			},
    			Strategies: ecs.OceanLaunchSpecStrategyArray{
    				&ecs.OceanLaunchSpecStrategyArgs{
    					SpotPercentage: pulumi.Int(50),
    				},
    			},
    			Tags: ecs.OceanLaunchSpecTagArray{
    				&ecs.OceanLaunchSpecTagArgs{
    					Key:   pulumi.String("Env"),
    					Value: pulumi.String("production"),
    				},
    			},
    			Images: ecs.OceanLaunchSpecImageArray{
    				&ecs.OceanLaunchSpecImageArgs{
    					ImageId: pulumi.String("ami-12345"),
    				},
    				&ecs.OceanLaunchSpecImageArgs{
    					ImageId: pulumi.String("ami-67890"),
    				},
    			},
    			SchedulingTasks: ecs.OceanLaunchSpecSchedulingTaskArray{
    				&ecs.OceanLaunchSpecSchedulingTaskArgs{
    					IsEnabled:      pulumi.Bool(true),
    					CronExpression: pulumi.String("0 1 * * *"),
    					TaskType:       pulumi.String("manualHeadroomUpdate"),
    					TaskHeadrooms: ecs.OceanLaunchSpecSchedulingTaskTaskHeadroomArray{
    						&ecs.OceanLaunchSpecSchedulingTaskTaskHeadroomArgs{
    							NumOfUnits:    pulumi.Int(5),
    							CpuPerUnit:    pulumi.Int(1000),
    							MemoryPerUnit: pulumi.Int(2048),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using SpotInst = Pulumi.SpotInst;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new SpotInst.Ecs.OceanLaunchSpec("example", new()
        {
            OceanId = "o-123456",
            ImageId = "ami-123456",
            UserData = "echo hello world",
            IamInstanceProfile = "iam-profile",
            SubnetIds = new[]
            {
                "subnet-12345",
            },
            SecurityGroupIds = new[]
            {
                "awseb-12345",
            },
            RestrictScaleDown = true,
            InstanceTypes = new[]
            {
                "m3.large",
                "m3.xlarge",
                "m3.2xlarge",
                "m4.large",
                "m4.xlarge",
                "m4.4xlarge",
                "m4.2xlarge",
                "m4.10xlarge",
                "m4.16xlarge",
                "m5.large",
                "m5.xlarge",
                "m5.2xlarge",
                "m5.4xlarge",
                "m5.12xlarge",
                "m5.24xlarge",
            },
            PreferredSpotTypes = new[]
            {
                "m3.large",
                "m3.xlarge",
                "m3.2xlarge",
                "m4.large",
                "m4.xlarge",
            },
            BlockDeviceMappings = new[]
            {
                new SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingArgs
                {
                    DeviceName = "/dev/xvda1",
                    Ebs = new SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingEbsArgs
                    {
                        DeleteOnTermination = true,
                        Encrypted = false,
                        VolumeType = "gp2",
                        VolumeSize = 50,
                        Throughput = 500,
                        DynamicVolumeSize = new SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs
                        {
                            BaseSize = 50,
                            Resource = "CPU",
                            SizePerResourceUnit = 20,
                        },
                    },
                },
            },
            Attributes = new[]
            {
                new SpotInst.Ecs.Inputs.OceanLaunchSpecAttributeArgs
                {
                    Key = "fakeKey",
                    Value = "fakeValue",
                },
            },
            InstanceMetadataOptions = new SpotInst.Ecs.Inputs.OceanLaunchSpecInstanceMetadataOptionsArgs
            {
                HttpTokens = "required",
                HttpPutResponseHopLimit = 10,
            },
            AutoscaleHeadrooms = new[]
            {
                new SpotInst.Ecs.Inputs.OceanLaunchSpecAutoscaleHeadroomArgs
                {
                    NumOfUnits = 5,
                    CpuPerUnit = 1000,
                    MemoryPerUnit = 2048,
                },
            },
            Strategies = new[]
            {
                new SpotInst.Ecs.Inputs.OceanLaunchSpecStrategyArgs
                {
                    SpotPercentage = 50,
                },
            },
            Tags = new[]
            {
                new SpotInst.Ecs.Inputs.OceanLaunchSpecTagArgs
                {
                    Key = "Env",
                    Value = "production",
                },
            },
            Images = new[]
            {
                new SpotInst.Ecs.Inputs.OceanLaunchSpecImageArgs
                {
                    ImageId = "ami-12345",
                },
                new SpotInst.Ecs.Inputs.OceanLaunchSpecImageArgs
                {
                    ImageId = "ami-67890",
                },
            },
            SchedulingTasks = new[]
            {
                new SpotInst.Ecs.Inputs.OceanLaunchSpecSchedulingTaskArgs
                {
                    IsEnabled = true,
                    CronExpression = "0 1 * * *",
                    TaskType = "manualHeadroomUpdate",
                    TaskHeadrooms = new[]
                    {
                        new SpotInst.Ecs.Inputs.OceanLaunchSpecSchedulingTaskTaskHeadroomArgs
                        {
                            NumOfUnits = 5,
                            CpuPerUnit = 1000,
                            MemoryPerUnit = 2048,
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.spotinst.ecs.OceanLaunchSpec;
    import com.pulumi.spotinst.ecs.OceanLaunchSpecArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecBlockDeviceMappingArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecBlockDeviceMappingEbsArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecAttributeArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecInstanceMetadataOptionsArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecAutoscaleHeadroomArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecStrategyArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecTagArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecImageArgs;
    import com.pulumi.spotinst.ecs.inputs.OceanLaunchSpecSchedulingTaskArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new OceanLaunchSpec("example", OceanLaunchSpecArgs.builder()
                .oceanId("o-123456")
                .imageId("ami-123456")
                .userData("echo hello world")
                .iamInstanceProfile("iam-profile")
                .subnetIds("subnet-12345")
                .securityGroupIds("awseb-12345")
                .restrictScaleDown(true)
                .instanceTypes(            
                    "m3.large",
                    "m3.xlarge",
                    "m3.2xlarge",
                    "m4.large",
                    "m4.xlarge",
                    "m4.4xlarge",
                    "m4.2xlarge",
                    "m4.10xlarge",
                    "m4.16xlarge",
                    "m5.large",
                    "m5.xlarge",
                    "m5.2xlarge",
                    "m5.4xlarge",
                    "m5.12xlarge",
                    "m5.24xlarge")
                .preferredSpotTypes(            
                    "m3.large",
                    "m3.xlarge",
                    "m3.2xlarge",
                    "m4.large",
                    "m4.xlarge")
                .blockDeviceMappings(OceanLaunchSpecBlockDeviceMappingArgs.builder()
                    .deviceName("/dev/xvda1")
                    .ebs(OceanLaunchSpecBlockDeviceMappingEbsArgs.builder()
                        .deleteOnTermination("true")
                        .encrypted("false")
                        .volumeType("gp2")
                        .volumeSize(50)
                        .throughput(500)
                        .dynamicVolumeSize(OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs.builder()
                            .baseSize(50)
                            .resource("CPU")
                            .sizePerResourceUnit(20)
                            .build())
                        .build())
                    .build())
                .attributes(OceanLaunchSpecAttributeArgs.builder()
                    .key("fakeKey")
                    .value("fakeValue")
                    .build())
                .instanceMetadataOptions(OceanLaunchSpecInstanceMetadataOptionsArgs.builder()
                    .httpTokens("required")
                    .httpPutResponseHopLimit(10)
                    .build())
                .autoscaleHeadrooms(OceanLaunchSpecAutoscaleHeadroomArgs.builder()
                    .numOfUnits(5)
                    .cpuPerUnit(1000)
                    .memoryPerUnit(2048)
                    .build())
                .strategies(OceanLaunchSpecStrategyArgs.builder()
                    .spotPercentage(50)
                    .build())
                .tags(OceanLaunchSpecTagArgs.builder()
                    .key("Env")
                    .value("production")
                    .build())
                .images(            
                    OceanLaunchSpecImageArgs.builder()
                        .imageId("ami-12345")
                        .build(),
                    OceanLaunchSpecImageArgs.builder()
                        .imageId("ami-67890")
                        .build())
                .schedulingTasks(OceanLaunchSpecSchedulingTaskArgs.builder()
                    .isEnabled(true)
                    .cronExpression("0 1 * * *")
                    .taskType("manualHeadroomUpdate")
                    .taskHeadrooms(OceanLaunchSpecSchedulingTaskTaskHeadroomArgs.builder()
                        .numOfUnits(5)
                        .cpuPerUnit(1000)
                        .memoryPerUnit(2048)
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: spotinst:ecs:OceanLaunchSpec
        properties:
          oceanId: o-123456
          imageId: ami-123456
          userData: echo hello world
          iamInstanceProfile: iam-profile
          subnetIds:
            - subnet-12345
          securityGroupIds:
            - awseb-12345
          restrictScaleDown: true
          instanceTypes:
            - m3.large
            - m3.xlarge
            - m3.2xlarge
            - m4.large
            - m4.xlarge
            - m4.4xlarge
            - m4.2xlarge
            - m4.10xlarge
            - m4.16xlarge
            - m5.large
            - m5.xlarge
            - m5.2xlarge
            - m5.4xlarge
            - m5.12xlarge
            - m5.24xlarge
          preferredSpotTypes:
            - m3.large
            - m3.xlarge
            - m3.2xlarge
            - m4.large
            - m4.xlarge
          blockDeviceMappings:
            - deviceName: /dev/xvda1
              ebs:
                deleteOnTermination: 'true'
                encrypted: 'false'
                volumeType: gp2
                volumeSize: 50
                throughput: 500
                dynamicVolumeSize:
                  baseSize: 50
                  resource: CPU
                  sizePerResourceUnit: 20
          attributes:
            - key: fakeKey
              value: fakeValue
          instanceMetadataOptions:
            httpTokens: required
            httpPutResponseHopLimit: 10
          autoscaleHeadrooms:
            - numOfUnits: 5
              cpuPerUnit: 1000
              memoryPerUnit: 2048
          strategies:
            - spotPercentage: 50
          tags:
            - key: Env
              value: production
          images:
            - imageId: ami-12345
            - imageId: ami-67890
          schedulingTasks:
            - isEnabled: true
              cronExpression: 0 1 * * *
              taskType: manualHeadroomUpdate
              taskHeadrooms:
                - numOfUnits: 5
                  cpuPerUnit: 1000
                  memoryPerUnit: 2048
    
    output "ocean_launchspec_id" {
      value = spotinst_ocean_ecs_launch_spec.example.id
    }
    

    Create OceanLaunchSpec Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new OceanLaunchSpec(name: string, args: OceanLaunchSpecArgs, opts?: CustomResourceOptions);
    @overload
    def OceanLaunchSpec(resource_name: str,
                        args: OceanLaunchSpecArgs,
                        opts: Optional[ResourceOptions] = None)
    
    @overload
    def OceanLaunchSpec(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        ocean_id: Optional[str] = None,
                        name: Optional[str] = None,
                        images: Optional[Sequence[OceanLaunchSpecImageArgs]] = None,
                        autoscale_headrooms: Optional[Sequence[OceanLaunchSpecAutoscaleHeadroomArgs]] = None,
                        image_id: Optional[str] = None,
                        preferred_spot_types: Optional[Sequence[str]] = None,
                        instance_metadata_options: Optional[OceanLaunchSpecInstanceMetadataOptionsArgs] = None,
                        instance_types: Optional[Sequence[str]] = None,
                        restrict_scale_down: Optional[bool] = None,
                        iam_instance_profile: Optional[str] = None,
                        block_device_mappings: Optional[Sequence[OceanLaunchSpecBlockDeviceMappingArgs]] = None,
                        attributes: Optional[Sequence[OceanLaunchSpecAttributeArgs]] = None,
                        scheduling_tasks: Optional[Sequence[OceanLaunchSpecSchedulingTaskArgs]] = None,
                        security_group_ids: Optional[Sequence[str]] = None,
                        strategies: Optional[Sequence[OceanLaunchSpecStrategyArgs]] = None,
                        subnet_ids: Optional[Sequence[str]] = None,
                        tags: Optional[Sequence[OceanLaunchSpecTagArgs]] = None,
                        user_data: Optional[str] = None)
    func NewOceanLaunchSpec(ctx *Context, name string, args OceanLaunchSpecArgs, opts ...ResourceOption) (*OceanLaunchSpec, error)
    public OceanLaunchSpec(string name, OceanLaunchSpecArgs args, CustomResourceOptions? opts = null)
    public OceanLaunchSpec(String name, OceanLaunchSpecArgs args)
    public OceanLaunchSpec(String name, OceanLaunchSpecArgs args, CustomResourceOptions options)
    
    type: spotinst:ecs:OceanLaunchSpec
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args OceanLaunchSpecArgs
    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 OceanLaunchSpecArgs
    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 OceanLaunchSpecArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args OceanLaunchSpecArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args OceanLaunchSpecArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var spotinstOceanLaunchSpecResource = new SpotInst.Ecs.OceanLaunchSpec("spotinstOceanLaunchSpecResource", new()
    {
        OceanId = "string",
        Name = "string",
        Images = new[]
        {
            new SpotInst.Ecs.Inputs.OceanLaunchSpecImageArgs
            {
                ImageId = "string",
            },
        },
        AutoscaleHeadrooms = new[]
        {
            new SpotInst.Ecs.Inputs.OceanLaunchSpecAutoscaleHeadroomArgs
            {
                NumOfUnits = 0,
                CpuPerUnit = 0,
                MemoryPerUnit = 0,
            },
        },
        ImageId = "string",
        PreferredSpotTypes = new[]
        {
            "string",
        },
        InstanceMetadataOptions = new SpotInst.Ecs.Inputs.OceanLaunchSpecInstanceMetadataOptionsArgs
        {
            HttpTokens = "string",
            HttpPutResponseHopLimit = 0,
        },
        InstanceTypes = new[]
        {
            "string",
        },
        RestrictScaleDown = false,
        IamInstanceProfile = "string",
        BlockDeviceMappings = new[]
        {
            new SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingArgs
            {
                DeviceName = "string",
                Ebs = new SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingEbsArgs
                {
                    DeleteOnTermination = false,
                    DynamicVolumeSize = new SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs
                    {
                        BaseSize = 0,
                        Resource = "string",
                        SizePerResourceUnit = 0,
                    },
                    Encrypted = false,
                    Iops = 0,
                    KmsKeyId = "string",
                    SnapshotId = "string",
                    Throughput = 0,
                    VolumeSize = 0,
                    VolumeType = "string",
                },
                NoDevice = "string",
                VirtualName = "string",
            },
        },
        Attributes = new[]
        {
            new SpotInst.Ecs.Inputs.OceanLaunchSpecAttributeArgs
            {
                Key = "string",
                Value = "string",
            },
        },
        SchedulingTasks = new[]
        {
            new SpotInst.Ecs.Inputs.OceanLaunchSpecSchedulingTaskArgs
            {
                CronExpression = "string",
                IsEnabled = false,
                TaskType = "string",
                TaskHeadrooms = new[]
                {
                    new SpotInst.Ecs.Inputs.OceanLaunchSpecSchedulingTaskTaskHeadroomArgs
                    {
                        NumOfUnits = 0,
                        CpuPerUnit = 0,
                        MemoryPerUnit = 0,
                    },
                },
            },
        },
        SecurityGroupIds = new[]
        {
            "string",
        },
        Strategies = new[]
        {
            new SpotInst.Ecs.Inputs.OceanLaunchSpecStrategyArgs
            {
                SpotPercentage = 0,
            },
        },
        SubnetIds = new[]
        {
            "string",
        },
        Tags = new[]
        {
            new SpotInst.Ecs.Inputs.OceanLaunchSpecTagArgs
            {
                Key = "string",
                Value = "string",
            },
        },
        UserData = "string",
    });
    
    example, err := ecs.NewOceanLaunchSpec(ctx, "spotinstOceanLaunchSpecResource", &ecs.OceanLaunchSpecArgs{
    	OceanId: pulumi.String("string"),
    	Name:    pulumi.String("string"),
    	Images: ecs.OceanLaunchSpecImageArray{
    		&ecs.OceanLaunchSpecImageArgs{
    			ImageId: pulumi.String("string"),
    		},
    	},
    	AutoscaleHeadrooms: ecs.OceanLaunchSpecAutoscaleHeadroomArray{
    		&ecs.OceanLaunchSpecAutoscaleHeadroomArgs{
    			NumOfUnits:    pulumi.Int(0),
    			CpuPerUnit:    pulumi.Int(0),
    			MemoryPerUnit: pulumi.Int(0),
    		},
    	},
    	ImageId: pulumi.String("string"),
    	PreferredSpotTypes: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	InstanceMetadataOptions: &ecs.OceanLaunchSpecInstanceMetadataOptionsArgs{
    		HttpTokens:              pulumi.String("string"),
    		HttpPutResponseHopLimit: pulumi.Int(0),
    	},
    	InstanceTypes: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	RestrictScaleDown:  pulumi.Bool(false),
    	IamInstanceProfile: pulumi.String("string"),
    	BlockDeviceMappings: ecs.OceanLaunchSpecBlockDeviceMappingArray{
    		&ecs.OceanLaunchSpecBlockDeviceMappingArgs{
    			DeviceName: pulumi.String("string"),
    			Ebs: &ecs.OceanLaunchSpecBlockDeviceMappingEbsArgs{
    				DeleteOnTermination: pulumi.Bool(false),
    				DynamicVolumeSize: &ecs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs{
    					BaseSize:            pulumi.Int(0),
    					Resource:            pulumi.String("string"),
    					SizePerResourceUnit: pulumi.Int(0),
    				},
    				Encrypted:  pulumi.Bool(false),
    				Iops:       pulumi.Int(0),
    				KmsKeyId:   pulumi.String("string"),
    				SnapshotId: pulumi.String("string"),
    				Throughput: pulumi.Int(0),
    				VolumeSize: pulumi.Int(0),
    				VolumeType: pulumi.String("string"),
    			},
    			NoDevice:    pulumi.String("string"),
    			VirtualName: pulumi.String("string"),
    		},
    	},
    	Attributes: ecs.OceanLaunchSpecAttributeArray{
    		&ecs.OceanLaunchSpecAttributeArgs{
    			Key:   pulumi.String("string"),
    			Value: pulumi.String("string"),
    		},
    	},
    	SchedulingTasks: ecs.OceanLaunchSpecSchedulingTaskArray{
    		&ecs.OceanLaunchSpecSchedulingTaskArgs{
    			CronExpression: pulumi.String("string"),
    			IsEnabled:      pulumi.Bool(false),
    			TaskType:       pulumi.String("string"),
    			TaskHeadrooms: ecs.OceanLaunchSpecSchedulingTaskTaskHeadroomArray{
    				&ecs.OceanLaunchSpecSchedulingTaskTaskHeadroomArgs{
    					NumOfUnits:    pulumi.Int(0),
    					CpuPerUnit:    pulumi.Int(0),
    					MemoryPerUnit: pulumi.Int(0),
    				},
    			},
    		},
    	},
    	SecurityGroupIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Strategies: ecs.OceanLaunchSpecStrategyArray{
    		&ecs.OceanLaunchSpecStrategyArgs{
    			SpotPercentage: pulumi.Int(0),
    		},
    	},
    	SubnetIds: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Tags: ecs.OceanLaunchSpecTagArray{
    		&ecs.OceanLaunchSpecTagArgs{
    			Key:   pulumi.String("string"),
    			Value: pulumi.String("string"),
    		},
    	},
    	UserData: pulumi.String("string"),
    })
    
    var spotinstOceanLaunchSpecResource = new OceanLaunchSpec("spotinstOceanLaunchSpecResource", OceanLaunchSpecArgs.builder()
        .oceanId("string")
        .name("string")
        .images(OceanLaunchSpecImageArgs.builder()
            .imageId("string")
            .build())
        .autoscaleHeadrooms(OceanLaunchSpecAutoscaleHeadroomArgs.builder()
            .numOfUnits(0)
            .cpuPerUnit(0)
            .memoryPerUnit(0)
            .build())
        .imageId("string")
        .preferredSpotTypes("string")
        .instanceMetadataOptions(OceanLaunchSpecInstanceMetadataOptionsArgs.builder()
            .httpTokens("string")
            .httpPutResponseHopLimit(0)
            .build())
        .instanceTypes("string")
        .restrictScaleDown(false)
        .iamInstanceProfile("string")
        .blockDeviceMappings(OceanLaunchSpecBlockDeviceMappingArgs.builder()
            .deviceName("string")
            .ebs(OceanLaunchSpecBlockDeviceMappingEbsArgs.builder()
                .deleteOnTermination(false)
                .dynamicVolumeSize(OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs.builder()
                    .baseSize(0)
                    .resource("string")
                    .sizePerResourceUnit(0)
                    .build())
                .encrypted(false)
                .iops(0)
                .kmsKeyId("string")
                .snapshotId("string")
                .throughput(0)
                .volumeSize(0)
                .volumeType("string")
                .build())
            .noDevice("string")
            .virtualName("string")
            .build())
        .attributes(OceanLaunchSpecAttributeArgs.builder()
            .key("string")
            .value("string")
            .build())
        .schedulingTasks(OceanLaunchSpecSchedulingTaskArgs.builder()
            .cronExpression("string")
            .isEnabled(false)
            .taskType("string")
            .taskHeadrooms(OceanLaunchSpecSchedulingTaskTaskHeadroomArgs.builder()
                .numOfUnits(0)
                .cpuPerUnit(0)
                .memoryPerUnit(0)
                .build())
            .build())
        .securityGroupIds("string")
        .strategies(OceanLaunchSpecStrategyArgs.builder()
            .spotPercentage(0)
            .build())
        .subnetIds("string")
        .tags(OceanLaunchSpecTagArgs.builder()
            .key("string")
            .value("string")
            .build())
        .userData("string")
        .build());
    
    spotinst_ocean_launch_spec_resource = spotinst.ecs.OceanLaunchSpec("spotinstOceanLaunchSpecResource",
        ocean_id="string",
        name="string",
        images=[spotinst.ecs.OceanLaunchSpecImageArgs(
            image_id="string",
        )],
        autoscale_headrooms=[spotinst.ecs.OceanLaunchSpecAutoscaleHeadroomArgs(
            num_of_units=0,
            cpu_per_unit=0,
            memory_per_unit=0,
        )],
        image_id="string",
        preferred_spot_types=["string"],
        instance_metadata_options=spotinst.ecs.OceanLaunchSpecInstanceMetadataOptionsArgs(
            http_tokens="string",
            http_put_response_hop_limit=0,
        ),
        instance_types=["string"],
        restrict_scale_down=False,
        iam_instance_profile="string",
        block_device_mappings=[spotinst.ecs.OceanLaunchSpecBlockDeviceMappingArgs(
            device_name="string",
            ebs=spotinst.ecs.OceanLaunchSpecBlockDeviceMappingEbsArgs(
                delete_on_termination=False,
                dynamic_volume_size=spotinst.ecs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs(
                    base_size=0,
                    resource="string",
                    size_per_resource_unit=0,
                ),
                encrypted=False,
                iops=0,
                kms_key_id="string",
                snapshot_id="string",
                throughput=0,
                volume_size=0,
                volume_type="string",
            ),
            no_device="string",
            virtual_name="string",
        )],
        attributes=[spotinst.ecs.OceanLaunchSpecAttributeArgs(
            key="string",
            value="string",
        )],
        scheduling_tasks=[spotinst.ecs.OceanLaunchSpecSchedulingTaskArgs(
            cron_expression="string",
            is_enabled=False,
            task_type="string",
            task_headrooms=[spotinst.ecs.OceanLaunchSpecSchedulingTaskTaskHeadroomArgs(
                num_of_units=0,
                cpu_per_unit=0,
                memory_per_unit=0,
            )],
        )],
        security_group_ids=["string"],
        strategies=[spotinst.ecs.OceanLaunchSpecStrategyArgs(
            spot_percentage=0,
        )],
        subnet_ids=["string"],
        tags=[spotinst.ecs.OceanLaunchSpecTagArgs(
            key="string",
            value="string",
        )],
        user_data="string")
    
    const spotinstOceanLaunchSpecResource = new spotinst.ecs.OceanLaunchSpec("spotinstOceanLaunchSpecResource", {
        oceanId: "string",
        name: "string",
        images: [{
            imageId: "string",
        }],
        autoscaleHeadrooms: [{
            numOfUnits: 0,
            cpuPerUnit: 0,
            memoryPerUnit: 0,
        }],
        imageId: "string",
        preferredSpotTypes: ["string"],
        instanceMetadataOptions: {
            httpTokens: "string",
            httpPutResponseHopLimit: 0,
        },
        instanceTypes: ["string"],
        restrictScaleDown: false,
        iamInstanceProfile: "string",
        blockDeviceMappings: [{
            deviceName: "string",
            ebs: {
                deleteOnTermination: false,
                dynamicVolumeSize: {
                    baseSize: 0,
                    resource: "string",
                    sizePerResourceUnit: 0,
                },
                encrypted: false,
                iops: 0,
                kmsKeyId: "string",
                snapshotId: "string",
                throughput: 0,
                volumeSize: 0,
                volumeType: "string",
            },
            noDevice: "string",
            virtualName: "string",
        }],
        attributes: [{
            key: "string",
            value: "string",
        }],
        schedulingTasks: [{
            cronExpression: "string",
            isEnabled: false,
            taskType: "string",
            taskHeadrooms: [{
                numOfUnits: 0,
                cpuPerUnit: 0,
                memoryPerUnit: 0,
            }],
        }],
        securityGroupIds: ["string"],
        strategies: [{
            spotPercentage: 0,
        }],
        subnetIds: ["string"],
        tags: [{
            key: "string",
            value: "string",
        }],
        userData: "string",
    });
    
    type: spotinst:ecs:OceanLaunchSpec
    properties:
        attributes:
            - key: string
              value: string
        autoscaleHeadrooms:
            - cpuPerUnit: 0
              memoryPerUnit: 0
              numOfUnits: 0
        blockDeviceMappings:
            - deviceName: string
              ebs:
                deleteOnTermination: false
                dynamicVolumeSize:
                    baseSize: 0
                    resource: string
                    sizePerResourceUnit: 0
                encrypted: false
                iops: 0
                kmsKeyId: string
                snapshotId: string
                throughput: 0
                volumeSize: 0
                volumeType: string
              noDevice: string
              virtualName: string
        iamInstanceProfile: string
        imageId: string
        images:
            - imageId: string
        instanceMetadataOptions:
            httpPutResponseHopLimit: 0
            httpTokens: string
        instanceTypes:
            - string
        name: string
        oceanId: string
        preferredSpotTypes:
            - string
        restrictScaleDown: false
        schedulingTasks:
            - cronExpression: string
              isEnabled: false
              taskHeadrooms:
                - cpuPerUnit: 0
                  memoryPerUnit: 0
                  numOfUnits: 0
              taskType: string
        securityGroupIds:
            - string
        strategies:
            - spotPercentage: 0
        subnetIds:
            - string
        tags:
            - key: string
              value: string
        userData: string
    

    OceanLaunchSpec Resource Properties

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

    Inputs

    The OceanLaunchSpec resource accepts the following input properties:

    OceanId string
    The Ocean cluster ID .
    Attributes List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecAttribute>
    Optionally adds labels to instances launched in an Ocean cluster.
    AutoscaleHeadrooms List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecAutoscaleHeadroom>
    Set custom headroom per launch spec. provide list of headrooms object.
    BlockDeviceMappings List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMapping>
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    ID of the image used to launch the instances.
    Images List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecImage>
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    InstanceMetadataOptions Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecInstanceMetadataOptions
    Ocean instance metadata options object for IMDSv2.
    InstanceTypes List<string>
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    Name string
    The Ocean Launch Specification name.
    PreferredSpotTypes List<string>
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    RestrictScaleDown bool
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    SchedulingTasks List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecSchedulingTask>
    Used to define scheduled tasks such as a manual headroom update.
    SecurityGroupIds List<string>
    One or more security group ids.
    Strategies List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecStrategy>
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    SubnetIds List<string>
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    Tags List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecTag>
    A key/value mapping of tags to assign to the resource.
    UserData string
    Base64-encoded MIME user data to make available to the instances.
    OceanId string
    The Ocean cluster ID .
    Attributes []OceanLaunchSpecAttributeArgs
    Optionally adds labels to instances launched in an Ocean cluster.
    AutoscaleHeadrooms []OceanLaunchSpecAutoscaleHeadroomArgs
    Set custom headroom per launch spec. provide list of headrooms object.
    BlockDeviceMappings []OceanLaunchSpecBlockDeviceMappingArgs
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    ID of the image used to launch the instances.
    Images []OceanLaunchSpecImageArgs
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    InstanceMetadataOptions OceanLaunchSpecInstanceMetadataOptionsArgs
    Ocean instance metadata options object for IMDSv2.
    InstanceTypes []string
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    Name string
    The Ocean Launch Specification name.
    PreferredSpotTypes []string
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    RestrictScaleDown bool
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    SchedulingTasks []OceanLaunchSpecSchedulingTaskArgs
    Used to define scheduled tasks such as a manual headroom update.
    SecurityGroupIds []string
    One or more security group ids.
    Strategies []OceanLaunchSpecStrategyArgs
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    SubnetIds []string
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    Tags []OceanLaunchSpecTagArgs
    A key/value mapping of tags to assign to the resource.
    UserData string
    Base64-encoded MIME user data to make available to the instances.
    oceanId String
    The Ocean cluster ID .
    attributes List<OceanLaunchSpecAttribute>
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscaleHeadrooms List<OceanLaunchSpecAutoscaleHeadroom>
    Set custom headroom per launch spec. provide list of headrooms object.
    blockDeviceMappings List<OceanLaunchSpecBlockDeviceMapping>
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    ID of the image used to launch the instances.
    images List<OceanLaunchSpecImage>
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instanceMetadataOptions OceanLaunchSpecInstanceMetadataOptions
    Ocean instance metadata options object for IMDSv2.
    instanceTypes List<String>
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name String
    The Ocean Launch Specification name.
    preferredSpotTypes List<String>
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrictScaleDown Boolean
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    schedulingTasks List<OceanLaunchSpecSchedulingTask>
    Used to define scheduled tasks such as a manual headroom update.
    securityGroupIds List<String>
    One or more security group ids.
    strategies List<OceanLaunchSpecStrategy>
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnetIds List<String>
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags List<OceanLaunchSpecTag>
    A key/value mapping of tags to assign to the resource.
    userData String
    Base64-encoded MIME user data to make available to the instances.
    oceanId string
    The Ocean cluster ID .
    attributes OceanLaunchSpecAttribute[]
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscaleHeadrooms OceanLaunchSpecAutoscaleHeadroom[]
    Set custom headroom per launch spec. provide list of headrooms object.
    blockDeviceMappings OceanLaunchSpecBlockDeviceMapping[]
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId string
    ID of the image used to launch the instances.
    images OceanLaunchSpecImage[]
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instanceMetadataOptions OceanLaunchSpecInstanceMetadataOptions
    Ocean instance metadata options object for IMDSv2.
    instanceTypes string[]
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name string
    The Ocean Launch Specification name.
    preferredSpotTypes string[]
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrictScaleDown boolean
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    schedulingTasks OceanLaunchSpecSchedulingTask[]
    Used to define scheduled tasks such as a manual headroom update.
    securityGroupIds string[]
    One or more security group ids.
    strategies OceanLaunchSpecStrategy[]
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnetIds string[]
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags OceanLaunchSpecTag[]
    A key/value mapping of tags to assign to the resource.
    userData string
    Base64-encoded MIME user data to make available to the instances.
    ocean_id str
    The Ocean cluster ID .
    attributes Sequence[OceanLaunchSpecAttributeArgs]
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscale_headrooms Sequence[OceanLaunchSpecAutoscaleHeadroomArgs]
    Set custom headroom per launch spec. provide list of headrooms object.
    block_device_mappings Sequence[OceanLaunchSpecBlockDeviceMappingArgs]
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iam_instance_profile str
    The ARN or name of an IAM instance profile to associate with launched instances.
    image_id str
    ID of the image used to launch the instances.
    images Sequence[OceanLaunchSpecImageArgs]
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instance_metadata_options OceanLaunchSpecInstanceMetadataOptionsArgs
    Ocean instance metadata options object for IMDSv2.
    instance_types Sequence[str]
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name str
    The Ocean Launch Specification name.
    preferred_spot_types Sequence[str]
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrict_scale_down bool
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    scheduling_tasks Sequence[OceanLaunchSpecSchedulingTaskArgs]
    Used to define scheduled tasks such as a manual headroom update.
    security_group_ids Sequence[str]
    One or more security group ids.
    strategies Sequence[OceanLaunchSpecStrategyArgs]
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnet_ids Sequence[str]
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags Sequence[OceanLaunchSpecTagArgs]
    A key/value mapping of tags to assign to the resource.
    user_data str
    Base64-encoded MIME user data to make available to the instances.
    oceanId String
    The Ocean cluster ID .
    attributes List<Property Map>
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscaleHeadrooms List<Property Map>
    Set custom headroom per launch spec. provide list of headrooms object.
    blockDeviceMappings List<Property Map>
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    ID of the image used to launch the instances.
    images List<Property Map>
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instanceMetadataOptions Property Map
    Ocean instance metadata options object for IMDSv2.
    instanceTypes List<String>
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name String
    The Ocean Launch Specification name.
    preferredSpotTypes List<String>
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrictScaleDown Boolean
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    schedulingTasks List<Property Map>
    Used to define scheduled tasks such as a manual headroom update.
    securityGroupIds List<String>
    One or more security group ids.
    strategies List<Property Map>
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnetIds List<String>
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags List<Property Map>
    A key/value mapping of tags to assign to the resource.
    userData String
    Base64-encoded MIME user data to make available to the instances.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    Id string
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.
    id string
    The provider-assigned unique ID for this managed resource.
    id str
    The provider-assigned unique ID for this managed resource.
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing OceanLaunchSpec Resource

    Get an existing OceanLaunchSpec 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?: OceanLaunchSpecState, opts?: CustomResourceOptions): OceanLaunchSpec
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            attributes: Optional[Sequence[OceanLaunchSpecAttributeArgs]] = None,
            autoscale_headrooms: Optional[Sequence[OceanLaunchSpecAutoscaleHeadroomArgs]] = None,
            block_device_mappings: Optional[Sequence[OceanLaunchSpecBlockDeviceMappingArgs]] = None,
            iam_instance_profile: Optional[str] = None,
            image_id: Optional[str] = None,
            images: Optional[Sequence[OceanLaunchSpecImageArgs]] = None,
            instance_metadata_options: Optional[OceanLaunchSpecInstanceMetadataOptionsArgs] = None,
            instance_types: Optional[Sequence[str]] = None,
            name: Optional[str] = None,
            ocean_id: Optional[str] = None,
            preferred_spot_types: Optional[Sequence[str]] = None,
            restrict_scale_down: Optional[bool] = None,
            scheduling_tasks: Optional[Sequence[OceanLaunchSpecSchedulingTaskArgs]] = None,
            security_group_ids: Optional[Sequence[str]] = None,
            strategies: Optional[Sequence[OceanLaunchSpecStrategyArgs]] = None,
            subnet_ids: Optional[Sequence[str]] = None,
            tags: Optional[Sequence[OceanLaunchSpecTagArgs]] = None,
            user_data: Optional[str] = None) -> OceanLaunchSpec
    func GetOceanLaunchSpec(ctx *Context, name string, id IDInput, state *OceanLaunchSpecState, opts ...ResourceOption) (*OceanLaunchSpec, error)
    public static OceanLaunchSpec Get(string name, Input<string> id, OceanLaunchSpecState? state, CustomResourceOptions? opts = null)
    public static OceanLaunchSpec get(String name, Output<String> id, OceanLaunchSpecState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    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.
    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:
    Attributes List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecAttribute>
    Optionally adds labels to instances launched in an Ocean cluster.
    AutoscaleHeadrooms List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecAutoscaleHeadroom>
    Set custom headroom per launch spec. provide list of headrooms object.
    BlockDeviceMappings List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMapping>
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    ID of the image used to launch the instances.
    Images List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecImage>
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    InstanceMetadataOptions Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecInstanceMetadataOptions
    Ocean instance metadata options object for IMDSv2.
    InstanceTypes List<string>
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    Name string
    The Ocean Launch Specification name.
    OceanId string
    The Ocean cluster ID .
    PreferredSpotTypes List<string>
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    RestrictScaleDown bool
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    SchedulingTasks List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecSchedulingTask>
    Used to define scheduled tasks such as a manual headroom update.
    SecurityGroupIds List<string>
    One or more security group ids.
    Strategies List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecStrategy>
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    SubnetIds List<string>
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    Tags List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecTag>
    A key/value mapping of tags to assign to the resource.
    UserData string
    Base64-encoded MIME user data to make available to the instances.
    Attributes []OceanLaunchSpecAttributeArgs
    Optionally adds labels to instances launched in an Ocean cluster.
    AutoscaleHeadrooms []OceanLaunchSpecAutoscaleHeadroomArgs
    Set custom headroom per launch spec. provide list of headrooms object.
    BlockDeviceMappings []OceanLaunchSpecBlockDeviceMappingArgs
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    IamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    ImageId string
    ID of the image used to launch the instances.
    Images []OceanLaunchSpecImageArgs
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    InstanceMetadataOptions OceanLaunchSpecInstanceMetadataOptionsArgs
    Ocean instance metadata options object for IMDSv2.
    InstanceTypes []string
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    Name string
    The Ocean Launch Specification name.
    OceanId string
    The Ocean cluster ID .
    PreferredSpotTypes []string
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    RestrictScaleDown bool
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    SchedulingTasks []OceanLaunchSpecSchedulingTaskArgs
    Used to define scheduled tasks such as a manual headroom update.
    SecurityGroupIds []string
    One or more security group ids.
    Strategies []OceanLaunchSpecStrategyArgs
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    SubnetIds []string
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    Tags []OceanLaunchSpecTagArgs
    A key/value mapping of tags to assign to the resource.
    UserData string
    Base64-encoded MIME user data to make available to the instances.
    attributes List<OceanLaunchSpecAttribute>
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscaleHeadrooms List<OceanLaunchSpecAutoscaleHeadroom>
    Set custom headroom per launch spec. provide list of headrooms object.
    blockDeviceMappings List<OceanLaunchSpecBlockDeviceMapping>
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    ID of the image used to launch the instances.
    images List<OceanLaunchSpecImage>
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instanceMetadataOptions OceanLaunchSpecInstanceMetadataOptions
    Ocean instance metadata options object for IMDSv2.
    instanceTypes List<String>
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name String
    The Ocean Launch Specification name.
    oceanId String
    The Ocean cluster ID .
    preferredSpotTypes List<String>
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrictScaleDown Boolean
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    schedulingTasks List<OceanLaunchSpecSchedulingTask>
    Used to define scheduled tasks such as a manual headroom update.
    securityGroupIds List<String>
    One or more security group ids.
    strategies List<OceanLaunchSpecStrategy>
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnetIds List<String>
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags List<OceanLaunchSpecTag>
    A key/value mapping of tags to assign to the resource.
    userData String
    Base64-encoded MIME user data to make available to the instances.
    attributes OceanLaunchSpecAttribute[]
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscaleHeadrooms OceanLaunchSpecAutoscaleHeadroom[]
    Set custom headroom per launch spec. provide list of headrooms object.
    blockDeviceMappings OceanLaunchSpecBlockDeviceMapping[]
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iamInstanceProfile string
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId string
    ID of the image used to launch the instances.
    images OceanLaunchSpecImage[]
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instanceMetadataOptions OceanLaunchSpecInstanceMetadataOptions
    Ocean instance metadata options object for IMDSv2.
    instanceTypes string[]
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name string
    The Ocean Launch Specification name.
    oceanId string
    The Ocean cluster ID .
    preferredSpotTypes string[]
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrictScaleDown boolean
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    schedulingTasks OceanLaunchSpecSchedulingTask[]
    Used to define scheduled tasks such as a manual headroom update.
    securityGroupIds string[]
    One or more security group ids.
    strategies OceanLaunchSpecStrategy[]
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnetIds string[]
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags OceanLaunchSpecTag[]
    A key/value mapping of tags to assign to the resource.
    userData string
    Base64-encoded MIME user data to make available to the instances.
    attributes Sequence[OceanLaunchSpecAttributeArgs]
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscale_headrooms Sequence[OceanLaunchSpecAutoscaleHeadroomArgs]
    Set custom headroom per launch spec. provide list of headrooms object.
    block_device_mappings Sequence[OceanLaunchSpecBlockDeviceMappingArgs]
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iam_instance_profile str
    The ARN or name of an IAM instance profile to associate with launched instances.
    image_id str
    ID of the image used to launch the instances.
    images Sequence[OceanLaunchSpecImageArgs]
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instance_metadata_options OceanLaunchSpecInstanceMetadataOptionsArgs
    Ocean instance metadata options object for IMDSv2.
    instance_types Sequence[str]
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name str
    The Ocean Launch Specification name.
    ocean_id str
    The Ocean cluster ID .
    preferred_spot_types Sequence[str]
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrict_scale_down bool
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    scheduling_tasks Sequence[OceanLaunchSpecSchedulingTaskArgs]
    Used to define scheduled tasks such as a manual headroom update.
    security_group_ids Sequence[str]
    One or more security group ids.
    strategies Sequence[OceanLaunchSpecStrategyArgs]
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnet_ids Sequence[str]
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags Sequence[OceanLaunchSpecTagArgs]
    A key/value mapping of tags to assign to the resource.
    user_data str
    Base64-encoded MIME user data to make available to the instances.
    attributes List<Property Map>
    Optionally adds labels to instances launched in an Ocean cluster.
    autoscaleHeadrooms List<Property Map>
    Set custom headroom per launch spec. provide list of headrooms object.
    blockDeviceMappings List<Property Map>
    Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
    iamInstanceProfile String
    The ARN or name of an IAM instance profile to associate with launched instances.
    imageId String
    ID of the image used to launch the instances.
    images List<Property Map>
    You can configure VNG with either the imageId or images objects, but not both simultaneously. For each architecture type (amd64, arm64) only one AMI is allowed. Valid values: null, or an array with at least one element
    instanceMetadataOptions Property Map
    Ocean instance metadata options object for IMDSv2.
    instanceTypes List<String>
    A list of instance types allowed to be provisioned for pods pending under the specified launch specification. The list overrides the list defined for the Ocean cluster.
    name String
    The Ocean Launch Specification name.
    oceanId String
    The Ocean cluster ID .
    preferredSpotTypes List<String>
    When Ocean scales up instances, it takes your preferred types into consideration while maintaining a variety of machine types running for optimized distribution.
    restrictScaleDown Boolean
    Boolean. When set to true, VNG nodes will be treated as if all pods running have the restrict-scale-down label. Therefore, Ocean will not scale nodes down unless empty.
    schedulingTasks List<Property Map>
    Used to define scheduled tasks such as a manual headroom update.
    securityGroupIds List<String>
    One or more security group ids.
    strategies List<Property Map>
    Similar to a strategy for an Ocean cluster, but applying only to a virtual node group.
    subnetIds List<String>
    Set subnets in launchSpec. Each element in the array should be a subnet ID.
    tags List<Property Map>
    A key/value mapping of tags to assign to the resource.
    userData String
    Base64-encoded MIME user data to make available to the instances.

    Supporting Types

    OceanLaunchSpecAttribute, OceanLaunchSpecAttributeArgs

    Key string
    The label key.
    Value string
    The label value.
    Key string
    The label key.
    Value string
    The label value.
    key String
    The label key.
    value String
    The label value.
    key string
    The label key.
    value string
    The label value.
    key str
    The label key.
    value str
    The label value.
    key String
    The label key.
    value String
    The label value.

    OceanLaunchSpecAutoscaleHeadroom, OceanLaunchSpecAutoscaleHeadroomArgs

    NumOfUnits int
    The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.
    CpuPerUnit int
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in CPU units, where 1024 units = 1 vCPU.
    MemoryPerUnit int
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    NumOfUnits int
    The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.
    CpuPerUnit int
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in CPU units, where 1024 units = 1 vCPU.
    MemoryPerUnit int
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    numOfUnits Integer
    The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.
    cpuPerUnit Integer
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in CPU units, where 1024 units = 1 vCPU.
    memoryPerUnit Integer
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    numOfUnits number
    The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.
    cpuPerUnit number
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in CPU units, where 1024 units = 1 vCPU.
    memoryPerUnit number
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    num_of_units int
    The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.
    cpu_per_unit int
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in CPU units, where 1024 units = 1 vCPU.
    memory_per_unit int
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    numOfUnits Number
    The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.
    cpuPerUnit Number
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in CPU units, where 1024 units = 1 vCPU.
    memoryPerUnit Number
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.

    OceanLaunchSpecBlockDeviceMapping, OceanLaunchSpecBlockDeviceMappingArgs

    DeviceName string
    String. Set device name. (Example: "/dev/xvda1").
    Ebs Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingEbs
    Object. Set Elastic Block Store properties .
    NoDevice string
    String. suppresses the specified device included in the block device mapping of the AMI.
    VirtualName string
    DeviceName string
    String. Set device name. (Example: "/dev/xvda1").
    Ebs OceanLaunchSpecBlockDeviceMappingEbs
    Object. Set Elastic Block Store properties .
    NoDevice string
    String. suppresses the specified device included in the block device mapping of the AMI.
    VirtualName string
    deviceName String
    String. Set device name. (Example: "/dev/xvda1").
    ebs OceanLaunchSpecBlockDeviceMappingEbs
    Object. Set Elastic Block Store properties .
    noDevice String
    String. suppresses the specified device included in the block device mapping of the AMI.
    virtualName String
    deviceName string
    String. Set device name. (Example: "/dev/xvda1").
    ebs OceanLaunchSpecBlockDeviceMappingEbs
    Object. Set Elastic Block Store properties .
    noDevice string
    String. suppresses the specified device included in the block device mapping of the AMI.
    virtualName string
    device_name str
    String. Set device name. (Example: "/dev/xvda1").
    ebs OceanLaunchSpecBlockDeviceMappingEbs
    Object. Set Elastic Block Store properties .
    no_device str
    String. suppresses the specified device included in the block device mapping of the AMI.
    virtual_name str
    deviceName String
    String. Set device name. (Example: "/dev/xvda1").
    ebs Property Map
    Object. Set Elastic Block Store properties .
    noDevice String
    String. suppresses the specified device included in the block device mapping of the AMI.
    virtualName String

    OceanLaunchSpecBlockDeviceMappingEbs, OceanLaunchSpecBlockDeviceMappingEbsArgs

    DeleteOnTermination bool
    Boolean. Flag to delete the EBS on instance termination.
    DynamicVolumeSize Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize
    Object. Set dynamic volume size properties. When using this object, you cannot use volumeSize. You must use one or the other.
    Encrypted bool
    Boolean. Enables EBS encryption on the volume.
    Iops int
    Int. The number of I/O operations per second (IOPS) that the volume supports.
    KmsKeyId string
    String. Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.
    SnapshotId string
    (Optional) String. The Snapshot ID to mount by.
    Throughput int
    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.
    VolumeSize int
    Int. The size, in GB of the volume.
    VolumeType string
    String. The type of the volume (example: "gp2").
    DeleteOnTermination bool
    Boolean. Flag to delete the EBS on instance termination.
    DynamicVolumeSize OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize
    Object. Set dynamic volume size properties. When using this object, you cannot use volumeSize. You must use one or the other.
    Encrypted bool
    Boolean. Enables EBS encryption on the volume.
    Iops int
    Int. The number of I/O operations per second (IOPS) that the volume supports.
    KmsKeyId string
    String. Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.
    SnapshotId string
    (Optional) String. The Snapshot ID to mount by.
    Throughput int
    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.
    VolumeSize int
    Int. The size, in GB of the volume.
    VolumeType string
    String. The type of the volume (example: "gp2").
    deleteOnTermination Boolean
    Boolean. Flag to delete the EBS on instance termination.
    dynamicVolumeSize OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize
    Object. Set dynamic volume size properties. When using this object, you cannot use volumeSize. You must use one or the other.
    encrypted Boolean
    Boolean. Enables EBS encryption on the volume.
    iops Integer
    Int. The number of I/O operations per second (IOPS) that the volume supports.
    kmsKeyId String
    String. Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.
    snapshotId String
    (Optional) String. The Snapshot ID to mount by.
    throughput Integer
    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.
    volumeSize Integer
    Int. The size, in GB of the volume.
    volumeType String
    String. The type of the volume (example: "gp2").
    deleteOnTermination boolean
    Boolean. Flag to delete the EBS on instance termination.
    dynamicVolumeSize OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize
    Object. Set dynamic volume size properties. When using this object, you cannot use volumeSize. You must use one or the other.
    encrypted boolean
    Boolean. Enables EBS encryption on the volume.
    iops number
    Int. The number of I/O operations per second (IOPS) that the volume supports.
    kmsKeyId string
    String. Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.
    snapshotId string
    (Optional) String. The Snapshot ID to mount by.
    throughput number
    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.
    volumeSize number
    Int. The size, in GB of the volume.
    volumeType string
    String. The type of the volume (example: "gp2").
    delete_on_termination bool
    Boolean. Flag to delete the EBS on instance termination.
    dynamic_volume_size OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize
    Object. Set dynamic volume size properties. When using this object, you cannot use volumeSize. You must use one or the other.
    encrypted bool
    Boolean. Enables EBS encryption on the volume.
    iops int
    Int. The number of I/O operations per second (IOPS) that the volume supports.
    kms_key_id str
    String. Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.
    snapshot_id str
    (Optional) String. The Snapshot ID to mount by.
    throughput int
    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.
    volume_size int
    Int. The size, in GB of the volume.
    volume_type str
    String. The type of the volume (example: "gp2").
    deleteOnTermination Boolean
    Boolean. Flag to delete the EBS on instance termination.
    dynamicVolumeSize Property Map
    Object. Set dynamic volume size properties. When using this object, you cannot use volumeSize. You must use one or the other.
    encrypted Boolean
    Boolean. Enables EBS encryption on the volume.
    iops Number
    Int. The number of I/O operations per second (IOPS) that the volume supports.
    kmsKeyId String
    String. Identifier (key ID, key alias, ID ARN, or alias ARN) for a customer managed CMK under which the EBS volume is encrypted.
    snapshotId String
    (Optional) String. The Snapshot ID to mount by.
    throughput Number
    The amount of data transferred to or from a storage device per second, you can use this param just in a case that volume_type = gp3.
    volumeSize Number
    Int. The size, in GB of the volume.
    volumeType String
    String. The type of the volume (example: "gp2").

    OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize, OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs

    BaseSize int
    Int. Initial size for volume. (Example: 50)
    Resource string
    String. Resource type to increase volume size dynamically by. (valid values: "CPU")
    SizePerResourceUnit int
    Int. Additional size (in GB) per resource unit. (Example: baseSize= 50, sizePerResourceUnit=20, and instance with 2 CPU is launched - its total disk size will be: 90GB)
    BaseSize int
    Int. Initial size for volume. (Example: 50)
    Resource string
    String. Resource type to increase volume size dynamically by. (valid values: "CPU")
    SizePerResourceUnit int
    Int. Additional size (in GB) per resource unit. (Example: baseSize= 50, sizePerResourceUnit=20, and instance with 2 CPU is launched - its total disk size will be: 90GB)
    baseSize Integer
    Int. Initial size for volume. (Example: 50)
    resource String
    String. Resource type to increase volume size dynamically by. (valid values: "CPU")
    sizePerResourceUnit Integer
    Int. Additional size (in GB) per resource unit. (Example: baseSize= 50, sizePerResourceUnit=20, and instance with 2 CPU is launched - its total disk size will be: 90GB)
    baseSize number
    Int. Initial size for volume. (Example: 50)
    resource string
    String. Resource type to increase volume size dynamically by. (valid values: "CPU")
    sizePerResourceUnit number
    Int. Additional size (in GB) per resource unit. (Example: baseSize= 50, sizePerResourceUnit=20, and instance with 2 CPU is launched - its total disk size will be: 90GB)
    base_size int
    Int. Initial size for volume. (Example: 50)
    resource str
    String. Resource type to increase volume size dynamically by. (valid values: "CPU")
    size_per_resource_unit int
    Int. Additional size (in GB) per resource unit. (Example: baseSize= 50, sizePerResourceUnit=20, and instance with 2 CPU is launched - its total disk size will be: 90GB)
    baseSize Number
    Int. Initial size for volume. (Example: 50)
    resource String
    String. Resource type to increase volume size dynamically by. (valid values: "CPU")
    sizePerResourceUnit Number
    Int. Additional size (in GB) per resource unit. (Example: baseSize= 50, sizePerResourceUnit=20, and instance with 2 CPU is launched - its total disk size will be: 90GB)

    OceanLaunchSpecImage, OceanLaunchSpecImageArgs

    ImageId string
    Identifier of the image in AWS. Valid values: any string which is not empty or null.
    ImageId string
    Identifier of the image in AWS. Valid values: any string which is not empty or null.
    imageId String
    Identifier of the image in AWS. Valid values: any string which is not empty or null.
    imageId string
    Identifier of the image in AWS. Valid values: any string which is not empty or null.
    image_id str
    Identifier of the image in AWS. Valid values: any string which is not empty or null.
    imageId String
    Identifier of the image in AWS. Valid values: any string which is not empty or null.

    OceanLaunchSpecInstanceMetadataOptions, OceanLaunchSpecInstanceMetadataOptionsArgs

    HttpTokens string
    Determines if a signed token is required or not. Valid values: optional or required.
    HttpPutResponseHopLimit int
    An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel.
    HttpTokens string
    Determines if a signed token is required or not. Valid values: optional or required.
    HttpPutResponseHopLimit int
    An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel.
    httpTokens String
    Determines if a signed token is required or not. Valid values: optional or required.
    httpPutResponseHopLimit Integer
    An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel.
    httpTokens string
    Determines if a signed token is required or not. Valid values: optional or required.
    httpPutResponseHopLimit number
    An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel.
    http_tokens str
    Determines if a signed token is required or not. Valid values: optional or required.
    http_put_response_hop_limit int
    An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel.
    httpTokens String
    Determines if a signed token is required or not. Valid values: optional or required.
    httpPutResponseHopLimit Number
    An integer from 1 through 64. The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further the instance metadata requests can travel.

    OceanLaunchSpecSchedulingTask, OceanLaunchSpecSchedulingTaskArgs

    CronExpression string
    A valid cron expression. For example : " * * * * * ". The cron job runs in UTC time and is in Unix cron format.
    IsEnabled bool
    Describes whether the task is enabled. When true, the task runs. When false, it does not run.
    TaskType string
    The activity that you are scheduling. Valid values: "manualHeadroomUpdate".
    TaskHeadrooms List<Pulumi.SpotInst.Ecs.Inputs.OceanLaunchSpecSchedulingTaskTaskHeadroom>
    The config of this scheduled task. Depends on the value of taskType.
    CronExpression string
    A valid cron expression. For example : " * * * * * ". The cron job runs in UTC time and is in Unix cron format.
    IsEnabled bool
    Describes whether the task is enabled. When true, the task runs. When false, it does not run.
    TaskType string
    The activity that you are scheduling. Valid values: "manualHeadroomUpdate".
    TaskHeadrooms []OceanLaunchSpecSchedulingTaskTaskHeadroom
    The config of this scheduled task. Depends on the value of taskType.
    cronExpression String
    A valid cron expression. For example : " * * * * * ". The cron job runs in UTC time and is in Unix cron format.
    isEnabled Boolean
    Describes whether the task is enabled. When true, the task runs. When false, it does not run.
    taskType String
    The activity that you are scheduling. Valid values: "manualHeadroomUpdate".
    taskHeadrooms List<OceanLaunchSpecSchedulingTaskTaskHeadroom>
    The config of this scheduled task. Depends on the value of taskType.
    cronExpression string
    A valid cron expression. For example : " * * * * * ". The cron job runs in UTC time and is in Unix cron format.
    isEnabled boolean
    Describes whether the task is enabled. When true, the task runs. When false, it does not run.
    taskType string
    The activity that you are scheduling. Valid values: "manualHeadroomUpdate".
    taskHeadrooms OceanLaunchSpecSchedulingTaskTaskHeadroom[]
    The config of this scheduled task. Depends on the value of taskType.
    cron_expression str
    A valid cron expression. For example : " * * * * * ". The cron job runs in UTC time and is in Unix cron format.
    is_enabled bool
    Describes whether the task is enabled. When true, the task runs. When false, it does not run.
    task_type str
    The activity that you are scheduling. Valid values: "manualHeadroomUpdate".
    task_headrooms Sequence[OceanLaunchSpecSchedulingTaskTaskHeadroom]
    The config of this scheduled task. Depends on the value of taskType.
    cronExpression String
    A valid cron expression. For example : " * * * * * ". The cron job runs in UTC time and is in Unix cron format.
    isEnabled Boolean
    Describes whether the task is enabled. When true, the task runs. When false, it does not run.
    taskType String
    The activity that you are scheduling. Valid values: "manualHeadroomUpdate".
    taskHeadrooms List<Property Map>
    The config of this scheduled task. Depends on the value of taskType.

    OceanLaunchSpecSchedulingTaskTaskHeadroom, OceanLaunchSpecSchedulingTaskTaskHeadroomArgs

    NumOfUnits int
    The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU.
    CpuPerUnit int
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.
    MemoryPerUnit int
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    NumOfUnits int
    The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU.
    CpuPerUnit int
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.
    MemoryPerUnit int
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    numOfUnits Integer
    The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU.
    cpuPerUnit Integer
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.
    memoryPerUnit Integer
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    numOfUnits number
    The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU.
    cpuPerUnit number
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.
    memoryPerUnit number
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    num_of_units int
    The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU.
    cpu_per_unit int
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.
    memory_per_unit int
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.
    numOfUnits Number
    The number of units to retain as headroom, where each unit has the defined headroom CPU, memory and GPU.
    cpuPerUnit Number
    Optionally configure the number of CPUs to allocate for each headroom unit. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.
    memoryPerUnit Number
    Optionally configure the amount of memory (MiB) to allocate for each headroom unit.

    OceanLaunchSpecStrategy, OceanLaunchSpecStrategyArgs

    SpotPercentage int
    When set, Ocean will proactively try to maintain as close as possible to the percentage of Spot instances out of all the Virtual Node Group instances.
    SpotPercentage int
    When set, Ocean will proactively try to maintain as close as possible to the percentage of Spot instances out of all the Virtual Node Group instances.
    spotPercentage Integer
    When set, Ocean will proactively try to maintain as close as possible to the percentage of Spot instances out of all the Virtual Node Group instances.
    spotPercentage number
    When set, Ocean will proactively try to maintain as close as possible to the percentage of Spot instances out of all the Virtual Node Group instances.
    spot_percentage int
    When set, Ocean will proactively try to maintain as close as possible to the percentage of Spot instances out of all the Virtual Node Group instances.
    spotPercentage Number
    When set, Ocean will proactively try to maintain as close as possible to the percentage of Spot instances out of all the Virtual Node Group instances.

    OceanLaunchSpecTag, OceanLaunchSpecTagArgs

    Key string
    The label key.
    Value string
    The label value.
    Key string
    The label key.
    Value string
    The label value.
    key String
    The label key.
    value String
    The label value.
    key string
    The label key.
    value string
    The label value.
    key str
    The label key.
    value str
    The label value.
    key String
    The label key.
    value String
    The label value.

    Package Details

    Repository
    Spotinst pulumi/pulumi-spotinst
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the spotinst Terraform Provider.
    spotinst logo
    Spotinst v3.94.0 published on Friday, Sep 20, 2024 by Pulumi