emr

package
v2.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cluster

type Cluster struct {
	pulumi.CustomResourceState

	// A JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore this provider cannot detect drift from the actual EMR cluster if its value is changed outside this provider.
	AdditionalInfo pulumi.StringPtrOutput `pulumi:"additionalInfo"`
	// A list of applications for the cluster. Valid values are: `Flink`, `Hadoop`, `Hive`, `Mahout`, `Pig`, `Spark`, and `JupyterHub` (as of EMR 5.14.0). Case insensitive
	Applications pulumi.StringArrayOutput `pulumi:"applications"`
	Arn          pulumi.StringOutput      `pulumi:"arn"`
	// An IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
	AutoscalingRole pulumi.StringPtrOutput `pulumi:"autoscalingRole"`
	// Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. Defined below.
	BootstrapActions ClusterBootstrapActionArrayOutput `pulumi:"bootstrapActions"`
	ClusterState     pulumi.StringOutput               `pulumi:"clusterState"`
	// List of configurations supplied for the EMR cluster you are creating
	Configurations pulumi.StringPtrOutput `pulumi:"configurations"`
	// A JSON string for supplying list of configurations for the EMR cluster.
	ConfigurationsJson pulumi.StringPtrOutput `pulumi:"configurationsJson"`
	// Use the `coreInstanceGroup` configuration block `instanceCount` argument instead. Number of Amazon EC2 instances used to execute the job flow. EMR will use one node as the cluster's master node and use the remainder of the nodes (`coreInstanceCount`-1) as core nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. Default `1`
	//
	// Deprecated: use `core_instance_group` configuration block `instance_count` argument instead
	CoreInstanceCount pulumi.IntOutput `pulumi:"coreInstanceCount"`
	// Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-core). Cannot be specified if `coreInstanceCount` argument, `coreInstanceType` argument, or `instanceGroup` configuration blocks are set. Detailed below.
	CoreInstanceGroup ClusterCoreInstanceGroupOutput `pulumi:"coreInstanceGroup"`
	// Use the `coreInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the slave nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set.
	//
	// Deprecated: use `core_instance_group` configuration block `instance_type` argument instead
	CoreInstanceType pulumi.StringOutput `pulumi:"coreInstanceType"`
	// A custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
	CustomAmiId pulumi.StringPtrOutput `pulumi:"customAmiId"`
	// Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
	EbsRootVolumeSize pulumi.IntPtrOutput `pulumi:"ebsRootVolumeSize"`
	// Attributes for the EC2 instances running the job flow. Defined below
	Ec2Attributes ClusterEc2AttributesPtrOutput `pulumi:"ec2Attributes"`
	// Use the `masterInstanceGroup` configuration block, `coreInstanceGroup` configuration block and `emr.InstanceGroup` resource(s) instead. A list of `instanceGroup` objects for each instance group in the cluster. Exactly one of `masterInstanceType` and `instanceGroup` must be specified. If `instanceGroup` is set, then it must contain a configuration block for at least the `MASTER` instance group type (as well as any additional instance groups). Cannot be specified if `masterInstanceGroup` or `coreInstanceGroup` configuration blocks are set. Defined below
	//
	// Deprecated: use `master_instance_group` configuration block, `core_instance_group` configuration block, and `aws_emr_instance_group` resource(s) instead
	InstanceGroups ClusterInstanceGroupArrayOutput `pulumi:"instanceGroups"`
	// Switch on/off run cluster with no steps or when all steps are complete (default is on)
	KeepJobFlowAliveWhenNoSteps pulumi.BoolOutput `pulumi:"keepJobFlowAliveWhenNoSteps"`
	// Kerberos configuration for the cluster. Defined below
	KerberosAttributes ClusterKerberosAttributesPtrOutput `pulumi:"kerberosAttributes"`
	// S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created
	LogUri pulumi.StringPtrOutput `pulumi:"logUri"`
	// Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-master). Cannot be specified if `masterInstanceType` argument or `instanceGroup` configuration blocks are set. Detailed below.
	MasterInstanceGroup ClusterMasterInstanceGroupOutput `pulumi:"masterInstanceGroup"`
	// Use the `masterInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the master node. Cannot be specified if `masterInstanceGroup` or `instanceGroup` configuration blocks are set.
	//
	// Deprecated: use `master_instance_group` configuration block `instance_type` argument instead
	MasterInstanceType pulumi.StringOutput `pulumi:"masterInstanceType"`
	// The public DNS name of the master EC2 instance.
	// * `core_instance_group.0.id` - Core node type Instance Group ID, if using Instance Group for this node type.
	MasterPublicDns pulumi.StringOutput `pulumi:"masterPublicDns"`
	// The name of the step.
	Name pulumi.StringOutput `pulumi:"name"`
	// The release label for the Amazon EMR release
	ReleaseLabel pulumi.StringOutput `pulumi:"releaseLabel"`
	// The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an `instance group` is resized.
	ScaleDownBehavior pulumi.StringOutput `pulumi:"scaleDownBehavior"`
	// The security configuration name to attach to the EMR cluster. Only valid for EMR clusters with `releaseLabel` 4.8.0 or greater
	SecurityConfiguration pulumi.StringPtrOutput `pulumi:"securityConfiguration"`
	// IAM role that will be assumed by the Amazon EMR service to access AWS resources
	ServiceRole pulumi.StringOutput `pulumi:"serviceRole"`
	// The number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with `releaseLabel` 5.28.0 or greater. (default is 1)
	StepConcurrencyLevel pulumi.IntPtrOutput `pulumi:"stepConcurrencyLevel"`
	// List of steps to run when creating the cluster. Defined below. It is highly recommended to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) if other steps are being managed outside of this provider.
	Steps ClusterStepArrayOutput `pulumi:"steps"`
	// list of tags to apply to the EMR Cluster
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`.
	TerminationProtection pulumi.BoolOutput `pulumi:"terminationProtection"`
	// Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default `true`
	VisibleToAllUsers pulumi.BoolPtrOutput `pulumi:"visibleToAllUsers"`
}

Provides an Elastic MapReduce Cluster, a web service that makes it easy to process large amounts of data efficiently. See [Amazon Elastic MapReduce Documentation](https://aws.amazon.com/documentation/elastic-mapreduce/) for more information.

To configure [Instance Groups](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for [task nodes](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-task), see the `emr.InstanceGroup` resource.

> Support for [Instance Fleets](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-fleets) will be made available in an upcoming release.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/emr"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			AdditionalInfo: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v", "{\n", "  \"instanceAwsClientConfiguration\": {\n", "    \"proxyPort\": 8099,\n", "    \"proxyHost\": \"myproxy.example.com\"\n", "  }\n", "}\n", "\n")),
			Applications: pulumi.StringArray{
				pulumi.String("Spark"),
			},
			BootstrapActions: emr.ClusterBootstrapActionArray{
				&emr.ClusterBootstrapActionArgs{
					Args: pulumi.StringArray{
						pulumi.String("instance.isMaster=true"),
						pulumi.String("echo running on master node"),
					},
					Name: pulumi.String("runif"),
					Path: pulumi.String("s3://elasticmapreduce/bootstrap-actions/run-if"),
				},
			},
			ConfigurationsJson: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "  [\n", "    {\n", "      \"Classification\": \"hadoop-env\",\n", "      \"Configurations\": [\n", "        {\n", "          \"Classification\": \"export\",\n", "          \"Properties\": {\n", "            \"JAVA_HOME\": \"/usr/lib/jvm/java-1.8.0\"\n", "          }\n", "        }\n", "      ],\n", "      \"Properties\": {}\n", "    },\n", "    {\n", "      \"Classification\": \"spark-env\",\n", "      \"Configurations\": [\n", "        {\n", "          \"Classification\": \"export\",\n", "          \"Properties\": {\n", "            \"JAVA_HOME\": \"/usr/lib/jvm/java-1.8.0\"\n", "          }\n", "        }\n", "      ],\n", "      \"Properties\": {}\n", "    }\n", "  ]\n", "\n")),
			CoreInstanceGroup: &emr.ClusterCoreInstanceGroupArgs{
				AutoscalingPolicy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "\"Constraints\": {\n", "  \"MinCapacity\": 1,\n", "  \"MaxCapacity\": 2\n", "},\n", "\"Rules\": [\n", "  {\n", "    \"Name\": \"ScaleOutMemoryPercentage\",\n", "    \"Description\": \"Scale out if YARNMemoryAvailablePercentage is less than 15\",\n", "    \"Action\": {\n", "      \"SimpleScalingPolicyConfiguration\": {\n", "        \"AdjustmentType\": \"CHANGE_IN_CAPACITY\",\n", "        \"ScalingAdjustment\": 1,\n", "        \"CoolDown\": 300\n", "      }\n", "    },\n", "    \"Trigger\": {\n", "      \"CloudWatchAlarmDefinition\": {\n", "        \"ComparisonOperator\": \"LESS_THAN\",\n", "        \"EvaluationPeriods\": 1,\n", "        \"MetricName\": \"YARNMemoryAvailablePercentage\",\n", "        \"Namespace\": \"AWS/ElasticMapReduce\",\n", "        \"Period\": 300,\n", "        \"Statistic\": \"AVERAGE\",\n", "        \"Threshold\": 15.0,\n", "        \"Unit\": \"PERCENT\"\n", "      }\n", "    }\n", "  }\n", "]\n", "}\n", "\n")),
				BidPrice:          pulumi.String("0.30"),
				EbsConfigs: emr.ClusterCoreInstanceGroupEbsConfigArray{
					&emr.ClusterCoreInstanceGroupEbsConfigArgs{
						Size:               pulumi.Int(40),
						Type:               pulumi.String("gp2"),
						VolumesPerInstance: pulumi.Int(1),
					},
				},
				InstanceCount: pulumi.Int(1),
				InstanceType:  pulumi.String("c4.large"),
			},
			EbsRootVolumeSize: pulumi.Int(100),
			Ec2Attributes: &emr.ClusterEc2AttributesArgs{
				EmrManagedMasterSecurityGroup: pulumi.String(aws_security_group.Sg.Id),
				EmrManagedSlaveSecurityGroup:  pulumi.String(aws_security_group.Sg.Id),
				InstanceProfile:               pulumi.String(aws_iam_instance_profile.Emr_profile.Arn),
				SubnetId:                      pulumi.String(aws_subnet.Main.Id),
			},
			KeepJobFlowAliveWhenNoSteps: pulumi.Bool(true),
			MasterInstanceGroup: &emr.ClusterMasterInstanceGroupArgs{
				InstanceType: pulumi.String("m4.large"),
			},
			ReleaseLabel: pulumi.String("emr-4.6.0"),
			ServiceRole:  pulumi.String(aws_iam_role.Iam_emr_service_role.Arn),
			Tags: pulumi.StringMap{
				"env":  pulumi.String("env"),
				"role": pulumi.String("rolename"),
			},
			TerminationProtection: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

The `emr.Cluster` resource typically requires two IAM roles, one for the EMR Cluster to use as a service, and another to place on your Cluster Instances to interact with AWS from those instances. The suggested role policy template for the EMR service is `AmazonElasticMapReduceRole`, and `AmazonElasticMapReduceforEC2Role` for the EC2 profile. See the [Getting Started](https://docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/emr-gs-launch-sample-cluster.html) guide for more information on these IAM roles. There is also a fully-bootable example this provider configuration at the bottom of this page. ### Multiple Node Master Instance Group

Available in EMR version 5.23.0 and later, an EMR Cluster can be launched with three master nodes for high availability. Additional information about this functionality and its requirements can be found in the [EMR Management Guide](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-ha.html).

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/ec2"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/emr"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleSubnet, err := ec2.NewSubnet(ctx, "exampleSubnet", &ec2.SubnetArgs{
			MapPublicIpOnLaunch: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		_, err = emr.NewCluster(ctx, "exampleCluster", &emr.ClusterArgs{
			CoreInstanceGroup: nil,
			Ec2Attributes: &emr.ClusterEc2AttributesArgs{
				SubnetId: exampleSubnet.ID(),
			},
			MasterInstanceGroup: &emr.ClusterMasterInstanceGroupArgs{
				InstanceCount: pulumi.Int(3),
			},
			ReleaseLabel:          pulumi.String("emr-5.24.1"),
			TerminationProtection: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## Example bootable config

**NOTE:** This configuration demonstrates a minimal configuration needed to boot an example EMR Cluster. It is not meant to display best practices. Please use at your own risk.

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/ec2"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/emr"
"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/iam"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		mainVpc, err := ec2.NewVpc(ctx, "mainVpc", &ec2.VpcArgs{
			CidrBlock:          pulumi.String("168.31.0.0/16"),
			EnableDnsHostnames: pulumi.Bool(true),
			Tags: pulumi.StringMap{
				"name": pulumi.String("emr_test"),
			},
		})
		if err != nil {
			return err
		}
		mainSubnet, err := ec2.NewSubnet(ctx, "mainSubnet", &ec2.SubnetArgs{
			VpcId:     mainVpc.ID(),
			CidrBlock: pulumi.String("168.31.0.0/20"),
			Tags: pulumi.StringMap{
				"name": pulumi.String("emr_test"),
			},
		})
		if err != nil {
			return err
		}
		iamEmrServiceRole, err := iam.NewRole(ctx, "iamEmrServiceRole", &iam.RoleArgs{
			AssumeRolePolicy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "  \"Version\": \"2008-10-17\",\n", "  \"Statement\": [\n", "    {\n", "      \"Sid\": \"\",\n", "      \"Effect\": \"Allow\",\n", "      \"Principal\": {\n", "        \"Service\": \"elasticmapreduce.amazonaws.com\"\n", "      },\n", "      \"Action\": \"sts:AssumeRole\"\n", "    }\n", "  ]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		iamEmrProfileRole, err := iam.NewRole(ctx, "iamEmrProfileRole", &iam.RoleArgs{
			AssumeRolePolicy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "  \"Version\": \"2008-10-17\",\n", "  \"Statement\": [\n", "    {\n", "      \"Sid\": \"\",\n", "      \"Effect\": \"Allow\",\n", "      \"Principal\": {\n", "        \"Service\": \"ec2.amazonaws.com\"\n", "      },\n", "      \"Action\": \"sts:AssumeRole\"\n", "    }\n", "  ]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		emrProfile, err := iam.NewInstanceProfile(ctx, "emrProfile", &iam.InstanceProfileArgs{
			Roles: pulumi.StringArray{
				iamEmrProfileRole.Name,
			},
		})
		if err != nil {
			return err
		}
		_, err = emr.NewCluster(ctx, "cluster", &emr.ClusterArgs{
			ReleaseLabel: pulumi.String("emr-4.6.0"),
			Applications: pulumi.StringArray{
				pulumi.String("Spark"),
			},
			Ec2Attributes: &emr.ClusterEc2AttributesArgs{
				SubnetId:                      mainSubnet.ID(),
				EmrManagedMasterSecurityGroup: pulumi.String(aws_security_group.Allow_all.Id),
				EmrManagedSlaveSecurityGroup:  pulumi.String(aws_security_group.Allow_all.Id),
				InstanceProfile:               emrProfile.Arn,
			},
			MasterInstanceType: pulumi.String("m5.xlarge"),
			CoreInstanceType:   pulumi.String("m5.xlarge"),
			CoreInstanceCount:  pulumi.Int(1),
			Tags: pulumi.StringMap{
				"role":     pulumi.String("rolename"),
				"dns_zone": pulumi.String("env_zone"),
				"env":      pulumi.String("env"),
				"name":     pulumi.String("name-env"),
			},
			BootstrapActions: emr.ClusterBootstrapActionArray{
				&emr.ClusterBootstrapActionArgs{
					Path: pulumi.String("s3://elasticmapreduce/bootstrap-actions/run-if"),
					Name: pulumi.String("runif"),
					Args: pulumi.StringArray{
						pulumi.String("instance.isMaster=true"),
						pulumi.String("echo running on master node"),
					},
				},
			},
			ConfigurationsJson: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "  [\n", "    {\n", "      \"Classification\": \"hadoop-env\",\n", "      \"Configurations\": [\n", "        {\n", "          \"Classification\": \"export\",\n", "          \"Properties\": {\n", "            \"JAVA_HOME\": \"/usr/lib/jvm/java-1.8.0\"\n", "          }\n", "        }\n", "      ],\n", "      \"Properties\": {}\n", "    },\n", "    {\n", "      \"Classification\": \"spark-env\",\n", "      \"Configurations\": [\n", "        {\n", "          \"Classification\": \"export\",\n", "          \"Properties\": {\n", "            \"JAVA_HOME\": \"/usr/lib/jvm/java-1.8.0\"\n", "          }\n", "        }\n", "      ],\n", "      \"Properties\": {}\n", "    }\n", "  ]\n")),
			ServiceRole:        iamEmrServiceRole.Arn,
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewSecurityGroup(ctx, "allowAccess", &ec2.SecurityGroupArgs{
			Description: pulumi.String("Allow inbound traffic"),
			VpcId:       mainVpc.ID(),
			Ingress: ec2.SecurityGroupIngressArray{
				&ec2.SecurityGroupIngressArgs{
					FromPort:   pulumi.Int(0),
					ToPort:     pulumi.Int(0),
					Protocol:   pulumi.String("-1"),
					CidrBlocks: mainVpc.CidrBlock,
				},
			},
			Egress: ec2.SecurityGroupEgressArray{
				&ec2.SecurityGroupEgressArgs{
					FromPort: pulumi.Int(0),
					ToPort:   pulumi.Int(0),
					Protocol: pulumi.String("-1"),
					CidrBlocks: pulumi.StringArray{
						pulumi.String("0.0.0.0/0"),
					},
				},
			},
			Tags: pulumi.StringMap{
				"name": pulumi.String("emr_test"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			"aws_subnet.main",
		}))
		if err != nil {
			return err
		}
		gw, err := ec2.NewInternetGateway(ctx, "gw", &ec2.InternetGatewayArgs{
			VpcId: mainVpc.ID(),
		})
		if err != nil {
			return err
		}
		routeTable, err := ec2.NewRouteTable(ctx, "routeTable", &ec2.RouteTableArgs{
			VpcId: mainVpc.ID(),
			Routes: ec2.RouteTableRouteArray{
				&ec2.RouteTableRouteArgs{
					CidrBlock: pulumi.String("0.0.0.0/0"),
					GatewayId: gw.ID(),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = ec2.NewMainRouteTableAssociation(ctx, "mainRouteTableAssociation", &ec2.MainRouteTableAssociationArgs{
			VpcId:        mainVpc.ID(),
			RouteTableId: routeTable.ID(),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicy(ctx, "iamEmrServicePolicy", &iam.RolePolicyArgs{
			Role:   iamEmrServiceRole.ID(),
			Policy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "    \"Version\": \"2012-10-17\",\n", "    \"Statement\": [{\n", "        \"Effect\": \"Allow\",\n", "        \"Resource\": \"*\",\n", "        \"Action\": [\n", "            \"ec2:AuthorizeSecurityGroupEgress\",\n", "            \"ec2:AuthorizeSecurityGroupIngress\",\n", "            \"ec2:CancelSpotInstanceRequests\",\n", "            \"ec2:CreateNetworkInterface\",\n", "            \"ec2:CreateSecurityGroup\",\n", "            \"ec2:CreateTags\",\n", "            \"ec2:DeleteNetworkInterface\",\n", "            \"ec2:DeleteSecurityGroup\",\n", "            \"ec2:DeleteTags\",\n", "            \"ec2:DescribeAvailabilityZones\",\n", "            \"ec2:DescribeAccountAttributes\",\n", "            \"ec2:DescribeDhcpOptions\",\n", "            \"ec2:DescribeInstanceStatus\",\n", "            \"ec2:DescribeInstances\",\n", "            \"ec2:DescribeKeyPairs\",\n", "            \"ec2:DescribeNetworkAcls\",\n", "            \"ec2:DescribeNetworkInterfaces\",\n", "            \"ec2:DescribePrefixLists\",\n", "            \"ec2:DescribeRouteTables\",\n", "            \"ec2:DescribeSecurityGroups\",\n", "            \"ec2:DescribeSpotInstanceRequests\",\n", "            \"ec2:DescribeSpotPriceHistory\",\n", "            \"ec2:DescribeSubnets\",\n", "            \"ec2:DescribeVpcAttribute\",\n", "            \"ec2:DescribeVpcEndpoints\",\n", "            \"ec2:DescribeVpcEndpointServices\",\n", "            \"ec2:DescribeVpcs\",\n", "            \"ec2:DetachNetworkInterface\",\n", "            \"ec2:ModifyImageAttribute\",\n", "            \"ec2:ModifyInstanceAttribute\",\n", "            \"ec2:RequestSpotInstances\",\n", "            \"ec2:RevokeSecurityGroupEgress\",\n", "            \"ec2:RunInstances\",\n", "            \"ec2:TerminateInstances\",\n", "            \"ec2:DeleteVolume\",\n", "            \"ec2:DescribeVolumeStatus\",\n", "            \"ec2:DescribeVolumes\",\n", "            \"ec2:DetachVolume\",\n", "            \"iam:GetRole\",\n", "            \"iam:GetRolePolicy\",\n", "            \"iam:ListInstanceProfiles\",\n", "            \"iam:ListRolePolicies\",\n", "            \"iam:PassRole\",\n", "            \"s3:CreateBucket\",\n", "            \"s3:Get*\",\n", "            \"s3:List*\",\n", "            \"sdb:BatchPutAttributes\",\n", "            \"sdb:Select\",\n", "            \"sqs:CreateQueue\",\n", "            \"sqs:Delete*\",\n", "            \"sqs:GetQueue*\",\n", "            \"sqs:PurgeQueue\",\n", "            \"sqs:ReceiveMessage\"\n", "        ]\n", "    }]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicy(ctx, "iamEmrProfilePolicy", &iam.RolePolicyArgs{
			Role:   iamEmrProfileRole.ID(),
			Policy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "    \"Version\": \"2012-10-17\",\n", "    \"Statement\": [{\n", "        \"Effect\": \"Allow\",\n", "        \"Resource\": \"*\",\n", "        \"Action\": [\n", "            \"cloudwatch:*\",\n", "            \"dynamodb:*\",\n", "            \"ec2:Describe*\",\n", "            \"elasticmapreduce:Describe*\",\n", "            \"elasticmapreduce:ListBootstrapActions\",\n", "            \"elasticmapreduce:ListClusters\",\n", "            \"elasticmapreduce:ListInstanceGroups\",\n", "            \"elasticmapreduce:ListInstances\",\n", "            \"elasticmapreduce:ListSteps\",\n", "            \"kinesis:CreateStream\",\n", "            \"kinesis:DeleteStream\",\n", "            \"kinesis:DescribeStream\",\n", "            \"kinesis:GetRecords\",\n", "            \"kinesis:GetShardIterator\",\n", "            \"kinesis:MergeShards\",\n", "            \"kinesis:PutRecord\",\n", "            \"kinesis:SplitShard\",\n", "            \"rds:Describe*\",\n", "            \"s3:*\",\n", "            \"sdb:*\",\n", "            \"sns:*\",\n", "            \"sqs:*\"\n", "        ]\n", "    }]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetCluster

func GetCluster(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ClusterState, opts ...pulumi.ResourceOption) (*Cluster, error)

GetCluster gets an existing Cluster resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewCluster

func NewCluster(ctx *pulumi.Context,
	name string, args *ClusterArgs, opts ...pulumi.ResourceOption) (*Cluster, error)

NewCluster registers a new resource with the given unique name, arguments, and options.

type ClusterArgs

type ClusterArgs struct {
	// A JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore this provider cannot detect drift from the actual EMR cluster if its value is changed outside this provider.
	AdditionalInfo pulumi.StringPtrInput
	// A list of applications for the cluster. Valid values are: `Flink`, `Hadoop`, `Hive`, `Mahout`, `Pig`, `Spark`, and `JupyterHub` (as of EMR 5.14.0). Case insensitive
	Applications pulumi.StringArrayInput
	// An IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
	AutoscalingRole pulumi.StringPtrInput
	// Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. Defined below.
	BootstrapActions ClusterBootstrapActionArrayInput
	// List of configurations supplied for the EMR cluster you are creating
	Configurations pulumi.StringPtrInput
	// A JSON string for supplying list of configurations for the EMR cluster.
	ConfigurationsJson pulumi.StringPtrInput
	// Use the `coreInstanceGroup` configuration block `instanceCount` argument instead. Number of Amazon EC2 instances used to execute the job flow. EMR will use one node as the cluster's master node and use the remainder of the nodes (`coreInstanceCount`-1) as core nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. Default `1`
	//
	// Deprecated: use `core_instance_group` configuration block `instance_count` argument instead
	CoreInstanceCount pulumi.IntPtrInput
	// Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-core). Cannot be specified if `coreInstanceCount` argument, `coreInstanceType` argument, or `instanceGroup` configuration blocks are set. Detailed below.
	CoreInstanceGroup ClusterCoreInstanceGroupPtrInput
	// Use the `coreInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the slave nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set.
	//
	// Deprecated: use `core_instance_group` configuration block `instance_type` argument instead
	CoreInstanceType pulumi.StringPtrInput
	// A custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
	CustomAmiId pulumi.StringPtrInput
	// Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
	EbsRootVolumeSize pulumi.IntPtrInput
	// Attributes for the EC2 instances running the job flow. Defined below
	Ec2Attributes ClusterEc2AttributesPtrInput
	// Use the `masterInstanceGroup` configuration block, `coreInstanceGroup` configuration block and `emr.InstanceGroup` resource(s) instead. A list of `instanceGroup` objects for each instance group in the cluster. Exactly one of `masterInstanceType` and `instanceGroup` must be specified. If `instanceGroup` is set, then it must contain a configuration block for at least the `MASTER` instance group type (as well as any additional instance groups). Cannot be specified if `masterInstanceGroup` or `coreInstanceGroup` configuration blocks are set. Defined below
	//
	// Deprecated: use `master_instance_group` configuration block, `core_instance_group` configuration block, and `aws_emr_instance_group` resource(s) instead
	InstanceGroups ClusterInstanceGroupArrayInput
	// Switch on/off run cluster with no steps or when all steps are complete (default is on)
	KeepJobFlowAliveWhenNoSteps pulumi.BoolPtrInput
	// Kerberos configuration for the cluster. Defined below
	KerberosAttributes ClusterKerberosAttributesPtrInput
	// S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created
	LogUri pulumi.StringPtrInput
	// Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-master). Cannot be specified if `masterInstanceType` argument or `instanceGroup` configuration blocks are set. Detailed below.
	MasterInstanceGroup ClusterMasterInstanceGroupPtrInput
	// Use the `masterInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the master node. Cannot be specified if `masterInstanceGroup` or `instanceGroup` configuration blocks are set.
	//
	// Deprecated: use `master_instance_group` configuration block `instance_type` argument instead
	MasterInstanceType pulumi.StringPtrInput
	// The name of the step.
	Name pulumi.StringPtrInput
	// The release label for the Amazon EMR release
	ReleaseLabel pulumi.StringInput
	// The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an `instance group` is resized.
	ScaleDownBehavior pulumi.StringPtrInput
	// The security configuration name to attach to the EMR cluster. Only valid for EMR clusters with `releaseLabel` 4.8.0 or greater
	SecurityConfiguration pulumi.StringPtrInput
	// IAM role that will be assumed by the Amazon EMR service to access AWS resources
	ServiceRole pulumi.StringInput
	// The number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with `releaseLabel` 5.28.0 or greater. (default is 1)
	StepConcurrencyLevel pulumi.IntPtrInput
	// List of steps to run when creating the cluster. Defined below. It is highly recommended to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) if other steps are being managed outside of this provider.
	Steps ClusterStepArrayInput
	// list of tags to apply to the EMR Cluster
	Tags pulumi.StringMapInput
	// Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`.
	TerminationProtection pulumi.BoolPtrInput
	// Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default `true`
	VisibleToAllUsers pulumi.BoolPtrInput
}

