Amazon EKS Node Groups API

Operations for managing EKS managed node groups

OpenAPI Specification

amazon-eks-node-groups-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon EKS Addons Node Groups API
  description: Amazon Elastic Kubernetes Service (Amazon EKS) is a managed Kubernetes service that makes it easy to run Kubernetes on AWS without needing to install, operate, and maintain your own Kubernetes control plane or nodes.
  version: '2017-11-01'
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/eks/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://eks.amazonaws.com
  description: Amazon EKS API
tags:
- name: Node Groups
  description: Operations for managing EKS managed node groups
paths:
  /clusters/{name}/node-groups:
    post:
      operationId: CreateNodegroup
      summary: Amazon EKS Create a Managed Node Group
      description: Creates a managed node group for an Amazon EKS cluster. You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster.
      tags:
      - Node Groups
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
        example: example-resource-name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNodegroupRequest'
            examples:
              CreateNodegroupRequestExample:
                summary: Default CreateNodegroup request
                x-microcks-default: true
                value:
                  nodegroupName: example-cluster-01
                  nodeRole: example-string
                  subnets:
                  - example-string
                  scalingConfig: example-string
                  instanceTypes:
                  - i-0abc123def456789
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateNodegroupResponse'
              examples:
                CreateNodegroup200Example:
                  summary: Default CreateNodegroup 200 response
                  x-microcks-default: true
                  value:
                    nodegroup: example-cluster-01
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict
        '429':
          description: Too many requests
        '500':
          description: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      operationId: ListNodegroups
      summary: Amazon EKS List Managed Node Groups
      description: Lists the managed node groups associated with the specified cluster.
      tags:
      - Node Groups
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
        example: example-resource-name
      - name: maxResults
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
        example: 1
      - name: nextToken
        in: query
        schema:
          type: string
        example: example-string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListNodegroupsResponse'
              examples:
                ListNodegroups200Example:
                  summary: Default ListNodegroups 200 response
                  x-microcks-default: true
                  value:
                    nodegroups:
                    - example-cluster-01
                    nextToken: example-string
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '404':
          description: Not found
        '429':
          description: Too many requests
        '500':
          description: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /clusters/{name}/node-groups/{nodegroupName}:
    get:
      operationId: DescribeNodegroup
      summary: Amazon EKS Describe a Managed Node Group
      description: Returns descriptive information about a managed node group.
      tags:
      - Node Groups
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
        example: example-resource-name
      - name: nodegroupName
        in: path
        required: true
        schema:
          type: string
        example: example-cluster-01
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DescribeNodegroupResponse'
              examples:
                DescribeNodegroup200Example:
                  summary: Default DescribeNodegroup 200 response
                  x-microcks-default: true
                  value:
                    nodegroup: example-cluster-01
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '404':
          description: Not found
        '429':
          description: Too many requests
        '500':
          description: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: DeleteNodegroup
      summary: Amazon EKS Delete a Managed Node Group
      description: Deletes an Amazon EKS managed node group for a cluster.
      tags:
      - Node Groups
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
        example: example-resource-name
      - name: nodegroupName
        in: path
        required: true
        schema:
          type: string
        example: example-cluster-01
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteNodegroupResponse'
              examples:
                DeleteNodegroup200Example:
                  summary: Default DeleteNodegroup 200 response
                  x-microcks-default: true
                  value:
                    nodegroup: example-cluster-01
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict
        '429':
          description: Too many requests
        '500':
          description: Internal server error
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    CreateNodegroupRequest:
      type: object
      required:
      - nodegroupName
      - nodeRole
      - subnets
      properties:
        nodegroupName:
          type: string
          example: example-cluster-01
        nodeRole:
          type: string
          example: example-string
        subnets:
          type: array
          items:
            type: string
          example:
          - example-string
        scalingConfig:
          $ref: '#/components/schemas/NodegroupScalingConfig'
        instanceTypes:
          type: array
          items:
            type: string
          example:
          - i-0abc123def456789
        amiType:
          type: string
          example: ami-0abc123def456789
        capacityType:
          type: string
          enum:
          - ON_DEMAND
          - SPOT
          example: ON_DEMAND
        labels:
          type: object
          additionalProperties:
            type: string
          example: {}
        tags:
          type: object
          additionalProperties:
            type: string
          example: {}
    DeleteNodegroupResponse:
      type: object
      properties:
        nodegroup:
          $ref: '#/components/schemas/Nodegroup'
    CreateNodegroupResponse:
      type: object
      properties:
        nodegroup:
          $ref: '#/components/schemas/Nodegroup'
    NodegroupScalingConfig:
      type: object
      properties:
        minSize:
          type: integer
          description: The minimum number of nodes.
          example: 1
        maxSize:
          type: integer
          description: The maximum number of nodes.
          example: 1
        desiredSize:
          type: integer
          description: The current number of nodes.
          example: 1
    ListNodegroupsResponse:
      type: object
      properties:
        nodegroups:
          type: array
          items:
            type: string
          example:
          - example-cluster-01
        nextToken:
          type: string
          example: example-string
    DescribeNodegroupResponse:
      type: object
      properties:
        nodegroup:
          $ref: '#/components/schemas/Nodegroup'
    Nodegroup:
      type: object
      properties:
        nodegroupName:
          type: string
          description: The name of the managed node group.
          example: example-cluster-01
        nodegroupArn:
          type: string
          description: The Amazon Resource Name (ARN) of the managed node group.
          example: arn:aws:service:us-east-1:123456789012:resource/example
        clusterName:
          type: string
          description: The name of the cluster the node group is associated with.
          example: example-cluster-01
        version:
          type: string
          description: The Kubernetes version of the managed node group.
          example: 5.0.0
        releaseVersion:
          type: string
          description: The AMI version of the managed node group.
          example: 5.0.0
        status:
          type: string
          enum:
          - CREATING
          - ACTIVE
          - UPDATING
          - DELETING
          - CREATE_FAILED
          - DELETE_FAILED
          - DEGRADED
          description: The current status of the managed node group.
          example: CREATING
        capacityType:
          type: string
          enum:
          - ON_DEMAND
          - SPOT
          description: The capacity type of the managed node group.
          example: ON_DEMAND
        scalingConfig:
          $ref: '#/components/schemas/NodegroupScalingConfig'
        instanceTypes:
          type: array
          items:
            type: string
          description: The instance types associated with the managed node group.
          example:
          - i-0abc123def456789
        subnets:
          type: array
          items:
            type: string
          description: The subnets that were specified for the Auto Scaling group.
          example:
          - example-string
        amiType:
          type: string
          enum:
          - AL2_x86_64
          - AL2_x86_64_GPU
          - AL2_ARM_64
          - BOTTLEROCKET_ARM_64
          - BOTTLEROCKET_x86_64
          description: The AMI type associated with the managed node group.
          example: AL2_x86_64
        nodeRole:
          type: string
          description: The IAM role associated with the managed node group.
          example: example-string
        labels:
          type: object
          additionalProperties:
            type: string
          description: The Kubernetes labels applied to the nodes in the node group.
          example: {}
        tags:
          type: object
          additionalProperties:
            type: string
          description: Metadata that assists with categorization and organization.
          example: {}
        createdAt:
          type: string
          format: date-time
          description: The Unix epoch timestamp at object creation.
          example: '2025-03-15T14:30:00Z'
        modifiedAt:
          type: string
          format: date-time
          description: The Unix epoch timestamp for the last modification.
          example: '2025-03-15T14:30:00Z'