Amazon EMR Emr Instance Group API

The Emr Instance Group API from Amazon EMR — 3 operation(s) for emr instance group.

Business capability
IT Infrastructure Management BC-600.50

Operations 3

POST /#AddInstanceGroups Add Instance Groups #
POST /#ListInstanceGroups List Instance Groups #
POST /#ModifyInstanceGroups Modify Instance Groups #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-emr:amazon-emr-instance-group-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

amazon-emr-instance-group-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Amazon EMR Instance Group API
  version: '2009-03-31'
  description: Generated from AWS's published Smithy model for Amazon EMR. 3 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://elasticmapreduce.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
tags:
- name: Instance Group
paths:
  /#AddInstanceGroups:
    post:
      operationId: AddInstanceGroups
      summary: Add Instance Groups
      description: Adds one or more instance groups to a running cluster.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AddInstanceGroupsOutput'
        '500':
          description: InternalServerError
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - ElasticMapReduce.AddInstanceGroups
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/AddInstanceGroupsInput'
      tags:
      - Instance Group
  /#ListInstanceGroups:
    post:
      operationId: ListInstanceGroups
      summary: List Instance Groups
      description: Provides all available details about the instance groups in a cluster.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ListInstanceGroupsOutput'
        '500':
          description: InternalServerException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '400':
          description: InvalidRequestException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidRequestException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - ElasticMapReduce.ListInstanceGroups
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/ListInstanceGroupsInput'
      tags:
      - Instance Group
  /#ModifyInstanceGroups:
    post:
      operationId: ModifyInstanceGroups
      summary: Modify Instance Groups
      description: ModifyInstanceGroups modifies the number of nodes and configuration settings of an instance group. The input parameters include the new target instance count for the group and the instance group ID. The call will either succeed or fail atomically.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                type: string
        '500':
          description: InternalServerError
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - ElasticMapReduce.ModifyInstanceGroups
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/ModifyInstanceGroupsInput'
      tags:
      - Instance Group