The set of arguments for constructing a Cluster resource.

func (ClusterArgs) ElementType

func (ClusterArgs) ElementType() reflect.Type

type ClusterBootstrapAction

type ClusterBootstrapAction struct {
	// List of command line arguments passed to the JAR file's main function when executed.
	Args []string `pulumi:"args"`
	// The name of the step.
	Name string `pulumi:"name"`
	// Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system
	Path string `pulumi:"path"`
}

type ClusterBootstrapActionArgs

type ClusterBootstrapActionArgs struct {
	// List of command line arguments passed to the JAR file's main function when executed.
	Args pulumi.StringArrayInput `pulumi:"args"`
	// The name of the step.
	Name pulumi.StringInput `pulumi:"name"`
	// Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system
	Path pulumi.StringInput `pulumi:"path"`
}

func (ClusterBootstrapActionArgs) ElementType

func (ClusterBootstrapActionArgs) ElementType() reflect.Type

func (ClusterBootstrapActionArgs) ToClusterBootstrapActionOutput

func (i ClusterBootstrapActionArgs) ToClusterBootstrapActionOutput() ClusterBootstrapActionOutput

func (ClusterBootstrapActionArgs) ToClusterBootstrapActionOutputWithContext

func (i ClusterBootstrapActionArgs) ToClusterBootstrapActionOutputWithContext(ctx context.Context) ClusterBootstrapActionOutput

