Amazon API Gateway REST API Reference

integration:update

Updates settings of an integration.

HTTP Request

PATCH /restapis/<restapi_id>/resources/<resource_id>/methods/<http_method>/integration

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", or "replace". 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. 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
    • Not supported.

Response

Integration

Remarks

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

Updateable property path op = add op = replace op = remove
/cacheKeyParameters Supported Supported Supported
/cacheNamespace Not supported Supported Not supported
/contentHandling Not supported Supported Not supported
/credentials Not supported Supported Not supported
/httpMethod Not supported Supported, not if type = MOCK Not supported
/passthroughBehavior Not supported Supported Not supported
/requestParameters Supported Supported Supported
/requestTemplates Supported Supported Supported
/type Not supported Not supported Not supported
/uri Not supported Supported, not if type = MOCK Not supported

Example: Remove, add, and replace a request template

Request

This example request shows how to remove, add, and replace a property of an Integration resource. It illustrates that the patch operations are executed in the order specified in the input.

PATCH /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration HTTP/1.1
Content-Type: application/json
Host: apigateway.us-east-1.amazonaws.com
X-Amz-Date: 20160614T234104Z
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" : "remove",
    "path" : "/requestTemplates/application~1xml"
  },
  {
    "op" : "add",
    "path" : "/requestTemplates/application~1xml",
    "value" : "
   
    3
   "
  },
  {
    "op" : "replace",
    "path" : "/requestTemplates/application~1xml",
    "value" : "
   
    3
   "
  } ]
}
Response

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

{
  "_links": {
    "curies": [
      {
        "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html&quot;,
        "name": "integration",
        "templated": true
      },
      {
        "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html&quot;,
        "name": "integrationresponse",
        "templated": true
      }
    ],
    "self": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
    },
    "integration:delete": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
    },
    "integration:responses": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
      "name": "200",
      "title": "200"
    },
    "integration:update": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration"
    },
    "integrationresponse:put": {
      "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/{status_code}",
      "templated": true
    }
  },
  "cacheKeyParameters": [],
  "cacheNamespace": "3kzxbg5sa2",
  "credentials": "arn:aws:iam::123456789012:role/apigAwsProxyRole",
  "httpMethod": "POST",
  "passthroughBehavior": "WHEN_NO_MATCH",
  "requestParameters": {
    "integration.request.header.Content-Type": "'application/x-amz-json-1.1'"
  },
  "requestTemplates": {
    "application/xml": "
   
    3
   ",
    "application/json": "{\n}"
  },
  "type": "AWS",
  "uri": "arn:aws:apigateway:us-east-1:kinesis:action/ListStreams",
  "_embedded": {
    "integration:responses": {
      "_links": {
        "self": {
          "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200",
          "name": "200",
          "title": "200"
        },
        "integrationresponse:delete": {
          "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
        },
        "integrationresponse:update": {
          "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/integration/responses/200"
        }
      },
      "responseParameters": {
        "method.response.header.Content-Type": "'application/xml'"
      },
      "responseTemplates": {
        "application/json": "$util.urlDecode(\"%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C/name%3E%3C/stream%3E#end%3C/kinesisStreams%3E\")\n"
      },
      "statusCode": "200"
    }
  }
}

See Also

AWS CLI