Amazon EBS API

API for managing Amazon EBS volumes, snapshots, and related resources through the EC2 API.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

amazon-ebs-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon EBS Amazon Elastic Block Store (EBS) API
  description: Amazon EBS provides persistent block storage volumes for use with Amazon EC2 instances, offering consistent and low-latency performance for workloads that require persistent storage.
  version: '2016-11-15'
  contact:
    name: Kin Lane
    email: [email protected]
    url: https://aws.amazon.com/ebs/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://ec2.amazonaws.com
  description: Amazon EC2/EBS API endpoint
paths:
  /:
    get:
      operationId: describeVolumes
      summary: Amazon EBS Describe Volumes
      description: Describes the specified EBS volumes or all of your EBS volumes.
      parameters:
      - name: Action
        in: query
        required: true
        schema:
          type: string
          enum:
          - DescribeVolumes
        example: DescribeVolumes
      - name: Version
        in: query
        required: true
        schema:
          type: string
          default: '2016-11-15'
        example: 5.0.0
      - name: VolumeId
        in: query
        schema:
          type: array
          items:
            type: string
        description: The volume IDs to describe.
        example:
        - vol-0abc123def456789
      - name: MaxResults
        in: query
        schema:
          type: integer
        description: The maximum number of volumes to return.
        example: 1
      - name: NextToken
        in: query
        schema:
          type: string
        description: The token for the next set of results.
        example: example-string
      responses:
        '200':
          description: Successful response with volume details.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/DescribeVolumesResult'
              examples:
                describeVolumes200Example:
                  summary: Default describeVolumes 200 response
                  x-microcks-default: true
                  value:
                    volumeSet:
                    - vol-0abc123def456789
                    nextToken: example-string
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createVolume
      summary: Amazon EBS Create Volume
      description: Creates an EBS volume that can be attached to an instance in the same Availability Zone.
      parameters:
      - name: Action
        in: query
        required: true
        schema:
          type: string
          enum:
          - CreateVolume
        example: CreateVolume
      - name: Version
        in: query
        required: true
        schema:
          type: string
          default: '2016-11-15'
        example: 5.0.0
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - AvailabilityZone
              properties:
                AvailabilityZone:
                  type: string
                  description: The Availability Zone in which to create the volume.
                Size:
                  type: integer
                  description: The size of the volume, in GiBs.
                VolumeType:
                  type: string
                  enum:
                  - gp2
                  - gp3
                  - io1
                  - io2
                  - st1
                  - sc1
                  - standard
                  description: The volume type.
                Iops:
                  type: integer
                  description: The number of I/O operations per second (IOPS).
                Throughput:
                  type: integer
                  description: The throughput to provision for a gp3 volume.
                SnapshotId:
                  type: string
                  description: The snapshot from which to create the volume.
                Encrypted:
                  type: boolean
                  description: Specifies whether the volume should be encrypted.
                KmsKeyId:
                  type: string
                  description: The identifier of the KMS key for encryption.
            examples:
              createVolumeRequestExample:
                summary: Default createVolume request
                x-microcks-default: true
                value: {}
      responses:
        '200':
          description: Successful response with the created volume details.
          content:
            application/xml:
              schema:
                $ref: '#/components/schemas/Volume'
              examples:
                createVolume200Example:
                  summary: Default createVolume 200 response
                  x-microcks-default: true
                  value:
                    volumeId: vol-0abc123def456789
                    size: 1
                    volumeType: vol-0abc123def456789
                    state: creating
                    availabilityZone: example-string
        '400':
          description: Bad request error.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#DeleteVolume:
    post:
      operationId: deleteVolume
      summary: Amazon EBS Delete Volume
      description: Deletes the specified EBS volume. The volume must be in the available state and not attached to any instance.
      parameters:
      - name: Action
        in: query
        required: true
        schema:
          type: string
          enum:
          - DeleteVolume
        example: DeleteVolume
      - name: Version
        in: query
        required: true
        schema:
          type: string
          default: '2016-11-15'
        example: 5.0.0
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - VolumeId
              properties:
                VolumeId:
                  type: string
                  description: The ID of the volume to delete.
            examples:
              deleteVolumeRequestExample:
                summary: Default deleteVolume request
                x-microcks-default: true
                value: {}
      responses:
        '200':
          description: Successful deletion response.
        '400':
          description: Bad request error.
      tags:
      - '#DeleteVolume'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#AttachVolume:
    post:
      operationId: attachVolume
      summary: Amazon EBS Attach Volume
      description: Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.
      parameters:
      - name: Action
        in: query
        required: true
        schema:
          type: string
          enum:
          - AttachVolume
        example: AttachVolume
      - name: Version
        in: query
        required: true
        schema:
          type: string
          default: '2016-11-15'
        example: 5.0.0
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - VolumeId
              - InstanceId
              - Device
              properties:
                VolumeId:
                  type: string
                  description: The ID of the EBS volume.
                InstanceId:
                  type: string
                  description: The ID of the instance.
                Device:
                  type: string
                  description: The device name to expose the volume to the instance.
            examples:
              attachVolumeRequestExample:
                summary: Default attachVolume request
                x-microcks-default: true
                value: {}
      responses:
        '200':
          description: Successful response with attachment details.
        '400':
          description: Bad request error.
      tags:
      - '#AttachVolume'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#DetachVolume:
    post:
      operationId: detachVolume
      summary: Amazon EBS Detach Volume
      description: Detaches an EBS volume from an instance.
      parameters:
      - name: Action
        in: query
        required: true
        schema:
          type: string
          enum:
          - DetachVolume
        example: DetachVolume
      - name: Version
        in: query
        required: true
        schema:
          type: string
          default: '2016-11-15'
        example: 5.0.0
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - VolumeId
              properties:
                VolumeId:
                  type: string
                  description: The ID of the volume.
                InstanceId:
                  type: string
                  description: The ID of the instance.
                Device:
                  type: string
                  description: The device name.
                Force:
                  type: boolean
                  description: Forces detachment if the previous detachment attempt did not occur cleanly.
            examples:
              detachVolumeRequestExample:
                summary: Default detachVolume request
                x-microcks-default: true
                value: {}
      responses:
        '200':
          description: Successful response with detachment details.
        '400':
          description: Bad request error.
      tags:
      - '#DetachVolume'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#CreateSnapshot:
    post:
      operationId: createSnapshot
      summary: Amazon EBS Create Snapshot
      description: Creates a snapshot of an EBS volume and stores it in Amazon S3.
      parameters:
      - name: Action
        in: query
        required: true
        schema:
          type: string
          enum:
          - CreateSnapshot
        example: CreateSnapshot
      - name: Version
        in: query
        required: true
        schema:
          type: string
          default: '2016-11-15'
        example: 5.0.0
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - VolumeId
              properties:
                VolumeId:
                  type: string
                  description: The ID of the EBS volume.
                Description:
                  type: string
                  description: A description for the snapshot.
            examples:
              createSnapshotRequestExample:
                summary: Default createSnapshot request
                x-microcks-default: true
                value: {}
      responses:
        '200':
          description: Successful response with the snapshot details.
        '400':
          description: Bad request error.
      tags:
      - '#CreateSnapshot'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /#DescribeSnapshots:
    get:
      operationId: describeSnapshots
      summary: Amazon EBS Describe Snapshots
      description: Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.
      parameters:
      - name: Action
        in: query
        required: true
        schema:
          type: string
          enum:
          - DescribeSnapshots
        example: DescribeSnapshots
      - name: Version
        in: query
        required: true
        schema:
          type: string
          default: '2016-11-15'
        example: 5.0.0
      - name: SnapshotId
        in: query
        schema:
          type: array
          items:
            type: string
        description: The snapshot IDs to describe.
        example:
        - snap-0abc123def456789
      - name: MaxResults
        in: query
        schema:
          type: integer
        description: The maximum number of snapshots to return.
        example: 1
      - name: NextToken
        in: query
        schema:
          type: string
        description: The token for the next set of results.
        example: example-string
      responses:
        '200':
          description: Successful response with snapshot details.
        '400':
          description: Bad request error.
      tags:
      - '#DescribeSnapshots'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    DescribeVolumesResult:
      type: object
      properties:
        volumeSet:
          type: array
          items:
            $ref: '#/components/schemas/Volume'
          example:
          - vol-0abc123def456789
        nextToken:
          type: string
          example: example-string
    Volume:
      type: object
      properties:
        volumeId:
          type: string
          description: The ID of the volume.
          example: vol-0abc123def456789
        size:
          type: integer
          description: The size of the volume, in GiBs.
          example: 1
        volumeType:
          type: string
          description: The volume type.
          example: vol-0abc123def456789
        state:
          type: string
          enum:
          - creating
          - available
          - in-use
          - deleting
          - deleted
          - error
          description: The volume state.
          example: creating
        availabilityZone:
          type: string
          description: The Availability Zone for the volume.
          example: example-string
        createTime:
          type: string
          format: date-time
          description: The time stamp when volume creation was initiated.
          example: '2025-03-15T14:30:00Z'
        encrypted:
          type: boolean
          description: Indicates whether the volume is encrypted.
          example: true
        kmsKeyId:
          type: string
          description: The Amazon Resource Name (ARN) of the KMS key.
          example: example-id-1234
        iops:
          type: integer
          description: The number of I/O operations per second.
          example: 1
        throughput:
          type: integer
          description: The throughput that the volume supports, in MiB/s.
          example: 1
        snapshotId:
          type: string
          description: The snapshot from which the volume was created.
          example: snap-0abc123def456789
        attachments:
          type: array
          items:
            type: object
            properties:
              volumeId:
                type: string
              instanceId:
                type: string
              device:
                type: string
              state:
                type: string
              attachTime:
                type: string
                format: date-time
          description: Information about the volume attachments.
          example:
          - volumeId: vol-0abc123def456789
            instanceId: i-0abc123def456789
            device: example-string
        tags:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
          description: Any tags assigned to the volume.
          example:
          - key: example-string
            value: example-string
  securitySchemes:
    aws_sigv4:
      type: apiKey
      name: Authorization
      in: header
      description: AWS Signature Version 4 authentication.
tags:
- name: '#AttachVolume'
- name: '#CreateSnapshot'
- name: '#DeleteVolume'
- name: '#DescribeSnapshots'
- name: '#DetachVolume'