Amazon API Gateway REST API Reference

usageplan:update

Updates a specified usage plan.

HTTP Request

PATCH /usageplans/<usageplanId>

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

UsagePlan

Remarks

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

path op:add op:replace op:remove op:copy
/apiStages Supported Not supported Supported Not supported
/description Not supported Supported Not supported Not supported
/name Not supported Supported Not supported Not supported
/productCode Supported Supported Supported Not supported
/quota Not supported Not supported Supported Not supported
/quota/limit Supported Supported Not supported Not supported
/quota/offset Supported Supported Not supported Not supported
/quota/period Supported Supported Not supported Not supported
/throttle Not supported Not supported Supported Not supported
/throttle/burstLimit Supported Supported Not supported Not supported
/throttle/rateLimit Supported Supported Not supported Not supported

To update /apiStages, use the apiId:stageName format. If the quota period is set to DAY, the quota offset must be zero (0). If the throttling limits are not set in a usage plan, the lower of the account- or stage-level throttling limits will be applied. If the quota limit is not set, it is effectively unlimited.

Example

Request

The following example updates a specified usage plan by adding an API stage (o81lxisefl:Stage_A) and replacing the name, description, quota period, quota limit and quota offset.

PATCH /usageplans/w0mvrr HTTP/1.1
Content-Type: application/json
Host: apigateway.us-east-1.amazonaws.com
X-Amz-Date: 20160805T200901Z
Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160805/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sigv4_hash}

{
    "patchOperations" : [ {
       "op": "add",
       "path": "/apiStages",
       "value": "o81lxisefl:Stage_A"
    },
    {
       "op": "replace",
       "path": "/name",
       "value": "new-plan-name"
    },
    {
       "op": "replace",
       "path": "/description",
       "value": "new-plan-description"
    },
    {
        "op": "replace",
        "path": "/quota/period",
        "value": "MONTH"
    },
    {
        "op": "replace",
        "path": "/quota/limit",
        "value": "1300"
    },
    {
        "op": "replace",
        "path": "/quota/offset",
        "value": "5"
    }]
}
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-usage-{rel}.html&quot;,
        "name": "usage",
        "templated": true
      },
      {
        "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-usageplan-{rel}.html&quot;,
        "name": "usageplan",
        "templated": true
      },
      {
        "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-usageplankey-{rel}.html&quot;,
        "name": "usageplankey",
        "templated": true
      }
    ],
    "self": {
      "href": "/usageplans/w0mvrr"
    },
    "usage:get": {
      "href": "/usageplans/w0mvrr/usage?startDate=2016-07-06&endDate=2016-08-05"
    },
    "usageplan:delete": {
      "href": "/usageplans/w0mvrr"
    },
    "usageplan:update": {
      "href": "/usageplans/w0mvrr"
    },
    "usageplan:usageplankeys": {
      "href": "/usageplans/w0mvrr/keys"
    },
    "usageplankey:create": {
      "href": "/usageplans/w0mvrr/keys"
    }
  },
  "apiStages": {
    "stage": "Stage_A",
    "apiId": "o81lxisefl"
  },
  "description": "new-plan-description",
  "id": "w0mvrr",
  "name": "new-plan-name",
  "quota": {
    "period": "MONTH",
    "offset": 5,
    "limit": 1300
  },
  "throttle": {
    "rateLimit": 100,
    "burstLimit": 200
  }
}

See Also

Create and Use Usage Plans