POSThttps://api.spotinst.io/aws/ec2/group?accountId={ACCOUNT_ID}

Create a new Elastigroup cluster.

URL Parameters

Parameter Type Description
ACCOUNT_ID * String

Your Spot accountId associated with your token

Example: act-123abc
Request

Headers
Copied!
Downloaded!
{
    "Authorization": "Bearer ${token}",
    "Content-Type": "application/json"
}
Body
Copied!
Downloaded!
{
  "group": {
    "name": "spotinst-group",
    "description": "Development",
    "region": "us-east-1",
    "capacity": {
      "target": 2,
      "minimum": 2,
      "maximum": 10
    },
    "strategy": {
      "risk": 100,
      "onDemandCount": null,
      "availabilityVsCost": "costOriented",
      "utilizeReservedInstances": false,
      "fallbackToOd": true,
      "persistence": {
        "blockDevicesMode": "reattach",
        "shouldPersistRootDevice": true,
        "shouldPersistBlockDevices": true,
        "shouldPersistPrivateIp": true
      },
      "revertToSpot": {
        "performAt": "timeWindow",
        "timeWindows": [
          "Mon:03:00-Wed:02:30"
        ]
      },
      "scalingStrategy": {
        "terminationPolicy": "default"
      }
    },
    "scaling": {
      "up": [
        {
          "metricName": "CPUUtilization",
          "statistic": "average",
          "unit": "percent",
          "threshold": 90,
          "namespace": "AWS/EC2",
          "dimensions": [
            {
              "name": "InstanceId"
            }
          ],
          "period": 300,
          "evaluationPeriods": 1,
          "cooldown": 300,
          "action": {
            "type": "percentageAdjustment",
            "adjustment": 20
          },
          "operator": "gte",
          "isEnabled": true
        }
      ],
      "down": [
        {
          "metricName": "CPUUtilization",
          "statistic": "average",
          "unit": "percent",
          "threshold": 10,
          "namespace": "AWS/EC2",
          "dimensions": [
            {
              "name": "InstanceId"
            }
          ],
          "period": 300,
          "evaluationPeriods": 1,
          "cooldown": 300,
          "action": {
            "type": "updateCapacity",
            "target": 10,
            "minimum": 5,
            "maximum": 20
          },
          "operator": "lte"
        },
        {
          "metricName": "overhead",
          "statistic": "average",
          "unit": "milliseconds",
          "threshold": 0.8,
          "namespace": "Monitoring",
          "dimensions": [
            {
              "name": "Cluster",
              "value": "M2M"
            },
            {
              "name": "Environment",
              "value": "ia-staging"
            }
          ],
          "period": 300,
          "evaluationPeriods": 1,
          "cooldown": 300,
          "action": {
            "type": "adjustment",
            "adjustment": 1
          },
          "operator": "lt",
          "isEnabled": false
        }
      ],
      "target": [
        {
          "policyName": "target_policy_1",
          "metricName": "CPUUtilization",
          "statistic": "average",
          "source": "cloudWatch",
          "unit": "percent",
          "target": 50,
          "namespace": "AWS/EC2",
          "cooldown": 300
        }
      ]
    },
    "scheduling": {
      "tasks": [
        {
          "frequency": "hourly",
          "taskType": "backup_ami"
        },
        {
          "batchSizePercentage": 30,
          "cronExpression": "00 17 * * 3",
          "taskType": "roll"
        },
        {
          "cronExpression": "00 22 * * 3",
          "scaleMaxCapacity": 3,
          "scaleMinCapacity": 0,
          "scaleTargetCapacity": 0,
          "startTime": "2018-05-23T10:55:09Z",
          "taskType": "scale"
        },
        {
          "adjustment": 1,
          "cronExpression": "1 10 * * *",
          "isEnabled": true,
          "taskType": "scaleUp"
        },
        {
          "scaleMaxCapacity": 3,
          "scaleMinCapacity": 3,
          "scaleTargetCapacity": 3,
          "startTime": "2018-05-25T10:55:09Z",
          "taskType": "scale"
        }
      ]
    },
    "compute": {
      "instanceTypes": {
        "ondemand": "m3.medium",
        "spot": [
          "c3.large",
          "c4.large",
          "m3.large",
          "r3.large"
        ],
        "preferredSpot": [
          "c4.large"
        ]
      },
      "privateIps": [
        "1.2.3.4",
        "5.6.7.8"
      ],
      "subnetIds": [
        "subnet-4c1d1538",
        "subnet-2791bb61",
        "subnet-703a6f58",
        "subnet-c62846fc"
      ],
      "product": "Linux/UNIX",
      "elasticIps": [
        "eipalloc-9d4e1234"
      ],
      "launchSpecification": {
        "loadBalancersConfig": {
          "loadBalancers": [
            {
              "name": "MyTargetGroup",
              "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup/MyTargetGroup/1fe63217f8ff1234",
              "type": "TARGET_GROUP"
            },
            {
              "name": "MyClassicLB",
              "type": "CLASSIC"
            },
            {
              "targetSetId": "ts-123456789",
              "balancerId": "lb-123456789",
              "autoWeight": true,
              "azAwareness": false,
              "type": "MULTAI_TARGET_SET"
            }
          ]
        },
        "healthCheckType": "ELB",
        "healthCheckGracePeriod": 300,
        "securityGroupIds": [
          "sg-af18c4ca"
        ],
        "monitoring": false,
        "ebsOptimized": true,
        "imageId": "ami-1ecae776",
        "iamRole": {
          "name": "test"
        },
        "keyPair": "spotinst",
        "blockDeviceMappings": [
          {
            "deviceName": "/dev/sdm",
            "ebs": {
              "deleteOnTermination": "true",
              "volumeSize": "80",
              "volumeType": "gp2"
            }
          },
          {
            "deviceName": "/dev/sda1",
            "ebs": {
              "deleteOnTermination": "true",
              "volumeSize": "24",
              "volumeType": "gp2"
            }
          },
		  {
            "deviceName": "/dev/sda2",
            "ebs": {
				"deleteOnTermination": true,
	            "volumeType": "gp2",
    	        "dynamicVolumeSize": {
        	      "baseSize": 50,
            	  "resource": "CPU",
	              "sizePerResourceUnit": 20
                }
            }
          }
        ],
        "networkInterfaces": [
          {
            "deviceIndex": 0,
            "associatePublicIpAddress": true,
            "deleteOnTermination": true,
            "associateIpv6Address": false,
            "subnetId": "subnet-8g4tbt54"
          }
        ],
        "userData": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
        "tags": [
          {
            "tagKey": "allow",
            "tagValue": "allow-ssh"
          }
        ],
        "metadataOptions": {
            "httpTokens": "optional"
        }
      }
    },
    "thirdPartiesIntegration": {
      "ecs": {
        "clusterName": "test-ecs",
        "autoScale": {
          "isEnabled": true,
          "isAutoConfig": false,
          "cooldown": 900,
          "attributes": [
            {
              "key": "the_key",
              "value": "the_value"
            }
          ],
          "down": {
            "evaluationPeriods": 3,
            "maxScaleDownPercentage": 70
          },
          "headroom": {
            "cpuPerUnit": 4096,
            "memoryPerUnit": 4096,
            "numOfUnits": 30
          },
          "shouldScaleDownNonServiceTasks": true
        },
        "batch": {
          "jobQueueNames": [
             "dumpy-big-processing"
          ]
        },
        "optimizeImages": {
          "shouldOptimizeEcsAmi": true,
          "performAt": "timeWindow",
          "timeWindows": [
            "Mon:00:00-Mon:01:00",
            "Wed:01:00-Fri:01:00"
            ]
        }
      },
      "elasticBeanstalk": {
        "environmentId": "123",
        "deploymentPreferences": {
          "automaticRoll": true,
          "batchSizePercentage": 50,
          "gracePeriod": 600,
          "strategy": {
            "action": "REPLACE_SERVER",
            "shouldDrainInstances": true
          }
        },
        "managedActions": {
          "platformUpdate": {
            "performAt": "timeWindow",
            "timeWindow": "Mon:23:50-Tue:00:20",
            "updateLevel": "patch",
            "instanceRefreshEnabled": true
          }
        }
      },
      "rancher": {
        "masterHost": "https://master.host.com",
        "accessKey": "KEY",
        "secretKey": "SECRET",
        "version": "1"
      },
      "kubernetes": {
        "integrationMode": "pod",
        "clusterIdentifier": "test-k8s",
        "autoScale": {
          "isEnabled": true,
          "cooldown": 300,
          "down": {
            "maxScaleDownPercentage": 70,
            "evaluationPeriods": 5
          },
          "headroom": {
            "cpuPerUnit": 2000,
            "memoryPerUnit": 4000,
            "gpuPerUnit": 2,
            "numOfUnits": 2
          },
          "labels": [
            {
              "key": "group",
              "value": "microservices"
            },
            {
              "key": "kops.k8s.io/instancegroup",
              "value": "microservices"
            }
          ],
          "isAutoConfig": false
        }
      },
      "mesosphere": {
        "apiServer": "1.2.3.4"
      },
      "mlbRuntime": {
        "deploymentId": "dp-rm0f5b912345"
      },
      "nomad": {
        "masterHost": "https://master.host.com",
        "masterPort": 443,
        "autoScale": {
          "isEnabled": true,
          "cooldown": 180,
          "down": {
            "evaluationPeriods": 3
          },
          "headroom": {
            "cpuPerUnit": 10,
            "memoryPerUnit": 1000,
            "numOfUnits": 2
          },
          "constraints": [
            {
              "key": "${node.class}",
              "value": "value"
            }
          ]
        },
        "aclToken": "123"
      },
      "chef": {
        "chefServer": "https://master.host.com",
        "organization": "ORGNAME",
        "chefVersion": "12.1",
        "user": "User",
        "pemKey": "Key"
      },
      "rightScale": {
        "accountId": "ID",
        "refreshToken": "TOKEN",
        "region": "us-east-1"
      },
      "opsWorks": {
        "layerId": "00d9m815-8aac-62b7-cc01-123456, xxxxxx-xxxxxxxx, xxxxxxx-xxxxxxxxxx",
        "stackType": "CLASSIC"
      },
      "codeDeploy": {
        "cleanUpOnFailure": false,
        "terminateInstanceOnFailure": false,
        "deploymentGroups": [
          {
            "applicationName": "test-app",
            "deploymentGroupName": "test-grp"
          }
        ]
      },
      "dockerSwarm": {
        "masterHost": "10.10.10.10",
        "masterPort": 1234,
        "autoScale": {
          "isEnabled": true,
          "cooldown": 300,
          "down": {
            "evaluationPeriods": 4
          },
          "headroom": {
            "cpuPerUnit": 1000000000,
            "memoryPerUnit": 800000000,
            "numOfUnits": 3
          },
          "tlsConfig": {
            "tlsEnabled": true,
            "privateKey": "PRIVATE KEY CERTIFICATE STR",
            "certificate": "PUBLIC KEY CERTIFICATE STR"
          }
        }
      },
      "route53": {
        "domains": [
          {
            "hostedZoneId": "Z00275642KS5ZZJFIQBCA",
            "recordSetType": "a",
            "spotinstAccountId": "act-1234",
            "recordSets": [
              {
                "usePublicIp": true,
                "name": "testa.spot.io."
              }
            ]
          },
          {
            "hostedZoneId": "Z00275642KS5ZZJFIQABC",
            "recordSetType": "cname",
            "spotinstAccountId": "act-1234",
            "recordSets": [
              {
                "usePublicDns": true,
                "name": "testcname.spot.io."
              }
            ]
          }
        ]
      }
    }
  }
}