components:
  schemas:
    ScalingConstraints:
      type: object
      properties:
        MinCapacity:
          type: integer
          description: The lower boundary of Amazon EC2 instances in an instance group below which scaling activities are not allowed to shrink. Scale-in activities will not terminate instances below this boundary.
        MaxCapacity:
          type: integer
          description: The upper boundary of Amazon EC2 instances in an instance group beyond which scaling activities are not allowed to grow. Scale-out activities will not add instances beyond this boundary.
      required:
      - MinCapacity
      - MaxCapacity
    EbsBlockDeviceConfig:
      type: object
      properties:
        VolumeSpecification:
          $ref: '#/components/schemas/VolumeSpecification'
        VolumesPerInstance:
          type: integer
          description: Number of EBS volumes with a specific volume configuration that are associated with every instance in the instance group
      required:
      - VolumeSpecification
    InternalServerException:
      type: object
      properties:
        Message:
          type: string
          description: The message associated with the exception.
    InstanceGroupModifyConfig:
      type: object
      properties:
        InstanceGroupId:
          type: string
          description: Unique ID of the instance group to modify.
        InstanceCount:
          type: integer
          description: Target size for the instance group.
        EC2InstanceIdsToTerminate:
          type: array
          items:
            type: string
          description: The Amazon EC2 InstanceIds to terminate. After you terminate the instances, the instance group will not return to its original requested size.
        ShrinkPolicy:
          $ref: '#/components/schemas/ShrinkPolicy'
        ReconfigurationType:
          type: string
          enum:
          - OVERWRITE
          - MERGE
          description: Type of reconfiguration requested. Valid values are MERGE and OVERWRITE.
        Configurations:
          type: array
          items:
            $ref: '#/components/schemas/Configuration'
          description: A list of new or modified configurations to apply for an instance group.
      required:
      - InstanceGroupId
    AddInstanceGroupsOutput:
      type: object
      properties:
        JobFlowId:
          type: string
          description: The job flow ID in which the instance groups are added.
        InstanceGroupIds:
          type: array
          items:
            type: string
          description: Instance group IDs of the newly created instance groups.
        ClusterArn:
          type: string
          description: The Amazon Resource Name of the cluster.
    ScalingRule:
      type: object
      properties:
        Name:
          type: string
          description: The name used to identify an automatic scaling rule. Rule names must be unique within a scaling policy.
        Description:
          type: string
          description: A friendly, more verbose description of the automatic scaling rule.
        Action:
          $ref: '#/components/schemas/ScalingAction'
        Trigger:
          $ref: '#/components/schemas/ScalingTrigger'
      required:
      - Name
      - Action
      - Trigger
    InstanceGroup:
      type: object
      properties:
        Id:
          type: string
          description: The identifier of the instance group.
        Name:
          type: string
          description: The name of the instance group.
        Market:
          type: string
          enum:
          - ON_DEMAND
          - SPOT
          description: The marketplace to provision instances for this group. Valid values are ON_DEMAND or SPOT.
        InstanceGroupType:
          type: string
          enum:
          - MASTER
          - CORE
          - TASK
          description: The type of the instance group. Valid values are MASTER, CORE or TASK.
        BidPrice:
          type: string
          description: The bid price for each Amazon EC2 Spot Instance type as defined by InstanceType. Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
        InstanceType:
          type: string
          description: The Amazon EC2 instance type for all instances in the instance group.
        RequestedInstanceCount:
          type: integer
          description: The target number of instances for the instance group.
        RunningInstanceCount:
          type: integer
          description: The number of instances currently running in this instance group.
        Status:
          $ref: '#/components/schemas/InstanceGroupStatus'
        Configurations:
          type: array
          items:
            $ref: '#/components/schemas/Configuration'
          description: Amazon EMR releases 4.x or later. The list of configurations supplied for an Amazon EMR cluster instance group. You can specify a separate configuration for each instance group (master, core, and task).
        ConfigurationsVersion:
          type: integer
          description: The version number of the requested configuration specification for this instance group.
        LastSuccessfullyAppliedConfigurations:
          type: array
          items:
            $ref: '#/components/schemas/Configuration'
          description: A list of configurations that were successfully applied for an instance group last time.
        LastSuccessfullyAppliedConfigurationsVersion:
          type: integer
          description: The version number of a configuration specification that was successfully applied for an instance group last time.
        EbsBlockDevices:
          type: array
          items:
            $ref: '#/components/schemas/EbsBlockDevice'
          description: The EBS block devices that are mapped to this instance group.
        EbsOptimized:
          type: boolean
          description: If the instance group is EBS-optimized. An Amazon EBS-optimized instance uses an optimized configuration stack and provides additional, dedicated capacity for Amazon EBS I/O.
        ShrinkPolicy:
          $ref: '#/components/schemas/ShrinkPolicy'
        AutoScalingPolicy:
          $ref: '#/components/schemas/AutoScalingPolicyDescription'
        CustomAmiId:
          type: string
          description: The custom AMI ID to use for the provisioned instance group.
    MetricDimension:
      type: object
      properties:
        Key:
          type: string
          description: The dimension name.
        Value:
          type: string
          description: The dimension value.
    ShrinkPolicy:
      type: object
      properties:
        DecommissionTimeout:
          type: integer
          description: The desired timeout for decommissioning an instance. Overrides the default YARN decommissioning timeout.
        InstanceResizePolicy:
          $ref: '#/components/schemas/InstanceResizePolicy'
    AddInstanceGroupsInput:
      type: object
      properties:
        InstanceGroups:
          type: array
          items:
            $ref: '#/components/schemas/InstanceGroupConfig'
          description: Instance groups to add.
        JobFlowId:
          type: string
          description: Job flow in which to add the instance groups.
      required:
      - InstanceGroups
      - JobFlowId
    ScalingTrigger:
      type: object
      properties:
        CloudWatchAlarmDefinition:
          $ref: '#/components/schemas/CloudWatchAlarmDefinition'
      required:
      - CloudWatchAlarmDefinition
    InstanceGroupConfig:
      type: object
      properties:
        Name:
          type: string
          description: Friendly name given to the instance group.
        Market:
          type: string
          enum:
          - ON_DEMAND
          - SPOT
          description: Market type of the Amazon EC2 instances used to create a cluster node.
        InstanceRole:
          type: string
          enum:
          - MASTER
          - CORE
          - TASK
          description: The role of the instance group in the cluster.
        BidPrice:
          type: string
          description: The bid price for each Amazon EC2 Spot Instance type as defined by InstanceType. Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
        InstanceType:
          type: string
          description: The Amazon EC2 instance type for all instances in the instance group.
        InstanceCount:
          type: integer
          description: Target number of instances for the instance group.
        Configurations:
          type: array
          items:
            $ref: '#/components/schemas/Configuration'
          description: Amazon EMR releases 4.x or later. The list of configurations supplied for an Amazon EMR cluster instance group. You can specify a separate configuration for each instance group (master, core, and task).
        EbsConfiguration:
          $ref: '#/components/schemas/EbsConfiguration'
        AutoScalingPolicy:
          $ref: '#/components/schemas/AutoScalingPolicy'
        CustomAmiId:
          type: string
          description: The custom AMI ID to use for the provisioned instance group.
      required:
      - InstanceRole
      - InstanceType
      - InstanceCount
    InstanceResizePolicy:
      type: object
      properties:
        InstancesToTerminate:
          type: array
          items:
            type: string
          description: Specific list of instances to be terminated when shrinking an instance group.
        InstancesToProtect:
          type: array
          items:
            type: string
          description: Specific list of instances to be protected when shrinking an instance group.
        InstanceTerminationTimeout:
          type: integer
          description: Decommissioning timeout override for the specific list of instances to be terminated.
    InstanceGroupTimeline:
      type: object
      properties:
        CreationDateTime:
          type: string
          format: date-time
          description: The creation date and time of the instance group.
        ReadyDateTime:
          type: string
          format: date-time
          description: The date and time when the instance group became ready to perform tasks.
        EndDateTime:
          type: string
          format: date-time
          description: The date and time when the instance group terminated.
    ListInstanceGroupsOutput:
      type: object
      properties:
        InstanceGroups:
          type: array
          items:
            $ref: '#/components/schemas/InstanceGroup'
          description: The list of instance groups for the cluster and given filters.
        Marker:
          type: string
          description: The pagination token that indicates the next set of results to retrieve.
    InstanceGroupStateChangeReason:
      type: object
      properties:
        Code:
          type: string
          enum:
          - INTERNAL_ERROR
          - VALIDATION_ERROR
          - INSTANCE_FAILURE
          - CLUSTER_TERMINATED
          description: The programmable code for the state change reason.
        Message:
          type: string
          description: The status change reason description.
    ScalingAction:
      type: object
      properties:
        Market:
          type: string
          enum:
          - ON_DEMAND
          - SPOT
          description: Not available for instance groups. Instance groups use the market type specified for the group.
        SimpleScalingPolicyConfiguration:
          $ref: '#/components/schemas/SimpleScalingPolicyConfiguration'
      required:
      - SimpleScalingPolicyConfiguration
    AutoScalingPolicyStateChangeReason:
      type: object
      properties:
        Code:
          type: string
          enum:
          - USER_REQUEST
          - PROVISION_FAILURE
          - CLEANUP_FAILURE
          description: The code indicating the reason for the change in status.USER_REQUEST indicates that the scaling policy status was changed by a user. PROVISION_FAILURE indicates that the status change was because the policy failed to provision. CLEANUP_FAILURE indicates an error.
        Message:
          type: string
          description: A friendly, more verbose message that accompanies an automatic scaling policy state change.
    AutoScalingPolicyDescription:
      type: object
      properties:
        Status:
          $ref: '#/components/schemas/AutoScalingPolicyStatus'
        Constraints:
          $ref: '#/components/schemas/ScalingConstraints'
        Rules:
          type: array
          items:
            $ref: '#/components/schemas/ScalingRule'
          description: The scale-in and scale-out rules that comprise the automatic scaling policy.
    EbsBlockDevice:
      type: object
      properties:
        VolumeSpecification:
          $ref: '#/components/schemas/VolumeSpecification'
        Device:
          type: string
          description: The device name that is exposed to the instance, such as /dev/sdh.
    InstanceGroupStatus:
      type: object
      properties:
        State:
          type: string
          enum:
          - PROVISIONING
          - BOOTSTRAPPING
          - RUNNING
          - RECONFIGURING
          - RESIZING
          - SUSPENDED
          - TERMINATING
          - TERMINATED
          - ARRESTED
          - SHUTTING_DOWN
          - ENDED
          description: The current state of the instance group.
        StateChangeReason:
          $ref: '#/components/schemas/InstanceGroupStateChangeReason'
        Timeline:
          $ref: '#/components/schemas/InstanceGroupTimeline'
    ModifyInstanceGroupsInput:
      type: object
      properties:
        ClusterId:
          type: string
          description: The ID of the cluster to which the instance group belongs.
        InstanceGroups:
          type: array
          items:
            $ref: '#/components/schemas/InstanceGroupModifyConfig'
          description: Instance groups to change.
    CloudWatchAlarmDefinition:
      type: object
      properties:
        ComparisonOperator:
          type: string
          enum:
          - GREATER_THAN_OR_EQUAL
          - GREATER_THAN
          - LESS_THAN
          - LESS_THAN_OR_EQUAL
          description: Determines how the metric specified by MetricName is compared to the value specified by Threshold.
        EvaluationPeriods:
          type: integer
          description: The number of periods, in five-minute increments, during which the alarm condition must exist before the alarm triggers automatic scaling activity. The default value is 1.
        MetricName:
          type: string
          description: The name of the CloudWatch metric that is watched to determine an alarm condition.
        Namespace:
          type: string
          description: The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
        Period:
          type: integer
          description: The period, in seconds, over which the statistic is applied. CloudWatch metrics for Amazon EMR are emitted every five minutes (300 seconds), so if you specify a CloudWatch metric, specify 300.
        Statistic:
          type: string
          enum:
          - SAMPLE_COUNT
          - AVERAGE
          - SUM
          - MINIMUM
          - MAXIMUM
          description: The statistic to apply to the metric associated with the alarm. The default is AVERAGE.
        Threshold:
          type: number
          description: The value against which the specified statistic is compared.
        Unit:
          type: string
          enum:
          - NONE
          - SECONDS
          - MICRO_SECONDS
          - MILLI_SECONDS
          - BYTES
          - KILO_BYTES
          - MEGA_BYTES
          - GIGA_BYTES
          - TERA_BYTES
          - BITS
          - KILO_BITS
          - MEGA_BITS
          - GIGA_BITS
          - TERA_BITS
          - PERCENT
          - COUNT
          - BYTES_PER_SECOND
          - KILO_BYTES_PER_SECOND
          - MEGA_BYTES_PER_SECOND
          - GIGA_BYTES_PER_SECOND
          - TERA_BYTES_PER_SECOND
          - BITS_PER_SECOND
          - KILO_BITS_PER_SECOND
          - MEGA_BITS_PER_SECOND
          - GIGA_BITS_PER_SECOND
          - TERA_BITS_PER_SECOND
          - COUNT_PER_SECOND
          description: The unit of measure associated with the CloudWatch metric being watched. The value specified for Unit must correspond to the units specified in the CloudWatch metric.
        Dimensions:
          type: array
          items:
            $ref: '#/components/schemas/MetricDimension'
          description: A CloudWatch metric dimension.
      required:
      - ComparisonOperator
      - MetricName
      - Period
      - Threshold
    VolumeSpecification:
      type: object
      properties:
        VolumeType:
          type: string
          description: The volume type. Volume types supported are gp3, gp2, io1, st1, sc1, and standard.
        Iops:
          type: integer
          description: The number of I/O operations per second (IOPS) that the volume supports.
        SizeInGB:
          type: integer
          description: 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.
        Throughput:
          type: integer
          description: The throughput, in mebibyte per second (MiB/s). This optional parameter can be a number from 125 - 1000 and is valid only for gp3 volumes.
      required:
      - VolumeType
      - SizeInGB
    EbsConfiguration:
      type: object
      properties:
        EbsBlockDeviceConfigs:
          type: array
          items:
            $ref: '#/components/schemas/EbsBlockDeviceConfig'
          description: An array of Amazon EBS volume specifications attached to a cluster instance.
        EbsOptimized:
          type: boolean
          description: Indicates whether an Amazon EBS volume is EBS-optimized. The default is false. You should explicitly set this value to true to enable the Amazon EBS-optimized setting for an EC2 instance.
    SimpleScalingPolicyConfiguration:
      type: object
      properties:
        AdjustmentType:
          type: string
          enum:
          - CHANGE_IN_CAPACITY
          - PERCENT_CHANGE_IN_CAPACITY
          - EXACT_CAPACITY
          description: The way in which Amazon EC2 instances are added (if ScalingAdjustment is a positive number) or terminated (if ScalingAdjustment is a negative number) each time the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY indicates that the Amazon EC2 instance count increments or decrements by ScalingAdjustment, which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates the instance count increments or decrements by the percentage specified by ScalingAdjustment, which should be expressed as an integer. For example, 20 indicates an increase in 20% i
        ScalingAdjustment:
          type: integer
          description: The amount by which to scale in or scale out, based on the specified AdjustmentType. A positive value adds to the instance group's Amazon EC2 instance count while a negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY, the number should only be a positive integer. If AdjustmentType is set to PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an integer. For example, -20 indicates a decrease in 20% increments of cluster capacity.
        CoolDown:
          type: integer
          description: The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start. The default value is 0.
      required:
      - ScalingAdjustment
    AutoScalingPolicyStatus:
      type: object
      properties:
        State:
          type: string
          enum:
          - PENDING
          - ATTACHING
          - ATTACHED
          - DETACHING
          - DETACHED
          - FAILED
          description: Indicates the status of the automatic scaling policy.
        StateChangeReason:
          $ref: '#/components/schemas/AutoScalingPolicyStateChangeReason'
    Configuration:
      type: object
      properties:
        Classification:
          type: string
          description: The classification within a configuration.
        Configurations:
          type: array
          items:
            $ref: '#/components/schemas/Configuration'
          description: A list of additional configurations to apply within a configuration object.
        Properties:
          type: object
          additionalProperties:
            type: string
          description: A set of properties specified within a configuration classification.
    InvalidRequestException:
      type: object
      properties:
        ErrorCode:
          type: string
          description: The error code associated with the exception.
        Message:
          type: string
          description: The message associated with the exception.
    AutoScalingPolicy:
      type: object
      properties:
        Constraints:
          $ref: '#/components/schemas/ScalingConstraints'
        Rules:
          type: array
          items:
            $ref: '#/components/schemas/ScalingRule'
          description: The scale-in and scale-out rules that comprise the automatic scaling policy.
      required:
      - Constraints
      - Rules
    InternalServerError:
      type: object
      properties: {}
    ListInstanceGroupsInput:
      type: object
      properties:
        ClusterId:
          type: string
          description: The identifier of the cluster for which to list the instance groups.
        Marker:
          type: string
          description: The pagination token that indicates the next set of results to retrieve.
      required:
      - ClusterId
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: elasticmapreduce
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/emr/service/2009-03-31/emr-2009-03-31.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)