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, 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".

Response

Integration

Remarks

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

path op:add op:replace op:remove op:copy
/cacheKeyParameters Supported Supported Supported Not supported
/cacheNamespace Not supported Supported Not supported Not supported
/connectionId Not supported Supported Not supported Not supported
/connectionType Not supported Supported Not supported Not supported
/contentHandling Not supported Supported Not supported Not supported
/credentials Not supported Supported Not supported Not supported
/httpMethod Not supported Supported, not if type = MOCK Not supported Not supported
/passthroughBehavior Not supported Supported Not supported Not supported
/requestParameters Supported Supported Supported Not supported
/requestTemplates Supported Supported Supported Not supported
/timeoutInMillis Not supported Supported Not supported Not supported
/type Not supported Not supported Not supported Not supported
/uri Not supported Supported, not if type = MOCK Not supported Not supported

Example 1: Change integration timeout

The following cURL command shows how to reset the integration timeout to 5 seconds.

curl -X PATCH https://apigateway.{region}.amazonaws.com/{stage}/restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration \
   -H 'authorization: AWS4-HMAC-SHA256 Credential=...' \
   -H 'content-type: application/json' \
   -H 'x-amz-date: 20170921T000025Z' \
   -d '{ "patchOperations": [{ "path": "/timeoutInMillis": "op":"replace", "value": 5000 }] }'

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