# UsagePlanProps

Extends: UsagePlanProps
Used as props by: UsagePlan

- Source: [`aws-apigateway/lib/usage-plan.ts`](https://github.com/aws/aws-cdk/blob/v2.277.0/packages/aws-cdk-lib/aws-apigateway/lib/usage-plan.ts#L116)

## Example

```ts
declare const integration: apigateway.LambdaIntegration;

const api = new apigateway.RestApi(this, 'hello-api');

const v1 = api.root.addResource('v1');
const echo = v1.addResource('echo');
const echoMethod = echo.addMethod('GET', integration, { apiKeyRequired: true });

const plan = api.addUsagePlan('UsagePlan', {
  name: 'Easy',
  throttle: {
    rateLimit: 10,
    burstLimit: 2
  }
});

const key = api.addApiKey('ApiKey');
plan.addApiKey(key);
```

## Properties

- `apiStages`: [UsagePlanPerApiStage](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.UsagePlanPerApiStage.html)[] = none — API Stages to be associated with the usage plan.

- `description`: string = none — Represents usage plan purpose.

- `name`: string = none — Name for this usage plan.

- `quota`: [QuotaSettings](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.QuotaSettings.html) = none — Number of requests clients can make in a given time period.

- `throttle`: [ThrottleSettings](/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.ThrottleSettings.html) = none — Overall throttle settings for the API.