type ClusterBootstrapActionArray

type ClusterBootstrapActionArray []ClusterBootstrapActionInput

func (ClusterBootstrapActionArray) ElementType

func (ClusterBootstrapActionArray) ToClusterBootstrapActionArrayOutput

func (i ClusterBootstrapActionArray) ToClusterBootstrapActionArrayOutput() ClusterBootstrapActionArrayOutput

func (ClusterBootstrapActionArray) ToClusterBootstrapActionArrayOutputWithContext

func (i ClusterBootstrapActionArray) ToClusterBootstrapActionArrayOutputWithContext(ctx context.Context) ClusterBootstrapActionArrayOutput

type ClusterBootstrapActionArrayInput

type ClusterBootstrapActionArrayInput interface {
	pulumi.Input

	ToClusterBootstrapActionArrayOutput() ClusterBootstrapActionArrayOutput
	ToClusterBootstrapActionArrayOutputWithContext(context.Context) ClusterBootstrapActionArrayOutput
}

ClusterBootstrapActionArrayInput is an input type that accepts ClusterBootstrapActionArray and ClusterBootstrapActionArrayOutput values. You can construct a concrete instance of `ClusterBootstrapActionArrayInput` via:

ClusterBootstrapActionArray{ ClusterBootstrapActionArgs{...} }

type ClusterBootstrapActionArrayOutput

type ClusterBootstrapActionArrayOutput struct{ *pulumi.OutputState }

func (ClusterBootstrapActionArrayOutput) ElementType

func (ClusterBootstrapActionArrayOutput) Index

func (ClusterBootstrapActionArrayOutput) ToClusterBootstrapActionArrayOutput

func (o ClusterBootstrapActionArrayOutput) ToClusterBootstrapActionArrayOutput() ClusterBootstrapActionArrayOutput

func (ClusterBootstrapActionArrayOutput) ToClusterBootstrapActionArrayOutputWithContext

func (o ClusterBootstrapActionArrayOutput) ToClusterBootstrapActionArrayOutputWithContext(ctx context.Context) ClusterBootstrapActionArrayOutput

type ClusterBootstrapActionInput

type ClusterBootstrapActionInput interface {
	pulumi.Input

	ToClusterBootstrapActionOutput() ClusterBootstrapActionOutput
	ToClusterBootstrapActionOutputWithContext(context.Context) ClusterBootstrapActionOutput
}

ClusterBootstrapActionInput is an input type that accepts ClusterBootstrapActionArgs and ClusterBootstrapActionOutput values. You can construct a concrete instance of `ClusterBootstrapActionInput` via:

ClusterBootstrapActionArgs{...}

type ClusterBootstrapActionOutput

type ClusterBootstrapActionOutput struct{ *pulumi.OutputState }

func (ClusterBootstrapActionOutput) Args

List of command line arguments passed to the JAR file's main function when executed.

func (ClusterBootstrapActionOutput) ElementType

func (ClusterBootstrapActionOutput) Name

The name of the step.

func (ClusterBootstrapActionOutput) Path

Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system

func (ClusterBootstrapActionOutput) ToClusterBootstrapActionOutput

func (o ClusterBootstrapActionOutput) ToClusterBootstrapActionOutput() ClusterBootstrapActionOutput

func (ClusterBootstrapActionOutput) ToClusterBootstrapActionOutputWithContext

func (o ClusterBootstrapActionOutput) ToClusterBootstrapActionOutputWithContext(ctx context.Context) ClusterBootstrapActionOutput

type ClusterCoreInstanceGroup

type ClusterCoreInstanceGroup struct {
	// The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
	AutoscalingPolicy *string `pulumi:"autoscalingPolicy"`
	// 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.
	BidPrice *string `pulumi:"bidPrice"`
	// Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
	EbsConfigs []ClusterCoreInstanceGroupEbsConfig `pulumi:"ebsConfigs"`
	// The ID of the EMR Cluster
	Id *string `pulumi:"id"`
	// Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.
	InstanceCount *int `pulumi:"instanceCount"`
	// EC2 instance type for all instances in the instance group.
	InstanceType string `pulumi:"instanceType"`
	// The name of the step.
	Name *string `pulumi:"name"`
}

type ClusterCoreInstanceGroupArgs

type ClusterCoreInstanceGroupArgs struct {
	// The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
	AutoscalingPolicy pulumi.StringPtrInput `pulumi:"autoscalingPolicy"`
	// 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.
	BidPrice pulumi.StringPtrInput `pulumi:"bidPrice"`
	// Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
	EbsConfigs ClusterCoreInstanceGroupEbsConfigArrayInput `pulumi:"ebsConfigs"`
	// The ID of the EMR Cluster
	Id pulumi.StringPtrInput `pulumi:"id"`
	// Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.
	InstanceCount pulumi.IntPtrInput `pulumi:"instanceCount"`
	// EC2 instance type for all instances in the instance group.
	InstanceType pulumi.StringInput `pulumi:"instanceType"`
	// The name of the step.
	Name pulumi.StringPtrInput `pulumi:"name"`
}

func (ClusterCoreInstanceGroupArgs) ElementType

