Amazon EMR Emr Instance Group API
The Emr Instance Group API from Amazon EMR — 3 operation(s) for emr instance group.
The Emr Instance Group API from Amazon EMR — 3 operation(s) for emr instance group.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/amazon-emr:amazon-emr-instance-group-api"
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.
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: 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)