# InstanceGroupConfigProperty

Configuration defining a new instance group.

- Source: [`aws-stepfunctions-tasks/lib/emr/emr-create-cluster.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.ts#L1440)

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
import { aws_stepfunctions_tasks as stepfunctions_tasks } from 'aws-cdk-lib';

declare const configurationProperty_: stepfunctions_tasks.EmrCreateCluster.ConfigurationProperty;
declare const size: cdk.Size;
const instanceGroupConfigProperty: stepfunctions_tasks.EmrCreateCluster.InstanceGroupConfigProperty = {
  instanceCount: 123,
  instanceRole: stepfunctions_tasks.EmrCreateCluster.InstanceRoleType.MASTER,
  instanceType: 'instanceType',

  // the properties below are optional
  autoScalingPolicy: {
    constraints: {
      maxCapacity: 123,
      minCapacity: 123,
    },
    rules: [{
      action: {
        simpleScalingPolicyConfiguration: {
          scalingAdjustment: 123,

          // the properties below are optional
          adjustmentType: stepfunctions_tasks.EmrCreateCluster.ScalingAdjustmentType.CHANGE_IN_CAPACITY,
          coolDown: 123,
        },

        // the properties below are optional
        market: stepfunctions_tasks.EmrCreateCluster.InstanceMarket.ON_DEMAND,
      },
      name: 'name',
      trigger: {
        cloudWatchAlarmDefinition: {
          comparisonOperator: stepfunctions_tasks.EmrCreateCluster.CloudWatchAlarmComparisonOperator.GREATER_THAN_OR_EQUAL,
          metricName: 'metricName',
          period: cdk.Duration.minutes(30),

          // the properties below are optional
          dimensions: [{
            key: 'key',
            value: 'value',
          }],
          evaluationPeriods: 123,
          namespace: 'namespace',
          statistic: stepfunctions_tasks.EmrCreateCluster.CloudWatchAlarmStatistic.SAMPLE_COUNT,
          threshold: 123,
          unit: stepfunctions_tasks.EmrCreateCluster.CloudWatchAlarmUnit.NONE,
        },
      },

      // the properties below are optional
      description: 'description',
    }],
  },
  bidPrice: 'bidPrice',
  configurations: [{
    classification: 'classification',
    configurations: [configurationProperty_],
    properties: {
      propertiesKey: 'properties',
    },
  }],
  ebsConfiguration: {
    ebsBlockDeviceConfigs: [{
      volumeSpecification: {
        volumeSize: size,
        volumeType: stepfunctions_tasks.EmrCreateCluster.EbsBlockDeviceVolumeType.GP3,

        // the properties below are optional
        iops: 123,
      },

      // the properties below are optional
      volumesPerInstance: 123,
    }],
    ebsOptimized: false,
  },
  market: stepfunctions_tasks.EmrCreateCluster.InstanceMarket.ON_DEMAND,
  name: 'name',
};
```

## Properties

- `autoScalingPolicy`: [EmrCreateCluster.AutoScalingPolicyProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.AutoScalingPolicyProperty.html) = None — An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster.

- `bidPrice`: string = None — The bid price for each EC2 Spot instance type as defined by InstanceType.

  Expressed in USD.

- `configurations`: [EmrCreateCluster.ConfigurationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.ConfigurationProperty.html)[] = None — The list of configurations supplied for an EMR cluster instance group.

- `ebsConfiguration`: [EmrCreateCluster.EbsConfigurationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.EbsConfigurationProperty.html) = None — EBS configurations that will be attached to each EC2 instance in the instance group.

- `instanceCount`: number (required) — Target number of instances for the instance group.

- `instanceRole`: [EmrCreateCluster.InstanceRoleType](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.InstanceRoleType.html) (required) — The role of the instance group in the cluster.

- `instanceType`: string (required) — The EC2 instance type for all instances in the instance group.

- `market`: [EmrCreateCluster.InstanceMarket](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.EmrCreateCluster.InstanceMarket.html) — Market type of the EC2 instances used to create a cluster node.

  **Default:** EMR selected default

- `name`: string = None — Friendly name given to the instance group.