Body Attributes


  • name * String
    Elastigroup name
  • description String
    Describe your Elastigroup
  • region String
    The AWS region your group will be created in.
    This parameter is required if you specify subnets (through compute.subnetIds).
    This parameter is optional if you specify Availability Zones (through compute.availabilityZones).
  • capacity.target * Integer
    The number of instances to launch
    Example: 1
  • capacity.minimum * Integer
    The lower limit number of instances that you can scale down to
  • capacity.maximum * Integer
    The upper limit number of instances that you can scale up to
    Example: 10
  • capacity.unit * String
    The capacity unit to launch instances by. Valid Values: instance, weight. Note: for groups with integration to K8S / ECS weight option is not supported.
  • strategy.risk Integer

    (Required if onDemandCount is not specified)

    The percentage of Spot instances to launch (range: 0 - 100)
  • strategy.onDemandCount Integer

    (Required if risk is not specified)

    Number of on demand instances to launch in the group. When this parameter is set the “risk” parameter is being ignored
  • strategy.availabilityVsCost * String
    The strategy orientation.
    Valid Values: costOriented,
    availabilityOriented ,
    balanced,
    cheapest,
    equalAzDistribution (please read this article before using equalAzDistribution orientation:Equal AZ Instance Distribution)
  • strategy.fallbackToOd Boolean
    In case of no spots available, Elastigroup will launch an On-demand instance instead
  • strategy.utilizeReservedInstances Boolean
    In case of any available Reserved Instances, Elastigroup will utilize them before purchasing Spot instances
  • strategy.drainingTimeout Integer
    The time in seconds to allow the instance be drained from incoming TCP connections and detached from ELB before terminating it, during a scale down operation
  • strategy.signals Array<Object>
    The signals defined for this group. For more information refer the below article: Signals
  • strategy.signals.name String
    The name of the signal defined for the group. Valid Values: INSTANCE_READY, INSTANCE_READY_TO_SHUTDOWN
  • strategy.signals.timeout Integer
    The timeout in seconds to hold the instance until a signal is sent. If no signal is sent the instance will be replaced (INSTANCE_READY) or we will terminate the instance (INSTANCE_READY_TO_SHUTDOWN) after the timeout. (Maximum is 1800 seconds, Minimum is 60 seconds)
    Default: 30 minutes
  • strategy.persistence Array<Object>
    You can register persistence (Stateful) recovery arguments
  • strategy.persistence.shouldPersistPrivateIp Boolean
    Should the instance maintain its private IP
  • strategy.persistence.shouldPersistRootDevice Boolean
    Should the instance maintain its root device volumes
  • strategy.persistence.shouldPersistBlockDevices Boolean
    Should the instance maintain its Data volumes
  • strategy.persistence.blockDevicesMode String
    Determine the way we attach the data volumes to the data devices, Possible values: ‘reattach’ and ‘onLaunch’
    Default: onLaunch
  • strategy.revertToSpot Object
    Hold settings for strategy correction - replacing On-Demand for Spot instances
  • strategy.revertToSpot.performAt String
    Settings for maintenance strategy - possible values: timeWindow, never, always. performAt of type: 'never' OR 'timeWindow' can only be applied to groups with "availabilityOriented" OR groups with "persistence", other groups allow either 'always' type or nothing which also means always.
    Example: timeWindow
    Default: always
  • strategy.revertToSpot.timeWindows Array<String>
    When performAt is 'timeWindow': must specify a list of 'timeWindows' with at least one time window Each string is in the format of - ddd:hh:mm-ddd:hh:mm ddd = day of week = Sun | Mon | Tue | Wed | Thu | Fri | Sat hh = hour 24 = 0 -23 mm = minute = 0 - 59
    Example: Mon:03:00-Wed:02:30
  • strategy.scalingStrategy Object
    Set termination policy
  • strategy.scalingStrategy.terminationPolicy String
    termination policy values can be one of the following: "default" "newestInstance"
  • compute.product * String
    Operation system type. Possible values: Linux/UNIX, SUSE Linux, Windows, Red Hat Enterprise Linux
    In case of EC2 classic: Linux/UNIX (Amazon VPC), SUSE Linux (Amazon VPC), Windows (Amazon VPC), Red Hat Enterprise Linux (Amazon VPC)
  • compute.elasticIps Array<String>
    List of ElasticIPs Allocation Ids to associate to the group instances
    Example: eipalloc-9d4e16f8
  • compute.privateIps Array<String>
    List of Private IPs to associate to the group instances. Please note: This setting will only apply if rategy.persistence.shouldPersistPrivateIp is set to true.
    Default: 172.1.1.0
  • compute.instanceTypes.ondemand * String
    Available Instance types
  • compute.instanceTypes.spot * Array<String>
    Available Spot Instance types
  • compute.instanceTypes.preferredSpot Array<String>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
  • compute.instanceTypes.weights Array<Object>
    Custom weight for each instance type (only valid in weight capacity unit)
  • compute.instanceTypes.weights.instanceType String
    The instance type to customize its weight
  • compute.instanceTypes.weights.weightedCapacity Integer
    The weight
  • compute.subnetIds Array<String>
    A comma-separated list of subnet identifiers for your group.
    When this parameter is set, compute.availabilityZones should be left unused.
  • compute.availabilityZones * Array<Object>
    One or more availability Zones for the group.
    When this parameter is set, compute.subnetIds should be left unused.
  • compute.availabilityZones.name * String
    The Availability Zone name
    Example: us-east-1a \ us-east-1b
  • compute.availabilityZones.subnetIds Array<String>
    A comma-separated list of subnet identifiers for your group.
  • compute.availabilityZones.placementGroupName String
    specify a Placement Group name, the instances will be launched in the Placement Group for the AZ.
  • compute.preferredAvailabilityZones Array<String>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
    * Must be a sublist of compute.AvailabilityZones
    * strategy.availabilityVsCost must not be equalAzDistribution
    Example: ["us-east-1a","us-east-1b"]
  • compute.launchSpecification.creditSpecification Object
    creditSpecification is a parameter that indicates in what mode t2/t3 instances will be launched with. It consists of one key: cpuCredits (String)
  • compute.launchSpecification.creditSpecification.cpuCredits String
    cpuCredits can have one of two values: “unlimited” or “standard”.
    Example: unlimited
  • compute.launchSpecification.loadBalancersConfig Object
    Elastic Load Balancers configurations
  • compute.launchSpecification.loadBalancersConfig.loadBalancers Array<Object>
    List of classic load balancers and/or application load balancer target groups and/or Multai load balancer target sets
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.name String
    The AWS resource name. Required for Classic Load Balancer. Optional for Application Load Balancer.
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.arn String
    The AWS resource ARN (Required only for ALB target groups)
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.type String
    The resource type. Valid Values: CLASSIC TARGET_GROUP MULTAI_TARGET_SET
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.balancerId String
    The Multai load balancer ID
    Example: lb-xxxxxx
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.targetSetId String
    The Multai load target set ID
    Example: ts-xxxxxx
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.azAwareness Boolean
    “AZ Awareness” will ensure that instances within the same AZ are using the corresponding MLB runtime instance in the same AZ. This feature reduces multi-zone data transfer fees
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.autoWeight Boolean
    “Auto Weight” will automatically provide a higher weight for instances that are larger as appropriate. For example, if you have configured your Elastigroup with m4.large and m4.xlarge instances the m4.large will have half the weight of an m4.xlarge. This ensures that larger instances receive a higher number of MLB requests
  • compute.launchSpecification.healthCheckType String
    The service to use for the health check. Valid Values: ELB | HCS | TARGET_GROUP | MLB | ECS_CLUSTER_INSTANCE | EC2 | OPSWORKS | MULTAI_TARGET_SET | K8S_NODE | NOMAD_NODE
  • compute.launchSpecification.healthCheckGracePeriod Integer
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    Default: 300 seconds
  • compute.launchSpecification.healthCheckUnhealthyDurationBeforeReplacement Integer
    The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced
  • compute.launchSpecification.securityGroupIds * Array<String>
    One or more security group IDs. In case of update it will override the existing Security Group with the new given array
  • compute.launchSpecification.monitoring * Boolean
    Describes whether instance Enhanced Monitoring is enabled
  • compute.launchSpecification.ebsOptimized Boolean
    Enable EBS optimization for supported instances which are not enabled by default. Note - additional charges will be applied.
  • compute.launchSpecification.imageId * String
    The ID of the image used to launch the instance. The following instance types are supported by HVM image: M3, M4, C3, C4, D2, G2, R3, CC2, CC1, CG1, CR1. The following instance types are supported by PV image:M1, M2, M3, C1, C3. In case of conflict between Instance type to image type, an error message will be returned
  • compute.launchSpecification.keyPair * String
    Specify a Key Pair to attach to the instances
  • compute.launchSpecification.blockDeviceMappings Array<Object>
    Array list of block devices that are exposed to the instance, You can specify virtual devices and EBS volumes.
  • compute.launchSpecification.blockDeviceMappings.deviceName String
    Set device name
    Example: /dev/xvda
  • compute.launchSpecification.blockDeviceMappings.ebs Object
    Set EBS properties
  • compute.launchSpecification.blockDeviceMappings.ebs.volumeType String
    Set volume type
    Example: gp2
  • compute.launchSpecification.blockDeviceMappings.ebs.deleteOnTermination Boolean
    Flag to delete the EBS on instance termination
  • compute.launchSpecification.blockDeviceMappings.ebs.volumeSize String
    Set volume size (in GB). When using this property - don't use dynamicVolumeSize. Volume size should be greater or equal than the size configured in the AMI
  • compute.launchSpecification.blockDeviceMappings.ebs.dynamicVolumeSize Object
    Set dynamic volume size properties. When using this object - don't use volumeSize
  • compute.launchSpecification.blockDeviceMappings.ebs.dynamicVolumeSize.baseSize Integer
    Initial size for volume
    Example: 50
  • compute.launchSpecification.blockDeviceMappings.ebs.dynamicVolumeSize.resource String
    Valid values: "CPU"
    Example: CPU
  • compute.launchSpecification.blockDeviceMappings.ebs.dynamicVolumeSize.sizePerResourceUnit Integer
    Additional size per resource unit (in GB). For example: if baseSize=50, and sizePerResourceUnit=20, and an instance with 2 CPU is launched - its disk size will be: 90GB
    Example: 20
  • compute.launchSpecification.networkInterfaces Array<Object>
    List of network interfaces in an EC2 instance. If you define network interface, please pay attention to omit these properties from other sections in this JSON and set them here: subnetId - compute.availabilityZones
  • compute.launchSpecification.networkInterfaces.description String
    The description of the network interface. Applies only if creating a network interface when launching an instance.
  • compute.launchSpecification.networkInterfaces.deviceIndex * Integer
    The position of the network interface in the attachment order. A primary network interface has a device index of 0. If you specify a network interface when launching an instance, you must specify the device index.
  • compute.launchSpecification.networkInterfaces.secondaryPrivateIpAddressCount Integer
    The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using privateIpAddresses . The number of IP addresses you can assign to a network interface varies by instance type. For more information, see IP Addresses Per ENI Per Instance Type in the Amazon Virtual Private Cloud User Guide.
  • compute.launchSpecification.networkInterfaces.associatePublicIpAddress Boolean
    Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is true.
  • compute.launchSpecification.networkInterfaces.deleteOnTermination Boolean
    If set to true, the interface is deleted when the instance is terminated. You can specify true only if creating a new network interface when launching an instance.
  • compute.launchSpecification.networkInterfaces.networkInterfaceId String
    The ID of the network interface. Used to attach the specified network interface to the instance.
  • compute.launchSpecification.networkInterfaces.privateIpAddress String
    The private IPv4 address of the network interface. Applies only if creating a network interface when launching an instance. You cannot specify this option if you're launching more than one instance in a RunInstances request.
  • compute.launchSpecification.networkInterfaces.privateIpAddresses Array<Object>
    One or more private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you're launching more than one instance in a RunInstances request.
  • compute.launchSpecification.networkInterfaces.privateIpAddresses.privateIpAddress * String
    The private IPv4 address.
  • compute.launchSpecification.networkInterfaces.privateIpAddresses.primary * Boolean
    Indicates whether the private IPv4 address is the primary private IPv4 address. Only one IPv4 address can be designated as primary.
  • compute.launchSpecification.networkInterfaces.subnetId String
    The ID of the subnet to associate with the network interface. Required when creating a new Network Interface, and not attaching an existing one via networkInterfaceId.
  • compute.launchSpecification.networkInterfaces.associateIpv6Address Boolean
    Indicates whether to assign an IPv6 address. Amazon EC2 chooses the IPv6 addresses from the range of the subnet.
  • compute.launchSpecification.iamRole Object
    The instance profile iamRole
  • compute.launchSpecification.iamRole.name String
    The iamRole name
  • compute.launchSpecification.userData Base64
    The Base64-encoded MIME user data to make available to the instances
  • compute.launchSpecification.shutdownScript Base64
    The Base64-encoded shutdown script to execute prior to instance termination. For more information please see: Shutdown Script
  • compute.launchSpecification.tags.tagKey String
    The tag’s key
  • compute.launchSpecification.tags.tagValue String
    The tag’s value
  • compute.launchSpecification.metadataOptions Object
    Optional field. Used for IMDSv2. In Create route can't be null. In Update route can be null.
  • compute.launchSpecification.metadataOptions.httpTokens * String
    Required for IMDSv2. Can’t be null in Create or Update. Values can be "optional" or "required".
    Example: optional
  • scaling.up.policyName String
    The policy name
  • scaling.up.metricName String
    The name of the metric.
    Default: CPUUtilization
  • scaling.up.statistic String
    The metric statistics to return. Valid Values: average , sum , sampleCount , maximum , minimum , percentile
  • scaling.up.extendedStatistic String
    Percentile statistic. Valid values: p0.1 - p100
  • scaling.up.unit String
    The unit for the alarm’s associated metric. Valid Values: seconds , microseconds , milliseconds , bytes , kilobytes , megabytes , gigabytes , terabytes , bits , kilobits , megabits , gigabits , terabits , percent , count , bytes/second , kilobytes/second , megabytes/second , gigabytes/second , terabytes/second , bits/second , kilobits/second , megabits/second , gigabits/second , terabits/second , count/second , none
  • scaling.up.threshold Double
    The value against which the specified statistic is compared
  • scaling.up.action Object
    The action to take when scale up is needed
  • scaling.up.action.type String
    The type of the action to take when scale up is needed. Valid Values: adjustment , updateCapacity setMinTarget , percentageAdjustment
  • scaling.up.action.adjustment Integer
    The number / percentage associated with the specified adjustment type. Required if using “adjustment” or “percentageAdjustment” as action type
  • scaling.up.action.minTargetCapacity Integer
    The number with the target capacity needed. Required if using “setMinTarget” as action type
  • scaling.up.action.target Integer
    The desired number of instances. Required if using “updateCapacity” as action type and neither “minimum” nor “maximum” are not defined.
  • scaling.up.action.minimum Integer
    The lower limit number of instances that you can scale down to. Optional, required if using “updateCapacity” as action type and neither “target” nor “maximum” are not defined
  • scaling.up.action.maximum Integer
    The upper limit number of instances that you can scale up to. Optional, required if using “updateCapacity” as action type and neither “target” nor “minimum” are not defined
  • scaling.up.namespace String
    The namespace for the alarm’s associated metric.
    Default: AWS/EC2
  • scaling.up.dimensions Array<Object>
    The dimensions for the alarm’s associated metric. If the user mentioned name as instanceId, there is NO value
  • scaling.up.period Integer
    The period in seconds over which the statistic is applied.
  • scaling.up.evaluationPeriods Integer
    The number of periods over which data is compared to the specified threshold.
  • scaling.up.cooldown Integer
    The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.
  • scaling.up.operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: gt gte lt lte
  • scaling.up.isEnabled Boolean
    Specifies whether the scaling policy described in this block is enabled.
    Default: TRUE
  • scaling.down.policyName String
    The policy name
  • scaling.down.metricName String
    The name of the metric.
    Default: CPUUtilization
  • scaling.down.statistic String
    The metric statistics to return. Valid Values: average sum sampleCount maximum minimum
  • scaling.down.extendedStatistic String
    Percentile statistic. Valid values: p0.1 - p100
  • scaling.down.unit String
    The unit for the alarm’s associated metric. Valid Values: seconds microseconds milliseconds bytes kilobytes megabytes gigabytes terabytes bits kilobits megabits gigabits terabits percent count bytes/second kilobytes/second megabytes/second gigabytes/second terabytes/second bits/second kilobits/second megabits/second gigabits/second terabits/second count/second none
  • scaling.down.action Object
    The action to take when scale down is needed.
  • scaling.down.action.type String
    The type of the action to take when scale down is needed. Valid Values: adjustment updateCapacity setMaxTarget percentageAdjustment
  • scaling.down.action.adjustment Integer
    The number / percentage associated with the specified adjustment type. Required if using “adjustment” or “percentageAdjustment” as action type.
  • scaling.down.action.maxTargetCapacity Integer
    The number with the target capacity needed. Required if using “setMaxTarget” as action type.
  • scaling.down.action.target Integer
    The desired number of instances. Optional, required if using “updateCapacity” as action type and neither “minimum” nor “maximum” are not defined.
  • scaling.down.action.minimum Integer
    The lower limit number of instances that you can scale down to. Optional, required if using “updateCapacity” as action type and neither “target” nor “maximum” are not defined.
  • scaling.down.action.maximum Integer
    The upper limit number of instances that you can scale up to. Optional, required if using “updateCapacity” as action type and neither “target” nor “minimum” are not defined.
  • scaling.down.threshold Double
    The value against which the specified statistic is compared.
  • scaling.down.namespace String
    The namespace for the alarm’s associated metric.
    Default: AWS/EC2
  • scaling.down.dimensions Array<Object>
    The dimensions for the alarm’s associated metric. If the user mentioned name as instanceId, there is NO value
  • scaling.down.period Integer
    The period in seconds over which the statistic is applied
  • scaling.down.evaluationPeriods Integer
    The number of periods over which data is compared to the specified threshold
  • scaling.down.cooldown Integer
    The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start
  • scaling.down.operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: gt gte lt lte
  • scaling.down.isEnabled String
    Specifies whether the scaling policy described in this block is enabled.
    Default: TRUE
  • scaling.target.source String
    The source of the metric Supported values: “cloudWatch”, “spectrum”
  • scaling.target.policyName String
    The policy name
  • scaling.target.metricName String
    The name of the metric
    Default: CPUUtilization
  • scaling.target.statistic String
    The metric statistics to return. Valid Values: average sum sampleCount maximum minimum
  • scaling.target.unit String
    The unit for the alarm’s associated metric. Valid Values: seconds microseconds milliseconds bytes kilobytes megabytes gigabytes terabytes bits kilobits megabits gigabits terabits percent count bytes/second kilobytes/second megabytes/second gigabytes/second terabytes/second bits/second kilobits/second megabits/second gigabits/second terabits/second count/second none
  • scaling.target.namespace String
    The namespace for the alarm’s associated metric.
    Default: AWS/EC2
  • scaling.target.target Integer
    The target value for the group
  • scaling.target.cooldown Integer
    The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start
  • scheduling Object
    Schedule tasks to execute, using CRON expressions.
  • scheduling.tasks Array<Object>
    The scheduling tasks for the group.
  • scheduling.tasks.isEnabled Boolean
    Describes whether the task is enabled. When true the task should run when false it should not run.
  • scheduling.tasks.startTime String
    DATETIME in ISO-8601 format and is in UTC time. Sets a start time for scheduled actions. If "frequency" or "cronExpression" are not used - the task will run only once at the start time and will then be deleted from the group configuration.
    Example: 2018-05-23T10:55:09Z
  • scheduling.tasks.frequency String
    The recurrence frequency to run this task. Valid Values: hourly daily weekly. Only one of ‘frequency’ or ‘cronExpression’ should be used at a time
  • scheduling.tasks.cronExpression String
    A valid cron expression. For example : " * * * * * ".The cron is running in UTC time zone and is in Unix cron format Cron Expression Validator Script. Only one of ‘frequency’ or ‘cronExpression’ should be used at a time.
    Example: 0 1 * * *
  • scheduling.tasks.taskType String
    The task type to run. Valid Values: backup_ami, scale, scaleUp, roll, statefulUpdateCapacity, statefulRecycle,clusterRoll (For ECS Integration)
    Example: scale
  • scheduling.tasks.scaleTargetCapacity Integer
    The target capacity of the group. Should be used when choosing ‘taskType’ of ‘scale’.
  • scheduling.tasks.scaleMinCapacity Integer
    The min capacity of the group. Should be used when choosing ‘taskType’ of ‘scale’.
  • scheduling.tasks.scaleMaxCapacity Integer
    The max capacity of the group. Required when ‘taskType’ is ‘scale’.
  • scheduling.tasks.TargetCapacity Integer
    Set a new target capacity for the Elastigroup. Required when ‘taskType’ is ‘statefulUpdateCapacity’.
  • scheduling.tasks.MinCapacity Integer
    Set a new minimum capacity for the Elastigroup. Required when ‘taskType’ is ‘statefulUpdateCapacity’.
  • scheduling.tasks.MaxCapacity Integer
    Set a new maximum capacity for the Elastigroup.Required when ‘taskType’ is ‘statefulUpdateCapacity’.
  • scheduling.tasks.batchSizePercentage Integer
    The percentage size of each batch in the scheduled deployment roll.
    Required when the taskType is roll.
  • thirdPartiesIntegration Object
    All definitions for using third-party Integrations
  • thirdPartiesIntegration.rancher Object
    All definitions for using Rancher Labs integration.
  • thirdPartiesIntegration.rancher.masterHost String
    Rancher master url
    Example: http://myRancher.com:8080/v1
  • thirdPartiesIntegration.rancher.accessKey String
    Rancher version
    Example: 1
    Default: 1
  • thirdPartiesIntegration.route53 Object
    Route53 integration object.
  • thirdPartiesIntegration.route53.domains Array<Object>
    Route53 domain configurations.
  • thirdPartiesIntegration.route53.domains. hostedZoneId String
    The Route53 Hosted Zone ID for the registered domain.
    Example: Z3UFMBCGJMYLUT
  • thirdPartiesIntegration.route53.domains. spotinstAccountId String
    The Spot account ID that is linked to the AWS account that holds the Route53 hosted Zone ID. The default is the user Spot account provided as a URL parameter.
    Example: act-1234
  • thirdPartiesIntegration.route53.domains. recordSetType String
    Set the type of recordSet to update. Valid values: "a" - means register and de-register of instances done by IP address (IPv4). When it is "a" you should also specify usePublicIp. "cname" - register and de-register of instances done by CNAME. When it is "cname", you should also specify usePublicDns.
    Example: a
    Default: a
  • thirdPartiesIntegration.route53.domains. recordSets Array<Object>
    List of record sets.
  • thirdPartiesIntegration.route53.domains.recordSets.name String
    Name of the recordSet.
    Example: testcname.spot.io.
  • thirdPartiesIntegration.route53.domains. recordSets.usePublicIp Boolean
    Defines whether to use public or private IP. Relevant only when recordSetType=a.
    Example: true
    Default: false
  • thirdPartiesIntegration.route53.domains. recordSets.usePublicDns Boolean
    Defines whether to use a public DNS or private DNS in the instance registration process. Relevant only when recordSetType=cname. False=Create a new weighted CNAME recordset with same name and the instance Private DNS. True=instances should be registered with public DNS.
    Example: true
    Default: false