create_usage_plan

APIGateway.Client.create_usage_plan(**kwargs)

Creates a usage plan with the throttle and quota limits, as well as the associated API stages, specified in the payload.

See also: AWS API Documentation

Request Syntax

response = client.create_usage_plan(
    name='string',
    description='string',
    apiStages=[
        {
            'apiId': 'string',
            'stage': 'string',
            'throttle': {
                'string': {
                    'burstLimit': 123,
                    'rateLimit': 123.0
                }
            }
        },
    ],
    throttle={
        'burstLimit': 123,
        'rateLimit': 123.0
    },
    quota={
        'limit': 123,
        'offset': 123,
        'period': 'DAY'|'WEEK'|'MONTH'
    },
    tags={
        'string': 'string'
    }
)
Parameters
  • name (string) --

    [REQUIRED]

    The name of the usage plan.

  • description (string) -- The description of the usage plan.
  • apiStages (list) --

    The associated API stages of the usage plan.

    • (dict) --

      API stage name of the associated API stage in a usage plan.

      • apiId (string) --

        API Id of the associated API stage in a usage plan.

      • stage (string) --

        API stage name of the associated API stage in a usage plan.

      • throttle (dict) --

        Map containing method level throttling information for API stage in a usage plan.

        • (string) --
          • (dict) --

            The API request rate limits.

            • burstLimit (integer) --

              The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.

            • rateLimit (float) --

              The API target request rate limit.

  • throttle (dict) --

    The throttling limits of the usage plan.

    • burstLimit (integer) --

      The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.

    • rateLimit (float) --

      The API target request rate limit.

  • quota (dict) --

    The quota of the usage plan.

    • limit (integer) --

      The target maximum number of requests that can be made in a given time period.

    • offset (integer) --

      The number of requests subtracted from the given limit in the initial time period.

    • period (string) --

      The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".

  • tags (dict) --

    The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with aws: . The tag value can be up to 256 characters.

    • (string) --
      • (string) --
Return type

dict

Returns

Response Syntax

{
    'id': 'string',
    'name': 'string',
    'description': 'string',
    'apiStages': [
        {
            'apiId': 'string',
            'stage': 'string',
            'throttle': {
                'string': {
                    'burstLimit': 123,
                    'rateLimit': 123.0
                }
            }
        },
    ],
    'throttle': {
        'burstLimit': 123,
        'rateLimit': 123.0
    },
    'quota': {
        'limit': 123,
        'offset': 123,
        'period': 'DAY'|'WEEK'|'MONTH'
    },
    'productCode': 'string',
    'tags': {
        'string': 'string'
    }
}

Response Structure

  • (dict) --

    Represents a usage plan used to specify who can assess associated API stages. Optionally, target request rate and quota limits can be set. In some cases clients can exceed the targets that you set. Don’t rely on usage plans to control costs. Consider using Amazon Web Services Budgets to monitor costs and WAF to manage API requests.

    • id (string) --

      The identifier of a UsagePlan resource.

    • name (string) --

      The name of a usage plan.

    • description (string) --

      The description of a usage plan.

    • apiStages (list) --

      The associated API stages of a usage plan.

      • (dict) --

        API stage name of the associated API stage in a usage plan.

        • apiId (string) --

          API Id of the associated API stage in a usage plan.

        • stage (string) --

          API stage name of the associated API stage in a usage plan.

        • throttle (dict) --

          Map containing method level throttling information for API stage in a usage plan.

          • (string) --

            • (dict) --

              The API request rate limits.

              • burstLimit (integer) --

                The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.

              • rateLimit (float) --

                The API target request rate limit.

    • throttle (dict) --

      A map containing method level throttling information for API stage in a usage plan.

      • burstLimit (integer) --

        The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.

      • rateLimit (float) --

        The API target request rate limit.

    • quota (dict) --

      The target maximum number of permitted requests per a given unit time interval.

      • limit (integer) --

        The target maximum number of requests that can be made in a given time period.

      • offset (integer) --

        The number of requests subtracted from the given limit in the initial time period.

      • period (string) --

        The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH".

    • productCode (string) --

      The AWS Markeplace product identifier to associate with the usage plan as a SaaS product on AWS Marketplace.

    • tags (dict) --

      The collection of tags. Each tag element is associated with a given resource.

      • (string) --
        • (string) --

Exceptions

  • APIGateway.Client.exceptions.BadRequestException
  • APIGateway.Client.exceptions.ConflictException
  • APIGateway.Client.exceptions.LimitExceededException
  • APIGateway.Client.exceptions.NotFoundException
  • APIGateway.Client.exceptions.UnauthorizedException
  • APIGateway.Client.exceptions.TooManyRequestsException