1. Packages
  2. Spotinst
  3. API Docs
  4. ecs
  5. OceanLaunchSpec
Spotinst v3.53.0 published on Friday, Sep 22, 2023 by Pulumi

spotinst.ecs.OceanLaunchSpec

Explore with Pulumi AI

spotinst logo
Spotinst v3.53.0 published on Friday, Sep 22, 2023 by Pulumi

    Manages a custom Spotinst Ocean ECS Launch Spec resource.

    Block Devices

    • block_device_mappings- (Optional) Object. Array list of block devices that are exposed to the instance, specify either virtual devices and EBS volumes.
      • device_name - (Optional) String. Set device name. (Example: “/dev/xvda1”).
      • ebs- (Optional) Object. Set Elastic Block Store properties .
        • delete_on_termination- (Optional) Boolean. Flag to delete the EBS on instance termination.
        • encrypted- (Optional) Boolean. Enables EBS encryption on the volume.
        • iops- (Required for requests to create io1 volumes; it is not used in requests to create gp2, st1, sc1, or standard volumes) Int. The number of I/O operations per second (IOPS) that the volume supports.
        • kms_key_id- (Optional) 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- (Optional) (Optional) String. The Snapshot ID to mount by.
        • volume_type- (Optional, Default: "standard") String. The type of the volume (example: “gp2”).
        • volume_size- (Optional) Int. The size, in GB of the volume.
        • throughput- (Optional) 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.
        • dynamic_volume_size- (Optional) Object. Set dynamic volume size properties. When using this object, you cannot use volumeSize. You must use one or the other.
          • base_size- (Required) Int. Initial size for volume. (Example: 50)
          • resource- (Required) String. Resource type to increase volume size dynamically by. (valid values: “CPU”)
          • size_per_resource_unit- (Required) 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)
        • no_device- (Optional) String. suppresses the specified device included in the block device mapping of the AMI.

    Example Usage

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

    Create OceanLaunchSpec Resource

    new OceanLaunchSpec(name: string, args: OceanLaunchSpecArgs, opts?: CustomResourceOptions);
    @overload
    def OceanLaunchSpec(resource_name: 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,
                        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)
    @overload
    def OceanLaunchSpec(resource_name: str,
                        args: OceanLaunchSpecArgs,
                        opts: Optional[ResourceOptions] = 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.
    
    
    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.

    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>
    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.

    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
    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.

    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>
    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.

    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[]
    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.

    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]
    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.

    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>
    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.

    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,
            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>
    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.

    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
    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.

    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>
    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.

    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[]
    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.

    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]
    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.

    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>
    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.

    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, 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.

    OceanLaunchSpecBlockDeviceMapping, OceanLaunchSpecBlockDeviceMappingArgs

    OceanLaunchSpecBlockDeviceMappingEbs, OceanLaunchSpecBlockDeviceMappingEbsArgs

    OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSize, OceanLaunchSpecBlockDeviceMappingEbsDynamicVolumeSizeArgs

    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.53.0 published on Friday, Sep 22, 2023 by Pulumi