1. Packages
  2. AWS Classic
  3. API Docs
  4. emr
  5. InstanceGroup

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.32.0 published on Friday, Apr 19, 2024 by Pulumi

aws.emr.InstanceGroup

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.32.0 published on Friday, Apr 19, 2024 by Pulumi

    Provides an Elastic MapReduce Cluster Instance Group configuration. See Amazon Elastic MapReduce Documentation for more information.

    NOTE: At this time, Instance Groups cannot be destroyed through the API nor web interface. Instance Groups are destroyed when the EMR Cluster is destroyed. this provider will resize any Instance Group to zero when destroying the resource.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const task = new aws.emr.InstanceGroup("task", {
        clusterId: tf_test_cluster.id,
        instanceCount: 1,
        instanceType: "m5.xlarge",
        name: "my little instance group",
    });
    
    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task",
        cluster_id=tf_test_cluster["id"],
        instance_count=1,
        instance_type="m5.xlarge",
        name="my little instance group")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ClusterId:     pulumi.Any(tf_test_cluster.Id),
    			InstanceCount: pulumi.Int(1),
    			InstanceType:  pulumi.String("m5.xlarge"),
    			Name:          pulumi.String("my little instance group"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ClusterId = tf_test_cluster.Id,
            InstanceCount = 1,
            InstanceType = "m5.xlarge",
            Name = "my little instance group",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .clusterId(tf_test_cluster.id())
                .instanceCount(1)
                .instanceType("m5.xlarge")
                .name("my little instance group")
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          clusterId: ${["tf-test-cluster"].id}
          instanceCount: 1
          instanceType: m5.xlarge
          name: my little instance group
    

    Create InstanceGroup Resource

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

    Constructor syntax

    new InstanceGroup(name: string, args: InstanceGroupArgs, opts?: CustomResourceOptions);
    @overload
    def InstanceGroup(resource_name: str,
                      args: InstanceGroupArgs,
                      opts: Optional[ResourceOptions] = None)
    
    @overload
    def InstanceGroup(resource_name: str,
                      opts: Optional[ResourceOptions] = None,
                      cluster_id: Optional[str] = None,
                      instance_type: Optional[str] = None,
                      autoscaling_policy: Optional[str] = None,
                      bid_price: Optional[str] = None,
                      configurations_json: Optional[str] = None,
                      ebs_configs: Optional[Sequence[InstanceGroupEbsConfigArgs]] = None,
                      ebs_optimized: Optional[bool] = None,
                      instance_count: Optional[int] = None,
                      name: Optional[str] = None)
    func NewInstanceGroup(ctx *Context, name string, args InstanceGroupArgs, opts ...ResourceOption) (*InstanceGroup, error)
    public InstanceGroup(string name, InstanceGroupArgs args, CustomResourceOptions? opts = null)
    public InstanceGroup(String name, InstanceGroupArgs args)
    public InstanceGroup(String name, InstanceGroupArgs args, CustomResourceOptions options)
    
    type: aws:emr:InstanceGroup
    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 InstanceGroupArgs
    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 InstanceGroupArgs
    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 InstanceGroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args InstanceGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args InstanceGroupArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Example

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

    var instanceGroupResource = new Aws.Emr.InstanceGroup("instanceGroupResource", new()
    {
        ClusterId = "string",
        InstanceType = "string",
        AutoscalingPolicy = "string",
        BidPrice = "string",
        ConfigurationsJson = "string",
        EbsConfigs = new[]
        {
            new Aws.Emr.Inputs.InstanceGroupEbsConfigArgs
            {
                Size = 0,
                Type = "string",
                Iops = 0,
                VolumesPerInstance = 0,
            },
        },
        EbsOptimized = false,
        InstanceCount = 0,
        Name = "string",
    });
    
    example, err := emr.NewInstanceGroup(ctx, "instanceGroupResource", &emr.InstanceGroupArgs{
    	ClusterId:          pulumi.String("string"),
    	InstanceType:       pulumi.String("string"),
    	AutoscalingPolicy:  pulumi.String("string"),
    	BidPrice:           pulumi.String("string"),
    	ConfigurationsJson: pulumi.String("string"),
    	EbsConfigs: emr.InstanceGroupEbsConfigArray{
    		&emr.InstanceGroupEbsConfigArgs{
    			Size:               pulumi.Int(0),
    			Type:               pulumi.String("string"),
    			Iops:               pulumi.Int(0),
    			VolumesPerInstance: pulumi.Int(0),
    		},
    	},
    	EbsOptimized:  pulumi.Bool(false),
    	InstanceCount: pulumi.Int(0),
    	Name:          pulumi.String("string"),
    })
    
    var instanceGroupResource = new InstanceGroup("instanceGroupResource", InstanceGroupArgs.builder()        
        .clusterId("string")
        .instanceType("string")
        .autoscalingPolicy("string")
        .bidPrice("string")
        .configurationsJson("string")
        .ebsConfigs(InstanceGroupEbsConfigArgs.builder()
            .size(0)
            .type("string")
            .iops(0)
            .volumesPerInstance(0)
            .build())
        .ebsOptimized(false)
        .instanceCount(0)
        .name("string")
        .build());
    
    instance_group_resource = aws.emr.InstanceGroup("instanceGroupResource",
        cluster_id="string",
        instance_type="string",
        autoscaling_policy="string",
        bid_price="string",
        configurations_json="string",
        ebs_configs=[aws.emr.InstanceGroupEbsConfigArgs(
            size=0,
            type="string",
            iops=0,
            volumes_per_instance=0,
        )],
        ebs_optimized=False,
        instance_count=0,
        name="string")
    
    const instanceGroupResource = new aws.emr.InstanceGroup("instanceGroupResource", {
        clusterId: "string",
        instanceType: "string",
        autoscalingPolicy: "string",
        bidPrice: "string",
        configurationsJson: "string",
        ebsConfigs: [{
            size: 0,
            type: "string",
            iops: 0,
            volumesPerInstance: 0,
        }],
        ebsOptimized: false,
        instanceCount: 0,
        name: "string",
    });
    
    type: aws:emr:InstanceGroup
    properties:
        autoscalingPolicy: string
        bidPrice: string
        clusterId: string
        configurationsJson: string
        ebsConfigs:
            - iops: 0
              size: 0
              type: string
              volumesPerInstance: 0
        ebsOptimized: false
        instanceCount: 0
        instanceType: string
        name: string
    

    InstanceGroup 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 InstanceGroup resource accepts the following input properties:

    ClusterId string
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    InstanceType string
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    AutoscalingPolicy string
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    BidPrice string
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    ConfigurationsJson string
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { "Classification": "hadoop-env", "Configurations": [ { "Classification": "export", "Properties": { "JAVA_HOME": "/usr/lib/jvm/java-1.8.0" } } ], "Properties": {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="ebsconfigs_csharp">

    EbsConfigs List<InstanceGroupEbsConfig>

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    EbsOptimized bool
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    InstanceCount int
    target number of instances for the instance group. defaults to 0.
    Name string
    Human friendly name given to the instance group. Changing this forces a new resource to be created.

    ClusterId string
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    InstanceType string
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    AutoscalingPolicy string
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    BidPrice string
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    ConfigurationsJson string
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="ebsconfigs_go">

    EbsConfigs []InstanceGroupEbsConfigArgs

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    EbsOptimized bool
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    InstanceCount int
    target number of instances for the instance group. defaults to 0.
    Name string
    Human friendly name given to the instance group. Changing this forces a new resource to be created.

    clusterId String
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    instanceType String
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    autoscalingPolicy String
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bidPrice String
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    configurationsJson String
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="ebsconfigs_java">

    ebsConfigs List<InstanceGroupEbsConfig>

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebsOptimized Boolean
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instanceCount Integer
    target number of instances for the instance group. defaults to 0.
    name String
    Human friendly name given to the instance group. Changing this forces a new resource to be created.

    clusterId string
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    instanceType string
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    autoscalingPolicy string
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bidPrice string
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    configurationsJson string
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="ebsconfigs_nodejs">

    ebsConfigs InstanceGroupEbsConfig[]

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebsOptimized boolean
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instanceCount number
    target number of instances for the instance group. defaults to 0.
    name string
    Human friendly name given to the instance group. Changing this forces a new resource to be created.

    cluster_id str
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    instance_type str
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    autoscaling_policy str
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bid_price str
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    configurations_json str
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="ebs_configs_python">

    ebs_configs Sequence[InstanceGroupEbsConfigArgs]

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebs_optimized bool
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instance_count int
    target number of instances for the instance group. defaults to 0.
    name str
    Human friendly name given to the instance group. Changing this forces a new resource to be created.

    clusterId String
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    instanceType String
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    autoscalingPolicy String
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bidPrice String
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    configurationsJson String
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="ebsconfigs_yaml">

    ebsConfigs List<Property Map>

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebsOptimized Boolean
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instanceCount Number
    target number of instances for the instance group. defaults to 0.
    name String
    Human friendly name given to the instance group. Changing this forces a new resource to be created.

    Outputs

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

    Id string
    The provider-assigned unique ID for this managed resource.
    RunningInstanceCount int
    The number of instances currently running in this instance group.
    Status string
    The current status of the instance group.
    Id string
    The provider-assigned unique ID for this managed resource.
    RunningInstanceCount int
    The number of instances currently running in this instance group.
    Status string
    The current status of the instance group.
    id String
    The provider-assigned unique ID for this managed resource.
    runningInstanceCount Integer
    The number of instances currently running in this instance group.
    status String
    The current status of the instance group.
    id string
    The provider-assigned unique ID for this managed resource.
    runningInstanceCount number
    The number of instances currently running in this instance group.
    status string
    The current status of the instance group.
    id str
    The provider-assigned unique ID for this managed resource.
    running_instance_count int
    The number of instances currently running in this instance group.
    status str
    The current status of the instance group.
    id String
    The provider-assigned unique ID for this managed resource.
    runningInstanceCount Number
    The number of instances currently running in this instance group.
    status String
    The current status of the instance group.

    Look up Existing InstanceGroup Resource

    Get an existing InstanceGroup 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?: InstanceGroupState, opts?: CustomResourceOptions): InstanceGroup
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            autoscaling_policy: Optional[str] = None,
            bid_price: Optional[str] = None,
            cluster_id: Optional[str] = None,
            configurations_json: Optional[str] = None,
            ebs_configs: Optional[Sequence[InstanceGroupEbsConfigArgs]] = None,
            ebs_optimized: Optional[bool] = None,
            instance_count: Optional[int] = None,
            instance_type: Optional[str] = None,
            name: Optional[str] = None,
            running_instance_count: Optional[int] = None,
            status: Optional[str] = None) -> InstanceGroup
    func GetInstanceGroup(ctx *Context, name string, id IDInput, state *InstanceGroupState, opts ...ResourceOption) (*InstanceGroup, error)
    public static InstanceGroup Get(string name, Input<string> id, InstanceGroupState? state, CustomResourceOptions? opts = null)
    public static InstanceGroup get(String name, Output<String> id, InstanceGroupState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AutoscalingPolicy string
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    BidPrice string
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    ClusterId string
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    ConfigurationsJson string
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="state_ebsconfigs_csharp">

    EbsConfigs List<InstanceGroupEbsConfig>

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    EbsOptimized bool
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    InstanceCount int
    target number of instances for the instance group. defaults to 0.
    InstanceType string
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    Name string
    Human friendly name given to the instance group. Changing this forces a new resource to be created.
    RunningInstanceCount int
    The number of instances currently running in this instance group.
    Status string
    The current status of the instance group.

    AutoscalingPolicy string
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    BidPrice string
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    ClusterId string
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    ConfigurationsJson string
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="state_ebsconfigs_go">

    EbsConfigs []InstanceGroupEbsConfigArgs

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    EbsOptimized bool
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    InstanceCount int
    target number of instances for the instance group. defaults to 0.
    InstanceType string
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    Name string
    Human friendly name given to the instance group. Changing this forces a new resource to be created.
    RunningInstanceCount int
    The number of instances currently running in this instance group.
    Status string
    The current status of the instance group.

    autoscalingPolicy String
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bidPrice String
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    clusterId String
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    configurationsJson String
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="state_ebsconfigs_java">

    ebsConfigs List<InstanceGroupEbsConfig>

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebsOptimized Boolean
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instanceCount Integer
    target number of instances for the instance group. defaults to 0.
    instanceType String
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    name String
    Human friendly name given to the instance group. Changing this forces a new resource to be created.
    runningInstanceCount Integer
    The number of instances currently running in this instance group.
    status String
    The current status of the instance group.

    autoscalingPolicy string
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bidPrice string
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    clusterId string
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    configurationsJson string
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="state_ebsconfigs_nodejs">

    ebsConfigs InstanceGroupEbsConfig[]

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebsOptimized boolean
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instanceCount number
    target number of instances for the instance group. defaults to 0.
    instanceType string
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    name string
    Human friendly name given to the instance group. Changing this forces a new resource to be created.
    runningInstanceCount number
    The number of instances currently running in this instance group.
    status string
    The current status of the instance group.

    autoscaling_policy str
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bid_price str
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    cluster_id str
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    configurations_json str
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="state_ebs_configs_python">

    ebs_configs Sequence[InstanceGroupEbsConfigArgs]

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebs_optimized bool
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instance_count int
    target number of instances for the instance group. defaults to 0.
    instance_type str
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    name str
    Human friendly name given to the instance group. Changing this forces a new resource to be created.
    running_instance_count int
    The number of instances currently running in this instance group.
    status str
    The current status of the instance group.

    autoscalingPolicy String
    The autoscaling policy document. This is a JSON formatted string. See EMR Auto Scaling
    bidPrice String
    If set, the bid price for each EC2 instance in the instance group, expressed in USD. By setting this attribute, the instance group is being declared as a Spot Instance, and will implicitly create a Spot request. Leave this blank to use On-Demand Instances.
    clusterId String
    ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
    configurationsJson String
    A JSON string for supplying list of configurations specific to the EMR instance group. Note that this can only be changed when using EMR release 5.21 or later.

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    

    const task = new aws.emr.InstanceGroup("task", {configurationsJson: [ { &quot;Classification&quot;: &quot;hadoop-env&quot;, &quot;Configurations&quot;: [ { &quot;Classification&quot;: &quot;export&quot;, &quot;Properties&quot;: { &quot;JAVA_HOME&quot;: &quot;/usr/lib/jvm/java-1.8.0&quot; } } ], &quot;Properties&quot;: {} } ] });

    import pulumi
    import pulumi_aws as aws
    
    task = aws.emr.InstanceGroup("task", configurations_json="""[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    """)
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var task = new Aws.Emr.InstanceGroup("task", new()
        {
            ConfigurationsJson = @"[
    {
    ""Classification"": ""hadoop-env"",
    ""Configurations"": [
    {
    ""Classification"": ""export"",
    ""Properties"": {
    ""JAVA_HOME"": ""/usr/lib/jvm/java-1.8.0""
    }
    }
    ],
    ""Properties"": {}
    }
    ]
    ",
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emr"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
    			ConfigurationsJson: pulumi.String(`[
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
    `),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.emr.InstanceGroup;
    import com.pulumi.aws.emr.InstanceGroupArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var task = new InstanceGroup("task", InstanceGroupArgs.builder()        
                .configurationsJson("""
    [
    {
    "Classification": "hadoop-env",
    "Configurations": [
    {
    "Classification": "export",
    "Properties": {
    "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
    }
    }
    ],
    "Properties": {}
    }
    ]
                """)
                .build());
    
        }
    }
    
    resources:
      task:
        type: aws:emr:InstanceGroup
        properties:
          configurationsJson: |
            [
            {
            "Classification": "hadoop-env",
            "Configurations": [
            {
            "Classification": "export",
            "Properties": {
            "JAVA_HOME": "/usr/lib/jvm/java-1.8.0"
            }
            }
            ],
            "Properties": {}
            }
            ]
    
    title="Optional"> <span id="state_ebsconfigs_yaml">

    ebsConfigs List<Property Map>

    One or more ebs_config blocks as defined below. Changing this forces a new resource to be created.
    ebsOptimized Boolean
    Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
    instanceCount Number
    target number of instances for the instance group. defaults to 0.
    instanceType String
    The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
    name String
    Human friendly name given to the instance group. Changing this forces a new resource to be created.
    runningInstanceCount Number
    The number of instances currently running in this instance group.
    status String
    The current status of the instance group.

    Supporting Types

    InstanceGroupEbsConfig, InstanceGroupEbsConfigArgs

    Size int
    The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
    Type string
    The volume type. Valid options are 'gp2', 'io1' and 'standard'.
    Iops int
    The number of I/O operations per second (IOPS) that the volume supports.
    VolumesPerInstance int
    The number of EBS Volumes to attach per instance.
    Size int
    The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
    Type string
    The volume type. Valid options are 'gp2', 'io1' and 'standard'.
    Iops int
    The number of I/O operations per second (IOPS) that the volume supports.
    VolumesPerInstance int
    The number of EBS Volumes to attach per instance.
    size Integer
    The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
    type String
    The volume type. Valid options are 'gp2', 'io1' and 'standard'.
    iops Integer
    The number of I/O operations per second (IOPS) that the volume supports.
    volumesPerInstance Integer
    The number of EBS Volumes to attach per instance.
    size number
    The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
    type string
    The volume type. Valid options are 'gp2', 'io1' and 'standard'.
    iops number
    The number of I/O operations per second (IOPS) that the volume supports.
    volumesPerInstance number
    The number of EBS Volumes to attach per instance.
    size int
    The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
    type str
    The volume type. Valid options are 'gp2', 'io1' and 'standard'.
    iops int
    The number of I/O operations per second (IOPS) that the volume supports.
    volumes_per_instance int
    The number of EBS Volumes to attach per instance.
    size Number
    The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
    type String
    The volume type. Valid options are 'gp2', 'io1' and 'standard'.
    iops Number
    The number of I/O operations per second (IOPS) that the volume supports.
    volumesPerInstance Number
    The number of EBS Volumes to attach per instance.

    Import

    Using pulumi import, import EMR task instance group using their EMR Cluster id and Instance Group id separated by a forward-slash /. For example:

    $ pulumi import aws:emr/instanceGroup:InstanceGroup task_group j-123456ABCDEF/ig-15EK4O09RZLNR
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.32.0 published on Friday, Apr 19, 2024 by Pulumi