Spotinst v3.94.0 published on Friday, Sep 20, 2024 by Pulumi
spotinst.aws.Elastigroup
Explore with Pulumi AI
Provides a Spotinst AWS group resource.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as spotinst from "@pulumi/spotinst";
// Create an Elastigroup
const default_elastigroup = new spotinst.aws.Elastigroup("default-elastigroup", {
name: "default-elastigroup",
description: "created by Pulumi",
product: "Linux/UNIX",
maxSize: 0,
minSize: 0,
desiredCapacity: 0,
capacityUnit: "weight",
region: "us-west-2",
subnetIds: [
"sb-123456",
"sb-456789",
],
imageId: "ami-a27d8fda",
iamInstanceProfile: "iam-profile",
keyName: "my-key.ssh",
securityGroups: ["sg-123456"],
userData: "echo hello world",
enableMonitoring: false,
ebsOptimized: false,
placementTenancy: "default",
metadataOptions: {
httpTokens: "optional",
httpPutResponseHopLimit: 10,
instanceMetadataTags: "enabled",
},
cpuOptions: {
threadsPerCore: 1,
},
instanceTypesOndemand: "m3.2xlarge",
instanceTypesSpots: [
"m3.xlarge",
"m3.2xlarge",
],
instanceTypesPreferredSpots: ["m3.xlarge"],
onDemandTypes: ["c3.large"],
instanceTypesWeights: [
{
instanceType: "m3.xlarge",
weight: 10,
},
{
instanceType: "m3.2xlarge",
weight: 16,
},
],
resourceRequirements: [{
excludedInstanceFamilies: [
"a",
"m",
],
excludedInstanceTypes: ["m3.large"],
excludedInstanceGenerations: [
"1",
"2",
],
requiredGpuMinimum: 1,
requiredGpuMaximum: 16,
requiredMemoryMinimum: 1,
requiredMemoryMaximum: 512,
requiredVcpuMinimum: 1,
requiredVcpuMaximum: 64,
}],
orientation: "balanced",
fallbackToOndemand: false,
cpuCredits: "unlimited",
minimumInstanceLifetime: 12,
waitForCapacity: 5,
waitForCapacityTimeout: 300,
scalingStrategies: [{
terminateAtEndOfBillingHour: true,
terminationPolicy: "default",
}],
scalingUpPolicies: [{
policyName: "Default Scaling Up Policy",
metricName: "DefaultQueuesDepth",
statistic: "average",
unit: "none",
adjustment: "1",
namespace: "custom",
threshold: 100,
period: 60,
evaluationPeriods: 5,
cooldown: 300,
}],
scalingDownPolicies: [{
policyName: "Default Scaling Down Policy",
metricName: "DefaultQueuesDepth",
statistic: "average",
unit: "none",
adjustment: "1",
namespace: "custom",
threshold: 10,
period: 60,
evaluationPeriods: 10,
cooldown: 300,
}],
tags: [
{
key: "Env",
value: "production",
},
{
key: "Name",
value: "default-production",
},
{
key: "Project",
value: "app_v2",
},
],
resourceTagSpecifications: [{
shouldTagEnis: true,
shouldTagVolumes: true,
shouldTagSnapshots: true,
shouldTagAmis: true,
}],
logging: {
"export": {
s3s: [{
id: "di-123456",
}],
},
},
});
import pulumi
import pulumi_spotinst as spotinst
# Create an Elastigroup
default_elastigroup = spotinst.aws.Elastigroup("default-elastigroup",
name="default-elastigroup",
description="created by Pulumi",
product="Linux/UNIX",
max_size=0,
min_size=0,
desired_capacity=0,
capacity_unit="weight",
region="us-west-2",
subnet_ids=[
"sb-123456",
"sb-456789",
],
image_id="ami-a27d8fda",
iam_instance_profile="iam-profile",
key_name="my-key.ssh",
security_groups=["sg-123456"],
user_data="echo hello world",
enable_monitoring=False,
ebs_optimized=False,
placement_tenancy="default",
metadata_options={
"http_tokens": "optional",
"http_put_response_hop_limit": 10,
"instance_metadata_tags": "enabled",
},
cpu_options={
"threads_per_core": 1,
},
instance_types_ondemand="m3.2xlarge",
instance_types_spots=[
"m3.xlarge",
"m3.2xlarge",
],
instance_types_preferred_spots=["m3.xlarge"],
on_demand_types=["c3.large"],
instance_types_weights=[
{
"instance_type": "m3.xlarge",
"weight": 10,
},
{
"instance_type": "m3.2xlarge",
"weight": 16,
},
],
resource_requirements=[{
"excluded_instance_families": [
"a",
"m",
],
"excluded_instance_types": ["m3.large"],
"excluded_instance_generations": [
"1",
"2",
],
"required_gpu_minimum": 1,
"required_gpu_maximum": 16,
"required_memory_minimum": 1,
"required_memory_maximum": 512,
"required_vcpu_minimum": 1,
"required_vcpu_maximum": 64,
}],
orientation="balanced",
fallback_to_ondemand=False,
cpu_credits="unlimited",
minimum_instance_lifetime=12,
wait_for_capacity=5,
wait_for_capacity_timeout=300,
scaling_strategies=[{
"terminate_at_end_of_billing_hour": True,
"termination_policy": "default",
}],
scaling_up_policies=[{
"policy_name": "Default Scaling Up Policy",
"metric_name": "DefaultQueuesDepth",
"statistic": "average",
"unit": "none",
"adjustment": "1",
"namespace": "custom",
"threshold": 100,
"period": 60,
"evaluation_periods": 5,
"cooldown": 300,
}],
scaling_down_policies=[{
"policy_name": "Default Scaling Down Policy",
"metric_name": "DefaultQueuesDepth",
"statistic": "average",
"unit": "none",
"adjustment": "1",
"namespace": "custom",
"threshold": 10,
"period": 60,
"evaluation_periods": 10,
"cooldown": 300,
}],
tags=[
{
"key": "Env",
"value": "production",
},
{
"key": "Name",
"value": "default-production",
},
{
"key": "Project",
"value": "app_v2",
},
],
resource_tag_specifications=[{
"should_tag_enis": True,
"should_tag_volumes": True,
"should_tag_snapshots": True,
"should_tag_amis": True,
}],
logging={
"export": {
"s3s": [{
"id": "di-123456",
}],
},
})
package main
import (
"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/aws"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Create an Elastigroup
_, err := aws.NewElastigroup(ctx, "default-elastigroup", &aws.ElastigroupArgs{
Name: pulumi.String("default-elastigroup"),
Description: pulumi.String("created by Pulumi"),
Product: pulumi.String("Linux/UNIX"),
MaxSize: pulumi.Int(0),
MinSize: pulumi.Int(0),
DesiredCapacity: pulumi.Int(0),
CapacityUnit: pulumi.String("weight"),
Region: pulumi.String("us-west-2"),
SubnetIds: pulumi.StringArray{
pulumi.String("sb-123456"),
pulumi.String("sb-456789"),
},
ImageId: pulumi.String("ami-a27d8fda"),
IamInstanceProfile: pulumi.String("iam-profile"),
KeyName: pulumi.String("my-key.ssh"),
SecurityGroups: pulumi.StringArray{
pulumi.String("sg-123456"),
},
UserData: pulumi.String("echo hello world"),
EnableMonitoring: pulumi.Bool(false),
EbsOptimized: pulumi.Bool(false),
PlacementTenancy: pulumi.String("default"),
MetadataOptions: &aws.ElastigroupMetadataOptionsArgs{
HttpTokens: pulumi.String("optional"),
HttpPutResponseHopLimit: pulumi.Int(10),
InstanceMetadataTags: pulumi.String("enabled"),
},
CpuOptions: &aws.ElastigroupCpuOptionsArgs{
ThreadsPerCore: pulumi.Int(1),
},
InstanceTypesOndemand: pulumi.String("m3.2xlarge"),
InstanceTypesSpots: pulumi.StringArray{
pulumi.String("m3.xlarge"),
pulumi.String("m3.2xlarge"),
},
InstanceTypesPreferredSpots: pulumi.StringArray{
pulumi.String("m3.xlarge"),
},
OnDemandTypes: pulumi.StringArray{
pulumi.String("c3.large"),
},
InstanceTypesWeights: aws.ElastigroupInstanceTypesWeightArray{
&aws.ElastigroupInstanceTypesWeightArgs{
InstanceType: pulumi.String("m3.xlarge"),
Weight: pulumi.Int(10),
},
&aws.ElastigroupInstanceTypesWeightArgs{
InstanceType: pulumi.String("m3.2xlarge"),
Weight: pulumi.Int(16),
},
},
ResourceRequirements: aws.ElastigroupResourceRequirementArray{
&aws.ElastigroupResourceRequirementArgs{
ExcludedInstanceFamilies: pulumi.StringArray{
pulumi.String("a"),
pulumi.String("m"),
},
ExcludedInstanceTypes: pulumi.StringArray{
pulumi.String("m3.large"),
},
ExcludedInstanceGenerations: pulumi.StringArray{
pulumi.String("1"),
pulumi.String("2"),
},
RequiredGpuMinimum: pulumi.Int(1),
RequiredGpuMaximum: pulumi.Int(16),
RequiredMemoryMinimum: pulumi.Int(1),
RequiredMemoryMaximum: pulumi.Int(512),
RequiredVcpuMinimum: pulumi.Int(1),
RequiredVcpuMaximum: pulumi.Int(64),
},
},
Orientation: pulumi.String("balanced"),
FallbackToOndemand: pulumi.Bool(false),
CpuCredits: pulumi.String("unlimited"),
MinimumInstanceLifetime: pulumi.Int(12),
WaitForCapacity: pulumi.Int(5),
WaitForCapacityTimeout: pulumi.Int(300),
ScalingStrategies: aws.ElastigroupScalingStrategyArray{
&aws.ElastigroupScalingStrategyArgs{
TerminateAtEndOfBillingHour: pulumi.Bool(true),
TerminationPolicy: pulumi.String("default"),
},
},
ScalingUpPolicies: aws.ElastigroupScalingUpPolicyArray{
&aws.ElastigroupScalingUpPolicyArgs{
PolicyName: pulumi.String("Default Scaling Up Policy"),
MetricName: pulumi.String("DefaultQueuesDepth"),
Statistic: pulumi.String("average"),
Unit: pulumi.String("none"),
Adjustment: pulumi.String("1"),
Namespace: pulumi.String("custom"),
Threshold: pulumi.Float64(100),
Period: pulumi.Int(60),
EvaluationPeriods: pulumi.Int(5),
Cooldown: pulumi.Int(300),
},
},
ScalingDownPolicies: aws.ElastigroupScalingDownPolicyArray{
&aws.ElastigroupScalingDownPolicyArgs{
PolicyName: pulumi.String("Default Scaling Down Policy"),
MetricName: pulumi.String("DefaultQueuesDepth"),
Statistic: pulumi.String("average"),
Unit: pulumi.String("none"),
Adjustment: pulumi.String("1"),
Namespace: pulumi.String("custom"),
Threshold: pulumi.Float64(10),
Period: pulumi.Int(60),
EvaluationPeriods: pulumi.Int(10),
Cooldown: pulumi.Int(300),
},
},
Tags: aws.ElastigroupTagArray{
&aws.ElastigroupTagArgs{
Key: pulumi.String("Env"),
Value: pulumi.String("production"),
},
&aws.ElastigroupTagArgs{
Key: pulumi.String("Name"),
Value: pulumi.String("default-production"),
},
&aws.ElastigroupTagArgs{
Key: pulumi.String("Project"),
Value: pulumi.String("app_v2"),
},
},
ResourceTagSpecifications: aws.ElastigroupResourceTagSpecificationArray{
&aws.ElastigroupResourceTagSpecificationArgs{
ShouldTagEnis: pulumi.Bool(true),
ShouldTagVolumes: pulumi.Bool(true),
ShouldTagSnapshots: pulumi.Bool(true),
ShouldTagAmis: pulumi.Bool(true),
},
},
Logging: &aws.ElastigroupLoggingArgs{
Export: &aws.ElastigroupLoggingExportArgs{
S3s: aws.ElastigroupLoggingExportS3Array{
&aws.ElastigroupLoggingExportS3Args{
Id: pulumi.String("di-123456"),
},
},
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using SpotInst = Pulumi.SpotInst;
return await Deployment.RunAsync(() =>
{
// Create an Elastigroup
var default_elastigroup = new SpotInst.Aws.Elastigroup("default-elastigroup", new()
{
Name = "default-elastigroup",
Description = "created by Pulumi",
Product = "Linux/UNIX",
MaxSize = 0,
MinSize = 0,
DesiredCapacity = 0,
CapacityUnit = "weight",
Region = "us-west-2",
SubnetIds = new[]
{
"sb-123456",
"sb-456789",
},
ImageId = "ami-a27d8fda",
IamInstanceProfile = "iam-profile",
KeyName = "my-key.ssh",
SecurityGroups = new[]
{
"sg-123456",
},
UserData = "echo hello world",
EnableMonitoring = false,
EbsOptimized = false,
PlacementTenancy = "default",
MetadataOptions = new SpotInst.Aws.Inputs.ElastigroupMetadataOptionsArgs
{
HttpTokens = "optional",
HttpPutResponseHopLimit = 10,
InstanceMetadataTags = "enabled",
},
CpuOptions = new SpotInst.Aws.Inputs.ElastigroupCpuOptionsArgs
{
ThreadsPerCore = 1,
},
InstanceTypesOndemand = "m3.2xlarge",
InstanceTypesSpots = new[]
{
"m3.xlarge",
"m3.2xlarge",
},
InstanceTypesPreferredSpots = new[]
{
"m3.xlarge",
},
OnDemandTypes = new[]
{
"c3.large",
},
InstanceTypesWeights = new[]
{
new SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeightArgs
{
InstanceType = "m3.xlarge",
Weight = 10,
},
new SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeightArgs
{
InstanceType = "m3.2xlarge",
Weight = 16,
},
},
ResourceRequirements = new[]
{
new SpotInst.Aws.Inputs.ElastigroupResourceRequirementArgs
{
ExcludedInstanceFamilies = new[]
{
"a",
"m",
},
ExcludedInstanceTypes = new[]
{
"m3.large",
},
ExcludedInstanceGenerations = new[]
{
"1",
"2",
},
RequiredGpuMinimum = 1,
RequiredGpuMaximum = 16,
RequiredMemoryMinimum = 1,
RequiredMemoryMaximum = 512,
RequiredVcpuMinimum = 1,
RequiredVcpuMaximum = 64,
},
},
Orientation = "balanced",
FallbackToOndemand = false,
CpuCredits = "unlimited",
MinimumInstanceLifetime = 12,
WaitForCapacity = 5,
WaitForCapacityTimeout = 300,
ScalingStrategies = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingStrategyArgs
{
TerminateAtEndOfBillingHour = true,
TerminationPolicy = "default",
},
},
ScalingUpPolicies = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyArgs
{
PolicyName = "Default Scaling Up Policy",
MetricName = "DefaultQueuesDepth",
Statistic = "average",
Unit = "none",
Adjustment = "1",
Namespace = "custom",
Threshold = 100,
Period = 60,
EvaluationPeriods = 5,
Cooldown = 300,
},
},
ScalingDownPolicies = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyArgs
{
PolicyName = "Default Scaling Down Policy",
MetricName = "DefaultQueuesDepth",
Statistic = "average",
Unit = "none",
Adjustment = "1",
Namespace = "custom",
Threshold = 10,
Period = 60,
EvaluationPeriods = 10,
Cooldown = 300,
},
},
Tags = new[]
{
new SpotInst.Aws.Inputs.ElastigroupTagArgs
{
Key = "Env",
Value = "production",
},
new SpotInst.Aws.Inputs.ElastigroupTagArgs
{
Key = "Name",
Value = "default-production",
},
new SpotInst.Aws.Inputs.ElastigroupTagArgs
{
Key = "Project",
Value = "app_v2",
},
},
ResourceTagSpecifications = new[]
{
new SpotInst.Aws.Inputs.ElastigroupResourceTagSpecificationArgs
{
ShouldTagEnis = true,
ShouldTagVolumes = true,
ShouldTagSnapshots = true,
ShouldTagAmis = true,
},
},
Logging = new SpotInst.Aws.Inputs.ElastigroupLoggingArgs
{
Export = new SpotInst.Aws.Inputs.ElastigroupLoggingExportArgs
{
S3s = new[]
{
new SpotInst.Aws.Inputs.ElastigroupLoggingExportS3Args
{
Id = "di-123456",
},
},
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.spotinst.aws.Elastigroup;
import com.pulumi.spotinst.aws.ElastigroupArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupMetadataOptionsArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupCpuOptionsArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupInstanceTypesWeightArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupResourceRequirementArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupScalingStrategyArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupScalingUpPolicyArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupScalingDownPolicyArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupTagArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupResourceTagSpecificationArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupLoggingArgs;
import com.pulumi.spotinst.aws.inputs.ElastigroupLoggingExportArgs;
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) {
// Create an Elastigroup
var default_elastigroup = new Elastigroup("default-elastigroup", ElastigroupArgs.builder()
.name("default-elastigroup")
.description("created by Pulumi")
.product("Linux/UNIX")
.maxSize(0)
.minSize(0)
.desiredCapacity(0)
.capacityUnit("weight")
.region("us-west-2")
.subnetIds(
"sb-123456",
"sb-456789")
.imageId("ami-a27d8fda")
.iamInstanceProfile("iam-profile")
.keyName("my-key.ssh")
.securityGroups("sg-123456")
.userData("echo hello world")
.enableMonitoring(false)
.ebsOptimized(false)
.placementTenancy("default")
.metadataOptions(ElastigroupMetadataOptionsArgs.builder()
.httpTokens("optional")
.httpPutResponseHopLimit(10)
.instanceMetadataTags("enabled")
.build())
.cpuOptions(ElastigroupCpuOptionsArgs.builder()
.threadsPerCore(1)
.build())
.instanceTypesOndemand("m3.2xlarge")
.instanceTypesSpots(
"m3.xlarge",
"m3.2xlarge")
.instanceTypesPreferredSpots("m3.xlarge")
.onDemandTypes("c3.large")
.instanceTypesWeights(
ElastigroupInstanceTypesWeightArgs.builder()
.instanceType("m3.xlarge")
.weight(10)
.build(),
ElastigroupInstanceTypesWeightArgs.builder()
.instanceType("m3.2xlarge")
.weight(16)
.build())
.resourceRequirements(ElastigroupResourceRequirementArgs.builder()
.excludedInstanceFamilies(
"a",
"m")
.excludedInstanceTypes("m3.large")
.excludedInstanceGenerations(
"1",
"2")
.requiredGpuMinimum(1)
.requiredGpuMaximum(16)
.requiredMemoryMinimum(1)
.requiredMemoryMaximum(512)
.requiredVcpuMinimum(1)
.requiredVcpuMaximum(64)
.build())
.orientation("balanced")
.fallbackToOndemand(false)
.cpuCredits("unlimited")
.minimumInstanceLifetime(12)
.waitForCapacity(5)
.waitForCapacityTimeout(300)
.scalingStrategies(ElastigroupScalingStrategyArgs.builder()
.terminateAtEndOfBillingHour(true)
.terminationPolicy("default")
.build())
.scalingUpPolicies(ElastigroupScalingUpPolicyArgs.builder()
.policyName("Default Scaling Up Policy")
.metricName("DefaultQueuesDepth")
.statistic("average")
.unit("none")
.adjustment(1)
.namespace("custom")
.threshold(100)
.period(60)
.evaluationPeriods(5)
.cooldown(300)
.build())
.scalingDownPolicies(ElastigroupScalingDownPolicyArgs.builder()
.policyName("Default Scaling Down Policy")
.metricName("DefaultQueuesDepth")
.statistic("average")
.unit("none")
.adjustment(1)
.namespace("custom")
.threshold(10)
.period(60)
.evaluationPeriods(10)
.cooldown(300)
.build())
.tags(
ElastigroupTagArgs.builder()
.key("Env")
.value("production")
.build(),
ElastigroupTagArgs.builder()
.key("Name")
.value("default-production")
.build(),
ElastigroupTagArgs.builder()
.key("Project")
.value("app_v2")
.build())
.resourceTagSpecifications(ElastigroupResourceTagSpecificationArgs.builder()
.shouldTagEnis(true)
.shouldTagVolumes(true)
.shouldTagSnapshots(true)
.shouldTagAmis(true)
.build())
.logging(ElastigroupLoggingArgs.builder()
.export(ElastigroupLoggingExportArgs.builder()
.s3s(ElastigroupLoggingExportS3Args.builder()
.id("di-123456")
.build())
.build())
.build())
.build());
}
}
resources:
# Create an Elastigroup
default-elastigroup:
type: spotinst:aws:Elastigroup
properties:
name: default-elastigroup
description: created by Pulumi
product: Linux/UNIX
maxSize: 0
minSize: 0
desiredCapacity: 0
capacityUnit: weight
region: us-west-2
subnetIds:
- sb-123456
- sb-456789
imageId: ami-a27d8fda
iamInstanceProfile: iam-profile
keyName: my-key.ssh
securityGroups:
- sg-123456
userData: echo hello world
enableMonitoring: false
ebsOptimized: false
placementTenancy: default
metadataOptions:
httpTokens: optional
httpPutResponseHopLimit: 10
instanceMetadataTags: enabled
cpuOptions:
threadsPerCore: 1
instanceTypesOndemand: m3.2xlarge
instanceTypesSpots:
- m3.xlarge
- m3.2xlarge
instanceTypesPreferredSpots:
- m3.xlarge
onDemandTypes:
- c3.large
instanceTypesWeights:
- instanceType: m3.xlarge
weight: 10
- instanceType: m3.2xlarge
weight: 16
resourceRequirements:
- excludedInstanceFamilies:
- a
- m
excludedInstanceTypes:
- m3.large
excludedInstanceGenerations:
- '1'
- '2'
requiredGpuMinimum: 1
requiredGpuMaximum: 16
requiredMemoryMinimum: 1
requiredMemoryMaximum: 512
requiredVcpuMinimum: 1
requiredVcpuMaximum: 64
orientation: balanced
fallbackToOndemand: false
cpuCredits: unlimited
minimumInstanceLifetime: 12
waitForCapacity: 5
waitForCapacityTimeout: 300
scalingStrategies:
- terminateAtEndOfBillingHour: true
terminationPolicy: default
scalingUpPolicies:
- policyName: Default Scaling Up Policy
metricName: DefaultQueuesDepth
statistic: average
unit: none
adjustment: 1
namespace: custom
threshold: 100
period: 60
evaluationPeriods: 5
cooldown: 300
scalingDownPolicies:
- policyName: Default Scaling Down Policy
metricName: DefaultQueuesDepth
statistic: average
unit: none
adjustment: 1
namespace: custom
threshold: 10
period: 60
evaluationPeriods: 10
cooldown: 300
tags:
- key: Env
value: production
- key: Name
value: default-production
- key: Project
value: app_v2
resourceTagSpecifications:
- shouldTagEnis: true
shouldTagVolumes: true
shouldTagSnapshots: true
shouldTagAmis: true
logging:
export:
s3s:
- id: di-123456
Create Elastigroup Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Elastigroup(name: string, args: ElastigroupArgs, opts?: CustomResourceOptions);
@overload
def Elastigroup(resource_name: str,
args: ElastigroupArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Elastigroup(resource_name: str,
opts: Optional[ResourceOptions] = None,
fallback_to_ondemand: Optional[bool] = None,
orientation: Optional[str] = None,
product: Optional[str] = None,
security_groups: Optional[Sequence[str]] = None,
auto_healing: Optional[bool] = None,
availability_zones: Optional[Sequence[str]] = None,
block_devices_mode: Optional[str] = None,
capacity_unit: Optional[str] = None,
consider_od_pricing: Optional[bool] = None,
cpu_credits: Optional[str] = None,
cpu_options: Optional[ElastigroupCpuOptionsArgs] = None,
description: Optional[str] = None,
desired_capacity: Optional[int] = None,
draining_timeout: Optional[int] = None,
ebs_block_devices: Optional[Sequence[ElastigroupEbsBlockDeviceArgs]] = None,
ebs_optimized: Optional[bool] = None,
elastic_ips: Optional[Sequence[str]] = None,
elastic_load_balancers: Optional[Sequence[str]] = None,
enable_monitoring: Optional[bool] = None,
ephemeral_block_devices: Optional[Sequence[ElastigroupEphemeralBlockDeviceArgs]] = None,
health_check_grace_period: Optional[int] = None,
health_check_type: Optional[str] = None,
health_check_unhealthy_duration_before_replacement: Optional[int] = None,
iam_instance_profile: Optional[str] = None,
image_id: Optional[str] = None,
images: Optional[Sequence[ElastigroupImageArgs]] = None,
immediate_od_recover_threshold: Optional[int] = None,
instance_types_ondemand: Optional[str] = None,
instance_types_preferred_spots: Optional[Sequence[str]] = None,
instance_types_spots: Optional[Sequence[str]] = None,
instance_types_weights: Optional[Sequence[ElastigroupInstanceTypesWeightArgs]] = None,
integration_beanstalk: Optional[ElastigroupIntegrationBeanstalkArgs] = None,
integration_codedeploy: Optional[ElastigroupIntegrationCodedeployArgs] = None,
integration_docker_swarm: Optional[ElastigroupIntegrationDockerSwarmArgs] = None,
integration_ecs: Optional[ElastigroupIntegrationEcsArgs] = None,
integration_gitlab: Optional[ElastigroupIntegrationGitlabArgs] = None,
integration_kubernetes: Optional[ElastigroupIntegrationKubernetesArgs] = None,
integration_mesosphere: Optional[ElastigroupIntegrationMesosphereArgs] = None,
integration_nomad: Optional[ElastigroupIntegrationNomadArgs] = None,
integration_rancher: Optional[ElastigroupIntegrationRancherArgs] = None,
integration_route53: Optional[ElastigroupIntegrationRoute53Args] = None,
itfs: Optional[Sequence[ElastigroupItfArgs]] = None,
key_name: Optional[str] = None,
lifetime_period: Optional[str] = None,
logging: Optional[ElastigroupLoggingArgs] = None,
max_size: Optional[int] = None,
metadata_options: Optional[ElastigroupMetadataOptionsArgs] = None,
min_size: Optional[int] = None,
minimum_instance_lifetime: Optional[int] = None,
multiple_metrics: Optional[ElastigroupMultipleMetricsArgs] = None,
name: Optional[str] = None,
network_interfaces: Optional[Sequence[ElastigroupNetworkInterfaceArgs]] = None,
on_demand_types: Optional[Sequence[str]] = None,
ondemand_count: Optional[int] = None,
persist_block_devices: Optional[bool] = None,
persist_private_ip: Optional[bool] = None,
persist_root_device: Optional[bool] = None,
placement_tenancy: Optional[str] = None,
preferred_availability_zones: Optional[Sequence[str]] = None,
private_ips: Optional[Sequence[str]] = None,
region: Optional[str] = None,
resource_requirements: Optional[Sequence[ElastigroupResourceRequirementArgs]] = None,
resource_tag_specifications: Optional[Sequence[ElastigroupResourceTagSpecificationArgs]] = None,
restrict_single_az: Optional[bool] = None,
revert_to_spot: Optional[ElastigroupRevertToSpotArgs] = None,
scaling_down_policies: Optional[Sequence[ElastigroupScalingDownPolicyArgs]] = None,
scaling_strategies: Optional[Sequence[ElastigroupScalingStrategyArgs]] = None,
scaling_target_policies: Optional[Sequence[ElastigroupScalingTargetPolicyArgs]] = None,
scaling_up_policies: Optional[Sequence[ElastigroupScalingUpPolicyArgs]] = None,
scheduled_tasks: Optional[Sequence[ElastigroupScheduledTaskArgs]] = None,
shutdown_script: Optional[str] = None,
signals: Optional[Sequence[ElastigroupSignalArgs]] = None,
spot_percentage: Optional[int] = None,
stateful_deallocation: Optional[ElastigroupStatefulDeallocationArgs] = None,
stateful_instance_actions: Optional[Sequence[ElastigroupStatefulInstanceActionArgs]] = None,
subnet_ids: Optional[Sequence[str]] = None,
tags: Optional[Sequence[ElastigroupTagArgs]] = None,
target_group_arns: Optional[Sequence[str]] = None,
update_policy: Optional[ElastigroupUpdatePolicyArgs] = None,
user_data: Optional[str] = None,
utilize_commitments: Optional[bool] = None,
utilize_reserved_instances: Optional[bool] = None,
wait_for_capacity: Optional[int] = None,
wait_for_capacity_timeout: Optional[int] = None)
func NewElastigroup(ctx *Context, name string, args ElastigroupArgs, opts ...ResourceOption) (*Elastigroup, error)
public Elastigroup(string name, ElastigroupArgs args, CustomResourceOptions? opts = null)
public Elastigroup(String name, ElastigroupArgs args)
public Elastigroup(String name, ElastigroupArgs args, CustomResourceOptions options)
type: spotinst:aws:Elastigroup
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ElastigroupArgs
- 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 ElastigroupArgs
- 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 ElastigroupArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ElastigroupArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ElastigroupArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var elastigroupResource = new SpotInst.Aws.Elastigroup("elastigroupResource", new()
{
FallbackToOndemand = false,
Orientation = "string",
Product = "string",
SecurityGroups = new[]
{
"string",
},
AutoHealing = false,
AvailabilityZones = new[]
{
"string",
},
BlockDevicesMode = "string",
CapacityUnit = "string",
ConsiderOdPricing = false,
CpuCredits = "string",
CpuOptions = new SpotInst.Aws.Inputs.ElastigroupCpuOptionsArgs
{
ThreadsPerCore = 0,
},
Description = "string",
DesiredCapacity = 0,
DrainingTimeout = 0,
EbsBlockDevices = new[]
{
new SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceArgs
{
DeviceName = "string",
DeleteOnTermination = false,
DynamicIops = new SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceDynamicIopsArgs
{
BaseSize = 0,
Resource = "string",
SizePerResourceUnit = 0,
},
DynamicVolumeSize = new SpotInst.Aws.Inputs.ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs
{
BaseSize = 0,
Resource = "string",
SizePerResourceUnit = 0,
},
Encrypted = false,
Iops = 0,
KmsKeyId = "string",
SnapshotId = "string",
Throughput = 0,
VolumeSize = 0,
VolumeType = "string",
},
},
EbsOptimized = false,
ElasticIps = new[]
{
"string",
},
ElasticLoadBalancers = new[]
{
"string",
},
EnableMonitoring = false,
EphemeralBlockDevices = new[]
{
new SpotInst.Aws.Inputs.ElastigroupEphemeralBlockDeviceArgs
{
DeviceName = "string",
VirtualName = "string",
},
},
HealthCheckGracePeriod = 0,
HealthCheckType = "string",
HealthCheckUnhealthyDurationBeforeReplacement = 0,
IamInstanceProfile = "string",
ImageId = "string",
Images = new[]
{
new SpotInst.Aws.Inputs.ElastigroupImageArgs
{
Images = new[]
{
new SpotInst.Aws.Inputs.ElastigroupImageImageArgs
{
Id = "string",
},
},
},
},
ImmediateOdRecoverThreshold = 0,
InstanceTypesOndemand = "string",
InstanceTypesPreferredSpots = new[]
{
"string",
},
InstanceTypesSpots = new[]
{
"string",
},
InstanceTypesWeights = new[]
{
new SpotInst.Aws.Inputs.ElastigroupInstanceTypesWeightArgs
{
InstanceType = "string",
Weight = 0,
},
},
IntegrationBeanstalk = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkArgs
{
DeploymentPreferences = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs
{
AutomaticRoll = false,
BatchSizePercentage = 0,
GracePeriod = 0,
Strategy = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs
{
Action = "string",
ShouldDrainInstances = false,
},
},
EnvironmentId = "string",
ManagedActions = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkManagedActionsArgs
{
PlatformUpdate = new SpotInst.Aws.Inputs.ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs
{
PerformAt = "string",
TimeWindow = "string",
UpdateLevel = "string",
},
},
},
IntegrationCodedeploy = new SpotInst.Aws.Inputs.ElastigroupIntegrationCodedeployArgs
{
CleanupOnFailure = false,
DeploymentGroups = new[]
{
new SpotInst.Aws.Inputs.ElastigroupIntegrationCodedeployDeploymentGroupArgs
{
ApplicationName = "string",
DeploymentGroupName = "string",
},
},
TerminateInstanceOnFailure = false,
},
IntegrationDockerSwarm = new SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarmArgs
{
MasterHost = "string",
MasterPort = 0,
AutoscaleCooldown = 0,
AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarmAutoscaleDownArgs
{
EvaluationPeriods = 0,
MaxScaleDownPercentage = 0,
},
AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs
{
CpuPerUnit = 0,
MemoryPerUnit = 0,
NumOfUnits = 0,
},
AutoscaleIsEnabled = false,
},
IntegrationEcs = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsArgs
{
ClusterName = "string",
AutoscaleAttributes = new[]
{
new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsAutoscaleAttributeArgs
{
Key = "string",
Value = "string",
},
},
AutoscaleCooldown = 0,
AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsAutoscaleDownArgs
{
EvaluationPeriods = 0,
MaxScaleDownPercentage = 0,
},
AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsAutoscaleHeadroomArgs
{
CpuPerUnit = 0,
MemoryPerUnit = 0,
NumOfUnits = 0,
},
AutoscaleIsAutoConfig = false,
AutoscaleIsEnabled = false,
AutoscaleScaleDownNonServiceTasks = false,
Batch = new SpotInst.Aws.Inputs.ElastigroupIntegrationEcsBatchArgs
{
JobQueueNames = new[]
{
"string",
},
},
},
IntegrationGitlab = new SpotInst.Aws.Inputs.ElastigroupIntegrationGitlabArgs
{
Runner = new SpotInst.Aws.Inputs.ElastigroupIntegrationGitlabRunnerArgs
{
IsEnabled = false,
},
},
IntegrationKubernetes = new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesArgs
{
ApiServer = "string",
AutoscaleCooldown = 0,
AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesAutoscaleDownArgs
{
EvaluationPeriods = 0,
MaxScaleDownPercentage = 0,
},
AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs
{
CpuPerUnit = 0,
MemoryPerUnit = 0,
NumOfUnits = 0,
},
AutoscaleIsAutoConfig = false,
AutoscaleIsEnabled = false,
AutoscaleLabels = new[]
{
new SpotInst.Aws.Inputs.ElastigroupIntegrationKubernetesAutoscaleLabelArgs
{
Key = "string",
Value = "string",
},
},
ClusterIdentifier = "string",
IntegrationMode = "string",
Token = "string",
},
IntegrationMesosphere = new SpotInst.Aws.Inputs.ElastigroupIntegrationMesosphereArgs
{
ApiServer = "string",
},
IntegrationNomad = new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadArgs
{
MasterHost = "string",
MasterPort = 0,
AclToken = "string",
AutoscaleConstraints = new[]
{
new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadAutoscaleConstraintArgs
{
Key = "string",
Value = "string",
},
},
AutoscaleCooldown = 0,
AutoscaleDown = new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadAutoscaleDownArgs
{
EvaluationPeriods = 0,
},
AutoscaleHeadroom = new SpotInst.Aws.Inputs.ElastigroupIntegrationNomadAutoscaleHeadroomArgs
{
CpuPerUnit = 0,
MemoryPerUnit = 0,
NumOfUnits = 0,
},
AutoscaleIsEnabled = false,
},
IntegrationRancher = new SpotInst.Aws.Inputs.ElastigroupIntegrationRancherArgs
{
AccessKey = "string",
MasterHost = "string",
SecretKey = "string",
Version = "string",
},
IntegrationRoute53 = new SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53Args
{
Domains = new[]
{
new SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53DomainArgs
{
HostedZoneId = "string",
RecordSets = new[]
{
new SpotInst.Aws.Inputs.ElastigroupIntegrationRoute53DomainRecordSetArgs
{
Name = "string",
UsePublicDns = false,
UsePublicIp = false,
},
},
RecordSetType = "string",
SpotinstAcctId = "string",
},
},
},
Itfs = new[]
{
new SpotInst.Aws.Inputs.ElastigroupItfArgs
{
FixedTargetGroups = false,
LoadBalancers = new[]
{
new SpotInst.Aws.Inputs.ElastigroupItfLoadBalancerArgs
{
ListenerRules = new[]
{
new SpotInst.Aws.Inputs.ElastigroupItfLoadBalancerListenerRuleArgs
{
RuleArn = "string",
StaticTargetGroup = new SpotInst.Aws.Inputs.ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs
{
Arn = "string",
Percentage = 0,
},
},
},
LoadBalancerArn = "string",
},
},
TargetGroupConfigs = new[]
{
new SpotInst.Aws.Inputs.ElastigroupItfTargetGroupConfigArgs
{
Port = 0,
HealthCheckPath = "string",
VpcId = "string",
Protocol = "string",
Matchers = new[]
{
new SpotInst.Aws.Inputs.ElastigroupItfTargetGroupConfigMatcherArgs
{
GrpcCode = "string",
HttpCode = "string",
},
},
HealthyThresholdCount = 0,
HealthCheckIntervalSeconds = 0,
HealthCheckTimeoutSeconds = 0,
HealthCheckProtocol = "string",
ProtocolVersion = "string",
Tags = new[]
{
new SpotInst.Aws.Inputs.ElastigroupItfTargetGroupConfigTagArgs
{
TagKey = "string",
TagValue = "string",
},
},
UnhealthyThresholdCount = 0,
HealthCheckPort = "string",
},
},
WeightStrategy = "string",
DefaultStaticTargetGroup = new SpotInst.Aws.Inputs.ElastigroupItfDefaultStaticTargetGroupArgs
{
Arn = "string",
Percentage = 0,
},
MigrationHealthinessThreshold = 0,
},
},
KeyName = "string",
LifetimePeriod = "string",
Logging = new SpotInst.Aws.Inputs.ElastigroupLoggingArgs
{
Export = new SpotInst.Aws.Inputs.ElastigroupLoggingExportArgs
{
S3s = new[]
{
new SpotInst.Aws.Inputs.ElastigroupLoggingExportS3Args
{
Id = "string",
},
},
},
},
MaxSize = 0,
MetadataOptions = new SpotInst.Aws.Inputs.ElastigroupMetadataOptionsArgs
{
HttpTokens = "string",
HttpPutResponseHopLimit = 0,
InstanceMetadataTags = "string",
},
MinSize = 0,
MinimumInstanceLifetime = 0,
MultipleMetrics = new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsArgs
{
Expressions = new[]
{
new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsExpressionArgs
{
Expression = "string",
Name = "string",
},
},
Metrics = new[]
{
new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsMetricArgs
{
MetricName = "string",
Name = "string",
Namespace = "string",
Dimensions = new[]
{
new SpotInst.Aws.Inputs.ElastigroupMultipleMetricsMetricDimensionArgs
{
Name = "string",
Value = "string",
},
},
ExtendedStatistic = "string",
Statistic = "string",
Unit = "string",
},
},
},
Name = "string",
NetworkInterfaces = new[]
{
new SpotInst.Aws.Inputs.ElastigroupNetworkInterfaceArgs
{
DeviceIndex = "string",
AssociateIpv6Address = false,
AssociatePublicIpAddress = false,
DeleteOnTermination = false,
Description = "string",
NetworkInterfaceId = "string",
PrivateIpAddress = "string",
SecondaryPrivateIpAddressCount = "string",
},
},
OnDemandTypes = new[]
{
"string",
},
OndemandCount = 0,
PersistBlockDevices = false,
PersistPrivateIp = false,
PersistRootDevice = false,
PlacementTenancy = "string",
PreferredAvailabilityZones = new[]
{
"string",
},
PrivateIps = new[]
{
"string",
},
Region = "string",
ResourceRequirements = new[]
{
new SpotInst.Aws.Inputs.ElastigroupResourceRequirementArgs
{
RequiredMemoryMaximum = 0,
RequiredMemoryMinimum = 0,
RequiredVcpuMaximum = 0,
RequiredVcpuMinimum = 0,
ExcludedInstanceFamilies = new[]
{
"string",
},
ExcludedInstanceGenerations = new[]
{
"string",
},
ExcludedInstanceTypes = new[]
{
"string",
},
RequiredGpuMaximum = 0,
RequiredGpuMinimum = 0,
},
},
ResourceTagSpecifications = new[]
{
new SpotInst.Aws.Inputs.ElastigroupResourceTagSpecificationArgs
{
ShouldTagAmis = false,
ShouldTagEnis = false,
ShouldTagSnapshots = false,
ShouldTagVolumes = false,
},
},
RestrictSingleAz = false,
RevertToSpot = new SpotInst.Aws.Inputs.ElastigroupRevertToSpotArgs
{
PerformAt = "string",
TimeWindows = new[]
{
"string",
},
},
ScalingDownPolicies = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyArgs
{
MetricName = "string",
PolicyName = "string",
Namespace = "string",
Minimum = "string",
Operator = "string",
IsEnabled = false,
MaxTargetCapacity = "string",
Maximum = "string",
Dimensions = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyDimensionArgs
{
Name = "string",
Value = "string",
},
},
MinTargetCapacity = "string",
ActionType = "string",
Cooldown = 0,
EvaluationPeriods = 0,
Period = 0,
Adjustment = "string",
Source = "string",
Statistic = "string",
StepAdjustments = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyStepAdjustmentArgs
{
Action = new SpotInst.Aws.Inputs.ElastigroupScalingDownPolicyStepAdjustmentActionArgs
{
Type = "string",
Adjustment = "string",
MaxTargetCapacity = "string",
Maximum = "string",
MinTargetCapacity = "string",
Minimum = "string",
Target = "string",
},
Threshold = 0,
},
},
Target = "string",
Threshold = 0,
Unit = "string",
},
},
ScalingStrategies = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingStrategyArgs
{
TerminateAtEndOfBillingHour = false,
TerminationPolicy = "string",
},
},
ScalingTargetPolicies = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingTargetPolicyArgs
{
MetricName = "string",
Target = 0,
PolicyName = "string",
Namespace = "string",
Period = 0,
MaxCapacityPerScale = "string",
Cooldown = 0,
EvaluationPeriods = 0,
PredictiveMode = "string",
Source = "string",
Statistic = "string",
Dimensions = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingTargetPolicyDimensionArgs
{
Name = "string",
Value = "string",
},
},
Unit = "string",
},
},
ScalingUpPolicies = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyArgs
{
MetricName = "string",
PolicyName = "string",
Namespace = "string",
Minimum = "string",
Operator = "string",
IsEnabled = false,
MaxTargetCapacity = "string",
Maximum = "string",
Dimensions = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyDimensionArgs
{
Name = "string",
Value = "string",
},
},
MinTargetCapacity = "string",
ActionType = "string",
Cooldown = 0,
EvaluationPeriods = 0,
Period = 0,
Adjustment = "string",
Source = "string",
Statistic = "string",
StepAdjustments = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyStepAdjustmentArgs
{
Action = new SpotInst.Aws.Inputs.ElastigroupScalingUpPolicyStepAdjustmentActionArgs
{
Type = "string",
Adjustment = "string",
MaxTargetCapacity = "string",
Maximum = "string",
MinTargetCapacity = "string",
Minimum = "string",
Target = "string",
},
Threshold = 0,
},
},
Target = "string",
Threshold = 0,
Unit = "string",
},
},
ScheduledTasks = new[]
{
new SpotInst.Aws.Inputs.ElastigroupScheduledTaskArgs
{
TaskType = "string",
IsEnabled = false,
MinCapacity = "string",
CronExpression = "string",
Frequency = "string",
GracePeriod = "string",
Adjustment = "string",
MaxCapacity = "string",
BatchSizePercentage = "string",
ScaleMaxCapacity = "string",
ScaleMinCapacity = "string",
ScaleTargetCapacity = "string",
StartTime = "string",
TargetCapacity = "string",
AdjustmentPercentage = "string",
},
},
ShutdownScript = "string",
Signals = new[]
{
new SpotInst.Aws.Inputs.ElastigroupSignalArgs
{
Name = "string",
Timeout = 0,
},
},
SpotPercentage = 0,
StatefulDeallocation = new SpotInst.Aws.Inputs.ElastigroupStatefulDeallocationArgs
{
ShouldDeleteImages = false,
ShouldDeleteNetworkInterfaces = false,
ShouldDeleteSnapshots = false,
ShouldDeleteVolumes = false,
},
StatefulInstanceActions = new[]
{
new SpotInst.Aws.Inputs.ElastigroupStatefulInstanceActionArgs
{
StatefulInstanceId = "string",
Type = "string",
},
},
SubnetIds = new[]
{
"string",
},
Tags = new[]
{
new SpotInst.Aws.Inputs.ElastigroupTagArgs
{
Key = "string",
Value = "string",
},
},
TargetGroupArns = new[]
{
"string",
},
UpdatePolicy = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyArgs
{
ShouldResumeStateful = false,
ShouldRoll = false,
AutoApplyTags = false,
RollConfig = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigArgs
{
BatchSizePercentage = 0,
GracePeriod = 0,
HealthCheckType = "string",
Strategy = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigStrategyArgs
{
Action = "string",
BatchMinHealthyPercentage = 0,
OnFailure = new SpotInst.Aws.Inputs.ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs
{
ActionType = "string",
BatchNum = 0,
DrainingTimeout = 0,
ShouldDecrementTargetCapacity = false,
ShouldHandleAllBatches = false,
},
ShouldDrainInstances = false,
},
WaitForRollPercentage = 0,
WaitForRollTimeout = 0,
},
},
UserData = "string",
UtilizeCommitments = false,
UtilizeReservedInstances = false,
WaitForCapacity = 0,
WaitForCapacityTimeout = 0,
});
example, err := aws.NewElastigroup(ctx, "elastigroupResource", &aws.ElastigroupArgs{
FallbackToOndemand: pulumi.Bool(false),
Orientation: pulumi.String("string"),
Product: pulumi.String("string"),
SecurityGroups: pulumi.StringArray{
pulumi.String("string"),
},
AutoHealing: pulumi.Bool(false),
AvailabilityZones: pulumi.StringArray{
pulumi.String("string"),
},
BlockDevicesMode: pulumi.String("string"),
CapacityUnit: pulumi.String("string"),
ConsiderOdPricing: pulumi.Bool(false),
CpuCredits: pulumi.String("string"),
CpuOptions: &aws.ElastigroupCpuOptionsArgs{
ThreadsPerCore: pulumi.Int(0),
},
Description: pulumi.String("string"),
DesiredCapacity: pulumi.Int(0),
DrainingTimeout: pulumi.Int(0),
EbsBlockDevices: aws.ElastigroupEbsBlockDeviceArray{
&aws.ElastigroupEbsBlockDeviceArgs{
DeviceName: pulumi.String("string"),
DeleteOnTermination: pulumi.Bool(false),
DynamicIops: &aws.ElastigroupEbsBlockDeviceDynamicIopsArgs{
BaseSize: pulumi.Int(0),
Resource: pulumi.String("string"),
SizePerResourceUnit: pulumi.Int(0),
},
DynamicVolumeSize: &aws.ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs{
BaseSize: pulumi.Int(0),
Resource: pulumi.String("string"),
SizePerResourceUnit: pulumi.Int(0),
},
Encrypted: pulumi.Bool(false),
Iops: pulumi.Int(0),
KmsKeyId: pulumi.String("string"),
SnapshotId: pulumi.String("string"),
Throughput: pulumi.Int(0),
VolumeSize: pulumi.Int(0),
VolumeType: pulumi.String("string"),
},
},
EbsOptimized: pulumi.Bool(false),
ElasticIps: pulumi.StringArray{
pulumi.String("string"),
},
ElasticLoadBalancers: pulumi.StringArray{
pulumi.String("string"),
},
EnableMonitoring: pulumi.Bool(false),
EphemeralBlockDevices: aws.ElastigroupEphemeralBlockDeviceArray{
&aws.ElastigroupEphemeralBlockDeviceArgs{
DeviceName: pulumi.String("string"),
VirtualName: pulumi.String("string"),
},
},
HealthCheckGracePeriod: pulumi.Int(0),
HealthCheckType: pulumi.String("string"),
HealthCheckUnhealthyDurationBeforeReplacement: pulumi.Int(0),
IamInstanceProfile: pulumi.String("string"),
ImageId: pulumi.String("string"),
Images: aws.ElastigroupImageArray{
&aws.ElastigroupImageArgs{
Images: aws.ElastigroupImageImageArray{
&aws.ElastigroupImageImageArgs{
Id: pulumi.String("string"),
},
},
},
},
ImmediateOdRecoverThreshold: pulumi.Int(0),
InstanceTypesOndemand: pulumi.String("string"),
InstanceTypesPreferredSpots: pulumi.StringArray{
pulumi.String("string"),
},
InstanceTypesSpots: pulumi.StringArray{
pulumi.String("string"),
},
InstanceTypesWeights: aws.ElastigroupInstanceTypesWeightArray{
&aws.ElastigroupInstanceTypesWeightArgs{
InstanceType: pulumi.String("string"),
Weight: pulumi.Int(0),
},
},
IntegrationBeanstalk: &aws.ElastigroupIntegrationBeanstalkArgs{
DeploymentPreferences: &aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs{
AutomaticRoll: pulumi.Bool(false),
BatchSizePercentage: pulumi.Int(0),
GracePeriod: pulumi.Int(0),
Strategy: &aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs{
Action: pulumi.String("string"),
ShouldDrainInstances: pulumi.Bool(false),
},
},
EnvironmentId: pulumi.String("string"),
ManagedActions: &aws.ElastigroupIntegrationBeanstalkManagedActionsArgs{
PlatformUpdate: &aws.ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs{
PerformAt: pulumi.String("string"),
TimeWindow: pulumi.String("string"),
UpdateLevel: pulumi.String("string"),
},
},
},
IntegrationCodedeploy: &aws.ElastigroupIntegrationCodedeployArgs{
CleanupOnFailure: pulumi.Bool(false),
DeploymentGroups: aws.ElastigroupIntegrationCodedeployDeploymentGroupArray{
&aws.ElastigroupIntegrationCodedeployDeploymentGroupArgs{
ApplicationName: pulumi.String("string"),
DeploymentGroupName: pulumi.String("string"),
},
},
TerminateInstanceOnFailure: pulumi.Bool(false),
},
IntegrationDockerSwarm: &aws.ElastigroupIntegrationDockerSwarmArgs{
MasterHost: pulumi.String("string"),
MasterPort: pulumi.Int(0),
AutoscaleCooldown: pulumi.Int(0),
AutoscaleDown: &aws.ElastigroupIntegrationDockerSwarmAutoscaleDownArgs{
EvaluationPeriods: pulumi.Int(0),
MaxScaleDownPercentage: pulumi.Float64(0),
},
AutoscaleHeadroom: &aws.ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs{
CpuPerUnit: pulumi.Int(0),
MemoryPerUnit: pulumi.Int(0),
NumOfUnits: pulumi.Int(0),
},
AutoscaleIsEnabled: pulumi.Bool(false),
},
IntegrationEcs: &aws.ElastigroupIntegrationEcsArgs{
ClusterName: pulumi.String("string"),
AutoscaleAttributes: aws.ElastigroupIntegrationEcsAutoscaleAttributeArray{
&aws.ElastigroupIntegrationEcsAutoscaleAttributeArgs{
Key: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
AutoscaleCooldown: pulumi.Int(0),
AutoscaleDown: &aws.ElastigroupIntegrationEcsAutoscaleDownArgs{
EvaluationPeriods: pulumi.Int(0),
MaxScaleDownPercentage: pulumi.Float64(0),
},
AutoscaleHeadroom: &aws.ElastigroupIntegrationEcsAutoscaleHeadroomArgs{
CpuPerUnit: pulumi.Int(0),
MemoryPerUnit: pulumi.Int(0),
NumOfUnits: pulumi.Int(0),
},
AutoscaleIsAutoConfig: pulumi.Bool(false),
AutoscaleIsEnabled: pulumi.Bool(false),
AutoscaleScaleDownNonServiceTasks: pulumi.Bool(false),
Batch: &aws.ElastigroupIntegrationEcsBatchArgs{
JobQueueNames: pulumi.StringArray{
pulumi.String("string"),
},
},
},
IntegrationGitlab: &aws.ElastigroupIntegrationGitlabArgs{
Runner: &aws.ElastigroupIntegrationGitlabRunnerArgs{
IsEnabled: pulumi.Bool(false),
},
},
IntegrationKubernetes: &aws.ElastigroupIntegrationKubernetesArgs{
ApiServer: pulumi.String("string"),
AutoscaleCooldown: pulumi.Int(0),
AutoscaleDown: &aws.ElastigroupIntegrationKubernetesAutoscaleDownArgs{
EvaluationPeriods: pulumi.Int(0),
MaxScaleDownPercentage: pulumi.Float64(0),
},
AutoscaleHeadroom: &aws.ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs{
CpuPerUnit: pulumi.Int(0),
MemoryPerUnit: pulumi.Int(0),
NumOfUnits: pulumi.Int(0),
},
AutoscaleIsAutoConfig: pulumi.Bool(false),
AutoscaleIsEnabled: pulumi.Bool(false),
AutoscaleLabels: aws.ElastigroupIntegrationKubernetesAutoscaleLabelArray{
&aws.ElastigroupIntegrationKubernetesAutoscaleLabelArgs{
Key: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
ClusterIdentifier: pulumi.String("string"),
IntegrationMode: pulumi.String("string"),
Token: pulumi.String("string"),
},
IntegrationMesosphere: &aws.ElastigroupIntegrationMesosphereArgs{
ApiServer: pulumi.String("string"),
},
IntegrationNomad: &aws.ElastigroupIntegrationNomadArgs{
MasterHost: pulumi.String("string"),
MasterPort: pulumi.Int(0),
AclToken: pulumi.String("string"),
AutoscaleConstraints: aws.ElastigroupIntegrationNomadAutoscaleConstraintArray{
&aws.ElastigroupIntegrationNomadAutoscaleConstraintArgs{
Key: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
AutoscaleCooldown: pulumi.Int(0),
AutoscaleDown: &aws.ElastigroupIntegrationNomadAutoscaleDownArgs{
EvaluationPeriods: pulumi.Int(0),
},
AutoscaleHeadroom: &aws.ElastigroupIntegrationNomadAutoscaleHeadroomArgs{
CpuPerUnit: pulumi.Int(0),
MemoryPerUnit: pulumi.Int(0),
NumOfUnits: pulumi.Int(0),
},
AutoscaleIsEnabled: pulumi.Bool(false),
},
IntegrationRancher: &aws.ElastigroupIntegrationRancherArgs{
AccessKey: pulumi.String("string"),
MasterHost: pulumi.String("string"),
SecretKey: pulumi.String("string"),
Version: pulumi.String("string"),
},
IntegrationRoute53: &aws.ElastigroupIntegrationRoute53Args{
Domains: aws.ElastigroupIntegrationRoute53DomainArray{
&aws.ElastigroupIntegrationRoute53DomainArgs{
HostedZoneId: pulumi.String("string"),
RecordSets: aws.ElastigroupIntegrationRoute53DomainRecordSetArray{
&aws.ElastigroupIntegrationRoute53DomainRecordSetArgs{
Name: pulumi.String("string"),
UsePublicDns: pulumi.Bool(false),
UsePublicIp: pulumi.Bool(false),
},
},
RecordSetType: pulumi.String("string"),
SpotinstAcctId: pulumi.String("string"),
},
},
},
Itfs: aws.ElastigroupItfArray{
&aws.ElastigroupItfArgs{
FixedTargetGroups: pulumi.Bool(false),
LoadBalancers: aws.ElastigroupItfLoadBalancerArray{
&aws.ElastigroupItfLoadBalancerArgs{
ListenerRules: aws.ElastigroupItfLoadBalancerListenerRuleArray{
&aws.ElastigroupItfLoadBalancerListenerRuleArgs{
RuleArn: pulumi.String("string"),
StaticTargetGroup: &aws.ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs{
Arn: pulumi.String("string"),
Percentage: pulumi.Float64(0),
},
},
},
LoadBalancerArn: pulumi.String("string"),
},
},
TargetGroupConfigs: aws.ElastigroupItfTargetGroupConfigArray{
&aws.ElastigroupItfTargetGroupConfigArgs{
Port: pulumi.Int(0),
HealthCheckPath: pulumi.String("string"),
VpcId: pulumi.String("string"),
Protocol: pulumi.String("string"),
Matchers: aws.ElastigroupItfTargetGroupConfigMatcherArray{
&aws.ElastigroupItfTargetGroupConfigMatcherArgs{
GrpcCode: pulumi.String("string"),
HttpCode: pulumi.String("string"),
},
},
HealthyThresholdCount: pulumi.Int(0),
HealthCheckIntervalSeconds: pulumi.Int(0),
HealthCheckTimeoutSeconds: pulumi.Int(0),
HealthCheckProtocol: pulumi.String("string"),
ProtocolVersion: pulumi.String("string"),
Tags: aws.ElastigroupItfTargetGroupConfigTagArray{
&aws.ElastigroupItfTargetGroupConfigTagArgs{
TagKey: pulumi.String("string"),
TagValue: pulumi.String("string"),
},
},
UnhealthyThresholdCount: pulumi.Int(0),
HealthCheckPort: pulumi.String("string"),
},
},
WeightStrategy: pulumi.String("string"),
DefaultStaticTargetGroup: &aws.ElastigroupItfDefaultStaticTargetGroupArgs{
Arn: pulumi.String("string"),
Percentage: pulumi.Float64(0),
},
MigrationHealthinessThreshold: pulumi.Int(0),
},
},
KeyName: pulumi.String("string"),
LifetimePeriod: pulumi.String("string"),
Logging: &aws.ElastigroupLoggingArgs{
Export: &aws.ElastigroupLoggingExportArgs{
S3s: aws.ElastigroupLoggingExportS3Array{
&aws.ElastigroupLoggingExportS3Args{
Id: pulumi.String("string"),
},
},
},
},
MaxSize: pulumi.Int(0),
MetadataOptions: &aws.ElastigroupMetadataOptionsArgs{
HttpTokens: pulumi.String("string"),
HttpPutResponseHopLimit: pulumi.Int(0),
InstanceMetadataTags: pulumi.String("string"),
},
MinSize: pulumi.Int(0),
MinimumInstanceLifetime: pulumi.Int(0),
MultipleMetrics: &aws.ElastigroupMultipleMetricsArgs{
Expressions: aws.ElastigroupMultipleMetricsExpressionArray{
&aws.ElastigroupMultipleMetricsExpressionArgs{
Expression: pulumi.String("string"),
Name: pulumi.String("string"),
},
},
Metrics: aws.ElastigroupMultipleMetricsMetricArray{
&aws.ElastigroupMultipleMetricsMetricArgs{
MetricName: pulumi.String("string"),
Name: pulumi.String("string"),
Namespace: pulumi.String("string"),
Dimensions: aws.ElastigroupMultipleMetricsMetricDimensionArray{
&aws.ElastigroupMultipleMetricsMetricDimensionArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
ExtendedStatistic: pulumi.String("string"),
Statistic: pulumi.String("string"),
Unit: pulumi.String("string"),
},
},
},
Name: pulumi.String("string"),
NetworkInterfaces: aws.ElastigroupNetworkInterfaceArray{
&aws.ElastigroupNetworkInterfaceArgs{
DeviceIndex: pulumi.String("string"),
AssociateIpv6Address: pulumi.Bool(false),
AssociatePublicIpAddress: pulumi.Bool(false),
DeleteOnTermination: pulumi.Bool(false),
Description: pulumi.String("string"),
NetworkInterfaceId: pulumi.String("string"),
PrivateIpAddress: pulumi.String("string"),
SecondaryPrivateIpAddressCount: pulumi.String("string"),
},
},
OnDemandTypes: pulumi.StringArray{
pulumi.String("string"),
},
OndemandCount: pulumi.Int(0),
PersistBlockDevices: pulumi.Bool(false),
PersistPrivateIp: pulumi.Bool(false),
PersistRootDevice: pulumi.Bool(false),
PlacementTenancy: pulumi.String("string"),
PreferredAvailabilityZones: pulumi.StringArray{
pulumi.String("string"),
},
PrivateIps: pulumi.StringArray{
pulumi.String("string"),
},
Region: pulumi.String("string"),
ResourceRequirements: aws.ElastigroupResourceRequirementArray{
&aws.ElastigroupResourceRequirementArgs{
RequiredMemoryMaximum: pulumi.Int(0),
RequiredMemoryMinimum: pulumi.Int(0),
RequiredVcpuMaximum: pulumi.Int(0),
RequiredVcpuMinimum: pulumi.Int(0),
ExcludedInstanceFamilies: pulumi.StringArray{
pulumi.String("string"),
},
ExcludedInstanceGenerations: pulumi.StringArray{
pulumi.String("string"),
},
ExcludedInstanceTypes: pulumi.StringArray{
pulumi.String("string"),
},
RequiredGpuMaximum: pulumi.Int(0),
RequiredGpuMinimum: pulumi.Int(0),
},
},
ResourceTagSpecifications: aws.ElastigroupResourceTagSpecificationArray{
&aws.ElastigroupResourceTagSpecificationArgs{
ShouldTagAmis: pulumi.Bool(false),
ShouldTagEnis: pulumi.Bool(false),
ShouldTagSnapshots: pulumi.Bool(false),
ShouldTagVolumes: pulumi.Bool(false),
},
},
RestrictSingleAz: pulumi.Bool(false),
RevertToSpot: &aws.ElastigroupRevertToSpotArgs{
PerformAt: pulumi.String("string"),
TimeWindows: pulumi.StringArray{
pulumi.String("string"),
},
},
ScalingDownPolicies: aws.ElastigroupScalingDownPolicyArray{
&aws.ElastigroupScalingDownPolicyArgs{
MetricName: pulumi.String("string"),
PolicyName: pulumi.String("string"),
Namespace: pulumi.String("string"),
Minimum: pulumi.String("string"),
Operator: pulumi.String("string"),
IsEnabled: pulumi.Bool(false),
MaxTargetCapacity: pulumi.String("string"),
Maximum: pulumi.String("string"),
Dimensions: aws.ElastigroupScalingDownPolicyDimensionArray{
&aws.ElastigroupScalingDownPolicyDimensionArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
MinTargetCapacity: pulumi.String("string"),
ActionType: pulumi.String("string"),
Cooldown: pulumi.Int(0),
EvaluationPeriods: pulumi.Int(0),
Period: pulumi.Int(0),
Adjustment: pulumi.String("string"),
Source: pulumi.String("string"),
Statistic: pulumi.String("string"),
StepAdjustments: aws.ElastigroupScalingDownPolicyStepAdjustmentArray{
&aws.ElastigroupScalingDownPolicyStepAdjustmentArgs{
Action: &aws.ElastigroupScalingDownPolicyStepAdjustmentActionArgs{
Type: pulumi.String("string"),
Adjustment: pulumi.String("string"),
MaxTargetCapacity: pulumi.String("string"),
Maximum: pulumi.String("string"),
MinTargetCapacity: pulumi.String("string"),
Minimum: pulumi.String("string"),
Target: pulumi.String("string"),
},
Threshold: pulumi.Int(0),
},
},
Target: pulumi.String("string"),
Threshold: pulumi.Float64(0),
Unit: pulumi.String("string"),
},
},
ScalingStrategies: aws.ElastigroupScalingStrategyArray{
&aws.ElastigroupScalingStrategyArgs{
TerminateAtEndOfBillingHour: pulumi.Bool(false),
TerminationPolicy: pulumi.String("string"),
},
},
ScalingTargetPolicies: aws.ElastigroupScalingTargetPolicyArray{
&aws.ElastigroupScalingTargetPolicyArgs{
MetricName: pulumi.String("string"),
Target: pulumi.Float64(0),
PolicyName: pulumi.String("string"),
Namespace: pulumi.String("string"),
Period: pulumi.Int(0),
MaxCapacityPerScale: pulumi.String("string"),
Cooldown: pulumi.Int(0),
EvaluationPeriods: pulumi.Int(0),
PredictiveMode: pulumi.String("string"),
Source: pulumi.String("string"),
Statistic: pulumi.String("string"),
Dimensions: aws.ElastigroupScalingTargetPolicyDimensionArray{
&aws.ElastigroupScalingTargetPolicyDimensionArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
Unit: pulumi.String("string"),
},
},
ScalingUpPolicies: aws.ElastigroupScalingUpPolicyArray{
&aws.ElastigroupScalingUpPolicyArgs{
MetricName: pulumi.String("string"),
PolicyName: pulumi.String("string"),
Namespace: pulumi.String("string"),
Minimum: pulumi.String("string"),
Operator: pulumi.String("string"),
IsEnabled: pulumi.Bool(false),
MaxTargetCapacity: pulumi.String("string"),
Maximum: pulumi.String("string"),
Dimensions: aws.ElastigroupScalingUpPolicyDimensionArray{
&aws.ElastigroupScalingUpPolicyDimensionArgs{
Name: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
MinTargetCapacity: pulumi.String("string"),
ActionType: pulumi.String("string"),
Cooldown: pulumi.Int(0),
EvaluationPeriods: pulumi.Int(0),
Period: pulumi.Int(0),
Adjustment: pulumi.String("string"),
Source: pulumi.String("string"),
Statistic: pulumi.String("string"),
StepAdjustments: aws.ElastigroupScalingUpPolicyStepAdjustmentArray{
&aws.ElastigroupScalingUpPolicyStepAdjustmentArgs{
Action: &aws.ElastigroupScalingUpPolicyStepAdjustmentActionArgs{
Type: pulumi.String("string"),
Adjustment: pulumi.String("string"),
MaxTargetCapacity: pulumi.String("string"),
Maximum: pulumi.String("string"),
MinTargetCapacity: pulumi.String("string"),
Minimum: pulumi.String("string"),
Target: pulumi.String("string"),
},
Threshold: pulumi.Int(0),
},
},
Target: pulumi.String("string"),
Threshold: pulumi.Float64(0),
Unit: pulumi.String("string"),
},
},
ScheduledTasks: aws.ElastigroupScheduledTaskArray{
&aws.ElastigroupScheduledTaskArgs{
TaskType: pulumi.String("string"),
IsEnabled: pulumi.Bool(false),
MinCapacity: pulumi.String("string"),
CronExpression: pulumi.String("string"),
Frequency: pulumi.String("string"),
GracePeriod: pulumi.String("string"),
Adjustment: pulumi.String("string"),
MaxCapacity: pulumi.String("string"),
BatchSizePercentage: pulumi.String("string"),
ScaleMaxCapacity: pulumi.String("string"),
ScaleMinCapacity: pulumi.String("string"),
ScaleTargetCapacity: pulumi.String("string"),
StartTime: pulumi.String("string"),
TargetCapacity: pulumi.String("string"),
AdjustmentPercentage: pulumi.String("string"),
},
},
ShutdownScript: pulumi.String("string"),
Signals: aws.ElastigroupSignalArray{
&aws.ElastigroupSignalArgs{
Name: pulumi.String("string"),
Timeout: pulumi.Int(0),
},
},
SpotPercentage: pulumi.Int(0),
StatefulDeallocation: &aws.ElastigroupStatefulDeallocationArgs{
ShouldDeleteImages: pulumi.Bool(false),
ShouldDeleteNetworkInterfaces: pulumi.Bool(false),
ShouldDeleteSnapshots: pulumi.Bool(false),
ShouldDeleteVolumes: pulumi.Bool(false),
},
StatefulInstanceActions: aws.ElastigroupStatefulInstanceActionArray{
&aws.ElastigroupStatefulInstanceActionArgs{
StatefulInstanceId: pulumi.String("string"),
Type: pulumi.String("string"),
},
},
SubnetIds: pulumi.StringArray{
pulumi.String("string"),
},
Tags: aws.ElastigroupTagArray{
&aws.ElastigroupTagArgs{
Key: pulumi.String("string"),
Value: pulumi.String("string"),
},
},
TargetGroupArns: pulumi.StringArray{
pulumi.String("string"),
},
UpdatePolicy: &aws.ElastigroupUpdatePolicyArgs{
ShouldResumeStateful: pulumi.Bool(false),
ShouldRoll: pulumi.Bool(false),
AutoApplyTags: pulumi.Bool(false),
RollConfig: &aws.ElastigroupUpdatePolicyRollConfigArgs{
BatchSizePercentage: pulumi.Int(0),
GracePeriod: pulumi.Int(0),
HealthCheckType: pulumi.String("string"),
Strategy: &aws.ElastigroupUpdatePolicyRollConfigStrategyArgs{
Action: pulumi.String("string"),
BatchMinHealthyPercentage: pulumi.Int(0),
OnFailure: &aws.ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs{
ActionType: pulumi.String("string"),
BatchNum: pulumi.Int(0),
DrainingTimeout: pulumi.Int(0),
ShouldDecrementTargetCapacity: pulumi.Bool(false),
ShouldHandleAllBatches: pulumi.Bool(false),
},
ShouldDrainInstances: pulumi.Bool(false),
},
WaitForRollPercentage: pulumi.Float64(0),
WaitForRollTimeout: pulumi.Int(0),
},
},
UserData: pulumi.String("string"),
UtilizeCommitments: pulumi.Bool(false),
UtilizeReservedInstances: pulumi.Bool(false),
WaitForCapacity: pulumi.Int(0),
WaitForCapacityTimeout: pulumi.Int(0),
})
var elastigroupResource = new Elastigroup("elastigroupResource", ElastigroupArgs.builder()
.fallbackToOndemand(false)
.orientation("string")
.product("string")
.securityGroups("string")
.autoHealing(false)
.availabilityZones("string")
.blockDevicesMode("string")
.capacityUnit("string")
.considerOdPricing(false)
.cpuCredits("string")
.cpuOptions(ElastigroupCpuOptionsArgs.builder()
.threadsPerCore(0)
.build())
.description("string")
.desiredCapacity(0)
.drainingTimeout(0)
.ebsBlockDevices(ElastigroupEbsBlockDeviceArgs.builder()
.deviceName("string")
.deleteOnTermination(false)
.dynamicIops(ElastigroupEbsBlockDeviceDynamicIopsArgs.builder()
.baseSize(0)
.resource("string")
.sizePerResourceUnit(0)
.build())
.dynamicVolumeSize(ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs.builder()
.baseSize(0)
.resource("string")
.sizePerResourceUnit(0)
.build())
.encrypted(false)
.iops(0)
.kmsKeyId("string")
.snapshotId("string")
.throughput(0)
.volumeSize(0)
.volumeType("string")
.build())
.ebsOptimized(false)
.elasticIps("string")
.elasticLoadBalancers("string")
.enableMonitoring(false)
.ephemeralBlockDevices(ElastigroupEphemeralBlockDeviceArgs.builder()
.deviceName("string")
.virtualName("string")
.build())
.healthCheckGracePeriod(0)
.healthCheckType("string")
.healthCheckUnhealthyDurationBeforeReplacement(0)
.iamInstanceProfile("string")
.imageId("string")
.images(ElastigroupImageArgs.builder()
.images(ElastigroupImageImageArgs.builder()
.id("string")
.build())
.build())
.immediateOdRecoverThreshold(0)
.instanceTypesOndemand("string")
.instanceTypesPreferredSpots("string")
.instanceTypesSpots("string")
.instanceTypesWeights(ElastigroupInstanceTypesWeightArgs.builder()
.instanceType("string")
.weight(0)
.build())
.integrationBeanstalk(ElastigroupIntegrationBeanstalkArgs.builder()
.deploymentPreferences(ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs.builder()
.automaticRoll(false)
.batchSizePercentage(0)
.gracePeriod(0)
.strategy(ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs.builder()
.action("string")
.shouldDrainInstances(false)
.build())
.build())
.environmentId("string")
.managedActions(ElastigroupIntegrationBeanstalkManagedActionsArgs.builder()
.platformUpdate(ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs.builder()
.performAt("string")
.timeWindow("string")
.updateLevel("string")
.build())
.build())
.build())
.integrationCodedeploy(ElastigroupIntegrationCodedeployArgs.builder()
.cleanupOnFailure(false)
.deploymentGroups(ElastigroupIntegrationCodedeployDeploymentGroupArgs.builder()
.applicationName("string")
.deploymentGroupName("string")
.build())
.terminateInstanceOnFailure(false)
.build())
.integrationDockerSwarm(ElastigroupIntegrationDockerSwarmArgs.builder()
.masterHost("string")
.masterPort(0)
.autoscaleCooldown(0)
.autoscaleDown(ElastigroupIntegrationDockerSwarmAutoscaleDownArgs.builder()
.evaluationPeriods(0)
.maxScaleDownPercentage(0)
.build())
.autoscaleHeadroom(ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs.builder()
.cpuPerUnit(0)
.memoryPerUnit(0)
.numOfUnits(0)
.build())
.autoscaleIsEnabled(false)
.build())
.integrationEcs(ElastigroupIntegrationEcsArgs.builder()
.clusterName("string")
.autoscaleAttributes(ElastigroupIntegrationEcsAutoscaleAttributeArgs.builder()
.key("string")
.value("string")
.build())
.autoscaleCooldown(0)
.autoscaleDown(ElastigroupIntegrationEcsAutoscaleDownArgs.builder()
.evaluationPeriods(0)
.maxScaleDownPercentage(0)
.build())
.autoscaleHeadroom(ElastigroupIntegrationEcsAutoscaleHeadroomArgs.builder()
.cpuPerUnit(0)
.memoryPerUnit(0)
.numOfUnits(0)
.build())
.autoscaleIsAutoConfig(false)
.autoscaleIsEnabled(false)
.autoscaleScaleDownNonServiceTasks(false)
.batch(ElastigroupIntegrationEcsBatchArgs.builder()
.jobQueueNames("string")
.build())
.build())
.integrationGitlab(ElastigroupIntegrationGitlabArgs.builder()
.runner(ElastigroupIntegrationGitlabRunnerArgs.builder()
.isEnabled(false)
.build())
.build())
.integrationKubernetes(ElastigroupIntegrationKubernetesArgs.builder()
.apiServer("string")
.autoscaleCooldown(0)
.autoscaleDown(ElastigroupIntegrationKubernetesAutoscaleDownArgs.builder()
.evaluationPeriods(0)
.maxScaleDownPercentage(0)
.build())
.autoscaleHeadroom(ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs.builder()
.cpuPerUnit(0)
.memoryPerUnit(0)
.numOfUnits(0)
.build())
.autoscaleIsAutoConfig(false)
.autoscaleIsEnabled(false)
.autoscaleLabels(ElastigroupIntegrationKubernetesAutoscaleLabelArgs.builder()
.key("string")
.value("string")
.build())
.clusterIdentifier("string")
.integrationMode("string")
.token("string")
.build())
.integrationMesosphere(ElastigroupIntegrationMesosphereArgs.builder()
.apiServer("string")
.build())
.integrationNomad(ElastigroupIntegrationNomadArgs.builder()
.masterHost("string")
.masterPort(0)
.aclToken("string")
.autoscaleConstraints(ElastigroupIntegrationNomadAutoscaleConstraintArgs.builder()
.key("string")
.value("string")
.build())
.autoscaleCooldown(0)
.autoscaleDown(ElastigroupIntegrationNomadAutoscaleDownArgs.builder()
.evaluationPeriods(0)
.build())
.autoscaleHeadroom(ElastigroupIntegrationNomadAutoscaleHeadroomArgs.builder()
.cpuPerUnit(0)
.memoryPerUnit(0)
.numOfUnits(0)
.build())
.autoscaleIsEnabled(false)
.build())
.integrationRancher(ElastigroupIntegrationRancherArgs.builder()
.accessKey("string")
.masterHost("string")
.secretKey("string")
.version("string")
.build())
.integrationRoute53(ElastigroupIntegrationRoute53Args.builder()
.domains(ElastigroupIntegrationRoute53DomainArgs.builder()
.hostedZoneId("string")
.recordSets(ElastigroupIntegrationRoute53DomainRecordSetArgs.builder()
.name("string")
.usePublicDns(false)
.usePublicIp(false)
.build())
.recordSetType("string")
.spotinstAcctId("string")
.build())
.build())
.itfs(ElastigroupItfArgs.builder()
.fixedTargetGroups(false)
.loadBalancers(ElastigroupItfLoadBalancerArgs.builder()
.listenerRules(ElastigroupItfLoadBalancerListenerRuleArgs.builder()
.ruleArn("string")
.staticTargetGroup(ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs.builder()
.arn("string")
.percentage(0)
.build())
.build())
.loadBalancerArn("string")
.build())
.targetGroupConfigs(ElastigroupItfTargetGroupConfigArgs.builder()
.port(0)
.healthCheckPath("string")
.vpcId("string")
.protocol("string")
.matchers(ElastigroupItfTargetGroupConfigMatcherArgs.builder()
.grpcCode("string")
.httpCode("string")
.build())
.healthyThresholdCount(0)
.healthCheckIntervalSeconds(0)
.healthCheckTimeoutSeconds(0)
.healthCheckProtocol("string")
.protocolVersion("string")
.tags(ElastigroupItfTargetGroupConfigTagArgs.builder()
.tagKey("string")
.tagValue("string")
.build())
.unhealthyThresholdCount(0)
.healthCheckPort("string")
.build())
.weightStrategy("string")
.defaultStaticTargetGroup(ElastigroupItfDefaultStaticTargetGroupArgs.builder()
.arn("string")
.percentage(0)
.build())
.migrationHealthinessThreshold(0)
.build())
.keyName("string")
.lifetimePeriod("string")
.logging(ElastigroupLoggingArgs.builder()
.export(ElastigroupLoggingExportArgs.builder()
.s3s(ElastigroupLoggingExportS3Args.builder()
.id("string")
.build())
.build())
.build())
.maxSize(0)
.metadataOptions(ElastigroupMetadataOptionsArgs.builder()
.httpTokens("string")
.httpPutResponseHopLimit(0)
.instanceMetadataTags("string")
.build())
.minSize(0)
.minimumInstanceLifetime(0)
.multipleMetrics(ElastigroupMultipleMetricsArgs.builder()
.expressions(ElastigroupMultipleMetricsExpressionArgs.builder()
.expression("string")
.name("string")
.build())
.metrics(ElastigroupMultipleMetricsMetricArgs.builder()
.metricName("string")
.name("string")
.namespace("string")
.dimensions(ElastigroupMultipleMetricsMetricDimensionArgs.builder()
.name("string")
.value("string")
.build())
.extendedStatistic("string")
.statistic("string")
.unit("string")
.build())
.build())
.name("string")
.networkInterfaces(ElastigroupNetworkInterfaceArgs.builder()
.deviceIndex("string")
.associateIpv6Address(false)
.associatePublicIpAddress(false)
.deleteOnTermination(false)
.description("string")
.networkInterfaceId("string")
.privateIpAddress("string")
.secondaryPrivateIpAddressCount("string")
.build())
.onDemandTypes("string")
.ondemandCount(0)
.persistBlockDevices(false)
.persistPrivateIp(false)
.persistRootDevice(false)
.placementTenancy("string")
.preferredAvailabilityZones("string")
.privateIps("string")
.region("string")
.resourceRequirements(ElastigroupResourceRequirementArgs.builder()
.requiredMemoryMaximum(0)
.requiredMemoryMinimum(0)
.requiredVcpuMaximum(0)
.requiredVcpuMinimum(0)
.excludedInstanceFamilies("string")
.excludedInstanceGenerations("string")
.excludedInstanceTypes("string")
.requiredGpuMaximum(0)
.requiredGpuMinimum(0)
.build())
.resourceTagSpecifications(ElastigroupResourceTagSpecificationArgs.builder()
.shouldTagAmis(false)
.shouldTagEnis(false)
.shouldTagSnapshots(false)
.shouldTagVolumes(false)
.build())
.restrictSingleAz(false)
.revertToSpot(ElastigroupRevertToSpotArgs.builder()
.performAt("string")
.timeWindows("string")
.build())
.scalingDownPolicies(ElastigroupScalingDownPolicyArgs.builder()
.metricName("string")
.policyName("string")
.namespace("string")
.minimum("string")
.operator("string")
.isEnabled(false)
.maxTargetCapacity("string")
.maximum("string")
.dimensions(ElastigroupScalingDownPolicyDimensionArgs.builder()
.name("string")
.value("string")
.build())
.minTargetCapacity("string")
.actionType("string")
.cooldown(0)
.evaluationPeriods(0)
.period(0)
.adjustment("string")
.source("string")
.statistic("string")
.stepAdjustments(ElastigroupScalingDownPolicyStepAdjustmentArgs.builder()
.action(ElastigroupScalingDownPolicyStepAdjustmentActionArgs.builder()
.type("string")
.adjustment("string")
.maxTargetCapacity("string")
.maximum("string")
.minTargetCapacity("string")
.minimum("string")
.target("string")
.build())
.threshold(0)
.build())
.target("string")
.threshold(0)
.unit("string")
.build())
.scalingStrategies(ElastigroupScalingStrategyArgs.builder()
.terminateAtEndOfBillingHour(false)
.terminationPolicy("string")
.build())
.scalingTargetPolicies(ElastigroupScalingTargetPolicyArgs.builder()
.metricName("string")
.target(0)
.policyName("string")
.namespace("string")
.period(0)
.maxCapacityPerScale("string")
.cooldown(0)
.evaluationPeriods(0)
.predictiveMode("string")
.source("string")
.statistic("string")
.dimensions(ElastigroupScalingTargetPolicyDimensionArgs.builder()
.name("string")
.value("string")
.build())
.unit("string")
.build())
.scalingUpPolicies(ElastigroupScalingUpPolicyArgs.builder()
.metricName("string")
.policyName("string")
.namespace("string")
.minimum("string")
.operator("string")
.isEnabled(false)
.maxTargetCapacity("string")
.maximum("string")
.dimensions(ElastigroupScalingUpPolicyDimensionArgs.builder()
.name("string")
.value("string")
.build())
.minTargetCapacity("string")
.actionType("string")
.cooldown(0)
.evaluationPeriods(0)
.period(0)
.adjustment("string")
.source("string")
.statistic("string")
.stepAdjustments(ElastigroupScalingUpPolicyStepAdjustmentArgs.builder()
.action(ElastigroupScalingUpPolicyStepAdjustmentActionArgs.builder()
.type("string")
.adjustment("string")
.maxTargetCapacity("string")
.maximum("string")
.minTargetCapacity("string")
.minimum("string")
.target("string")
.build())
.threshold(0)
.build())
.target("string")
.threshold(0)
.unit("string")
.build())
.scheduledTasks(ElastigroupScheduledTaskArgs.builder()
.taskType("string")
.isEnabled(false)
.minCapacity("string")
.cronExpression("string")
.frequency("string")
.gracePeriod("string")
.adjustment("string")
.maxCapacity("string")
.batchSizePercentage("string")
.scaleMaxCapacity("string")
.scaleMinCapacity("string")
.scaleTargetCapacity("string")
.startTime("string")
.targetCapacity("string")
.adjustmentPercentage("string")
.build())
.shutdownScript("string")
.signals(ElastigroupSignalArgs.builder()
.name("string")
.timeout(0)
.build())
.spotPercentage(0)
.statefulDeallocation(ElastigroupStatefulDeallocationArgs.builder()
.shouldDeleteImages(false)
.shouldDeleteNetworkInterfaces(false)
.shouldDeleteSnapshots(false)
.shouldDeleteVolumes(false)
.build())
.statefulInstanceActions(ElastigroupStatefulInstanceActionArgs.builder()
.statefulInstanceId("string")
.type("string")
.build())
.subnetIds("string")
.tags(ElastigroupTagArgs.builder()
.key("string")
.value("string")
.build())
.targetGroupArns("string")
.updatePolicy(ElastigroupUpdatePolicyArgs.builder()
.shouldResumeStateful(false)
.shouldRoll(false)
.autoApplyTags(false)
.rollConfig(ElastigroupUpdatePolicyRollConfigArgs.builder()
.batchSizePercentage(0)
.gracePeriod(0)
.healthCheckType("string")
.strategy(ElastigroupUpdatePolicyRollConfigStrategyArgs.builder()
.action("string")
.batchMinHealthyPercentage(0)
.onFailure(ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs.builder()
.actionType("string")
.batchNum(0)
.drainingTimeout(0)
.shouldDecrementTargetCapacity(false)
.shouldHandleAllBatches(false)
.build())
.shouldDrainInstances(false)
.build())
.waitForRollPercentage(0)
.waitForRollTimeout(0)
.build())
.build())
.userData("string")
.utilizeCommitments(false)
.utilizeReservedInstances(false)
.waitForCapacity(0)
.waitForCapacityTimeout(0)
.build());
elastigroup_resource = spotinst.aws.Elastigroup("elastigroupResource",
fallback_to_ondemand=False,
orientation="string",
product="string",
security_groups=["string"],
auto_healing=False,
availability_zones=["string"],
block_devices_mode="string",
capacity_unit="string",
consider_od_pricing=False,
cpu_credits="string",
cpu_options=spotinst.aws.ElastigroupCpuOptionsArgs(
threads_per_core=0,
),
description="string",
desired_capacity=0,
draining_timeout=0,
ebs_block_devices=[spotinst.aws.ElastigroupEbsBlockDeviceArgs(
device_name="string",
delete_on_termination=False,
dynamic_iops=spotinst.aws.ElastigroupEbsBlockDeviceDynamicIopsArgs(
base_size=0,
resource="string",
size_per_resource_unit=0,
),
dynamic_volume_size=spotinst.aws.ElastigroupEbsBlockDeviceDynamicVolumeSizeArgs(
base_size=0,
resource="string",
size_per_resource_unit=0,
),
encrypted=False,
iops=0,
kms_key_id="string",
snapshot_id="string",
throughput=0,
volume_size=0,
volume_type="string",
)],
ebs_optimized=False,
elastic_ips=["string"],
elastic_load_balancers=["string"],
enable_monitoring=False,
ephemeral_block_devices=[spotinst.aws.ElastigroupEphemeralBlockDeviceArgs(
device_name="string",
virtual_name="string",
)],
health_check_grace_period=0,
health_check_type="string",
health_check_unhealthy_duration_before_replacement=0,
iam_instance_profile="string",
image_id="string",
images=[spotinst.aws.ElastigroupImageArgs(
images=[spotinst.aws.ElastigroupImageImageArgs(
id="string",
)],
)],
immediate_od_recover_threshold=0,
instance_types_ondemand="string",
instance_types_preferred_spots=["string"],
instance_types_spots=["string"],
instance_types_weights=[spotinst.aws.ElastigroupInstanceTypesWeightArgs(
instance_type="string",
weight=0,
)],
integration_beanstalk=spotinst.aws.ElastigroupIntegrationBeanstalkArgs(
deployment_preferences=spotinst.aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesArgs(
automatic_roll=False,
batch_size_percentage=0,
grace_period=0,
strategy=spotinst.aws.ElastigroupIntegrationBeanstalkDeploymentPreferencesStrategyArgs(
action="string",
should_drain_instances=False,
),
),
environment_id="string",
managed_actions=spotinst.aws.ElastigroupIntegrationBeanstalkManagedActionsArgs(
platform_update=spotinst.aws.ElastigroupIntegrationBeanstalkManagedActionsPlatformUpdateArgs(
perform_at="string",
time_window="string",
update_level="string",
),
),
),
integration_codedeploy=spotinst.aws.ElastigroupIntegrationCodedeployArgs(
cleanup_on_failure=False,
deployment_groups=[spotinst.aws.ElastigroupIntegrationCodedeployDeploymentGroupArgs(
application_name="string",
deployment_group_name="string",
)],
terminate_instance_on_failure=False,
),
integration_docker_swarm=spotinst.aws.ElastigroupIntegrationDockerSwarmArgs(
master_host="string",
master_port=0,
autoscale_cooldown=0,
autoscale_down=spotinst.aws.ElastigroupIntegrationDockerSwarmAutoscaleDownArgs(
evaluation_periods=0,
max_scale_down_percentage=0,
),
autoscale_headroom=spotinst.aws.ElastigroupIntegrationDockerSwarmAutoscaleHeadroomArgs(
cpu_per_unit=0,
memory_per_unit=0,
num_of_units=0,
),
autoscale_is_enabled=False,
),
integration_ecs=spotinst.aws.ElastigroupIntegrationEcsArgs(
cluster_name="string",
autoscale_attributes=[spotinst.aws.ElastigroupIntegrationEcsAutoscaleAttributeArgs(
key="string",
value="string",
)],
autoscale_cooldown=0,
autoscale_down=spotinst.aws.ElastigroupIntegrationEcsAutoscaleDownArgs(
evaluation_periods=0,
max_scale_down_percentage=0,
),
autoscale_headroom=spotinst.aws.ElastigroupIntegrationEcsAutoscaleHeadroomArgs(
cpu_per_unit=0,
memory_per_unit=0,
num_of_units=0,
),
autoscale_is_auto_config=False,
autoscale_is_enabled=False,
autoscale_scale_down_non_service_tasks=False,
batch=spotinst.aws.ElastigroupIntegrationEcsBatchArgs(
job_queue_names=["string"],
),
),
integration_gitlab=spotinst.aws.ElastigroupIntegrationGitlabArgs(
runner=spotinst.aws.ElastigroupIntegrationGitlabRunnerArgs(
is_enabled=False,
),
),
integration_kubernetes=spotinst.aws.ElastigroupIntegrationKubernetesArgs(
api_server="string",
autoscale_cooldown=0,
autoscale_down=spotinst.aws.ElastigroupIntegrationKubernetesAutoscaleDownArgs(
evaluation_periods=0,
max_scale_down_percentage=0,
),
autoscale_headroom=spotinst.aws.ElastigroupIntegrationKubernetesAutoscaleHeadroomArgs(
cpu_per_unit=0,
memory_per_unit=0,
num_of_units=0,
),
autoscale_is_auto_config=False,
autoscale_is_enabled=False,
autoscale_labels=[spotinst.aws.ElastigroupIntegrationKubernetesAutoscaleLabelArgs(
key="string",
value="string",
)],
cluster_identifier="string",
integration_mode="string",
token="string",
),
integration_mesosphere=spotinst.aws.ElastigroupIntegrationMesosphereArgs(
api_server="string",
),
integration_nomad=spotinst.aws.ElastigroupIntegrationNomadArgs(
master_host="string",
master_port=0,
acl_token="string",
autoscale_constraints=[spotinst.aws.ElastigroupIntegrationNomadAutoscaleConstraintArgs(
key="string",
value="string",
)],
autoscale_cooldown=0,
autoscale_down=spotinst.aws.ElastigroupIntegrationNomadAutoscaleDownArgs(
evaluation_periods=0,
),
autoscale_headroom=spotinst.aws.ElastigroupIntegrationNomadAutoscaleHeadroomArgs(
cpu_per_unit=0,
memory_per_unit=0,
num_of_units=0,
),
autoscale_is_enabled=False,
),
integration_rancher=spotinst.aws.ElastigroupIntegrationRancherArgs(
access_key="string",
master_host="string",
secret_key="string",
version="string",
),
integration_route53=spotinst.aws.ElastigroupIntegrationRoute53Args(
domains=[spotinst.aws.ElastigroupIntegrationRoute53DomainArgs(
hosted_zone_id="string",
record_sets=[spotinst.aws.ElastigroupIntegrationRoute53DomainRecordSetArgs(
name="string",
use_public_dns=False,
use_public_ip=False,
)],
record_set_type="string",
spotinst_acct_id="string",
)],
),
itfs=[spotinst.aws.ElastigroupItfArgs(
fixed_target_groups=False,
load_balancers=[spotinst.aws.ElastigroupItfLoadBalancerArgs(
listener_rules=[spotinst.aws.ElastigroupItfLoadBalancerListenerRuleArgs(
rule_arn="string",
static_target_group=spotinst.aws.ElastigroupItfLoadBalancerListenerRuleStaticTargetGroupArgs(
arn="string",
percentage=0,
),
)],
load_balancer_arn="string",
)],
target_group_configs=[spotinst.aws.ElastigroupItfTargetGroupConfigArgs(
port=0,
health_check_path="string",
vpc_id="string",
protocol="string",
matchers=[spotinst.aws.ElastigroupItfTargetGroupConfigMatcherArgs(
grpc_code="string",
http_code="string",
)],
healthy_threshold_count=0,
health_check_interval_seconds=0,
health_check_timeout_seconds=0,
health_check_protocol="string",
protocol_version="string",
tags=[spotinst.aws.ElastigroupItfTargetGroupConfigTagArgs(
tag_key="string",
tag_value="string",
)],
unhealthy_threshold_count=0,
health_check_port="string",
)],
weight_strategy="string",
default_static_target_group=spotinst.aws.ElastigroupItfDefaultStaticTargetGroupArgs(
arn="string",
percentage=0,
),
migration_healthiness_threshold=0,
)],
key_name="string",
lifetime_period="string",
logging=spotinst.aws.ElastigroupLoggingArgs(
export=spotinst.aws.ElastigroupLoggingExportArgs(
s3s=[spotinst.aws.ElastigroupLoggingExportS3Args(
id="string",
)],
),
),
max_size=0,
metadata_options=spotinst.aws.ElastigroupMetadataOptionsArgs(
http_tokens="string",
http_put_response_hop_limit=0,
instance_metadata_tags="string",
),
min_size=0,
minimum_instance_lifetime=0,
multiple_metrics=spotinst.aws.ElastigroupMultipleMetricsArgs(
expressions=[spotinst.aws.ElastigroupMultipleMetricsExpressionArgs(
expression="string",
name="string",
)],
metrics=[spotinst.aws.ElastigroupMultipleMetricsMetricArgs(
metric_name="string",
name="string",
namespace="string",
dimensions=[spotinst.aws.ElastigroupMultipleMetricsMetricDimensionArgs(
name="string",
value="string",
)],
extended_statistic="string",
statistic="string",
unit="string",
)],
),
name="string",
network_interfaces=[spotinst.aws.ElastigroupNetworkInterfaceArgs(
device_index="string",
associate_ipv6_address=False,
associate_public_ip_address=False,
delete_on_termination=False,
description="string",
network_interface_id="string",
private_ip_address="string",
secondary_private_ip_address_count="string",
)],
on_demand_types=["string"],
ondemand_count=0,
persist_block_devices=False,
persist_private_ip=False,
persist_root_device=False,
placement_tenancy="string",
preferred_availability_zones=["string"],
private_ips=["string"],
region="string",
resource_requirements=[spotinst.aws.ElastigroupResourceRequirementArgs(
required_memory_maximum=0,
required_memory_minimum=0,
required_vcpu_maximum=0,
required_vcpu_minimum=0,
excluded_instance_families=["string"],
excluded_instance_generations=["string"],
excluded_instance_types=["string"],
required_gpu_maximum=0,
required_gpu_minimum=0,
)],
resource_tag_specifications=[spotinst.aws.ElastigroupResourceTagSpecificationArgs(
should_tag_amis=False,
should_tag_enis=False,
should_tag_snapshots=False,
should_tag_volumes=False,
)],
restrict_single_az=False,
revert_to_spot=spotinst.aws.ElastigroupRevertToSpotArgs(
perform_at="string",
time_windows=["string"],
),
scaling_down_policies=[spotinst.aws.ElastigroupScalingDownPolicyArgs(
metric_name="string",
policy_name="string",
namespace="string",
minimum="string",
operator="string",
is_enabled=False,
max_target_capacity="string",
maximum="string",
dimensions=[spotinst.aws.ElastigroupScalingDownPolicyDimensionArgs(
name="string",
value="string",
)],
min_target_capacity="string",
action_type="string",
cooldown=0,
evaluation_periods=0,
period=0,
adjustment="string",
source="string",
statistic="string",
step_adjustments=[spotinst.aws.ElastigroupScalingDownPolicyStepAdjustmentArgs(
action=spotinst.aws.ElastigroupScalingDownPolicyStepAdjustmentActionArgs(
type="string",
adjustment="string",
max_target_capacity="string",
maximum="string",
min_target_capacity="string",
minimum="string",
target="string",
),
threshold=0,
)],
target="string",
threshold=0,
unit="string",
)],
scaling_strategies=[spotinst.aws.ElastigroupScalingStrategyArgs(
terminate_at_end_of_billing_hour=False,
termination_policy="string",
)],
scaling_target_policies=[spotinst.aws.ElastigroupScalingTargetPolicyArgs(
metric_name="string",
target=0,
policy_name="string",
namespace="string",
period=0,
max_capacity_per_scale="string",
cooldown=0,
evaluation_periods=0,
predictive_mode="string",
source="string",
statistic="string",
dimensions=[spotinst.aws.ElastigroupScalingTargetPolicyDimensionArgs(
name="string",
value="string",
)],
unit="string",
)],
scaling_up_policies=[spotinst.aws.ElastigroupScalingUpPolicyArgs(
metric_name="string",
policy_name="string",
namespace="string",
minimum="string",
operator="string",
is_enabled=False,
max_target_capacity="string",
maximum="string",
dimensions=[spotinst.aws.ElastigroupScalingUpPolicyDimensionArgs(
name="string",
value="string",
)],
min_target_capacity="string",
action_type="string",
cooldown=0,
evaluation_periods=0,
period=0,
adjustment="string",
source="string",
statistic="string",
step_adjustments=[spotinst.aws.ElastigroupScalingUpPolicyStepAdjustmentArgs(
action=spotinst.aws.ElastigroupScalingUpPolicyStepAdjustmentActionArgs(
type="string",
adjustment="string",
max_target_capacity="string",
maximum="string",
min_target_capacity="string",
minimum="string",
target="string",
),
threshold=0,
)],
target="string",
threshold=0,
unit="string",
)],
scheduled_tasks=[spotinst.aws.ElastigroupScheduledTaskArgs(
task_type="string",
is_enabled=False,
min_capacity="string",
cron_expression="string",
frequency="string",
grace_period="string",
adjustment="string",
max_capacity="string",
batch_size_percentage="string",
scale_max_capacity="string",
scale_min_capacity="string",
scale_target_capacity="string",
start_time="string",
target_capacity="string",
adjustment_percentage="string",
)],
shutdown_script="string",
signals=[spotinst.aws.ElastigroupSignalArgs(
name="string",
timeout=0,
)],
spot_percentage=0,
stateful_deallocation=spotinst.aws.ElastigroupStatefulDeallocationArgs(
should_delete_images=False,
should_delete_network_interfaces=False,
should_delete_snapshots=False,
should_delete_volumes=False,
),
stateful_instance_actions=[spotinst.aws.ElastigroupStatefulInstanceActionArgs(
stateful_instance_id="string",
type="string",
)],
subnet_ids=["string"],
tags=[spotinst.aws.ElastigroupTagArgs(
key="string",
value="string",
)],
target_group_arns=["string"],
update_policy=spotinst.aws.ElastigroupUpdatePolicyArgs(
should_resume_stateful=False,
should_roll=False,
auto_apply_tags=False,
roll_config=spotinst.aws.ElastigroupUpdatePolicyRollConfigArgs(
batch_size_percentage=0,
grace_period=0,
health_check_type="string",
strategy=spotinst.aws.ElastigroupUpdatePolicyRollConfigStrategyArgs(
action="string",
batch_min_healthy_percentage=0,
on_failure=spotinst.aws.ElastigroupUpdatePolicyRollConfigStrategyOnFailureArgs(
action_type="string",
batch_num=0,
draining_timeout=0,
should_decrement_target_capacity=False,
should_handle_all_batches=False,
),
should_drain_instances=False,
),
wait_for_roll_percentage=0,
wait_for_roll_timeout=0,
),
),
user_data="string",
utilize_commitments=False,
utilize_reserved_instances=False,
wait_for_capacity=0,
wait_for_capacity_timeout=0)
const elastigroupResource = new spotinst.aws.Elastigroup("elastigroupResource", {
fallbackToOndemand: false,
orientation: "string",
product: "string",
securityGroups: ["string"],
autoHealing: false,
availabilityZones: ["string"],
blockDevicesMode: "string",
capacityUnit: "string",
considerOdPricing: false,
cpuCredits: "string",
cpuOptions: {
threadsPerCore: 0,
},
description: "string",
desiredCapacity: 0,
drainingTimeout: 0,
ebsBlockDevices: [{
deviceName: "string",
deleteOnTermination: false,
dynamicIops: {
baseSize: 0,
resource: "string",
sizePerResourceUnit: 0,
},
dynamicVolumeSize: {
baseSize: 0,
resource: "string",
sizePerResourceUnit: 0,
},
encrypted: false,
iops: 0,
kmsKeyId: "string",
snapshotId: "string",
throughput: 0,
volumeSize: 0,
volumeType: "string",
}],
ebsOptimized: false,
elasticIps: ["string"],
elasticLoadBalancers: ["string"],
enableMonitoring: false,
ephemeralBlockDevices: [{
deviceName: "string",
virtualName: "string",
}],
healthCheckGracePeriod: 0,
healthCheckType: "string",
healthCheckUnhealthyDurationBeforeReplacement: 0,
iamInstanceProfile: "string",
imageId: "string",
images: [{
images: [{
id: "string",
}],
}],
immediateOdRecoverThreshold: 0,
instanceTypesOndemand: "string",
instanceTypesPreferredSpots: ["string"],
instanceTypesSpots: ["string"],
instanceTypesWeights: [{
instanceType: "string",
weight: 0,
}],
integrationBeanstalk: {
deploymentPreferences: {
automaticRoll: false,
batchSizePercentage: 0,
gracePeriod: 0,
strategy: {
action: "string",
shouldDrainInstances: false,
},
},
environmentId: "string",
managedActions: {
platformUpdate: {
performAt: "string",
timeWindow: "string",
updateLevel: "string",
},
},
},
integrationCodedeploy: {
cleanupOnFailure: false,
deploymentGroups: [{
applicationName: "string",
deploymentGroupName: "string",
}],
terminateInstanceOnFailure: false,
},
integrationDockerSwarm: {
masterHost: "string",
masterPort: 0,
autoscaleCooldown: 0,
autoscaleDown: {
evaluationPeriods: 0,
maxScaleDownPercentage: 0,
},
autoscaleHeadroom: {
cpuPerUnit: 0,
memoryPerUnit: 0,
numOfUnits: 0,
},
autoscaleIsEnabled: false,
},
integrationEcs: {
clusterName: "string",
autoscaleAttributes: [{
key: "string",
value: "string",
}],
autoscaleCooldown: 0,
autoscaleDown: {
evaluationPeriods: 0,
maxScaleDownPercentage: 0,
},
autoscaleHeadroom: {
cpuPerUnit: 0,
memoryPerUnit: 0,
numOfUnits: 0,
},
autoscaleIsAutoConfig: false,
autoscaleIsEnabled: false,
autoscaleScaleDownNonServiceTasks: false,
batch: {
jobQueueNames: ["string"],
},
},
integrationGitlab: {
runner: {
isEnabled: false,
},
},
integrationKubernetes: {
apiServer: "string",
autoscaleCooldown: 0,
autoscaleDown: {
evaluationPeriods: 0,
maxScaleDownPercentage: 0,
},
autoscaleHeadroom: {
cpuPerUnit: 0,
memoryPerUnit: 0,
numOfUnits: 0,
},
autoscaleIsAutoConfig: false,
autoscaleIsEnabled: false,
autoscaleLabels: [{
key: "string",
value: "string",
}],
clusterIdentifier: "string",
integrationMode: "string",
token: "string",
},
integrationMesosphere: {
apiServer: "string",
},
integrationNomad: {
masterHost: "string",
masterPort: 0,
aclToken: "string",
autoscaleConstraints: [{
key: "string",
value: "string",
}],
autoscaleCooldown: 0,
autoscaleDown: {
evaluationPeriods: 0,
},
autoscaleHeadroom: {
cpuPerUnit: 0,
memoryPerUnit: 0,
numOfUnits: 0,
},
autoscaleIsEnabled: false,
},
integrationRancher: {
accessKey: "string",
masterHost: "string",
secretKey: "string",
version: "string",
},
integrationRoute53: {
domains: [{
hostedZoneId: "string",
recordSets: [{
name: "string",
usePublicDns: false,
usePublicIp: false,
}],
recordSetType: "string",
spotinstAcctId: "string",
}],
},
itfs: [{
fixedTargetGroups: false,
loadBalancers: [{
listenerRules: [{
ruleArn: "string",
staticTargetGroup: {
arn: "string",
percentage: 0,
},
}],
loadBalancerArn: "string",
}],
targetGroupConfigs: [{
port: 0,
healthCheckPath: "string",
vpcId: "string",
protocol: "string",
matchers: [{
grpcCode: "string",
httpCode: "string",
}],
healthyThresholdCount: 0,
healthCheckIntervalSeconds: 0,
healthCheckTimeoutSeconds: 0,
healthCheckProtocol: "string",
protocolVersion: "string",
tags: [{
tagKey: "string",
tagValue: "string",
}],
unhealthyThresholdCount: 0,
healthCheckPort: "string",
}],
weightStrategy: "string",
defaultStaticTargetGroup: {
arn: "string",
percentage: 0,
},
migrationHealthinessThreshold: 0,
}],
keyName: "string",
lifetimePeriod: "string",
logging: {
"export": {
s3s: [{
id: "string",
}],
},
},
maxSize: 0,
metadataOptions: {
httpTokens: "string",
httpPutResponseHopLimit: 0,
instanceMetadataTags: "string",
},
minSize: 0,
minimumInstanceLifetime: 0,
multipleMetrics: {
expressions: [{
expression: "string",
name: "string",
}],
metrics: [{
metricName: "string",
name: "string",
namespace: "string",
dimensions: [{
name: "string",
value: "string",
}],
extendedStatistic: "string",
statistic: "string",
unit: "string",
}],
},
name: "string",
networkInterfaces: [{
deviceIndex: "string",
associateIpv6Address: false,
associatePublicIpAddress: false,
deleteOnTermination: false,
description: "string",
networkInterfaceId: "string",
privateIpAddress: "string",
secondaryPrivateIpAddressCount: "string",
}],
onDemandTypes: ["string"],
ondemandCount: 0,
persistBlockDevices: false,
persistPrivateIp: false,
persistRootDevice: false,
placementTenancy: "string",
preferredAvailabilityZones: ["string"],
privateIps: ["string"],
region: "string",
resourceRequirements: [{
requiredMemoryMaximum: 0,
requiredMemoryMinimum: 0,
requiredVcpuMaximum: 0,
requiredVcpuMinimum: 0,
excludedInstanceFamilies: ["string"],
excludedInstanceGenerations: ["string"],
excludedInstanceTypes: ["string"],
requiredGpuMaximum: 0,
requiredGpuMinimum: 0,
}],
resourceTagSpecifications: [{
shouldTagAmis: false,
shouldTagEnis: false,
shouldTagSnapshots: false,
shouldTagVolumes: false,
}],
restrictSingleAz: false,
revertToSpot: {
performAt: "string",
timeWindows: ["string"],
},
scalingDownPolicies: [{
metricName: "string",
policyName: "string",
namespace: "string",
minimum: "string",
operator: "string",
isEnabled: false,
maxTargetCapacity: "string",
maximum: "string",
dimensions: [{
name: "string",
value: "string",
}],
minTargetCapacity: "string",
actionType: "string",
cooldown: 0,
evaluationPeriods: 0,
period: 0,
adjustment: "string",
source: "string",
statistic: "string",
stepAdjustments: [{
action: {
type: "string",
adjustment: "string",
maxTargetCapacity: "string",
maximum: "string",
minTargetCapacity: "string",
minimum: "string",
target: "string",
},
threshold: 0,
}],
target: "string",
threshold: 0,
unit: "string",
}],
scalingStrategies: [{
terminateAtEndOfBillingHour: false,
terminationPolicy: "string",
}],
scalingTargetPolicies: [{
metricName: "string",
target: 0,
policyName: "string",
namespace: "string",
period: 0,
maxCapacityPerScale: "string",
cooldown: 0,
evaluationPeriods: 0,
predictiveMode: "string",
source: "string",
statistic: "string",
dimensions: [{
name: "string",
value: "string",
}],
unit: "string",
}],
scalingUpPolicies: [{
metricName: "string",
policyName: "string",
namespace: "string",
minimum: "string",
operator: "string",
isEnabled: false,
maxTargetCapacity: "string",
maximum: "string",
dimensions: [{
name: "string",
value: "string",
}],
minTargetCapacity: "string",
actionType: "string",
cooldown: 0,
evaluationPeriods: 0,
period: 0,
adjustment: "string",
source: "string",
statistic: "string",
stepAdjustments: [{
action: {
type: "string",
adjustment: "string",
maxTargetCapacity: "string",
maximum: "string",
minTargetCapacity: "string",
minimum: "string",
target: "string",
},
threshold: 0,
}],
target: "string",
threshold: 0,
unit: "string",
}],
scheduledTasks: [{
taskType: "string",
isEnabled: false,
minCapacity: "string",
cronExpression: "string",
frequency: "string",
gracePeriod: "string",
adjustment: "string",
maxCapacity: "string",
batchSizePercentage: "string",
scaleMaxCapacity: "string",
scaleMinCapacity: "string",
scaleTargetCapacity: "string",
startTime: "string",
targetCapacity: "string",
adjustmentPercentage: "string",
}],
shutdownScript: "string",
signals: [{
name: "string",
timeout: 0,
}],
spotPercentage: 0,
statefulDeallocation: {
shouldDeleteImages: false,
shouldDeleteNetworkInterfaces: false,
shouldDeleteSnapshots: false,
shouldDeleteVolumes: false,
},
statefulInstanceActions: [{
statefulInstanceId: "string",
type: "string",
}],
subnetIds: ["string"],
tags: [{
key: "string",
value: "string",
}],
targetGroupArns: ["string"],
updatePolicy: {
shouldResumeStateful: false,
shouldRoll: false,
autoApplyTags: false,
rollConfig: {
batchSizePercentage: 0,
gracePeriod: 0,
healthCheckType: "string",
strategy: {
action: "string",
batchMinHealthyPercentage: 0,
onFailure: {
actionType: "string",
batchNum: 0,
drainingTimeout: 0,
shouldDecrementTargetCapacity: false,
shouldHandleAllBatches: false,
},
shouldDrainInstances: false,
},
waitForRollPercentage: 0,
waitForRollTimeout: 0,
},
},
userData: "string",
utilizeCommitments: false,
utilizeReservedInstances: false,
waitForCapacity: 0,
waitForCapacityTimeout: 0,
});
type: spotinst:aws:Elastigroup
properties:
autoHealing: false
availabilityZones:
- string
blockDevicesMode: string
capacityUnit: string
considerOdPricing: false
cpuCredits: string
cpuOptions:
threadsPerCore: 0
description: string
desiredCapacity: 0
drainingTimeout: 0
ebsBlockDevices:
- deleteOnTermination: false
deviceName: string
dynamicIops:
baseSize: 0
resource: string
sizePerResourceUnit: 0
dynamicVolumeSize:
baseSize: 0
resource: string
sizePerResourceUnit: 0
encrypted: false
iops: 0
kmsKeyId: string
snapshotId: string
throughput: 0
volumeSize: 0
volumeType: string
ebsOptimized: false
elasticIps:
- string
elasticLoadBalancers:
- string
enableMonitoring: false
ephemeralBlockDevices:
- deviceName: string
virtualName: string
fallbackToOndemand: false
healthCheckGracePeriod: 0
healthCheckType: string
healthCheckUnhealthyDurationBeforeReplacement: 0
iamInstanceProfile: string
imageId: string
images:
- images:
- id: string
immediateOdRecoverThreshold: 0
instanceTypesOndemand: string
instanceTypesPreferredSpots:
- string
instanceTypesSpots:
- string
instanceTypesWeights:
- instanceType: string
weight: 0
integrationBeanstalk:
deploymentPreferences:
automaticRoll: false
batchSizePercentage: 0
gracePeriod: 0
strategy:
action: string
shouldDrainInstances: false
environmentId: string
managedActions:
platformUpdate:
performAt: string
timeWindow: string
updateLevel: string
integrationCodedeploy:
cleanupOnFailure: false
deploymentGroups:
- applicationName: string
deploymentGroupName: string
terminateInstanceOnFailure: false
integrationDockerSwarm:
autoscaleCooldown: 0
autoscaleDown:
evaluationPeriods: 0
maxScaleDownPercentage: 0
autoscaleHeadroom:
cpuPerUnit: 0
memoryPerUnit: 0
numOfUnits: 0
autoscaleIsEnabled: false
masterHost: string
masterPort: 0
integrationEcs:
autoscaleAttributes:
- key: string
value: string
autoscaleCooldown: 0
autoscaleDown:
evaluationPeriods: 0
maxScaleDownPercentage: 0
autoscaleHeadroom:
cpuPerUnit: 0
memoryPerUnit: 0
numOfUnits: 0
autoscaleIsAutoConfig: false
autoscaleIsEnabled: false
autoscaleScaleDownNonServiceTasks: false
batch:
jobQueueNames:
- string
clusterName: string
integrationGitlab:
runner:
isEnabled: false
integrationKubernetes:
apiServer: string
autoscaleCooldown: 0
autoscaleDown:
evaluationPeriods: 0
maxScaleDownPercentage: 0
autoscaleHeadroom:
cpuPerUnit: 0
memoryPerUnit: 0
numOfUnits: 0
autoscaleIsAutoConfig: false
autoscaleIsEnabled: false
autoscaleLabels:
- key: string
value: string
clusterIdentifier: string
integrationMode: string
token: string
integrationMesosphere:
apiServer: string
integrationNomad:
aclToken: string
autoscaleConstraints:
- key: string
value: string
autoscaleCooldown: 0
autoscaleDown:
evaluationPeriods: 0
autoscaleHeadroom:
cpuPerUnit: 0
memoryPerUnit: 0
numOfUnits: 0
autoscaleIsEnabled: false
masterHost: string
masterPort: 0
integrationRancher:
accessKey: string
masterHost: string
secretKey: string
version: string
integrationRoute53:
domains:
- hostedZoneId: string
recordSetType: string
recordSets:
- name: string
usePublicDns: false
usePublicIp: false
spotinstAcctId: string
itfs:
- defaultStaticTargetGroup:
arn: string
percentage: 0
fixedTargetGroups: false
loadBalancers:
- listenerRules:
- ruleArn: string
staticTargetGroup:
arn: string
percentage: 0
loadBalancerArn: string
migrationHealthinessThreshold: 0
targetGroupConfigs:
- healthCheckIntervalSeconds: 0
healthCheckPath: string
healthCheckPort: string
healthCheckProtocol: string
healthCheckTimeoutSeconds: 0
healthyThresholdCount: 0
matchers:
- grpcCode: string
httpCode: string
port: 0
protocol: string
protocolVersion: string
tags:
- tagKey: string
tagValue: string
unhealthyThresholdCount: 0
vpcId: string
weightStrategy: string
keyName: string
lifetimePeriod: string
logging:
export:
s3s:
- id: string
maxSize: 0
metadataOptions:
httpPutResponseHopLimit: 0
httpTokens: string
instanceMetadataTags: string
minSize: 0
minimumInstanceLifetime: 0
multipleMetrics:
expressions:
- expression: string
name: string
metrics:
- dimensions:
- name: string
value: string
extendedStatistic: string
metricName: string
name: string
namespace: string
statistic: string
unit: string
name: string
networkInterfaces:
- associateIpv6Address: false
associatePublicIpAddress: false
deleteOnTermination: false
description: string
deviceIndex: string
networkInterfaceId: string
privateIpAddress: string
secondaryPrivateIpAddressCount: string
onDemandTypes:
- string
ondemandCount: 0
orientation: string
persistBlockDevices: false
persistPrivateIp: false
persistRootDevice: false
placementTenancy: string
preferredAvailabilityZones:
- string
privateIps:
- string
product: string
region: string
resourceRequirements:
- excludedInstanceFamilies:
- string
excludedInstanceGenerations:
- string
excludedInstanceTypes:
- string
requiredGpuMaximum: 0
requiredGpuMinimum: 0
requiredMemoryMaximum: 0
requiredMemoryMinimum: 0
requiredVcpuMaximum: 0
requiredVcpuMinimum: 0
resourceTagSpecifications:
- shouldTagAmis: false
shouldTagEnis: false
shouldTagSnapshots: false
shouldTagVolumes: false
restrictSingleAz: false
revertToSpot:
performAt: string
timeWindows:
- string
scalingDownPolicies:
- actionType: string
adjustment: string
cooldown: 0
dimensions:
- name: string
value: string
evaluationPeriods: 0
isEnabled: false
maxTargetCapacity: string
maximum: string
metricName: string
minTargetCapacity: string
minimum: string
namespace: string
operator: string
period: 0
policyName: string
source: string
statistic: string
stepAdjustments:
- action:
adjustment: string
maxTargetCapacity: string
maximum: string
minTargetCapacity: string
minimum: string
target: string
type: string
threshold: 0
target: string
threshold: 0
unit: string
scalingStrategies:
- terminateAtEndOfBillingHour: false
terminationPolicy: string
scalingTargetPolicies:
- cooldown: 0
dimensions:
- name: string
value: string
evaluationPeriods: 0
maxCapacityPerScale: string
metricName: string
namespace: string
period: 0
policyName: string
predictiveMode: string
source: string
statistic: string
target: 0
unit: string
scalingUpPolicies:
- actionType: string
adjustment: string
cooldown: 0
dimensions:
- name: string
value: string
evaluationPeriods: 0
isEnabled: false
maxTargetCapacity: string
maximum: string
metricName: string
minTargetCapacity: string
minimum: string
namespace: string
operator: string
period: 0
policyName: string
source: string
statistic: string
stepAdjustments:
- action:
adjustment: string
maxTargetCapacity: string
maximum: string
minTargetCapacity: string
minimum: string
target: string
type: string
threshold: 0
target: string
threshold: 0
unit: string
scheduledTasks:
- adjustment: string
adjustmentPercentage: string
batchSizePercentage: string
cronExpression: string
frequency: string
gracePeriod: string
isEnabled: false
maxCapacity: string
minCapacity: string
scaleMaxCapacity: string
scaleMinCapacity: string
scaleTargetCapacity: string
startTime: string
targetCapacity: string
taskType: string
securityGroups:
- string
shutdownScript: string
signals:
- name: string
timeout: 0
spotPercentage: 0
statefulDeallocation:
shouldDeleteImages: false
shouldDeleteNetworkInterfaces: false
shouldDeleteSnapshots: false
shouldDeleteVolumes: false
statefulInstanceActions:
- statefulInstanceId: string
type: string
subnetIds:
- string
tags:
- key: string
value: string
targetGroupArns:
- string
updatePolicy:
autoApplyTags: false
rollConfig:
batchSizePercentage: 0
gracePeriod: 0
healthCheckType: string
strategy:
action: string
batchMinHealthyPercentage: 0
onFailure:
actionType: string
batchNum: 0
drainingTimeout: 0
shouldDecrementTargetCapacity: false
shouldHandleAllBatches: false
shouldDrainInstances: false
waitForRollPercentage: 0
waitForRollTimeout: 0
shouldResumeStateful: false
shouldRoll: false
userData: string
utilizeCommitments: false
utilizeReservedInstances: false
waitForCapacity: 0
waitForCapacityTimeout: 0
Elastigroup 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 Elastigroup resource accepts the following input properties:
- Fallback
To boolOndemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- Orientation string
- Select a prediction strategy. Valid values:
balanced
,costOriented
,equalAzDistribution
,availabilityOriented
. You can read more in our documentation. - Product string
- Operation system type. Valid values:
"Linux/UNIX"
,"SUSE Linux"
,"Windows"
. For EC2 Classic instances:"Linux/UNIX (Amazon VPC)"
,"SUSE Linux (Amazon VPC)"
,"Windows (Amazon VPC)"
. - Security
Groups List<string> - A list of associated security group IDS.
- Auto
Healing bool - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- Availability
Zones List<string> - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- Block
Devices stringMode - Capacity
Unit string - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - Consider
Od boolPricing - Cpu
Credits string - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - Cpu
Options Pulumi.Spot Inst. Aws. Inputs. Elastigroup Cpu Options - The CPU options for the instances that are launched within the group:
- Description string
- The group description.
- Desired
Capacity int - The desired number of instances the group should have at any time.
- Draining
Timeout int - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- Ebs
Block List<Pulumi.Devices Spot Inst. Aws. Inputs. Elastigroup Ebs Block Device> - Ebs
Optimized bool - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- Elastic
Ips List<string> - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- Elastic
Load List<string>Balancers - Enable
Monitoring bool - Indicates whether monitoring is enabled for the instance.
- Ephemeral
Block List<Pulumi.Devices Spot Inst. Aws. Inputs. Elastigroup Ephemeral Block Device> - Health
Check intGrace Period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- Health
Check stringType - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - Health
Check intUnhealthy Duration Before Replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- Iam
Instance stringProfile - The ARN or name of an IAM instance profile to associate with launched instances.
- Image
Id string - The ID of the AMI used to launch the instance.
- Images
List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Image> - An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- Immediate
Od intRecover Threshold - Instance
Types stringOndemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- Instance
Types List<string>Preferred Spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- Instance
Types List<string>Spots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- Instance
Types List<Pulumi.Weights Spot Inst. Aws. Inputs. Elastigroup Instance Types Weight> - List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
- Integration
Beanstalk Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Beanstalk - Integration
Codedeploy Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Codedeploy - Integration
Docker Pulumi.Swarm Spot Inst. Aws. Inputs. Elastigroup Integration Docker Swarm - Integration
Ecs Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Ecs - Integration
Gitlab Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Gitlab - Integration
Kubernetes Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Kubernetes - Integration
Mesosphere Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Mesosphere - Integration
Nomad Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Nomad - Integration
Rancher Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Rancher - Integration
Route53 Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Route53 - Itfs
List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Itf> - Key
Name string - The key name that should be used for the instance.
- Lifetime
Period string - Logging
Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Logging - Logging configuration.
- Max
Size int - The maximum number of instances the group should have at any time.
- Metadata
Options Pulumi.Spot Inst. Aws. Inputs. Elastigroup Metadata Options - Data that used to configure or manage the running instances:
- Min
Size int - The minimum number of instances the group should have at any time.
- Minimum
Instance intLifetime - Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
- Multiple
Metrics Pulumi.Spot Inst. Aws. Inputs. Elastigroup Multiple Metrics - Name string
- The group name.
- Network
Interfaces List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Network Interface> - On
Demand List<string>Types - Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
- Ondemand
Count int - Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the
spot_percentage
parameter is being ignored. - Persist
Block boolDevices - Persist
Private boolIp - Persist
Root boolDevice - Placement
Tenancy string - Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
- Preferred
Availability List<string>Zones - 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.
Note: Must be a sublist of
availability_zones
andorientation
value must not be"equalAzDistribution"
. - Private
Ips List<string> - Region string
- The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
- Resource
Requirements List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Resource Requirement> - Required instance attributes. Instance types will be selected based on these requirements.
- List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Resource Tag Specification> - User will specify which resources should be tagged with group tags.
- Restrict
Single boolAz - Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
- Revert
To Pulumi.Spot Spot Inst. Aws. Inputs. Elastigroup Revert To Spot - Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values:
"never"
,"always"
,"timeWindow"
- Scaling
Down List<Pulumi.Policies Spot Inst. Aws. Inputs. Elastigroup Scaling Down Policy> - Scaling
Strategies List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Scaling Strategy> - Set termination policy.
- Scaling
Target List<Pulumi.Policies Spot Inst. Aws. Inputs. Elastigroup Scaling Target Policy> - Scaling
Up List<Pulumi.Policies Spot Inst. Aws. Inputs. Elastigroup Scaling Up Policy> - Scheduled
Tasks List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Scheduled Task> - Shutdown
Script string - The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
- Signals
List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Signal> - Spot
Percentage int - The percentage of Spot instances that would spin up from the
desired_capacity
number. - Stateful
Deallocation Pulumi.Spot Inst. Aws. Inputs. Elastigroup Stateful Deallocation - Stateful
Instance List<Pulumi.Actions Spot Inst. Aws. Inputs. Elastigroup Stateful Instance Action> - Subnet
Ids List<string> - List of Strings of subnet identifiers.
Note: When this parameter is set,
availability_zones
should be left unused. - List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Tag> - A key/value mapping of tags to assign to the resource.
- Target
Group List<string>Arns - Update
Policy Pulumi.Spot Inst. Aws. Inputs. Elastigroup Update Policy - User
Data string - The user data to provide when launching the instance.
- Utilize
Commitments bool - Utilize
Reserved boolInstances - In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
- Wait
For intCapacity - Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed
desired_capacity
. - Wait
For intCapacity Timeout - Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to
0
to indicate no wait. This is ignored when updating with blue/green deployment.
- Fallback
To boolOndemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- Orientation string
- Select a prediction strategy. Valid values:
balanced
,costOriented
,equalAzDistribution
,availabilityOriented
. You can read more in our documentation. - Product string
- Operation system type. Valid values:
"Linux/UNIX"
,"SUSE Linux"
,"Windows"
. For EC2 Classic instances:"Linux/UNIX (Amazon VPC)"
,"SUSE Linux (Amazon VPC)"
,"Windows (Amazon VPC)"
. - Security
Groups []string - A list of associated security group IDS.
- Auto
Healing bool - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- Availability
Zones []string - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- Block
Devices stringMode - Capacity
Unit string - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - Consider
Od boolPricing - Cpu
Credits string - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - Cpu
Options ElastigroupCpu Options Args - The CPU options for the instances that are launched within the group:
- Description string
- The group description.
- Desired
Capacity int - The desired number of instances the group should have at any time.
- Draining
Timeout int - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- Ebs
Block []ElastigroupDevices Ebs Block Device Args - Ebs
Optimized bool - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- Elastic
Ips []string - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- Elastic
Load []stringBalancers - Enable
Monitoring bool - Indicates whether monitoring is enabled for the instance.
- Ephemeral
Block []ElastigroupDevices Ephemeral Block Device Args - Health
Check intGrace Period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- Health
Check stringType - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - Health
Check intUnhealthy Duration Before Replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- Iam
Instance stringProfile - The ARN or name of an IAM instance profile to associate with launched instances.
- Image
Id string - The ID of the AMI used to launch the instance.
- Images
[]Elastigroup
Image Args - An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- Immediate
Od intRecover Threshold - Instance
Types stringOndemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- Instance
Types []stringPreferred Spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- Instance
Types []stringSpots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- Instance
Types []ElastigroupWeights Instance Types Weight Args - List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
- Integration
Beanstalk ElastigroupIntegration Beanstalk Args - Integration
Codedeploy ElastigroupIntegration Codedeploy Args - Integration
Docker ElastigroupSwarm Integration Docker Swarm Args - Integration
Ecs ElastigroupIntegration Ecs Args - Integration
Gitlab ElastigroupIntegration Gitlab Args - Integration
Kubernetes ElastigroupIntegration Kubernetes Args - Integration
Mesosphere ElastigroupIntegration Mesosphere Args - Integration
Nomad ElastigroupIntegration Nomad Args - Integration
Rancher ElastigroupIntegration Rancher Args - Integration
Route53 ElastigroupIntegration Route53Args - Itfs
[]Elastigroup
Itf Args - Key
Name string - The key name that should be used for the instance.
- Lifetime
Period string - Logging
Elastigroup
Logging Args - Logging configuration.
- Max
Size int - The maximum number of instances the group should have at any time.
- Metadata
Options ElastigroupMetadata Options Args - Data that used to configure or manage the running instances:
- Min
Size int - The minimum number of instances the group should have at any time.
- Minimum
Instance intLifetime - Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
- Multiple
Metrics ElastigroupMultiple Metrics Args - Name string
- The group name.
- Network
Interfaces []ElastigroupNetwork Interface Args - On
Demand []stringTypes - Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
- Ondemand
Count int - Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the
spot_percentage
parameter is being ignored. - Persist
Block boolDevices - Persist
Private boolIp - Persist
Root boolDevice - Placement
Tenancy string - Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
- Preferred
Availability []stringZones - 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.
Note: Must be a sublist of
availability_zones
andorientation
value must not be"equalAzDistribution"
. - Private
Ips []string - Region string
- The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
- Resource
Requirements []ElastigroupResource Requirement Args - Required instance attributes. Instance types will be selected based on these requirements.
- []Elastigroup
Resource Tag Specification Args - User will specify which resources should be tagged with group tags.
- Restrict
Single boolAz - Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
- Revert
To ElastigroupSpot Revert To Spot Args - Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values:
"never"
,"always"
,"timeWindow"
- Scaling
Down []ElastigroupPolicies Scaling Down Policy Args - Scaling
Strategies []ElastigroupScaling Strategy Args - Set termination policy.
- Scaling
Target []ElastigroupPolicies Scaling Target Policy Args - Scaling
Up []ElastigroupPolicies Scaling Up Policy Args - Scheduled
Tasks []ElastigroupScheduled Task Args - Shutdown
Script string - The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
- Signals
[]Elastigroup
Signal Args - Spot
Percentage int - The percentage of Spot instances that would spin up from the
desired_capacity
number. - Stateful
Deallocation ElastigroupStateful Deallocation Args - Stateful
Instance []ElastigroupActions Stateful Instance Action Args - Subnet
Ids []string - List of Strings of subnet identifiers.
Note: When this parameter is set,
availability_zones
should be left unused. - []Elastigroup
Tag Args - A key/value mapping of tags to assign to the resource.
- Target
Group []stringArns - Update
Policy ElastigroupUpdate Policy Args - User
Data string - The user data to provide when launching the instance.
- Utilize
Commitments bool - Utilize
Reserved boolInstances - In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
- Wait
For intCapacity - Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed
desired_capacity
. - Wait
For intCapacity Timeout - Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to
0
to indicate no wait. This is ignored when updating with blue/green deployment.
- fallback
To BooleanOndemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- orientation String
- Select a prediction strategy. Valid values:
balanced
,costOriented
,equalAzDistribution
,availabilityOriented
. You can read more in our documentation. - product String
- Operation system type. Valid values:
"Linux/UNIX"
,"SUSE Linux"
,"Windows"
. For EC2 Classic instances:"Linux/UNIX (Amazon VPC)"
,"SUSE Linux (Amazon VPC)"
,"Windows (Amazon VPC)"
. - security
Groups List<String> - A list of associated security group IDS.
- auto
Healing Boolean - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- availability
Zones List<String> - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- block
Devices StringMode - capacity
Unit String - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - consider
Od BooleanPricing - cpu
Credits String - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - cpu
Options ElastigroupCpu Options - The CPU options for the instances that are launched within the group:
- description String
- The group description.
- desired
Capacity Integer - The desired number of instances the group should have at any time.
- draining
Timeout Integer - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- ebs
Block List<ElastigroupDevices Ebs Block Device> - ebs
Optimized Boolean - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- elastic
Ips List<String> - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- elastic
Load List<String>Balancers - enable
Monitoring Boolean - Indicates whether monitoring is enabled for the instance.
- ephemeral
Block List<ElastigroupDevices Ephemeral Block Device> - health
Check IntegerGrace Period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- health
Check StringType - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - health
Check IntegerUnhealthy Duration Before Replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- iam
Instance StringProfile - The ARN or name of an IAM instance profile to associate with launched instances.
- image
Id String - The ID of the AMI used to launch the instance.
- images
List<Elastigroup
Image> - An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- immediate
Od IntegerRecover Threshold - instance
Types StringOndemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- instance
Types List<String>Preferred Spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- instance
Types List<String>Spots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- instance
Types List<ElastigroupWeights Instance Types Weight> - List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
- integration
Beanstalk ElastigroupIntegration Beanstalk - integration
Codedeploy ElastigroupIntegration Codedeploy - integration
Docker ElastigroupSwarm Integration Docker Swarm - integration
Ecs ElastigroupIntegration Ecs - integration
Gitlab ElastigroupIntegration Gitlab - integration
Kubernetes ElastigroupIntegration Kubernetes - integration
Mesosphere ElastigroupIntegration Mesosphere - integration
Nomad ElastigroupIntegration Nomad - integration
Rancher ElastigroupIntegration Rancher - integration
Route53 ElastigroupIntegration Route53 - itfs
List<Elastigroup
Itf> - key
Name String - The key name that should be used for the instance.
- lifetime
Period String - logging
Elastigroup
Logging - Logging configuration.
- max
Size Integer - The maximum number of instances the group should have at any time.
- metadata
Options ElastigroupMetadata Options - Data that used to configure or manage the running instances:
- min
Size Integer - The minimum number of instances the group should have at any time.
- minimum
Instance IntegerLifetime - Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
- multiple
Metrics ElastigroupMultiple Metrics - name String
- The group name.
- network
Interfaces List<ElastigroupNetwork Interface> - on
Demand List<String>Types - Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
- ondemand
Count Integer - Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the
spot_percentage
parameter is being ignored. - persist
Block BooleanDevices - persist
Private BooleanIp - persist
Root BooleanDevice - placement
Tenancy String - Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
- preferred
Availability List<String>Zones - 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.
Note: Must be a sublist of
availability_zones
andorientation
value must not be"equalAzDistribution"
. - private
Ips List<String> - region String
- The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
- resource
Requirements List<ElastigroupResource Requirement> - Required instance attributes. Instance types will be selected based on these requirements.
- List<Elastigroup
Resource Tag Specification> - User will specify which resources should be tagged with group tags.
- restrict
Single BooleanAz - Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
- revert
To ElastigroupSpot Revert To Spot - Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values:
"never"
,"always"
,"timeWindow"
- scaling
Down List<ElastigroupPolicies Scaling Down Policy> - scaling
Strategies List<ElastigroupScaling Strategy> - Set termination policy.
- scaling
Target List<ElastigroupPolicies Scaling Target Policy> - scaling
Up List<ElastigroupPolicies Scaling Up Policy> - scheduled
Tasks List<ElastigroupScheduled Task> - shutdown
Script String - The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
- signals
List<Elastigroup
Signal> - spot
Percentage Integer - The percentage of Spot instances that would spin up from the
desired_capacity
number. - stateful
Deallocation ElastigroupStateful Deallocation - stateful
Instance List<ElastigroupActions Stateful Instance Action> - subnet
Ids List<String> - List of Strings of subnet identifiers.
Note: When this parameter is set,
availability_zones
should be left unused. - List<Elastigroup
Tag> - A key/value mapping of tags to assign to the resource.
- target
Group List<String>Arns - update
Policy ElastigroupUpdate Policy - user
Data String - The user data to provide when launching the instance.
- utilize
Commitments Boolean - utilize
Reserved BooleanInstances - In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
- wait
For IntegerCapacity - Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed
desired_capacity
. - wait
For IntegerCapacity Timeout - Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to
0
to indicate no wait. This is ignored when updating with blue/green deployment.
- fallback
To booleanOndemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- orientation string
- Select a prediction strategy. Valid values:
balanced
,costOriented
,equalAzDistribution
,availabilityOriented
. You can read more in our documentation. - product string
- Operation system type. Valid values:
"Linux/UNIX"
,"SUSE Linux"
,"Windows"
. For EC2 Classic instances:"Linux/UNIX (Amazon VPC)"
,"SUSE Linux (Amazon VPC)"
,"Windows (Amazon VPC)"
. - security
Groups string[] - A list of associated security group IDS.
- auto
Healing boolean - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- availability
Zones string[] - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- block
Devices stringMode - capacity
Unit string - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - consider
Od booleanPricing - cpu
Credits string - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - cpu
Options ElastigroupCpu Options - The CPU options for the instances that are launched within the group:
- description string
- The group description.
- desired
Capacity number - The desired number of instances the group should have at any time.
- draining
Timeout number - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- ebs
Block ElastigroupDevices Ebs Block Device[] - ebs
Optimized boolean - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- elastic
Ips string[] - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- elastic
Load string[]Balancers - enable
Monitoring boolean - Indicates whether monitoring is enabled for the instance.
- ephemeral
Block ElastigroupDevices Ephemeral Block Device[] - health
Check numberGrace Period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- health
Check stringType - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - health
Check numberUnhealthy Duration Before Replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- iam
Instance stringProfile - The ARN or name of an IAM instance profile to associate with launched instances.
- image
Id string - The ID of the AMI used to launch the instance.
- images
Elastigroup
Image[] - An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- immediate
Od numberRecover Threshold - instance
Types stringOndemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- instance
Types string[]Preferred Spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- instance
Types string[]Spots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- instance
Types ElastigroupWeights Instance Types Weight[] - List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
- integration
Beanstalk ElastigroupIntegration Beanstalk - integration
Codedeploy ElastigroupIntegration Codedeploy - integration
Docker ElastigroupSwarm Integration Docker Swarm - integration
Ecs ElastigroupIntegration Ecs - integration
Gitlab ElastigroupIntegration Gitlab - integration
Kubernetes ElastigroupIntegration Kubernetes - integration
Mesosphere ElastigroupIntegration Mesosphere - integration
Nomad ElastigroupIntegration Nomad - integration
Rancher ElastigroupIntegration Rancher - integration
Route53 ElastigroupIntegration Route53 - itfs
Elastigroup
Itf[] - key
Name string - The key name that should be used for the instance.
- lifetime
Period string - logging
Elastigroup
Logging - Logging configuration.
- max
Size number - The maximum number of instances the group should have at any time.
- metadata
Options ElastigroupMetadata Options - Data that used to configure or manage the running instances:
- min
Size number - The minimum number of instances the group should have at any time.
- minimum
Instance numberLifetime - Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
- multiple
Metrics ElastigroupMultiple Metrics - name string
- The group name.
- network
Interfaces ElastigroupNetwork Interface[] - on
Demand string[]Types - Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
- ondemand
Count number - Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the
spot_percentage
parameter is being ignored. - persist
Block booleanDevices - persist
Private booleanIp - persist
Root booleanDevice - placement
Tenancy string - Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
- preferred
Availability string[]Zones - 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.
Note: Must be a sublist of
availability_zones
andorientation
value must not be"equalAzDistribution"
. - private
Ips string[] - region string
- The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
- resource
Requirements ElastigroupResource Requirement[] - Required instance attributes. Instance types will be selected based on these requirements.
- Elastigroup
Resource Tag Specification[] - User will specify which resources should be tagged with group tags.
- restrict
Single booleanAz - Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
- revert
To ElastigroupSpot Revert To Spot - Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values:
"never"
,"always"
,"timeWindow"
- scaling
Down ElastigroupPolicies Scaling Down Policy[] - scaling
Strategies ElastigroupScaling Strategy[] - Set termination policy.
- scaling
Target ElastigroupPolicies Scaling Target Policy[] - scaling
Up ElastigroupPolicies Scaling Up Policy[] - scheduled
Tasks ElastigroupScheduled Task[] - shutdown
Script string - The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
- signals
Elastigroup
Signal[] - spot
Percentage number - The percentage of Spot instances that would spin up from the
desired_capacity
number. - stateful
Deallocation ElastigroupStateful Deallocation - stateful
Instance ElastigroupActions Stateful Instance Action[] - subnet
Ids string[] - List of Strings of subnet identifiers.
Note: When this parameter is set,
availability_zones
should be left unused. - Elastigroup
Tag[] - A key/value mapping of tags to assign to the resource.
- target
Group string[]Arns - update
Policy ElastigroupUpdate Policy - user
Data string - The user data to provide when launching the instance.
- utilize
Commitments boolean - utilize
Reserved booleanInstances - In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
- wait
For numberCapacity - Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed
desired_capacity
. - wait
For numberCapacity Timeout - Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to
0
to indicate no wait. This is ignored when updating with blue/green deployment.
- fallback_
to_ boolondemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- orientation str
- Select a prediction strategy. Valid values:
balanced
,costOriented
,equalAzDistribution
,availabilityOriented
. You can read more in our documentation. - product str
- Operation system type. Valid values:
"Linux/UNIX"
,"SUSE Linux"
,"Windows"
. For EC2 Classic instances:"Linux/UNIX (Amazon VPC)"
,"SUSE Linux (Amazon VPC)"
,"Windows (Amazon VPC)"
. - security_
groups Sequence[str] - A list of associated security group IDS.
- auto_
healing bool - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- availability_
zones Sequence[str] - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- block_
devices_ strmode - capacity_
unit str - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - consider_
od_ boolpricing - cpu_
credits str - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - cpu_
options ElastigroupCpu Options Args - The CPU options for the instances that are launched within the group:
- description str
- The group description.
- desired_
capacity int - The desired number of instances the group should have at any time.
- draining_
timeout int - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- ebs_
block_ Sequence[Elastigroupdevices Ebs Block Device Args] - ebs_
optimized bool - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- elastic_
ips Sequence[str] - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- elastic_
load_ Sequence[str]balancers - enable_
monitoring bool - Indicates whether monitoring is enabled for the instance.
- ephemeral_
block_ Sequence[Elastigroupdevices Ephemeral Block Device Args] - health_
check_ intgrace_ period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- health_
check_ strtype - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - health_
check_ intunhealthy_ duration_ before_ replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- iam_
instance_ strprofile - The ARN or name of an IAM instance profile to associate with launched instances.
- image_
id str - The ID of the AMI used to launch the instance.
- images
Sequence[Elastigroup
Image Args] - An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- immediate_
od_ intrecover_ threshold - instance_
types_ strondemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- instance_
types_ Sequence[str]preferred_ spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- instance_
types_ Sequence[str]spots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- instance_
types_ Sequence[Elastigroupweights Instance Types Weight Args] - List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
- integration_
beanstalk ElastigroupIntegration Beanstalk Args - integration_
codedeploy ElastigroupIntegration Codedeploy Args - integration_
docker_ Elastigroupswarm Integration Docker Swarm Args - integration_
ecs ElastigroupIntegration Ecs Args - integration_
gitlab ElastigroupIntegration Gitlab Args - integration_
kubernetes ElastigroupIntegration Kubernetes Args - integration_
mesosphere ElastigroupIntegration Mesosphere Args - integration_
nomad ElastigroupIntegration Nomad Args - integration_
rancher ElastigroupIntegration Rancher Args - integration_
route53 ElastigroupIntegration Route53Args - itfs
Sequence[Elastigroup
Itf Args] - key_
name str - The key name that should be used for the instance.
- lifetime_
period str - logging
Elastigroup
Logging Args - Logging configuration.
- max_
size int - The maximum number of instances the group should have at any time.
- metadata_
options ElastigroupMetadata Options Args - Data that used to configure or manage the running instances:
- min_
size int - The minimum number of instances the group should have at any time.
- minimum_
instance_ intlifetime - Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
- multiple_
metrics ElastigroupMultiple Metrics Args - name str
- The group name.
- network_
interfaces Sequence[ElastigroupNetwork Interface Args] - on_
demand_ Sequence[str]types - Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
- ondemand_
count int - Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the
spot_percentage
parameter is being ignored. - persist_
block_ booldevices - persist_
private_ boolip - persist_
root_ booldevice - placement_
tenancy str - Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
- preferred_
availability_ Sequence[str]zones - 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.
Note: Must be a sublist of
availability_zones
andorientation
value must not be"equalAzDistribution"
. - private_
ips Sequence[str] - region str
- The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
- resource_
requirements Sequence[ElastigroupResource Requirement Args] - Required instance attributes. Instance types will be selected based on these requirements.
- resource_
tag_ Sequence[Elastigroupspecifications Resource Tag Specification Args] - User will specify which resources should be tagged with group tags.
- restrict_
single_ boolaz - Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
- revert_
to_ Elastigroupspot Revert To Spot Args - Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values:
"never"
,"always"
,"timeWindow"
- scaling_
down_ Sequence[Elastigrouppolicies Scaling Down Policy Args] - scaling_
strategies Sequence[ElastigroupScaling Strategy Args] - Set termination policy.
- scaling_
target_ Sequence[Elastigrouppolicies Scaling Target Policy Args] - scaling_
up_ Sequence[Elastigrouppolicies Scaling Up Policy Args] - scheduled_
tasks Sequence[ElastigroupScheduled Task Args] - shutdown_
script str - The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
- signals
Sequence[Elastigroup
Signal Args] - spot_
percentage int - The percentage of Spot instances that would spin up from the
desired_capacity
number. - stateful_
deallocation ElastigroupStateful Deallocation Args - stateful_
instance_ Sequence[Elastigroupactions Stateful Instance Action Args] - subnet_
ids Sequence[str] - List of Strings of subnet identifiers.
Note: When this parameter is set,
availability_zones
should be left unused. - Sequence[Elastigroup
Tag Args] - A key/value mapping of tags to assign to the resource.
- target_
group_ Sequence[str]arns - update_
policy ElastigroupUpdate Policy Args - user_
data str - The user data to provide when launching the instance.
- utilize_
commitments bool - utilize_
reserved_ boolinstances - In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
- wait_
for_ intcapacity - Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed
desired_capacity
. - wait_
for_ intcapacity_ timeout - Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to
0
to indicate no wait. This is ignored when updating with blue/green deployment.
- fallback
To BooleanOndemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- orientation String
- Select a prediction strategy. Valid values:
balanced
,costOriented
,equalAzDistribution
,availabilityOriented
. You can read more in our documentation. - product String
- Operation system type. Valid values:
"Linux/UNIX"
,"SUSE Linux"
,"Windows"
. For EC2 Classic instances:"Linux/UNIX (Amazon VPC)"
,"SUSE Linux (Amazon VPC)"
,"Windows (Amazon VPC)"
. - security
Groups List<String> - A list of associated security group IDS.
- auto
Healing Boolean - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- availability
Zones List<String> - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- block
Devices StringMode - capacity
Unit String - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - consider
Od BooleanPricing - cpu
Credits String - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - cpu
Options Property Map - The CPU options for the instances that are launched within the group:
- description String
- The group description.
- desired
Capacity Number - The desired number of instances the group should have at any time.
- draining
Timeout Number - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- ebs
Block List<Property Map>Devices - ebs
Optimized Boolean - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- elastic
Ips List<String> - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- elastic
Load List<String>Balancers - enable
Monitoring Boolean - Indicates whether monitoring is enabled for the instance.
- ephemeral
Block List<Property Map>Devices - health
Check NumberGrace Period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- health
Check StringType - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - health
Check NumberUnhealthy Duration Before Replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- iam
Instance StringProfile - The ARN or name of an IAM instance profile to associate with launched instances.
- image
Id String - The ID of the AMI used to launch the instance.
- images List<Property Map>
- An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- immediate
Od NumberRecover Threshold - instance
Types StringOndemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- instance
Types List<String>Preferred Spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- instance
Types List<String>Spots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- instance
Types List<Property Map>Weights - List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
- integration
Beanstalk Property Map - integration
Codedeploy Property Map - integration
Docker Property MapSwarm - integration
Ecs Property Map - integration
Gitlab Property Map - integration
Kubernetes Property Map - integration
Mesosphere Property Map - integration
Nomad Property Map - integration
Rancher Property Map - integration
Route53 Property Map - itfs List<Property Map>
- key
Name String - The key name that should be used for the instance.
- lifetime
Period String - logging Property Map
- Logging configuration.
- max
Size Number - The maximum number of instances the group should have at any time.
- metadata
Options Property Map - Data that used to configure or manage the running instances:
- min
Size Number - The minimum number of instances the group should have at any time.
- minimum
Instance NumberLifetime - Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
- multiple
Metrics Property Map - name String
- The group name.
- network
Interfaces List<Property Map> - on
Demand List<String>Types - Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
- ondemand
Count Number - Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the
spot_percentage
parameter is being ignored. - persist
Block BooleanDevices - persist
Private BooleanIp - persist
Root BooleanDevice - placement
Tenancy String - Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
- preferred
Availability List<String>Zones - 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.
Note: Must be a sublist of
availability_zones
andorientation
value must not be"equalAzDistribution"
. - private
Ips List<String> - region String
- The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
- resource
Requirements List<Property Map> - Required instance attributes. Instance types will be selected based on these requirements.
- List<Property Map>
- User will specify which resources should be tagged with group tags.
- restrict
Single BooleanAz - Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
- revert
To Property MapSpot - Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values:
"never"
,"always"
,"timeWindow"
- scaling
Down List<Property Map>Policies - scaling
Strategies List<Property Map> - Set termination policy.
- scaling
Target List<Property Map>Policies - scaling
Up List<Property Map>Policies - scheduled
Tasks List<Property Map> - shutdown
Script String - The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
- signals List<Property Map>
- spot
Percentage Number - The percentage of Spot instances that would spin up from the
desired_capacity
number. - stateful
Deallocation Property Map - stateful
Instance List<Property Map>Actions - subnet
Ids List<String> - List of Strings of subnet identifiers.
Note: When this parameter is set,
availability_zones
should be left unused. - List<Property Map>
- A key/value mapping of tags to assign to the resource.
- target
Group List<String>Arns - update
Policy Property Map - user
Data String - The user data to provide when launching the instance.
- utilize
Commitments Boolean - utilize
Reserved BooleanInstances - In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
- wait
For NumberCapacity - Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed
desired_capacity
. - wait
For NumberCapacity Timeout - Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to
0
to indicate no wait. This is ignored when updating with blue/green deployment.
Outputs
All input properties are implicitly available as output properties. Additionally, the Elastigroup 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 Elastigroup Resource
Get an existing Elastigroup 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?: ElastigroupState, opts?: CustomResourceOptions): Elastigroup
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
auto_healing: Optional[bool] = None,
availability_zones: Optional[Sequence[str]] = None,
block_devices_mode: Optional[str] = None,
capacity_unit: Optional[str] = None,
consider_od_pricing: Optional[bool] = None,
cpu_credits: Optional[str] = None,
cpu_options: Optional[ElastigroupCpuOptionsArgs] = None,
description: Optional[str] = None,
desired_capacity: Optional[int] = None,
draining_timeout: Optional[int] = None,
ebs_block_devices: Optional[Sequence[ElastigroupEbsBlockDeviceArgs]] = None,
ebs_optimized: Optional[bool] = None,
elastic_ips: Optional[Sequence[str]] = None,
elastic_load_balancers: Optional[Sequence[str]] = None,
enable_monitoring: Optional[bool] = None,
ephemeral_block_devices: Optional[Sequence[ElastigroupEphemeralBlockDeviceArgs]] = None,
fallback_to_ondemand: Optional[bool] = None,
health_check_grace_period: Optional[int] = None,
health_check_type: Optional[str] = None,
health_check_unhealthy_duration_before_replacement: Optional[int] = None,
iam_instance_profile: Optional[str] = None,
image_id: Optional[str] = None,
images: Optional[Sequence[ElastigroupImageArgs]] = None,
immediate_od_recover_threshold: Optional[int] = None,
instance_types_ondemand: Optional[str] = None,
instance_types_preferred_spots: Optional[Sequence[str]] = None,
instance_types_spots: Optional[Sequence[str]] = None,
instance_types_weights: Optional[Sequence[ElastigroupInstanceTypesWeightArgs]] = None,
integration_beanstalk: Optional[ElastigroupIntegrationBeanstalkArgs] = None,
integration_codedeploy: Optional[ElastigroupIntegrationCodedeployArgs] = None,
integration_docker_swarm: Optional[ElastigroupIntegrationDockerSwarmArgs] = None,
integration_ecs: Optional[ElastigroupIntegrationEcsArgs] = None,
integration_gitlab: Optional[ElastigroupIntegrationGitlabArgs] = None,
integration_kubernetes: Optional[ElastigroupIntegrationKubernetesArgs] = None,
integration_mesosphere: Optional[ElastigroupIntegrationMesosphereArgs] = None,
integration_nomad: Optional[ElastigroupIntegrationNomadArgs] = None,
integration_rancher: Optional[ElastigroupIntegrationRancherArgs] = None,
integration_route53: Optional[ElastigroupIntegrationRoute53Args] = None,
itfs: Optional[Sequence[ElastigroupItfArgs]] = None,
key_name: Optional[str] = None,
lifetime_period: Optional[str] = None,
logging: Optional[ElastigroupLoggingArgs] = None,
max_size: Optional[int] = None,
metadata_options: Optional[ElastigroupMetadataOptionsArgs] = None,
min_size: Optional[int] = None,
minimum_instance_lifetime: Optional[int] = None,
multiple_metrics: Optional[ElastigroupMultipleMetricsArgs] = None,
name: Optional[str] = None,
network_interfaces: Optional[Sequence[ElastigroupNetworkInterfaceArgs]] = None,
on_demand_types: Optional[Sequence[str]] = None,
ondemand_count: Optional[int] = None,
orientation: Optional[str] = None,
persist_block_devices: Optional[bool] = None,
persist_private_ip: Optional[bool] = None,
persist_root_device: Optional[bool] = None,
placement_tenancy: Optional[str] = None,
preferred_availability_zones: Optional[Sequence[str]] = None,
private_ips: Optional[Sequence[str]] = None,
product: Optional[str] = None,
region: Optional[str] = None,
resource_requirements: Optional[Sequence[ElastigroupResourceRequirementArgs]] = None,
resource_tag_specifications: Optional[Sequence[ElastigroupResourceTagSpecificationArgs]] = None,
restrict_single_az: Optional[bool] = None,
revert_to_spot: Optional[ElastigroupRevertToSpotArgs] = None,
scaling_down_policies: Optional[Sequence[ElastigroupScalingDownPolicyArgs]] = None,
scaling_strategies: Optional[Sequence[ElastigroupScalingStrategyArgs]] = None,
scaling_target_policies: Optional[Sequence[ElastigroupScalingTargetPolicyArgs]] = None,
scaling_up_policies: Optional[Sequence[ElastigroupScalingUpPolicyArgs]] = None,
scheduled_tasks: Optional[Sequence[ElastigroupScheduledTaskArgs]] = None,
security_groups: Optional[Sequence[str]] = None,
shutdown_script: Optional[str] = None,
signals: Optional[Sequence[ElastigroupSignalArgs]] = None,
spot_percentage: Optional[int] = None,
stateful_deallocation: Optional[ElastigroupStatefulDeallocationArgs] = None,
stateful_instance_actions: Optional[Sequence[ElastigroupStatefulInstanceActionArgs]] = None,
subnet_ids: Optional[Sequence[str]] = None,
tags: Optional[Sequence[ElastigroupTagArgs]] = None,
target_group_arns: Optional[Sequence[str]] = None,
update_policy: Optional[ElastigroupUpdatePolicyArgs] = None,
user_data: Optional[str] = None,
utilize_commitments: Optional[bool] = None,
utilize_reserved_instances: Optional[bool] = None,
wait_for_capacity: Optional[int] = None,
wait_for_capacity_timeout: Optional[int] = None) -> Elastigroup
func GetElastigroup(ctx *Context, name string, id IDInput, state *ElastigroupState, opts ...ResourceOption) (*Elastigroup, error)
public static Elastigroup Get(string name, Input<string> id, ElastigroupState? state, CustomResourceOptions? opts = null)
public static Elastigroup get(String name, Output<String> id, ElastigroupState 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.
- Auto
Healing bool - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- Availability
Zones List<string> - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- Block
Devices stringMode - Capacity
Unit string - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - Consider
Od boolPricing - Cpu
Credits string - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - Cpu
Options Pulumi.Spot Inst. Aws. Inputs. Elastigroup Cpu Options - The CPU options for the instances that are launched within the group:
- Description string
- The group description.
- Desired
Capacity int - The desired number of instances the group should have at any time.
- Draining
Timeout int - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- Ebs
Block List<Pulumi.Devices Spot Inst. Aws. Inputs. Elastigroup Ebs Block Device> - Ebs
Optimized bool - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- Elastic
Ips List<string> - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- Elastic
Load List<string>Balancers - Enable
Monitoring bool - Indicates whether monitoring is enabled for the instance.
- Ephemeral
Block List<Pulumi.Devices Spot Inst. Aws. Inputs. Elastigroup Ephemeral Block Device> - Fallback
To boolOndemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- Health
Check intGrace Period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- Health
Check stringType - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - Health
Check intUnhealthy Duration Before Replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- Iam
Instance stringProfile - The ARN or name of an IAM instance profile to associate with launched instances.
- Image
Id string - The ID of the AMI used to launch the instance.
- Images
List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Image> - An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- Immediate
Od intRecover Threshold - Instance
Types stringOndemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- Instance
Types List<string>Preferred Spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- Instance
Types List<string>Spots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- Instance
Types List<Pulumi.Weights Spot Inst. Aws. Inputs. Elastigroup Instance Types Weight> - List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
- Integration
Beanstalk Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Beanstalk - Integration
Codedeploy Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Codedeploy - Integration
Docker Pulumi.Swarm Spot Inst. Aws. Inputs. Elastigroup Integration Docker Swarm - Integration
Ecs Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Ecs - Integration
Gitlab Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Gitlab - Integration
Kubernetes Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Kubernetes - Integration
Mesosphere Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Mesosphere - Integration
Nomad Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Nomad - Integration
Rancher Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Rancher - Integration
Route53 Pulumi.Spot Inst. Aws. Inputs. Elastigroup Integration Route53 - Itfs
List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Itf> - Key
Name string - The key name that should be used for the instance.
- Lifetime
Period string - Logging
Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Logging - Logging configuration.
- Max
Size int - The maximum number of instances the group should have at any time.
- Metadata
Options Pulumi.Spot Inst. Aws. Inputs. Elastigroup Metadata Options - Data that used to configure or manage the running instances:
- Min
Size int - The minimum number of instances the group should have at any time.
- Minimum
Instance intLifetime - Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
- Multiple
Metrics Pulumi.Spot Inst. Aws. Inputs. Elastigroup Multiple Metrics - Name string
- The group name.
- Network
Interfaces List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Network Interface> - On
Demand List<string>Types - Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
- Ondemand
Count int - Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the
spot_percentage
parameter is being ignored. - Orientation string
- Select a prediction strategy. Valid values:
balanced
,costOriented
,equalAzDistribution
,availabilityOriented
. You can read more in our documentation. - Persist
Block boolDevices - Persist
Private boolIp - Persist
Root boolDevice - Placement
Tenancy string - Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
- Preferred
Availability List<string>Zones - 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.
Note: Must be a sublist of
availability_zones
andorientation
value must not be"equalAzDistribution"
. - Private
Ips List<string> - Product string
- Operation system type. Valid values:
"Linux/UNIX"
,"SUSE Linux"
,"Windows"
. For EC2 Classic instances:"Linux/UNIX (Amazon VPC)"
,"SUSE Linux (Amazon VPC)"
,"Windows (Amazon VPC)"
. - Region string
- The AWS region your group will be created in. Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
- Resource
Requirements List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Resource Requirement> - Required instance attributes. Instance types will be selected based on these requirements.
- List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Resource Tag Specification> - User will specify which resources should be tagged with group tags.
- Restrict
Single boolAz - Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
- Revert
To Pulumi.Spot Spot Inst. Aws. Inputs. Elastigroup Revert To Spot - Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values:
"never"
,"always"
,"timeWindow"
- Scaling
Down List<Pulumi.Policies Spot Inst. Aws. Inputs. Elastigroup Scaling Down Policy> - Scaling
Strategies List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Scaling Strategy> - Set termination policy.
- Scaling
Target List<Pulumi.Policies Spot Inst. Aws. Inputs. Elastigroup Scaling Target Policy> - Scaling
Up List<Pulumi.Policies Spot Inst. Aws. Inputs. Elastigroup Scaling Up Policy> - Scheduled
Tasks List<Pulumi.Spot Inst. Aws. Inputs. Elastigroup Scheduled Task> - Security
Groups List<string> - A list of associated security group IDS.
- Shutdown
Script string - The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script
- Signals
List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Signal> - Spot
Percentage int - The percentage of Spot instances that would spin up from the
desired_capacity
number. - Stateful
Deallocation Pulumi.Spot Inst. Aws. Inputs. Elastigroup Stateful Deallocation - Stateful
Instance List<Pulumi.Actions Spot Inst. Aws. Inputs. Elastigroup Stateful Instance Action> - Subnet
Ids List<string> - List of Strings of subnet identifiers.
Note: When this parameter is set,
availability_zones
should be left unused. - List<Pulumi.
Spot Inst. Aws. Inputs. Elastigroup Tag> - A key/value mapping of tags to assign to the resource.
- Target
Group List<string>Arns - Update
Policy Pulumi.Spot Inst. Aws. Inputs. Elastigroup Update Policy - User
Data string - The user data to provide when launching the instance.
- Utilize
Commitments bool - Utilize
Reserved boolInstances - In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
- Wait
For intCapacity - Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed
desired_capacity
. - Wait
For intCapacity Timeout - Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to
0
to indicate no wait. This is ignored when updating with blue/green deployment.
- Auto
Healing bool - Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
- Availability
Zones []string - List of Strings of availability zones. When this parameter is set,
subnet_ids
should be left unused. Note:availability_zones
naming syntax follows the conventionavailability-zone:subnet:placement-group-name
. For example, to set an AZ inus-east-1
with subnetsubnet-123456
and placement groupClusterI03
, you would set:availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]
- Block
Devices stringMode - Capacity
Unit string - The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values:
instance
,weight
. - Consider
Od boolPricing - Cpu
Credits string - Controls how T3 instances are launched. Valid values:
standard
,unlimited
. - Cpu
Options ElastigroupCpu Options Args - The CPU options for the instances that are launched within the group:
- Description string
- The group description.
- Desired
Capacity int - The desired number of instances the group should have at any time.
- Draining
Timeout int - The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
- Ebs
Block []ElastigroupDevices Ebs Block Device Args - Ebs
Optimized bool - Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
- Elastic
Ips []string - A list of AWS Elastic IP allocation IDs to associate to the group instances.
- Elastic
Load []stringBalancers - Enable
Monitoring bool - Indicates whether monitoring is enabled for the instance.
- Ephemeral
Block []ElastigroupDevices Ephemeral Block Device Args - Fallback
To boolOndemand - In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
- Health
Check intGrace Period - The amount of time, in seconds, after the instance has launched to starts and check its health.
- Health
Check stringType - The service that will perform health checks for the instance. Valid values:
"ELB"
,"HCS"
,"TARGET_GROUP"
,"EC2"
,"K8S_NODE"
,"NOMAD_NODE"
,"ECS_CLUSTER_INSTANCE"
. - Health
Check intUnhealthy Duration Before Replacement - The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
- Iam
Instance stringProfile - The ARN or name of an IAM instance profile to associate with launched instances.
- Image
Id string - The ID of the AMI used to launch the instance.
- Images
[]Elastigroup
Image Args - An array of image objects. Note: Elastigroup can be configured with either imageId or images, but not both.
- Immediate
Od intRecover Threshold - Instance
Types stringOndemand - The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
- Instance
Types []stringPreferred Spots - Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
- Instance
Types []stringSpots - One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
- Instance
Types []ElastigroupWeights Instance Types Weight Args - List of weights per instance type for weighted groups. Each object in the list shoul