func (ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupOutput

func (i ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupOutput() ClusterCoreInstanceGroupOutput

func (ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupOutputWithContext

func (i ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupOutput

func (ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupPtrOutput

func (i ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupPtrOutput() ClusterCoreInstanceGroupPtrOutput

func (ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupPtrOutputWithContext

func (i ClusterCoreInstanceGroupArgs) ToClusterCoreInstanceGroupPtrOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupPtrOutput

type ClusterCoreInstanceGroupEbsConfig

type ClusterCoreInstanceGroupEbsConfig struct {
	// The number of I/O operations per second (IOPS) that the volume supports
	Iops *int `pulumi:"iops"`
	// The volume size, in gibibytes (GiB).
	Size int `pulumi:"size"`
	// The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
	Type string `pulumi:"type"`
	// The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)
	VolumesPerInstance *int `pulumi:"volumesPerInstance"`
}

type ClusterCoreInstanceGroupEbsConfigArgs

type ClusterCoreInstanceGroupEbsConfigArgs struct {
	// The number of I/O operations per second (IOPS) that the volume supports
	Iops pulumi.IntPtrInput `pulumi:"iops"`
	// The volume size, in gibibytes (GiB).
	Size pulumi.IntInput `pulumi:"size"`
	// The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
	Type pulumi.StringInput `pulumi:"type"`
	// The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)
	VolumesPerInstance pulumi.IntPtrInput `pulumi:"volumesPerInstance"`
}

func (ClusterCoreInstanceGroupEbsConfigArgs) ElementType

func (ClusterCoreInstanceGroupEbsConfigArgs) ToClusterCoreInstanceGroupEbsConfigOutput

func (i ClusterCoreInstanceGroupEbsConfigArgs) ToClusterCoreInstanceGroupEbsConfigOutput() ClusterCoreInstanceGroupEbsConfigOutput

func (ClusterCoreInstanceGroupEbsConfigArgs) ToClusterCoreInstanceGroupEbsConfigOutputWithContext

func (i ClusterCoreInstanceGroupEbsConfigArgs) ToClusterCoreInstanceGroupEbsConfigOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupEbsConfigOutput

type ClusterCoreInstanceGroupEbsConfigArray

type ClusterCoreInstanceGroupEbsConfigArray []ClusterCoreInstanceGroupEbsConfigInput

func (ClusterCoreInstanceGroupEbsConfigArray) ElementType

func (ClusterCoreInstanceGroupEbsConfigArray) ToClusterCoreInstanceGroupEbsConfigArrayOutput

func (i ClusterCoreInstanceGroupEbsConfigArray) ToClusterCoreInstanceGroupEbsConfigArrayOutput() ClusterCoreInstanceGroupEbsConfigArrayOutput

func (ClusterCoreInstanceGroupEbsConfigArray) ToClusterCoreInstanceGroupEbsConfigArrayOutputWithContext

func (i ClusterCoreInstanceGroupEbsConfigArray) ToClusterCoreInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupEbsConfigArrayOutput

type ClusterCoreInstanceGroupEbsConfigArrayInput

type ClusterCoreInstanceGroupEbsConfigArrayInput interface {
	pulumi.Input

	ToClusterCoreInstanceGroupEbsConfigArrayOutput() ClusterCoreInstanceGroupEbsConfigArrayOutput
	ToClusterCoreInstanceGroupEbsConfigArrayOutputWithContext(context.Context) ClusterCoreInstanceGroupEbsConfigArrayOutput
}

ClusterCoreInstanceGroupEbsConfigArrayInput is an input type that accepts ClusterCoreInstanceGroupEbsConfigArray and ClusterCoreInstanceGroupEbsConfigArrayOutput values. You can construct a concrete instance of `ClusterCoreInstanceGroupEbsConfigArrayInput` via:

ClusterCoreInstanceGroupEbsConfigArray{ ClusterCoreInstanceGroupEbsConfigArgs{...} }

type ClusterCoreInstanceGroupEbsConfigArrayOutput

type ClusterCoreInstanceGroupEbsConfigArrayOutput struct{ *pulumi.OutputState }

func (ClusterCoreInstanceGroupEbsConfigArrayOutput) ElementType

func (ClusterCoreInstanceGroupEbsConfigArrayOutput) Index

func (ClusterCoreInstanceGroupEbsConfigArrayOutput) ToClusterCoreInstanceGroupEbsConfigArrayOutput

func (o ClusterCoreInstanceGroupEbsConfigArrayOutput) ToClusterCoreInstanceGroupEbsConfigArrayOutput() ClusterCoreInstanceGroupEbsConfigArrayOutput

func (ClusterCoreInstanceGroupEbsConfigArrayOutput) ToClusterCoreInstanceGroupEbsConfigArrayOutputWithContext

func (o ClusterCoreInstanceGroupEbsConfigArrayOutput) ToClusterCoreInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupEbsConfigArrayOutput

type ClusterCoreInstanceGroupEbsConfigInput

type ClusterCoreInstanceGroupEbsConfigInput interface {
	pulumi.Input

	ToClusterCoreInstanceGroupEbsConfigOutput() ClusterCoreInstanceGroupEbsConfigOutput
	ToClusterCoreInstanceGroupEbsConfigOutputWithContext(context.Context) ClusterCoreInstanceGroupEbsConfigOutput
}

ClusterCoreInstanceGroupEbsConfigInput is an input type that accepts ClusterCoreInstanceGroupEbsConfigArgs and ClusterCoreInstanceGroupEbsConfigOutput values. You can construct a concrete instance of `ClusterCoreInstanceGroupEbsConfigInput` via:

ClusterCoreInstanceGroupEbsConfigArgs{...}

type ClusterCoreInstanceGroupEbsConfigOutput

type ClusterCoreInstanceGroupEbsConfigOutput struct{ *pulumi.OutputState }

func (ClusterCoreInstanceGroupEbsConfigOutput) ElementType

func (ClusterCoreInstanceGroupEbsConfigOutput) Iops

The number of I/O operations per second (IOPS) that the volume supports

func (ClusterCoreInstanceGroupEbsConfigOutput) Size

The volume size, in gibibytes (GiB).

func (ClusterCoreInstanceGroupEbsConfigOutput) ToClusterCoreInstanceGroupEbsConfigOutput

func (o ClusterCoreInstanceGroupEbsConfigOutput) ToClusterCoreInstanceGroupEbsConfigOutput() ClusterCoreInstanceGroupEbsConfigOutput

func (ClusterCoreInstanceGroupEbsConfigOutput) ToClusterCoreInstanceGroupEbsConfigOutputWithContext

func (o ClusterCoreInstanceGroupEbsConfigOutput) ToClusterCoreInstanceGroupEbsConfigOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupEbsConfigOutput

func (ClusterCoreInstanceGroupEbsConfigOutput) Type

The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).

func (ClusterCoreInstanceGroupEbsConfigOutput) VolumesPerInstance

The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)

type ClusterCoreInstanceGroupInput

type ClusterCoreInstanceGroupInput interface {
	pulumi.Input

	ToClusterCoreInstanceGroupOutput() ClusterCoreInstanceGroupOutput
	ToClusterCoreInstanceGroupOutputWithContext(context.Context) ClusterCoreInstanceGroupOutput
}

ClusterCoreInstanceGroupInput is an input type that accepts ClusterCoreInstanceGroupArgs and ClusterCoreInstanceGroupOutput values. You can construct a concrete instance of `ClusterCoreInstanceGroupInput` via:

ClusterCoreInstanceGroupArgs{...}

type ClusterCoreInstanceGroupOutput

type ClusterCoreInstanceGroupOutput struct{ *pulumi.OutputState }

func (ClusterCoreInstanceGroupOutput) AutoscalingPolicy

The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)

func (ClusterCoreInstanceGroupOutput) BidPrice

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.

func (ClusterCoreInstanceGroupOutput) EbsConfigs

Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.

func (ClusterCoreInstanceGroupOutput) ElementType

func (ClusterCoreInstanceGroupOutput) Id

The ID of the EMR Cluster

func (ClusterCoreInstanceGroupOutput) InstanceCount

Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.

func (ClusterCoreInstanceGroupOutput) InstanceType

EC2 instance type for all instances in the instance group.

func (ClusterCoreInstanceGroupOutput) Name

The name of the step.

func (ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupOutput

func (o ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupOutput() ClusterCoreInstanceGroupOutput

func (ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupOutputWithContext

func (o ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupOutput

func (ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupPtrOutput

func (o ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupPtrOutput() ClusterCoreInstanceGroupPtrOutput

func (ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupPtrOutputWithContext

func (o ClusterCoreInstanceGroupOutput) ToClusterCoreInstanceGroupPtrOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupPtrOutput

type ClusterCoreInstanceGroupPtrInput

type ClusterCoreInstanceGroupPtrInput interface {
	pulumi.Input

	ToClusterCoreInstanceGroupPtrOutput() ClusterCoreInstanceGroupPtrOutput
	ToClusterCoreInstanceGroupPtrOutputWithContext(context.Context) ClusterCoreInstanceGroupPtrOutput
}

ClusterCoreInstanceGroupPtrInput is an input type that accepts ClusterCoreInstanceGroupArgs, ClusterCoreInstanceGroupPtr and ClusterCoreInstanceGroupPtrOutput values. You can construct a concrete instance of `ClusterCoreInstanceGroupPtrInput` via:

        ClusterCoreInstanceGroupArgs{...}

or:

        nil

type ClusterCoreInstanceGroupPtrOutput

type ClusterCoreInstanceGroupPtrOutput struct{ *pulumi.OutputState }

func (ClusterCoreInstanceGroupPtrOutput) AutoscalingPolicy

The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)

func (ClusterCoreInstanceGroupPtrOutput) BidPrice

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.

func (ClusterCoreInstanceGroupPtrOutput) EbsConfigs

Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.

func (ClusterCoreInstanceGroupPtrOutput) Elem

func (ClusterCoreInstanceGroupPtrOutput) ElementType

func (ClusterCoreInstanceGroupPtrOutput) Id

The ID of the EMR Cluster

func (ClusterCoreInstanceGroupPtrOutput) InstanceCount

Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.

func (ClusterCoreInstanceGroupPtrOutput) InstanceType

EC2 instance type for all instances in the instance group.

func (ClusterCoreInstanceGroupPtrOutput) Name

The name of the step.

func (ClusterCoreInstanceGroupPtrOutput) ToClusterCoreInstanceGroupPtrOutput

func (o ClusterCoreInstanceGroupPtrOutput) ToClusterCoreInstanceGroupPtrOutput() ClusterCoreInstanceGroupPtrOutput

func (ClusterCoreInstanceGroupPtrOutput) ToClusterCoreInstanceGroupPtrOutputWithContext

func (o ClusterCoreInstanceGroupPtrOutput) ToClusterCoreInstanceGroupPtrOutputWithContext(ctx context.Context) ClusterCoreInstanceGroupPtrOutput

type ClusterEc2Attributes

type ClusterEc2Attributes struct {
	// String containing a comma separated list of additional Amazon EC2 security group IDs for the master node
	AdditionalMasterSecurityGroups *string `pulumi:"additionalMasterSecurityGroups"`
	// String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string
	AdditionalSlaveSecurityGroups *string `pulumi:"additionalSlaveSecurityGroups"`
	// Identifier of the Amazon EC2 EMR-Managed security group for the master node
	EmrManagedMasterSecurityGroup *string `pulumi:"emrManagedMasterSecurityGroup"`
	// Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes
	EmrManagedSlaveSecurityGroup *string `pulumi:"emrManagedSlaveSecurityGroup"`
	// Instance Profile for EC2 instances of the cluster assume this role
	InstanceProfile string `pulumi:"instanceProfile"`
	// Amazon EC2 key pair that can be used to ssh to the master node as the user called `hadoop`
	KeyName *string `pulumi:"keyName"`
	// Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet
	ServiceAccessSecurityGroup *string `pulumi:"serviceAccessSecurityGroup"`
	// VPC subnet id where you want the job flow to launch. Cannot specify the `cc1.4xlarge` instance type for nodes of a job flow launched in a Amazon VPC
	SubnetId *string `pulumi:"subnetId"`
}

type ClusterEc2AttributesArgs

type ClusterEc2AttributesArgs struct {
	// String containing a comma separated list of additional Amazon EC2 security group IDs for the master node
	AdditionalMasterSecurityGroups pulumi.StringPtrInput `pulumi:"additionalMasterSecurityGroups"`
	// String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string
	AdditionalSlaveSecurityGroups pulumi.StringPtrInput `pulumi:"additionalSlaveSecurityGroups"`
	// Identifier of the Amazon EC2 EMR-Managed security group for the master node
	EmrManagedMasterSecurityGroup pulumi.StringPtrInput `pulumi:"emrManagedMasterSecurityGroup"`
	// Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes
	EmrManagedSlaveSecurityGroup pulumi.StringPtrInput `pulumi:"emrManagedSlaveSecurityGroup"`
	// Instance Profile for EC2 instances of the cluster assume this role
	InstanceProfile pulumi.StringInput `pulumi:"instanceProfile"`
	// Amazon EC2 key pair that can be used to ssh to the master node as the user called `hadoop`
	KeyName pulumi.StringPtrInput `pulumi:"keyName"`
	// Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet
	ServiceAccessSecurityGroup pulumi.StringPtrInput `pulumi:"serviceAccessSecurityGroup"`
	// VPC subnet id where you want the job flow to launch. Cannot specify the `cc1.4xlarge` instance type for nodes of a job flow launched in a Amazon VPC
	SubnetId pulumi.StringPtrInput `pulumi:"subnetId"`
}

func (ClusterEc2AttributesArgs) ElementType

func (ClusterEc2AttributesArgs) ElementType() reflect.Type

func (ClusterEc2AttributesArgs) ToClusterEc2AttributesOutput

func (i ClusterEc2AttributesArgs) ToClusterEc2AttributesOutput() ClusterEc2AttributesOutput

func (ClusterEc2AttributesArgs) ToClusterEc2AttributesOutputWithContext

func (i ClusterEc2AttributesArgs) ToClusterEc2AttributesOutputWithContext(ctx context.Context) ClusterEc2AttributesOutput

func (ClusterEc2AttributesArgs) ToClusterEc2AttributesPtrOutput

func (i ClusterEc2AttributesArgs) ToClusterEc2AttributesPtrOutput() ClusterEc2AttributesPtrOutput

func (ClusterEc2AttributesArgs) ToClusterEc2AttributesPtrOutputWithContext

func (i ClusterEc2AttributesArgs) ToClusterEc2AttributesPtrOutputWithContext(ctx context.Context) ClusterEc2AttributesPtrOutput

type ClusterEc2AttributesInput

type ClusterEc2AttributesInput interface {
	pulumi.Input

	ToClusterEc2AttributesOutput() ClusterEc2AttributesOutput
	ToClusterEc2AttributesOutputWithContext(context.Context) ClusterEc2AttributesOutput
}

ClusterEc2AttributesInput is an input type that accepts ClusterEc2AttributesArgs and ClusterEc2AttributesOutput values. You can construct a concrete instance of `ClusterEc2AttributesInput` via:

ClusterEc2AttributesArgs{...}

type ClusterEc2AttributesOutput

type ClusterEc2AttributesOutput struct{ *pulumi.OutputState }

func (ClusterEc2AttributesOutput) AdditionalMasterSecurityGroups

func (o ClusterEc2AttributesOutput) AdditionalMasterSecurityGroups() pulumi.StringPtrOutput

String containing a comma separated list of additional Amazon EC2 security group IDs for the master node

func (ClusterEc2AttributesOutput) AdditionalSlaveSecurityGroups

func (o ClusterEc2AttributesOutput) AdditionalSlaveSecurityGroups() pulumi.StringPtrOutput

String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string

func (ClusterEc2AttributesOutput) ElementType

func (ClusterEc2AttributesOutput) ElementType() reflect.Type

func (ClusterEc2AttributesOutput) EmrManagedMasterSecurityGroup

func (o ClusterEc2AttributesOutput) EmrManagedMasterSecurityGroup() pulumi.StringPtrOutput

Identifier of the Amazon EC2 EMR-Managed security group for the master node

func (ClusterEc2AttributesOutput) EmrManagedSlaveSecurityGroup

func (o ClusterEc2AttributesOutput) EmrManagedSlaveSecurityGroup() pulumi.StringPtrOutput

Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes

func (ClusterEc2AttributesOutput) InstanceProfile

func (o ClusterEc2AttributesOutput) InstanceProfile() pulumi.StringOutput

Instance Profile for EC2 instances of the cluster assume this role

func (ClusterEc2AttributesOutput) KeyName

Amazon EC2 key pair that can be used to ssh to the master node as the user called `hadoop`

func (ClusterEc2AttributesOutput) ServiceAccessSecurityGroup

func (o ClusterEc2AttributesOutput) ServiceAccessSecurityGroup() pulumi.StringPtrOutput

Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet

func (ClusterEc2AttributesOutput) SubnetId

VPC subnet id where you want the job flow to launch. Cannot specify the `cc1.4xlarge` instance type for nodes of a job flow launched in a Amazon VPC

func (ClusterEc2AttributesOutput) ToClusterEc2AttributesOutput

func (o ClusterEc2AttributesOutput) ToClusterEc2AttributesOutput() ClusterEc2AttributesOutput

func (ClusterEc2AttributesOutput) ToClusterEc2AttributesOutputWithContext

func (o ClusterEc2AttributesOutput) ToClusterEc2AttributesOutputWithContext(ctx context.Context) ClusterEc2AttributesOutput

func (ClusterEc2AttributesOutput) ToClusterEc2AttributesPtrOutput

func (o ClusterEc2AttributesOutput) ToClusterEc2AttributesPtrOutput() ClusterEc2AttributesPtrOutput

func (ClusterEc2AttributesOutput) ToClusterEc2AttributesPtrOutputWithContext

func (o ClusterEc2AttributesOutput) ToClusterEc2AttributesPtrOutputWithContext(ctx context.Context) ClusterEc2AttributesPtrOutput

type ClusterEc2AttributesPtrInput

type ClusterEc2AttributesPtrInput interface {
	pulumi.Input

	ToClusterEc2AttributesPtrOutput() ClusterEc2AttributesPtrOutput
	ToClusterEc2AttributesPtrOutputWithContext(context.Context) ClusterEc2AttributesPtrOutput
}

ClusterEc2AttributesPtrInput is an input type that accepts ClusterEc2AttributesArgs, ClusterEc2AttributesPtr and ClusterEc2AttributesPtrOutput values. You can construct a concrete instance of `ClusterEc2AttributesPtrInput` via:

        ClusterEc2AttributesArgs{...}

or:

        nil

type ClusterEc2AttributesPtrOutput

type ClusterEc2AttributesPtrOutput struct{ *pulumi.OutputState }

func (ClusterEc2AttributesPtrOutput) AdditionalMasterSecurityGroups

func (o ClusterEc2AttributesPtrOutput) AdditionalMasterSecurityGroups() pulumi.StringPtrOutput

String containing a comma separated list of additional Amazon EC2 security group IDs for the master node

func (ClusterEc2AttributesPtrOutput) AdditionalSlaveSecurityGroups

func (o ClusterEc2AttributesPtrOutput) AdditionalSlaveSecurityGroups() pulumi.StringPtrOutput

String containing a comma separated list of additional Amazon EC2 security group IDs for the slave nodes as a comma separated string

func (ClusterEc2AttributesPtrOutput) Elem

func (ClusterEc2AttributesPtrOutput) ElementType

func (ClusterEc2AttributesPtrOutput) EmrManagedMasterSecurityGroup

func (o ClusterEc2AttributesPtrOutput) EmrManagedMasterSecurityGroup() pulumi.StringPtrOutput

Identifier of the Amazon EC2 EMR-Managed security group for the master node

func (ClusterEc2AttributesPtrOutput) EmrManagedSlaveSecurityGroup

func (o ClusterEc2AttributesPtrOutput) EmrManagedSlaveSecurityGroup() pulumi.StringPtrOutput

Identifier of the Amazon EC2 EMR-Managed security group for the slave nodes

func (ClusterEc2AttributesPtrOutput) InstanceProfile

Instance Profile for EC2 instances of the cluster assume this role

func (ClusterEc2AttributesPtrOutput) KeyName

Amazon EC2 key pair that can be used to ssh to the master node as the user called `hadoop`

func (ClusterEc2AttributesPtrOutput) ServiceAccessSecurityGroup

func (o ClusterEc2AttributesPtrOutput) ServiceAccessSecurityGroup() pulumi.StringPtrOutput

Identifier of the Amazon EC2 service-access security group - required when the cluster runs on a private subnet

func (ClusterEc2AttributesPtrOutput) SubnetId

VPC subnet id where you want the job flow to launch. Cannot specify the `cc1.4xlarge` instance type for nodes of a job flow launched in a Amazon VPC

func (ClusterEc2AttributesPtrOutput) ToClusterEc2AttributesPtrOutput

func (o ClusterEc2AttributesPtrOutput) ToClusterEc2AttributesPtrOutput() ClusterEc2AttributesPtrOutput

func (ClusterEc2AttributesPtrOutput) ToClusterEc2AttributesPtrOutputWithContext

func (o ClusterEc2AttributesPtrOutput) ToClusterEc2AttributesPtrOutputWithContext(ctx context.Context) ClusterEc2AttributesPtrOutput

type ClusterInstanceGroup

type ClusterInstanceGroup struct {
	// The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
	AutoscalingPolicy *string `pulumi:"autoscalingPolicy"`
	// 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.
	BidPrice *string `pulumi:"bidPrice"`
	// Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
	EbsConfigs []ClusterInstanceGroupEbsConfig `pulumi:"ebsConfigs"`
	// The ID of the EMR Cluster
	Id *string `pulumi:"id"`
	// Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.
	InstanceCount *int `pulumi:"instanceCount"`
	// The role of the instance group in the cluster. Valid values are: `MASTER`, `CORE`, and `TASK`.
	InstanceRole string `pulumi:"instanceRole"`
	// EC2 instance type for all instances in the instance group.
	InstanceType string `pulumi:"instanceType"`
	// The name of the step.
	Name *string `pulumi:"name"`
}

type ClusterInstanceGroupArgs

type ClusterInstanceGroupArgs struct {
	// The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
	AutoscalingPolicy pulumi.StringPtrInput `pulumi:"autoscalingPolicy"`
	// 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.
	BidPrice pulumi.StringPtrInput `pulumi:"bidPrice"`
	// Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
	EbsConfigs ClusterInstanceGroupEbsConfigArrayInput `pulumi:"ebsConfigs"`
	// The ID of the EMR Cluster
	Id pulumi.StringPtrInput `pulumi:"id"`
	// Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.
	InstanceCount pulumi.IntPtrInput `pulumi:"instanceCount"`
	// The role of the instance group in the cluster. Valid values are: `MASTER`, `CORE`, and `TASK`.
	InstanceRole pulumi.StringInput `pulumi:"instanceRole"`
	// EC2 instance type for all instances in the instance group.
	InstanceType pulumi.StringInput `pulumi:"instanceType"`
	// The name of the step.
	Name pulumi.StringPtrInput `pulumi:"name"`
}

func (ClusterInstanceGroupArgs) ElementType

func (ClusterInstanceGroupArgs) ElementType() reflect.Type

func (ClusterInstanceGroupArgs) ToClusterInstanceGroupOutput

func (i ClusterInstanceGroupArgs) ToClusterInstanceGroupOutput() ClusterInstanceGroupOutput

func (ClusterInstanceGroupArgs) ToClusterInstanceGroupOutputWithContext

func (i ClusterInstanceGroupArgs) ToClusterInstanceGroupOutputWithContext(ctx context.Context) ClusterInstanceGroupOutput

type ClusterInstanceGroupArray

type ClusterInstanceGroupArray []ClusterInstanceGroupInput

func (ClusterInstanceGroupArray) ElementType

func (ClusterInstanceGroupArray) ElementType() reflect.Type

func (ClusterInstanceGroupArray) ToClusterInstanceGroupArrayOutput

func (i ClusterInstanceGroupArray) ToClusterInstanceGroupArrayOutput() ClusterInstanceGroupArrayOutput

func (ClusterInstanceGroupArray) ToClusterInstanceGroupArrayOutputWithContext

func (i ClusterInstanceGroupArray) ToClusterInstanceGroupArrayOutputWithContext(ctx context.Context) ClusterInstanceGroupArrayOutput

type ClusterInstanceGroupArrayInput

type ClusterInstanceGroupArrayInput interface {
	pulumi.Input

	ToClusterInstanceGroupArrayOutput() ClusterInstanceGroupArrayOutput
	ToClusterInstanceGroupArrayOutputWithContext(context.Context) ClusterInstanceGroupArrayOutput
}

ClusterInstanceGroupArrayInput is an input type that accepts ClusterInstanceGroupArray and ClusterInstanceGroupArrayOutput values. You can construct a concrete instance of `ClusterInstanceGroupArrayInput` via:

ClusterInstanceGroupArray{ ClusterInstanceGroupArgs{...} }

type ClusterInstanceGroupArrayOutput

type ClusterInstanceGroupArrayOutput struct{ *pulumi.OutputState }

func (ClusterInstanceGroupArrayOutput) ElementType

func (ClusterInstanceGroupArrayOutput) Index

func (ClusterInstanceGroupArrayOutput) ToClusterInstanceGroupArrayOutput

func (o ClusterInstanceGroupArrayOutput) ToClusterInstanceGroupArrayOutput() ClusterInstanceGroupArrayOutput

func (ClusterInstanceGroupArrayOutput) ToClusterInstanceGroupArrayOutputWithContext

func (o ClusterInstanceGroupArrayOutput) ToClusterInstanceGroupArrayOutputWithContext(ctx context.Context) ClusterInstanceGroupArrayOutput

type ClusterInstanceGroupEbsConfig

type ClusterInstanceGroupEbsConfig struct {
	// The number of I/O operations per second (IOPS) that the volume supports
	Iops *int `pulumi:"iops"`
	// The volume size, in gibibytes (GiB).
	Size int `pulumi:"size"`
	// The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
	Type string `pulumi:"type"`
	// The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)
	VolumesPerInstance *int `pulumi:"volumesPerInstance"`
}

type ClusterInstanceGroupEbsConfigArgs

type ClusterInstanceGroupEbsConfigArgs struct {
	// The number of I/O operations per second (IOPS) that the volume supports
	Iops pulumi.IntPtrInput `pulumi:"iops"`
	// The volume size, in gibibytes (GiB).
	Size pulumi.IntInput `pulumi:"size"`
	// The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
	Type pulumi.StringInput `pulumi:"type"`
	// The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)
	VolumesPerInstance pulumi.IntPtrInput `pulumi:"volumesPerInstance"`
}

func (ClusterInstanceGroupEbsConfigArgs) ElementType

func (ClusterInstanceGroupEbsConfigArgs) ToClusterInstanceGroupEbsConfigOutput

func (i ClusterInstanceGroupEbsConfigArgs) ToClusterInstanceGroupEbsConfigOutput() ClusterInstanceGroupEbsConfigOutput

func (ClusterInstanceGroupEbsConfigArgs) ToClusterInstanceGroupEbsConfigOutputWithContext

func (i ClusterInstanceGroupEbsConfigArgs) ToClusterInstanceGroupEbsConfigOutputWithContext(ctx context.Context) ClusterInstanceGroupEbsConfigOutput

type ClusterInstanceGroupEbsConfigArray

type ClusterInstanceGroupEbsConfigArray []ClusterInstanceGroupEbsConfigInput

func (ClusterInstanceGroupEbsConfigArray) ElementType

func (ClusterInstanceGroupEbsConfigArray) ToClusterInstanceGroupEbsConfigArrayOutput

func (i ClusterInstanceGroupEbsConfigArray) ToClusterInstanceGroupEbsConfigArrayOutput() ClusterInstanceGroupEbsConfigArrayOutput

func (ClusterInstanceGroupEbsConfigArray) ToClusterInstanceGroupEbsConfigArrayOutputWithContext

func (i ClusterInstanceGroupEbsConfigArray) ToClusterInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) ClusterInstanceGroupEbsConfigArrayOutput

type ClusterInstanceGroupEbsConfigArrayInput

type ClusterInstanceGroupEbsConfigArrayInput interface {
	pulumi.Input

	ToClusterInstanceGroupEbsConfigArrayOutput() ClusterInstanceGroupEbsConfigArrayOutput
	ToClusterInstanceGroupEbsConfigArrayOutputWithContext(context.Context) ClusterInstanceGroupEbsConfigArrayOutput
}

ClusterInstanceGroupEbsConfigArrayInput is an input type that accepts ClusterInstanceGroupEbsConfigArray and ClusterInstanceGroupEbsConfigArrayOutput values. You can construct a concrete instance of `ClusterInstanceGroupEbsConfigArrayInput` via:

ClusterInstanceGroupEbsConfigArray{ ClusterInstanceGroupEbsConfigArgs{...} }

type ClusterInstanceGroupEbsConfigArrayOutput

type ClusterInstanceGroupEbsConfigArrayOutput struct{ *pulumi.OutputState }

func (ClusterInstanceGroupEbsConfigArrayOutput) ElementType

func (ClusterInstanceGroupEbsConfigArrayOutput) Index

func (ClusterInstanceGroupEbsConfigArrayOutput) ToClusterInstanceGroupEbsConfigArrayOutput

func (o ClusterInstanceGroupEbsConfigArrayOutput) ToClusterInstanceGroupEbsConfigArrayOutput() ClusterInstanceGroupEbsConfigArrayOutput

func (ClusterInstanceGroupEbsConfigArrayOutput) ToClusterInstanceGroupEbsConfigArrayOutputWithContext

func (o ClusterInstanceGroupEbsConfigArrayOutput) ToClusterInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) ClusterInstanceGroupEbsConfigArrayOutput

type ClusterInstanceGroupEbsConfigInput

type ClusterInstanceGroupEbsConfigInput interface {
	pulumi.Input

	ToClusterInstanceGroupEbsConfigOutput() ClusterInstanceGroupEbsConfigOutput
	ToClusterInstanceGroupEbsConfigOutputWithContext(context.Context) ClusterInstanceGroupEbsConfigOutput
}

ClusterInstanceGroupEbsConfigInput is an input type that accepts ClusterInstanceGroupEbsConfigArgs and ClusterInstanceGroupEbsConfigOutput values. You can construct a concrete instance of `ClusterInstanceGroupEbsConfigInput` via:

ClusterInstanceGroupEbsConfigArgs{...}

type ClusterInstanceGroupEbsConfigOutput

type ClusterInstanceGroupEbsConfigOutput struct{ *pulumi.OutputState }

func (ClusterInstanceGroupEbsConfigOutput) ElementType

func (ClusterInstanceGroupEbsConfigOutput) Iops

The number of I/O operations per second (IOPS) that the volume supports

func (ClusterInstanceGroupEbsConfigOutput) Size

The volume size, in gibibytes (GiB).

func (ClusterInstanceGroupEbsConfigOutput) ToClusterInstanceGroupEbsConfigOutput

func (o ClusterInstanceGroupEbsConfigOutput) ToClusterInstanceGroupEbsConfigOutput() ClusterInstanceGroupEbsConfigOutput

func (ClusterInstanceGroupEbsConfigOutput) ToClusterInstanceGroupEbsConfigOutputWithContext

func (o ClusterInstanceGroupEbsConfigOutput) ToClusterInstanceGroupEbsConfigOutputWithContext(ctx context.Context) ClusterInstanceGroupEbsConfigOutput

func (ClusterInstanceGroupEbsConfigOutput) Type

The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).

func (ClusterInstanceGroupEbsConfigOutput) VolumesPerInstance

The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)

type ClusterInstanceGroupInput

type ClusterInstanceGroupInput interface {
	pulumi.Input

	ToClusterInstanceGroupOutput() ClusterInstanceGroupOutput
	ToClusterInstanceGroupOutputWithContext(context.Context) ClusterInstanceGroupOutput
}

ClusterInstanceGroupInput is an input type that accepts ClusterInstanceGroupArgs and ClusterInstanceGroupOutput values. You can construct a concrete instance of `ClusterInstanceGroupInput` via:

ClusterInstanceGroupArgs{...}

type ClusterInstanceGroupOutput

type ClusterInstanceGroupOutput struct{ *pulumi.OutputState }

func (ClusterInstanceGroupOutput) AutoscalingPolicy

func (o ClusterInstanceGroupOutput) AutoscalingPolicy() pulumi.StringPtrOutput

The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)

func (ClusterInstanceGroupOutput) BidPrice

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.

func (ClusterInstanceGroupOutput) EbsConfigs

Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.

func (ClusterInstanceGroupOutput) ElementType

func (ClusterInstanceGroupOutput) ElementType() reflect.Type

func (ClusterInstanceGroupOutput) Id

The ID of the EMR Cluster

func (ClusterInstanceGroupOutput) InstanceCount

Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.

func (ClusterInstanceGroupOutput) InstanceRole

The role of the instance group in the cluster. Valid values are: `MASTER`, `CORE`, and `TASK`.

func (ClusterInstanceGroupOutput) InstanceType

EC2 instance type for all instances in the instance group.

func (ClusterInstanceGroupOutput) Name

The name of the step.

func (ClusterInstanceGroupOutput) ToClusterInstanceGroupOutput

func (o ClusterInstanceGroupOutput) ToClusterInstanceGroupOutput() ClusterInstanceGroupOutput

func (ClusterInstanceGroupOutput) ToClusterInstanceGroupOutputWithContext

func (o ClusterInstanceGroupOutput) ToClusterInstanceGroupOutputWithContext(ctx context.Context) ClusterInstanceGroupOutput

type ClusterKerberosAttributes

type ClusterKerberosAttributes struct {
	// The Active Directory password for `adDomainJoinUser`. This provider cannot perform drift detection of this configuration.
	AdDomainJoinPassword *string `pulumi:"adDomainJoinPassword"`
	// Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
	AdDomainJoinUser *string `pulumi:"adDomainJoinUser"`
	// Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.
	CrossRealmTrustPrincipalPassword *string `pulumi:"crossRealmTrustPrincipalPassword"`
	// The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
	KdcAdminPassword string `pulumi:"kdcAdminPassword"`
	// The name of the Kerberos realm to which all nodes in a cluster belong. For example, `EC2.INTERNAL`
	Realm string `pulumi:"realm"`
}

type ClusterKerberosAttributesArgs

type ClusterKerberosAttributesArgs struct {
	// The Active Directory password for `adDomainJoinUser`. This provider cannot perform drift detection of this configuration.
	AdDomainJoinPassword pulumi.StringPtrInput `pulumi:"adDomainJoinPassword"`
	// Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.
	AdDomainJoinUser pulumi.StringPtrInput `pulumi:"adDomainJoinUser"`
	// Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.
	CrossRealmTrustPrincipalPassword pulumi.StringPtrInput `pulumi:"crossRealmTrustPrincipalPassword"`
	// The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.
	KdcAdminPassword pulumi.StringInput `pulumi:"kdcAdminPassword"`
	// The name of the Kerberos realm to which all nodes in a cluster belong. For example, `EC2.INTERNAL`
	Realm pulumi.StringInput `pulumi:"realm"`
}

func (ClusterKerberosAttributesArgs) ElementType

func (ClusterKerberosAttributesArgs) ToClusterKerberosAttributesOutput

func (i ClusterKerberosAttributesArgs) ToClusterKerberosAttributesOutput() ClusterKerberosAttributesOutput

func (ClusterKerberosAttributesArgs) ToClusterKerberosAttributesOutputWithContext

func (i ClusterKerberosAttributesArgs) ToClusterKerberosAttributesOutputWithContext(ctx context.Context) ClusterKerberosAttributesOutput

func (ClusterKerberosAttributesArgs) ToClusterKerberosAttributesPtrOutput

func (i ClusterKerberosAttributesArgs) ToClusterKerberosAttributesPtrOutput() ClusterKerberosAttributesPtrOutput

func (ClusterKerberosAttributesArgs) ToClusterKerberosAttributesPtrOutputWithContext

func (i ClusterKerberosAttributesArgs) ToClusterKerberosAttributesPtrOutputWithContext(ctx context.Context) ClusterKerberosAttributesPtrOutput

type ClusterKerberosAttributesInput

type ClusterKerberosAttributesInput interface {
	pulumi.Input

	ToClusterKerberosAttributesOutput() ClusterKerberosAttributesOutput
	ToClusterKerberosAttributesOutputWithContext(context.Context) ClusterKerberosAttributesOutput
}

ClusterKerberosAttributesInput is an input type that accepts ClusterKerberosAttributesArgs and ClusterKerberosAttributesOutput values. You can construct a concrete instance of `ClusterKerberosAttributesInput` via:

ClusterKerberosAttributesArgs{...}

type ClusterKerberosAttributesOutput

type ClusterKerberosAttributesOutput struct{ *pulumi.OutputState }

func (ClusterKerberosAttributesOutput) AdDomainJoinPassword

func (o ClusterKerberosAttributesOutput) AdDomainJoinPassword() pulumi.StringPtrOutput

The Active Directory password for `adDomainJoinUser`. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesOutput) AdDomainJoinUser

Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesOutput) CrossRealmTrustPrincipalPassword

func (o ClusterKerberosAttributesOutput) CrossRealmTrustPrincipalPassword() pulumi.StringPtrOutput

Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesOutput) ElementType

func (ClusterKerberosAttributesOutput) KdcAdminPassword

The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesOutput) Realm

The name of the Kerberos realm to which all nodes in a cluster belong. For example, `EC2.INTERNAL`

func (ClusterKerberosAttributesOutput) ToClusterKerberosAttributesOutput

func (o ClusterKerberosAttributesOutput) ToClusterKerberosAttributesOutput() ClusterKerberosAttributesOutput

func (ClusterKerberosAttributesOutput) ToClusterKerberosAttributesOutputWithContext

func (o ClusterKerberosAttributesOutput) ToClusterKerberosAttributesOutputWithContext(ctx context.Context) ClusterKerberosAttributesOutput

func (ClusterKerberosAttributesOutput) ToClusterKerberosAttributesPtrOutput

func (o ClusterKerberosAttributesOutput) ToClusterKerberosAttributesPtrOutput() ClusterKerberosAttributesPtrOutput

func (ClusterKerberosAttributesOutput) ToClusterKerberosAttributesPtrOutputWithContext

func (o ClusterKerberosAttributesOutput) ToClusterKerberosAttributesPtrOutputWithContext(ctx context.Context) ClusterKerberosAttributesPtrOutput

type ClusterKerberosAttributesPtrInput

type ClusterKerberosAttributesPtrInput interface {
	pulumi.Input

	ToClusterKerberosAttributesPtrOutput() ClusterKerberosAttributesPtrOutput
	ToClusterKerberosAttributesPtrOutputWithContext(context.Context) ClusterKerberosAttributesPtrOutput
}

ClusterKerberosAttributesPtrInput is an input type that accepts ClusterKerberosAttributesArgs, ClusterKerberosAttributesPtr and ClusterKerberosAttributesPtrOutput values. You can construct a concrete instance of `ClusterKerberosAttributesPtrInput` via:

        ClusterKerberosAttributesArgs{...}

or:

        nil

type ClusterKerberosAttributesPtrOutput

type ClusterKerberosAttributesPtrOutput struct{ *pulumi.OutputState }

func (ClusterKerberosAttributesPtrOutput) AdDomainJoinPassword

The Active Directory password for `adDomainJoinUser`. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesPtrOutput) AdDomainJoinUser

