Amazon API Gateway REST API Reference


Updates properties of a Model resource.

HTTP Request

PATCH /restapis/<restapi_id>/models/<model_name>

Request Body

  "patchOperations" : [ {
    "op" : "String",
    "path" : "String",
    "value" : "String",
    "from" : "String"
  } ]

Request Body Fields

The request accepts the following fields in JSON format.

  • patchOperations
  • A list of update operations to be applied to the specified resource and in the order specified in this list.

    • op
    • An update operation to be performed with this PATCH request. The valid value can be add, remove, replace or copy. Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message.

    • path
    • The op operation's target, as identified by a JSON Pointer value that references a location within the targeted resource. For example, if the target resource has an updateable property of {"name":"value"}, the path for this property is /name. If the name property value is a JSON object (e.g., {"name": {"child/name": "child-value"}}), the path for the child/name property will be /name/child~1name. Any slash ("/") character appearing in path names must be escaped with "~1", as shown in the example above. Each op operation can have only one path associated with it.

    • value
    • The new target value of the update operation. It is applicable for the add or replace operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{"a": ...}'. In a Windows shell, see Using JSON for Parameters.

    • from
    • The copy update operation's source as identified by a JSON-Pointer value referencing the location within the targeted resource to copy the value from. For example, to promote a canary deployment, you copy the canary deployment ID to the affiliated deployment ID by calling a PATCH request on a Stage resource with "op":"copy", "from":"/canarySettings/deploymentId" and "path":"/deploymentId".




The following table shows the supported and unsupported op operations for updateable Model properties of the specified path values.

path op:add op:replace op:remove op:copy
/description Not supported Supported Not supported Not supported
/schema Not supported Supported Not supported Not supported

Example: Update the schema definition of a model


The original schema definition contains a "*/" character in the op.description value. This can be interpreted as the comment block end marker in some generated SDK. The following update request changes the "+-*/" characters to "+, -, * or /" to avoid such a confusion.

PATCH /restapis/uojnr9hd57/models/output HTTP/1.1
Content-Type: application/json
X-Amz-Date: 20160614T004253Z
Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160614/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sig4_hash}

  "patchOperations" : [ {
    "op" : "replace",
    "path" : "/schema",
    "value" : "{\n\t\"title\": \"Calc output\",\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"a\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"b\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"op\": {\n\t\t\t\"description\": \"operation of +, -, * or /\",\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"c\": {\n\t\t    \"type\": \"number\"\n\t\t}\n\t},\n\t\"required\": [\"a\", \"b\", \"op\"]\n}\n"
  } ]

The successful response returns a 200 OK status code and a payload similar to the following:

  "_links": {
    "curies": {
      "href": "{rel}.html&quot;,
      "name": "model",
      "templated": true
    "self": {
      "href": "/restapis/uojnr9hd57/models/output?flatten=false"
    "model:create": {
      "href": "/restapis/uojnr9hd57/models"
    "model:delete": {
      "href": "/restapis/uojnr9hd57/models/output"
    "model:generate-template": {
      "href": "/restapis/uojnr9hd57/models/output/default_template"
    "model:update": {
      "href": "/restapis/uojnr9hd57/models/output"
  "contentType": "application/json",
  "id": "hkhn0z",
  "name": "output",
  "schema": "{\n\t\"title\": \"Calc output\",\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"a\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"b\": {\n\t\t\t\"type\": \"number\"\n\t\t},\n\t\t\"op\": {\n\t\t\t\"description\": \"operation of +, -, * or /\",\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"c\": {\n\t\t    \"type\": \"number\"\n\t\t}\n\t},\n\t\"required\": [\"a\", \"b\", \"op\"]\n}\n"

See Also