Amazon API Gateway REST APIs API

Operations for creating and managing REST APIs

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

amazon-api-gateway-rest-apis-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Amazon API Gateway REST API Keys REST APIs API
  description: The Amazon API Gateway REST API enables programmatic management of API Gateway resources. You can create, configure, and manage REST APIs, stages, deployments, authorizers, models, resources, methods, and integrations through this management interface.
  version: '2015-07-09'
  contact:
    name: AWS Support
    url: https://aws.amazon.com/premiumsupport/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png
servers:
- url: https://apigateway.{region}.amazonaws.com
  description: Amazon API Gateway regional endpoint
  variables:
    region:
      default: us-east-1
      description: AWS region
      enum:
      - us-east-1
      - us-east-2
      - us-west-1
      - us-west-2
      - eu-west-1
      - eu-west-2
      - eu-west-3
      - eu-central-1
      - ap-northeast-1
      - ap-northeast-2
      - ap-southeast-1
      - ap-southeast-2
      - ap-south-1
      - sa-east-1
      - ca-central-1
security:
- sigv4: []
tags:
- name: REST APIs
  description: Operations for creating and managing REST APIs
paths:
  /restapis:
    get:
      operationId: GetRestApis
      summary: Amazon API Gateway List REST APIs
      description: Lists the collection of REST APIs in your account.
      tags:
      - REST APIs
      parameters:
      - $ref: '#/components/parameters/Position'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: Successful response with list of REST APIs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApis'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
    post:
      operationId: CreateRestApi
      summary: Amazon API Gateway Create a REST API
      description: Creates a new REST API.
      tags:
      - REST APIs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRestApiRequest'
      responses:
        '201':
          description: REST API created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApi'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
  /restapis/{restapi_id}:
    get:
      operationId: GetRestApi
      summary: Amazon API Gateway Get a REST API
      description: Returns information about a specific REST API.
      tags:
      - REST APIs
      parameters:
      - $ref: '#/components/parameters/RestApiId'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApi'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    patch:
      operationId: UpdateRestApi
      summary: Amazon API Gateway Update a REST API
      description: Updates an existing REST API.
      tags:
      - REST APIs
      parameters:
      - $ref: '#/components/parameters/RestApiId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchOperations'
      responses:
        '200':
          description: REST API updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestApi'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    delete:
      operationId: DeleteRestApi
      summary: Amazon API Gateway Delete a REST API
      description: Deletes the specified REST API.
      tags:
      - REST APIs
      parameters:
      - $ref: '#/components/parameters/RestApiId'
      responses:
        '202':
          description: REST API deletion accepted
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    Limit:
      name: limit
      in: query
      description: The maximum number of returned results per page. The default value is 25 and the maximum value is 500.
      schema:
        type: integer
        minimum: 1
        maximum: 500
        default: 25
    RestApiId:
      name: restapi_id
      in: path
      required: true
      description: The identifier of the REST API.
      schema:
        type: string
    Position:
      name: position
      in: query
      description: The current pagination position in the paged result set. Used for cursor-based pagination.
      schema:
        type: string
  schemas:
    RestApis:
      type: object
      properties:
        position:
          type: string
        item:
          type: array
          items:
            $ref: '#/components/schemas/RestApi'
    RestApi:
      type: object
      properties:
        id:
          type: string
          description: The API's identifier.
        name:
          type: string
          description: The API's name.
        description:
          type: string
          description: The API's description.
        createdDate:
          type: string
          format: date-time
          description: The timestamp when the API was created.
        version:
          type: string
          description: A version identifier for the API.
        warnings:
          type: array
          items:
            type: string
          description: The warning messages reported when failonwarnings is on.
        binaryMediaTypes:
          type: array
          items:
            type: string
          description: The list of binary media types supported by the REST API.
        minimumCompressionSize:
          type: integer
          description: A nullable integer for the minimum payload size in bytes to compress.
        apiKeySource:
          type: string
          enum:
          - HEADER
          - AUTHORIZER
          description: The source of the API key for metering requests.
        endpointConfiguration:
          $ref: '#/components/schemas/EndpointConfiguration'
        policy:
          type: string
          description: A stringified JSON policy document that applies to this REST API.
        tags:
          type: object
          additionalProperties:
            type: string
          description: Tags attached to the REST API.
        disableExecuteApiEndpoint:
          type: boolean
          description: Specifies whether clients can invoke your API by using the default execute-api endpoint.
    EndpointConfiguration:
      type: object
      properties:
        types:
          type: array
          items:
            type: string
            enum:
            - REGIONAL
            - EDGE
            - PRIVATE
          description: A list of endpoint types of an API or its custom domain name.
        vpcEndpointIds:
          type: array
          items:
            type: string
          description: A list of VPC endpoint IDs of an API against which to create Route53 ALIASes.
    PatchOperation:
      type: object
      properties:
        op:
          type: string
          enum:
          - add
          - remove
          - replace
          - move
          - copy
          - test
          description: The operation type.
        path:
          type: string
          description: The op operation's target, as identified by a JSON Pointer value.
        value:
          type: string
          description: The new target value of the update operation. It is applicable for the add or replace operation.
        from:
          type: string
          description: The copy update operation's source as identified by a JSON Pointer value.
    CreateRestApiRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          description: The name of the REST API.
        description:
          type: string
          description: The description of the REST API.
        version:
          type: string
          description: A version identifier for the API.
        cloneFrom:
          type: string
          description: The ID of the REST API to clone from.
        binaryMediaTypes:
          type: array
          items:
            type: string
          description: The list of binary media types to support.
        minimumCompressionSize:
          type: integer
          description: Minimum payload compression size in bytes.
        apiKeySource:
          type: string
          enum:
          - HEADER
          - AUTHORIZER
        endpointConfiguration:
          $ref: '#/components/schemas/EndpointConfiguration'
        policy:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
        disableExecuteApiEndpoint:
          type: boolean
    PatchOperations:
      type: object
      properties:
        patchOperations:
          type: array
          items:
            $ref: '#/components/schemas/PatchOperation'
    Error:
      type: object
      properties:
        message:
          type: string
          description: A human-readable error message.
        code:
          type: string
          description: The error code.
  responses:
    TooManyRequests:
      description: The request rate has exceeded the allowed limit.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The request lacks valid authentication credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request is invalid or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The specified resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalError:
      description: An internal server error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Conflict:
      description: The request conflicts with the current state of the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    sigv4:
      type: apiKey
      name: Authorization
      in: header
      description: AWS Signature Version 4 authentication