Required only when establishing a cross-realm trust with an Active Directory domain. A user with sufficient privileges to join resources to the domain. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesPtrOutput) CrossRealmTrustPrincipalPassword

func (o ClusterKerberosAttributesPtrOutput) CrossRealmTrustPrincipalPassword() pulumi.StringPtrOutput

Required only when establishing a cross-realm trust with a KDC in a different realm. The cross-realm principal password, which must be identical across realms. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesPtrOutput) Elem

func (ClusterKerberosAttributesPtrOutput) ElementType

func (ClusterKerberosAttributesPtrOutput) KdcAdminPassword

The password used within the cluster for the kadmin service on the cluster-dedicated KDC, which maintains Kerberos principals, password policies, and keytabs for the cluster. This provider cannot perform drift detection of this configuration.

func (ClusterKerberosAttributesPtrOutput) Realm

The name of the Kerberos realm to which all nodes in a cluster belong. For example, `EC2.INTERNAL`

func (ClusterKerberosAttributesPtrOutput) ToClusterKerberosAttributesPtrOutput

func (o ClusterKerberosAttributesPtrOutput) ToClusterKerberosAttributesPtrOutput() ClusterKerberosAttributesPtrOutput

func (ClusterKerberosAttributesPtrOutput) ToClusterKerberosAttributesPtrOutputWithContext

