import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class ApiStage { ApiId ? : Value < string > ; Stage ? : Value < string > ; Throttle ? : { [ key ] : ThrottleSettings ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ThrottleSettings { BurstLimit ? : Value < number > ; RateLimit ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class QuotaSettings { Limit ? : Value < number > ; Offset ? : Value < number > ; Period ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface UsagePlanProperties { ApiStages ? : List < ApiStage > ; Description ? : Value < string > ; Quota ? : QuotaSettings ; Tags ? : List < ResourceTag > ; Throttle ? : ThrottleSettings ; UsagePlanName ? : Value < string > ; } export default class UsagePlan extends ResourceBase < UsagePlanProperties > { static ApiStage = ApiStage ; static ThrottleSettings = ThrottleSettings ; static QuotaSettings = QuotaSettings ; constructor ( properties ? ) { super ( 'AWS::ApiGateway::UsagePlan' , properties || { } ) ; } }