openapi: 3.1.0 info: title: Amazon API Gateway REST API Keys Models 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: Models description: Operations for managing API data models paths: /restapis/{restapi_id}/models: get: operationId: GetModels summary: Amazon API Gateway List Models description: Returns information about all models defined for a REST API. tags: - Models parameters: - $ref: '#/components/parameters/RestApiId' - $ref: '#/components/parameters/Position' - $ref: '#/components/parameters/Limit' responses: '200': description: Successful response with list of models content: application/json: schema: $ref: '#/components/schemas/Models' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' post: operationId: CreateModel summary: Amazon API Gateway Create a Model description: Adds a new Model resource to an existing REST API. tags: - Models parameters: - $ref: '#/components/parameters/RestApiId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateModelRequest' responses: '201': description: Model created successfully content: application/json: schema: $ref: '#/components/schemas/Model' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' /restapis/{restapi_id}/models/{model_name}: get: operationId: GetModel summary: Amazon API Gateway Get a Model description: Returns information about a specific model. tags: - Models parameters: - $ref: '#/components/parameters/RestApiId' - $ref: '#/components/parameters/ModelName' - name: flatten in: query description: Resolve all external model references and return a flattened schema. schema: type: boolean responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Model' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' patch: operationId: UpdateModel summary: Amazon API Gateway Update a Model description: Changes an existing model. tags: - Models parameters: - $ref: '#/components/parameters/RestApiId' - $ref: '#/components/parameters/ModelName' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchOperations' responses: '200': description: Model updated successfully content: application/json: schema: $ref: '#/components/schemas/Model' '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' delete: operationId: DeleteModel summary: Amazon API Gateway Delete a Model description: Deletes the specified model. tags: - Models parameters: - $ref: '#/components/parameters/RestApiId' - $ref: '#/components/parameters/ModelName' responses: '202': description: Model deletion accepted '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/TooManyRequests' components: schemas: Model: type: object properties: id: type: string description: The identifier of the model. name: type: string description: The name of the model. description: type: string description: The description of the model. schema: type: string description: The schema for the model. For application/json models, this should be JSON schema draft 4 model. contentType: type: string description: The content type for the model. CreateModelRequest: type: object required: - name - contentType properties: name: type: string description: type: string schema: type: string contentType: type: string Models: type: object properties: position: type: string item: type: array items: $ref: '#/components/schemas/Model' 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. 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. 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 ModelName: name: model_name in: path required: true description: The name of the model. schema: type: string 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 responses: TooManyRequests: description: The request rate has exceeded the allowed limit. 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' 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