func (o ClusterKerberosAttributesPtrOutput) ToClusterKerberosAttributesPtrOutputWithContext(ctx context.Context) ClusterKerberosAttributesPtrOutput

type ClusterMasterInstanceGroup

type ClusterMasterInstanceGroup struct {
	// 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.
	BidPrice *string `pulumi:"bidPrice"`
	// Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
	EbsConfigs []ClusterMasterInstanceGroupEbsConfig `pulumi:"ebsConfigs"`
	// The ID of the EMR Cluster
	Id *string `pulumi:"id"`
	// Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.
	InstanceCount *int `pulumi:"instanceCount"`
	// EC2 instance type for all instances in the instance group.
	InstanceType string `pulumi:"instanceType"`
	// The name of the step.
	Name *string `pulumi:"name"`
}

type ClusterMasterInstanceGroupArgs

type ClusterMasterInstanceGroupArgs struct {
	// 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.
	BidPrice pulumi.StringPtrInput `pulumi:"bidPrice"`
	// Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.
	EbsConfigs ClusterMasterInstanceGroupEbsConfigArrayInput `pulumi:"ebsConfigs"`
	// The ID of the EMR Cluster
	Id pulumi.StringPtrInput `pulumi:"id"`
	// Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.
	InstanceCount pulumi.IntPtrInput `pulumi:"instanceCount"`
	// EC2 instance type for all instances in the instance group.
	InstanceType pulumi.StringInput `pulumi:"instanceType"`
	// The name of the step.
	Name pulumi.StringPtrInput `pulumi:"name"`
}

func (ClusterMasterInstanceGroupArgs) ElementType

func (ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupOutput

func (i ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupOutput() ClusterMasterInstanceGroupOutput

func (ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupOutputWithContext

func (i ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupOutput

func (ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupPtrOutput

func (i ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupPtrOutput() ClusterMasterInstanceGroupPtrOutput

func (ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupPtrOutputWithContext

func (i ClusterMasterInstanceGroupArgs) ToClusterMasterInstanceGroupPtrOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupPtrOutput

type ClusterMasterInstanceGroupEbsConfig

type ClusterMasterInstanceGroupEbsConfig struct {
	// The number of I/O operations per second (IOPS) that the volume supports
	Iops *int `pulumi:"iops"`
	// The volume size, in gibibytes (GiB).
	Size int `pulumi:"size"`
	// The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
	Type string `pulumi:"type"`
	// The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)
	VolumesPerInstance *int `pulumi:"volumesPerInstance"`
}

type ClusterMasterInstanceGroupEbsConfigArgs

type ClusterMasterInstanceGroupEbsConfigArgs struct {
	// The number of I/O operations per second (IOPS) that the volume supports
	Iops pulumi.IntPtrInput `pulumi:"iops"`
	// The volume size, in gibibytes (GiB).
	Size pulumi.IntInput `pulumi:"size"`
	// The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
	Type pulumi.StringInput `pulumi:"type"`
	// The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)
	VolumesPerInstance pulumi.IntPtrInput `pulumi:"volumesPerInstance"`
}

func (ClusterMasterInstanceGroupEbsConfigArgs) ElementType

func (ClusterMasterInstanceGroupEbsConfigArgs) ToClusterMasterInstanceGroupEbsConfigOutput

func (i ClusterMasterInstanceGroupEbsConfigArgs) ToClusterMasterInstanceGroupEbsConfigOutput() ClusterMasterInstanceGroupEbsConfigOutput

func (ClusterMasterInstanceGroupEbsConfigArgs) ToClusterMasterInstanceGroupEbsConfigOutputWithContext

func (i ClusterMasterInstanceGroupEbsConfigArgs) ToClusterMasterInstanceGroupEbsConfigOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupEbsConfigOutput

type ClusterMasterInstanceGroupEbsConfigArray

type ClusterMasterInstanceGroupEbsConfigArray []ClusterMasterInstanceGroupEbsConfigInput

func (ClusterMasterInstanceGroupEbsConfigArray) ElementType

func (ClusterMasterInstanceGroupEbsConfigArray) ToClusterMasterInstanceGroupEbsConfigArrayOutput

func (i ClusterMasterInstanceGroupEbsConfigArray) ToClusterMasterInstanceGroupEbsConfigArrayOutput() ClusterMasterInstanceGroupEbsConfigArrayOutput

func (ClusterMasterInstanceGroupEbsConfigArray) ToClusterMasterInstanceGroupEbsConfigArrayOutputWithContext

func (i ClusterMasterInstanceGroupEbsConfigArray) ToClusterMasterInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupEbsConfigArrayOutput

type ClusterMasterInstanceGroupEbsConfigArrayInput

type ClusterMasterInstanceGroupEbsConfigArrayInput interface {
	pulumi.Input

	ToClusterMasterInstanceGroupEbsConfigArrayOutput() ClusterMasterInstanceGroupEbsConfigArrayOutput
	ToClusterMasterInstanceGroupEbsConfigArrayOutputWithContext(context.Context) ClusterMasterInstanceGroupEbsConfigArrayOutput
}

ClusterMasterInstanceGroupEbsConfigArrayInput is an input type that accepts ClusterMasterInstanceGroupEbsConfigArray and ClusterMasterInstanceGroupEbsConfigArrayOutput values. You can construct a concrete instance of `ClusterMasterInstanceGroupEbsConfigArrayInput` via:

ClusterMasterInstanceGroupEbsConfigArray{ ClusterMasterInstanceGroupEbsConfigArgs{...} }

type ClusterMasterInstanceGroupEbsConfigArrayOutput

type ClusterMasterInstanceGroupEbsConfigArrayOutput struct{ *pulumi.OutputState }

func (ClusterMasterInstanceGroupEbsConfigArrayOutput) ElementType

func (ClusterMasterInstanceGroupEbsConfigArrayOutput) Index

func (ClusterMasterInstanceGroupEbsConfigArrayOutput) ToClusterMasterInstanceGroupEbsConfigArrayOutput

func (o ClusterMasterInstanceGroupEbsConfigArrayOutput) ToClusterMasterInstanceGroupEbsConfigArrayOutput() ClusterMasterInstanceGroupEbsConfigArrayOutput

func (ClusterMasterInstanceGroupEbsConfigArrayOutput) ToClusterMasterInstanceGroupEbsConfigArrayOutputWithContext

func (o ClusterMasterInstanceGroupEbsConfigArrayOutput) ToClusterMasterInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupEbsConfigArrayOutput

type ClusterMasterInstanceGroupEbsConfigInput

type ClusterMasterInstanceGroupEbsConfigInput interface {
	pulumi.Input

	ToClusterMasterInstanceGroupEbsConfigOutput() ClusterMasterInstanceGroupEbsConfigOutput
	ToClusterMasterInstanceGroupEbsConfigOutputWithContext(context.Context) ClusterMasterInstanceGroupEbsConfigOutput
}

ClusterMasterInstanceGroupEbsConfigInput is an input type that accepts ClusterMasterInstanceGroupEbsConfigArgs and ClusterMasterInstanceGroupEbsConfigOutput values. You can construct a concrete instance of `ClusterMasterInstanceGroupEbsConfigInput` via:

ClusterMasterInstanceGroupEbsConfigArgs{...}

type ClusterMasterInstanceGroupEbsConfigOutput

type ClusterMasterInstanceGroupEbsConfigOutput struct{ *pulumi.OutputState }

func (ClusterMasterInstanceGroupEbsConfigOutput) ElementType

func (ClusterMasterInstanceGroupEbsConfigOutput) Iops

The number of I/O operations per second (IOPS) that the volume supports

func (ClusterMasterInstanceGroupEbsConfigOutput) Size

The volume size, in gibibytes (GiB).

func (ClusterMasterInstanceGroupEbsConfigOutput) ToClusterMasterInstanceGroupEbsConfigOutput

func (o ClusterMasterInstanceGroupEbsConfigOutput) ToClusterMasterInstanceGroupEbsConfigOutput() ClusterMasterInstanceGroupEbsConfigOutput

func (ClusterMasterInstanceGroupEbsConfigOutput) ToClusterMasterInstanceGroupEbsConfigOutputWithContext

func (o ClusterMasterInstanceGroupEbsConfigOutput) ToClusterMasterInstanceGroupEbsConfigOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupEbsConfigOutput

func (ClusterMasterInstanceGroupEbsConfigOutput) Type

The volume type. Valid options are `gp2`, `io1`, `standard` and `st1`. See [EBS Volume Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).

func (ClusterMasterInstanceGroupEbsConfigOutput) VolumesPerInstance

The number of EBS volumes with this configuration to attach to each EC2 instance in the instance group (default is 1)

type ClusterMasterInstanceGroupInput

type ClusterMasterInstanceGroupInput interface {
	pulumi.Input

	ToClusterMasterInstanceGroupOutput() ClusterMasterInstanceGroupOutput
	ToClusterMasterInstanceGroupOutputWithContext(context.Context) ClusterMasterInstanceGroupOutput
}

ClusterMasterInstanceGroupInput is an input type that accepts ClusterMasterInstanceGroupArgs and ClusterMasterInstanceGroupOutput values. You can construct a concrete instance of `ClusterMasterInstanceGroupInput` via:

ClusterMasterInstanceGroupArgs{...}

type ClusterMasterInstanceGroupOutput

type ClusterMasterInstanceGroupOutput struct{ *pulumi.OutputState }

func (ClusterMasterInstanceGroupOutput) BidPrice

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.

func (ClusterMasterInstanceGroupOutput) EbsConfigs

Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.

func (ClusterMasterInstanceGroupOutput) ElementType

func (ClusterMasterInstanceGroupOutput) Id

The ID of the EMR Cluster

func (ClusterMasterInstanceGroupOutput) InstanceCount

Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.

func (ClusterMasterInstanceGroupOutput) InstanceType

EC2 instance type for all instances in the instance group.

func (ClusterMasterInstanceGroupOutput) Name

The name of the step.

func (ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupOutput

func (o ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupOutput() ClusterMasterInstanceGroupOutput

func (ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupOutputWithContext

func (o ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupOutput

func (ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupPtrOutput

func (o ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupPtrOutput() ClusterMasterInstanceGroupPtrOutput

func (ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupPtrOutputWithContext

func (o ClusterMasterInstanceGroupOutput) ToClusterMasterInstanceGroupPtrOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupPtrOutput

type ClusterMasterInstanceGroupPtrInput

type ClusterMasterInstanceGroupPtrInput interface {
	pulumi.Input

	ToClusterMasterInstanceGroupPtrOutput() ClusterMasterInstanceGroupPtrOutput
	ToClusterMasterInstanceGroupPtrOutputWithContext(context.Context) ClusterMasterInstanceGroupPtrOutput
}

ClusterMasterInstanceGroupPtrInput is an input type that accepts ClusterMasterInstanceGroupArgs, ClusterMasterInstanceGroupPtr and ClusterMasterInstanceGroupPtrOutput values. You can construct a concrete instance of `ClusterMasterInstanceGroupPtrInput` via:

        ClusterMasterInstanceGroupArgs{...}

or:

        nil

type ClusterMasterInstanceGroupPtrOutput

type ClusterMasterInstanceGroupPtrOutput struct{ *pulumi.OutputState }

func (ClusterMasterInstanceGroupPtrOutput) BidPrice

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.

func (ClusterMasterInstanceGroupPtrOutput) EbsConfigs

Configuration block(s) for EBS volumes attached to each instance in the instance group. Detailed below.

func (ClusterMasterInstanceGroupPtrOutput) Elem

func (ClusterMasterInstanceGroupPtrOutput) ElementType

func (ClusterMasterInstanceGroupPtrOutput) Id

The ID of the EMR Cluster

func (ClusterMasterInstanceGroupPtrOutput) InstanceCount

Target number of instances for the instance group. Must be 1 or 3. Defaults to 1. Launching with multiple master nodes is only supported in EMR version 5.23.0+, and requires this resource's `coreInstanceGroup` to be configured. Public (Internet accessible) instances must be created in VPC subnets that have `map public IP on launch` enabled. Termination protection is automatically enabled when launched with multiple master nodes and this provider must have the `terminationProtection = false` configuration applied before destroying this resource.

func (ClusterMasterInstanceGroupPtrOutput) InstanceType

EC2 instance type for all instances in the instance group.

func (ClusterMasterInstanceGroupPtrOutput) Name

The name of the step.

func (ClusterMasterInstanceGroupPtrOutput) ToClusterMasterInstanceGroupPtrOutput

func (o ClusterMasterInstanceGroupPtrOutput) ToClusterMasterInstanceGroupPtrOutput() ClusterMasterInstanceGroupPtrOutput

func (ClusterMasterInstanceGroupPtrOutput) ToClusterMasterInstanceGroupPtrOutputWithContext

func (o ClusterMasterInstanceGroupPtrOutput) ToClusterMasterInstanceGroupPtrOutputWithContext(ctx context.Context) ClusterMasterInstanceGroupPtrOutput

type ClusterState

type ClusterState struct {
	// A JSON string for selecting additional features such as adding proxy information. Note: Currently there is no API to retrieve the value of this argument after EMR cluster creation from provider, therefore this provider cannot detect drift from the actual EMR cluster if its value is changed outside this provider.
	AdditionalInfo pulumi.StringPtrInput
	// A list of applications for the cluster. Valid values are: `Flink`, `Hadoop`, `Hive`, `Mahout`, `Pig`, `Spark`, and `JupyterHub` (as of EMR 5.14.0). Case insensitive
	Applications pulumi.StringArrayInput
	Arn          pulumi.StringPtrInput
	// An IAM role for automatic scaling policies. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
	AutoscalingRole pulumi.StringPtrInput
	// Ordered list of bootstrap actions that will be run before Hadoop is started on the cluster nodes. Defined below.
	BootstrapActions ClusterBootstrapActionArrayInput
	ClusterState     pulumi.StringPtrInput
	// List of configurations supplied for the EMR cluster you are creating
	Configurations pulumi.StringPtrInput
	// A JSON string for supplying list of configurations for the EMR cluster.
	ConfigurationsJson pulumi.StringPtrInput
	// Use the `coreInstanceGroup` configuration block `instanceCount` argument instead. Number of Amazon EC2 instances used to execute the job flow. EMR will use one node as the cluster's master node and use the remainder of the nodes (`coreInstanceCount`-1) as core nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set. Default `1`
	//
	// Deprecated: use `core_instance_group` configuration block `instance_count` argument instead
	CoreInstanceCount pulumi.IntPtrInput
	// Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [core node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-core). Cannot be specified if `coreInstanceCount` argument, `coreInstanceType` argument, or `instanceGroup` configuration blocks are set. Detailed below.
	CoreInstanceGroup ClusterCoreInstanceGroupPtrInput
	// Use the `coreInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the slave nodes. Cannot be specified if `coreInstanceGroup` or `instanceGroup` configuration blocks are set.
	//
	// Deprecated: use `core_instance_group` configuration block `instance_type` argument instead
	CoreInstanceType pulumi.StringPtrInput
	// A custom Amazon Linux AMI for the cluster (instead of an EMR-owned AMI). Available in Amazon EMR version 5.7.0 and later.
	CustomAmiId pulumi.StringPtrInput
	// Size in GiB of the EBS root device volume of the Linux AMI that is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
	EbsRootVolumeSize pulumi.IntPtrInput
	// Attributes for the EC2 instances running the job flow. Defined below
	Ec2Attributes ClusterEc2AttributesPtrInput
	// Use the `masterInstanceGroup` configuration block, `coreInstanceGroup` configuration block and `emr.InstanceGroup` resource(s) instead. A list of `instanceGroup` objects for each instance group in the cluster. Exactly one of `masterInstanceType` and `instanceGroup` must be specified. If `instanceGroup` is set, then it must contain a configuration block for at least the `MASTER` instance group type (as well as any additional instance groups). Cannot be specified if `masterInstanceGroup` or `coreInstanceGroup` configuration blocks are set. Defined below
	//
	// Deprecated: use `master_instance_group` configuration block, `core_instance_group` configuration block, and `aws_emr_instance_group` resource(s) instead
	InstanceGroups ClusterInstanceGroupArrayInput
	// Switch on/off run cluster with no steps or when all steps are complete (default is on)
	KeepJobFlowAliveWhenNoSteps pulumi.BoolPtrInput
	// Kerberos configuration for the cluster. Defined below
	KerberosAttributes ClusterKerberosAttributesPtrInput
	// S3 bucket to write the log files of the job flow. If a value is not provided, logs are not created
	LogUri pulumi.StringPtrInput
	// Configuration block to use an [Instance Group](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-group-configuration.html#emr-plan-instance-groups) for the [master node type](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-master-core-task-nodes.html#emr-plan-master). Cannot be specified if `masterInstanceType` argument or `instanceGroup` configuration blocks are set. Detailed below.
	MasterInstanceGroup ClusterMasterInstanceGroupPtrInput
	// Use the `masterInstanceGroup` configuration block `instanceType` argument instead. The EC2 instance type of the master node. Cannot be specified if `masterInstanceGroup` or `instanceGroup` configuration blocks are set.
	//
	// Deprecated: use `master_instance_group` configuration block `instance_type` argument instead
	MasterInstanceType pulumi.StringPtrInput
	// The public DNS name of the master EC2 instance.
	// * `core_instance_group.0.id` - Core node type Instance Group ID, if using Instance Group for this node type.
	MasterPublicDns pulumi.StringPtrInput
	// The name of the step.
	Name pulumi.StringPtrInput
	// The release label for the Amazon EMR release
	ReleaseLabel pulumi.StringPtrInput
	// The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an `instance group` is resized.
	ScaleDownBehavior pulumi.StringPtrInput
	// The security configuration name to attach to the EMR cluster. Only valid for EMR clusters with `releaseLabel` 4.8.0 or greater
	SecurityConfiguration pulumi.StringPtrInput
	// IAM role that will be assumed by the Amazon EMR service to access AWS resources
	ServiceRole pulumi.StringPtrInput
	// The number of steps that can be executed concurrently. You can specify a maximum of 256 steps. Only valid for EMR clusters with `releaseLabel` 5.28.0 or greater. (default is 1)
	StepConcurrencyLevel pulumi.IntPtrInput
	// List of steps to run when creating the cluster. Defined below. It is highly recommended to utilize [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) if other steps are being managed outside of this provider.
	Steps ClusterStepArrayInput
	// list of tags to apply to the EMR Cluster
	Tags pulumi.StringMapInput
	// Switch on/off termination protection (default is `false`, except when using multiple master nodes). Before attempting to destroy the resource when termination protection is enabled, this configuration must be applied with its value set to `false`.
	TerminationProtection pulumi.BoolPtrInput
	// Whether the job flow is visible to all IAM users of the AWS account associated with the job flow. Default `true`
	VisibleToAllUsers pulumi.BoolPtrInput
}

func (ClusterState) ElementType

func (ClusterState) ElementType() reflect.Type

type ClusterStep

type ClusterStep struct {
	// The action to take if the step fails. Valid values: `TERMINATE_JOB_FLOW`, `TERMINATE_CLUSTER`, `CANCEL_AND_WAIT`, and `CONTINUE`
	ActionOnFailure string `pulumi:"actionOnFailure"`
	// The JAR file used for the step. Defined below.
	HadoopJarStep ClusterStepHadoopJarStep `pulumi:"hadoopJarStep"`
	// The name of the step.
	Name string `pulumi:"name"`
}

type ClusterStepArgs

type ClusterStepArgs struct {
	// The action to take if the step fails. Valid values: `TERMINATE_JOB_FLOW`, `TERMINATE_CLUSTER`, `CANCEL_AND_WAIT`, and `CONTINUE`
	ActionOnFailure pulumi.StringInput `pulumi:"actionOnFailure"`
	// The JAR file used for the step. Defined below.
	HadoopJarStep ClusterStepHadoopJarStepInput `pulumi:"hadoopJarStep"`
	// The name of the step.
	Name pulumi.StringInput `pulumi:"name"`
}

func (ClusterStepArgs) ElementType

func (ClusterStepArgs) ElementType() reflect.Type

func (ClusterStepArgs) ToClusterStepOutput

func (i ClusterStepArgs) ToClusterStepOutput() ClusterStepOutput

func (ClusterStepArgs) ToClusterStepOutputWithContext

func (i ClusterStepArgs) ToClusterStepOutputWithContext(ctx context.Context) ClusterStepOutput

type ClusterStepArray

type ClusterStepArray []ClusterStepInput

func (ClusterStepArray) ElementType

func (ClusterStepArray) ElementType() reflect.Type

func (ClusterStepArray) ToClusterStepArrayOutput

func (i ClusterStepArray) ToClusterStepArrayOutput() ClusterStepArrayOutput

func (ClusterStepArray) ToClusterStepArrayOutputWithContext

func (i ClusterStepArray) ToClusterStepArrayOutputWithContext(ctx context.Context) ClusterStepArrayOutput

type ClusterStepArrayInput

type ClusterStepArrayInput interface {
	pulumi.Input

	ToClusterStepArrayOutput() ClusterStepArrayOutput
	ToClusterStepArrayOutputWithContext(context.Context) ClusterStepArrayOutput
}

ClusterStepArrayInput is an input type that accepts ClusterStepArray and ClusterStepArrayOutput values. You can construct a concrete instance of `ClusterStepArrayInput` via:

ClusterStepArray{ ClusterStepArgs{...} }

type ClusterStepArrayOutput

type ClusterStepArrayOutput struct{ *pulumi.OutputState }

func (ClusterStepArrayOutput) ElementType

func (ClusterStepArrayOutput) ElementType() reflect.Type

func (ClusterStepArrayOutput) Index

func (ClusterStepArrayOutput) ToClusterStepArrayOutput

func (o ClusterStepArrayOutput) ToClusterStepArrayOutput() ClusterStepArrayOutput

func (ClusterStepArrayOutput) ToClusterStepArrayOutputWithContext

func (o ClusterStepArrayOutput) ToClusterStepArrayOutputWithContext(ctx context.Context) ClusterStepArrayOutput

type ClusterStepHadoopJarStep

type ClusterStepHadoopJarStep struct {
	// List of command line arguments passed to the JAR file's main function when executed.
	Args []string `pulumi:"args"`
	// Path to a JAR file run during the step.
	Jar string `pulumi:"jar"`
	// Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
	MainClass *string `pulumi:"mainClass"`
	// Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
	Properties map[string]string `pulumi:"properties"`
}

type ClusterStepHadoopJarStepArgs

type ClusterStepHadoopJarStepArgs struct {
	// List of command line arguments passed to the JAR file's main function when executed.
	Args pulumi.StringArrayInput `pulumi:"args"`
	// Path to a JAR file run during the step.
	Jar pulumi.StringInput `pulumi:"jar"`
	// Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.
	MainClass pulumi.StringPtrInput `pulumi:"mainClass"`
	// Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.
	Properties pulumi.StringMapInput `pulumi:"properties"`
}

func (ClusterStepHadoopJarStepArgs) ElementType

func (ClusterStepHadoopJarStepArgs) ToClusterStepHadoopJarStepOutput

func (i ClusterStepHadoopJarStepArgs) ToClusterStepHadoopJarStepOutput() ClusterStepHadoopJarStepOutput

func (ClusterStepHadoopJarStepArgs) ToClusterStepHadoopJarStepOutputWithContext

func (i ClusterStepHadoopJarStepArgs) ToClusterStepHadoopJarStepOutputWithContext(ctx context.Context) ClusterStepHadoopJarStepOutput

type ClusterStepHadoopJarStepInput

type ClusterStepHadoopJarStepInput interface {
	pulumi.Input

	ToClusterStepHadoopJarStepOutput() ClusterStepHadoopJarStepOutput
	ToClusterStepHadoopJarStepOutputWithContext(context.Context) ClusterStepHadoopJarStepOutput
}

ClusterStepHadoopJarStepInput is an input type that accepts ClusterStepHadoopJarStepArgs and ClusterStepHadoopJarStepOutput values. You can construct a concrete instance of `ClusterStepHadoopJarStepInput` via:

ClusterStepHadoopJarStepArgs{...}

type ClusterStepHadoopJarStepOutput

type ClusterStepHadoopJarStepOutput struct{ *pulumi.OutputState }

func (ClusterStepHadoopJarStepOutput) Args

List of command line arguments passed to the JAR file's main function when executed.

func (ClusterStepHadoopJarStepOutput) ElementType

func (ClusterStepHadoopJarStepOutput) Jar

Path to a JAR file run during the step.

func (ClusterStepHadoopJarStepOutput) MainClass

Name of the main class in the specified Java file. If not specified, the JAR file should specify a Main-Class in its manifest file.

func (ClusterStepHadoopJarStepOutput) Properties

Key-Value map of Java properties that are set when the step runs. You can use these properties to pass key value pairs to your main function.

func (ClusterStepHadoopJarStepOutput) ToClusterStepHadoopJarStepOutput

func (o ClusterStepHadoopJarStepOutput) ToClusterStepHadoopJarStepOutput() ClusterStepHadoopJarStepOutput

func (ClusterStepHadoopJarStepOutput) ToClusterStepHadoopJarStepOutputWithContext

func (o ClusterStepHadoopJarStepOutput) ToClusterStepHadoopJarStepOutputWithContext(ctx context.Context) ClusterStepHadoopJarStepOutput

type ClusterStepInput

type ClusterStepInput interface {
	pulumi.Input

	ToClusterStepOutput() ClusterStepOutput
	ToClusterStepOutputWithContext(context.Context) ClusterStepOutput
}

ClusterStepInput is an input type that accepts ClusterStepArgs and ClusterStepOutput values. You can construct a concrete instance of `ClusterStepInput` via:

ClusterStepArgs{...}

type ClusterStepOutput

type ClusterStepOutput struct{ *pulumi.OutputState }

func (ClusterStepOutput) ActionOnFailure

func (o ClusterStepOutput) ActionOnFailure() pulumi.StringOutput

The action to take if the step fails. Valid values: `TERMINATE_JOB_FLOW`, `TERMINATE_CLUSTER`, `CANCEL_AND_WAIT`, and `CONTINUE`

func (ClusterStepOutput) ElementType

func (ClusterStepOutput) ElementType() reflect.Type

func (ClusterStepOutput) HadoopJarStep

The JAR file used for the step. Defined below.

func (ClusterStepOutput) Name

The name of the step.

func (ClusterStepOutput) ToClusterStepOutput

func (o ClusterStepOutput) ToClusterStepOutput() ClusterStepOutput

func (ClusterStepOutput) ToClusterStepOutputWithContext

func (o ClusterStepOutput) ToClusterStepOutputWithContext(ctx context.Context) ClusterStepOutput

type InstanceGroup

type InstanceGroup struct {
	pulumi.CustomResourceState

	// The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
	AutoscalingPolicy pulumi.StringPtrOutput `pulumi:"autoscalingPolicy"`
	// 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.
	BidPrice pulumi.StringPtrOutput `pulumi:"bidPrice"`
	// ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
	ClusterId pulumi.StringOutput `pulumi:"clusterId"`
	// 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.
	ConfigurationsJson pulumi.StringPtrOutput `pulumi:"configurationsJson"`
	// One or more `ebsConfig` blocks as defined below. Changing this forces a new resource to be created.
	EbsConfigs InstanceGroupEbsConfigArrayOutput `pulumi:"ebsConfigs"`
	// Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
	EbsOptimized pulumi.BoolPtrOutput `pulumi:"ebsOptimized"`
	// target number of instances for the instance group. defaults to 0.
	InstanceCount pulumi.IntPtrOutput `pulumi:"instanceCount"`
	// The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
	InstanceType pulumi.StringOutput `pulumi:"instanceType"`
	// Human friendly name given to the instance group. Changing this forces a new resource to be created.
	Name                 pulumi.StringOutput `pulumi:"name"`
	RunningInstanceCount pulumi.IntOutput    `pulumi:"runningInstanceCount"`
	Status               pulumi.StringOutput `pulumi:"status"`
}

Provides an Elastic MapReduce Cluster Instance Group configuration. See [Amazon Elastic MapReduce Documentation](https://aws.amazon.com/documentation/emr/) 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

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/emr"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewInstanceGroup(ctx, "task", &emr.InstanceGroupArgs{
			ClusterId:     pulumi.String(aws_emr_cluster.Tf - test - cluster.Id),
			InstanceCount: pulumi.Int(1),
			InstanceType:  pulumi.String("m5.xlarge"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetInstanceGroup

func GetInstanceGroup(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceGroupState, opts ...pulumi.ResourceOption) (*InstanceGroup, error)

GetInstanceGroup gets an existing InstanceGroup resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewInstanceGroup

func NewInstanceGroup(ctx *pulumi.Context,
	name string, args *InstanceGroupArgs, opts ...pulumi.ResourceOption) (*InstanceGroup, error)

NewInstanceGroup registers a new resource with the given unique name, arguments, and options.

type InstanceGroupArgs

type InstanceGroupArgs struct {
	// The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
	AutoscalingPolicy pulumi.StringPtrInput
	// 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.
	BidPrice pulumi.StringPtrInput
	// ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
	ClusterId pulumi.StringInput
	// 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.
	ConfigurationsJson pulumi.StringPtrInput
	// One or more `ebsConfig` blocks as defined below. Changing this forces a new resource to be created.
	EbsConfigs InstanceGroupEbsConfigArrayInput
	// Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
	EbsOptimized pulumi.BoolPtrInput
	// target number of instances for the instance group. defaults to 0.
	InstanceCount pulumi.IntPtrInput
	// The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
	InstanceType pulumi.StringInput
	// Human friendly name given to the instance group. Changing this forces a new resource to be created.
	Name pulumi.StringPtrInput
}

The set of arguments for constructing a InstanceGroup resource.

func (InstanceGroupArgs) ElementType

func (InstanceGroupArgs) ElementType() reflect.Type

type InstanceGroupEbsConfig

type InstanceGroupEbsConfig struct {
	// The number of I/O operations per second (IOPS) that the volume supports.
	Iops *int `pulumi:"iops"`
	// 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.
	Size int `pulumi:"size"`
	// The volume type. Valid options are 'gp2', 'io1' and 'standard'.
	Type string `pulumi:"type"`
	// The number of EBS Volumes to attach per instance.
	VolumesPerInstance *int `pulumi:"volumesPerInstance"`
}

type InstanceGroupEbsConfigArgs

type InstanceGroupEbsConfigArgs struct {
	// The number of I/O operations per second (IOPS) that the volume supports.
	Iops pulumi.IntPtrInput `pulumi:"iops"`
	// 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.
	Size pulumi.IntInput `pulumi:"size"`
	// The volume type. Valid options are 'gp2', 'io1' and 'standard'.
	Type pulumi.StringInput `pulumi:"type"`
	// The number of EBS Volumes to attach per instance.
	VolumesPerInstance pulumi.IntPtrInput `pulumi:"volumesPerInstance"`
}

func (InstanceGroupEbsConfigArgs) ElementType

func (InstanceGroupEbsConfigArgs) ElementType() reflect.Type

func (InstanceGroupEbsConfigArgs) ToInstanceGroupEbsConfigOutput

func (i InstanceGroupEbsConfigArgs) ToInstanceGroupEbsConfigOutput() InstanceGroupEbsConfigOutput

func (InstanceGroupEbsConfigArgs) ToInstanceGroupEbsConfigOutputWithContext

func (i InstanceGroupEbsConfigArgs) ToInstanceGroupEbsConfigOutputWithContext(ctx context.Context) InstanceGroupEbsConfigOutput

type InstanceGroupEbsConfigArray

type InstanceGroupEbsConfigArray []InstanceGroupEbsConfigInput

func (InstanceGroupEbsConfigArray) ElementType

func (InstanceGroupEbsConfigArray) ToInstanceGroupEbsConfigArrayOutput

func (i InstanceGroupEbsConfigArray) ToInstanceGroupEbsConfigArrayOutput() InstanceGroupEbsConfigArrayOutput

func (InstanceGroupEbsConfigArray) ToInstanceGroupEbsConfigArrayOutputWithContext

func (i InstanceGroupEbsConfigArray) ToInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) InstanceGroupEbsConfigArrayOutput

type InstanceGroupEbsConfigArrayInput

type InstanceGroupEbsConfigArrayInput interface {
	pulumi.Input

	ToInstanceGroupEbsConfigArrayOutput() InstanceGroupEbsConfigArrayOutput
	ToInstanceGroupEbsConfigArrayOutputWithContext(context.Context) InstanceGroupEbsConfigArrayOutput
}

InstanceGroupEbsConfigArrayInput is an input type that accepts InstanceGroupEbsConfigArray and InstanceGroupEbsConfigArrayOutput values. You can construct a concrete instance of `InstanceGroupEbsConfigArrayInput` via:

InstanceGroupEbsConfigArray{ InstanceGroupEbsConfigArgs{...} }

type InstanceGroupEbsConfigArrayOutput

type InstanceGroupEbsConfigArrayOutput struct{ *pulumi.OutputState }

func (InstanceGroupEbsConfigArrayOutput) ElementType

func (InstanceGroupEbsConfigArrayOutput) Index

func (InstanceGroupEbsConfigArrayOutput) ToInstanceGroupEbsConfigArrayOutput

func (o InstanceGroupEbsConfigArrayOutput) ToInstanceGroupEbsConfigArrayOutput() InstanceGroupEbsConfigArrayOutput

func (InstanceGroupEbsConfigArrayOutput) ToInstanceGroupEbsConfigArrayOutputWithContext

func (o InstanceGroupEbsConfigArrayOutput) ToInstanceGroupEbsConfigArrayOutputWithContext(ctx context.Context) InstanceGroupEbsConfigArrayOutput

type InstanceGroupEbsConfigInput

type InstanceGroupEbsConfigInput interface {
	pulumi.Input

	ToInstanceGroupEbsConfigOutput() InstanceGroupEbsConfigOutput
	ToInstanceGroupEbsConfigOutputWithContext(context.Context) InstanceGroupEbsConfigOutput
}

InstanceGroupEbsConfigInput is an input type that accepts InstanceGroupEbsConfigArgs and InstanceGroupEbsConfigOutput values. You can construct a concrete instance of `InstanceGroupEbsConfigInput` via:

InstanceGroupEbsConfigArgs{...}

type InstanceGroupEbsConfigOutput

type InstanceGroupEbsConfigOutput struct{ *pulumi.OutputState }

func (InstanceGroupEbsConfigOutput) ElementType

func (InstanceGroupEbsConfigOutput) Iops

The number of I/O operations per second (IOPS) that the volume supports.

func (InstanceGroupEbsConfigOutput) Size

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.

func (InstanceGroupEbsConfigOutput) ToInstanceGroupEbsConfigOutput

func (o InstanceGroupEbsConfigOutput) ToInstanceGroupEbsConfigOutput() InstanceGroupEbsConfigOutput

func (InstanceGroupEbsConfigOutput) ToInstanceGroupEbsConfigOutputWithContext

func (o InstanceGroupEbsConfigOutput) ToInstanceGroupEbsConfigOutputWithContext(ctx context.Context) InstanceGroupEbsConfigOutput

func (InstanceGroupEbsConfigOutput) Type

The volume type. Valid options are 'gp2', 'io1' and 'standard'.

func (InstanceGroupEbsConfigOutput) VolumesPerInstance

func (o InstanceGroupEbsConfigOutput) VolumesPerInstance() pulumi.IntPtrOutput

The number of EBS Volumes to attach per instance.

type InstanceGroupState

type InstanceGroupState struct {
	// The autoscaling policy document. This is a JSON formatted string. See [EMR Auto Scaling](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html)
	AutoscalingPolicy pulumi.StringPtrInput
	// 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.
	BidPrice pulumi.StringPtrInput
	// ID of the EMR Cluster to attach to. Changing this forces a new resource to be created.
	ClusterId pulumi.StringPtrInput
	// 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.
	ConfigurationsJson pulumi.StringPtrInput
	// One or more `ebsConfig` blocks as defined below. Changing this forces a new resource to be created.
	EbsConfigs InstanceGroupEbsConfigArrayInput
	// Indicates whether an Amazon EBS volume is EBS-optimized. Changing this forces a new resource to be created.
	EbsOptimized pulumi.BoolPtrInput
	// target number of instances for the instance group. defaults to 0.
	InstanceCount pulumi.IntPtrInput
	// The EC2 instance type for all instances in the instance group. Changing this forces a new resource to be created.
	InstanceType pulumi.StringPtrInput
	// Human friendly name given to the instance group. Changing this forces a new resource to be created.
	Name                 pulumi.StringPtrInput
	RunningInstanceCount pulumi.IntPtrInput
	Status               pulumi.StringPtrInput
}

func (InstanceGroupState) ElementType

func (InstanceGroupState) ElementType() reflect.Type

type SecurityConfiguration

type SecurityConfiguration struct {
	pulumi.CustomResourceState

	// A JSON formatted Security Configuration
	Configuration pulumi.StringOutput `pulumi:"configuration"`
	// Date the Security Configuration was created
	CreationDate pulumi.StringOutput `pulumi:"creationDate"`
	// The name of the EMR Security Configuration. By default generated by this provider.
	Name pulumi.StringOutput `pulumi:"name"`
	// Creates a unique name beginning with the specified
	// prefix. Conflicts with `name`.
	NamePrefix pulumi.StringPtrOutput `pulumi:"namePrefix"`
}

Provides a resource to manage AWS EMR Security Configurations

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v2/go/aws/emr"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := emr.NewSecurityConfiguration(ctx, "foo", &emr.SecurityConfigurationArgs{
			Configuration: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "  \"EncryptionConfiguration\": {\n", "    \"AtRestEncryptionConfiguration\": {\n", "      \"S3EncryptionConfiguration\": {\n", "        \"EncryptionMode\": \"SSE-S3\"\n", "      },\n", "      \"LocalDiskEncryptionConfiguration\": {\n", "        \"EncryptionKeyProviderType\": \"AwsKms\",\n", "        \"AwsKmsKey\": \"arn:aws:kms:us-west-2:187416307283:alias/tf_emr_test_key\"\n", "      }\n", "    },\n", "    \"EnableInTransitEncryption\": false,\n", "    \"EnableAtRestEncryption\": true\n", "  }\n", "}\n", "\n")),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

func GetSecurityConfiguration

func GetSecurityConfiguration(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SecurityConfigurationState, opts ...pulumi.ResourceOption) (*SecurityConfiguration, error)

GetSecurityConfiguration gets an existing SecurityConfiguration resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSecurityConfiguration

func NewSecurityConfiguration(ctx *pulumi.Context,
	name string, args *SecurityConfigurationArgs, opts ...pulumi.ResourceOption) (*SecurityConfiguration, error)

NewSecurityConfiguration registers a new resource with the given unique name, arguments, and options.

type SecurityConfigurationArgs

type SecurityConfigurationArgs struct {
	// A JSON formatted Security Configuration
	Configuration pulumi.StringInput
	// The name of the EMR Security Configuration. By default generated by this provider.
	Name pulumi.StringPtrInput
	// Creates a unique name beginning with the specified
	// prefix. Conflicts with `name`.
	NamePrefix pulumi.StringPtrInput
}

The set of arguments for constructing a SecurityConfiguration resource.

func (SecurityConfigurationArgs) ElementType

func (SecurityConfigurationArgs) ElementType() reflect.Type

type SecurityConfigurationState

type SecurityConfigurationState struct {
	// A JSON formatted Security Configuration
	Configuration pulumi.StringPtrInput
	// Date the Security Configuration was created
	CreationDate pulumi.StringPtrInput
	// The name of the EMR Security Configuration. By default generated by this provider.
	Name pulumi.StringPtrInput
	// Creates a unique name beginning with the specified
	// prefix. Conflicts with `name`.
	NamePrefix pulumi.StringPtrInput
}

func (SecurityConfigurationState) ElementType

func (SecurityConfigurationState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL