import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class CanarySetting { DeploymentId ? : Value < string > ; PercentTraffic ? : Value < number > ; StageVariableOverrides ? : { [ key ] : Value < string > ; } ; UseStageCache ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AccessLogSetting { DestinationArn ? : Value < string > ; Format ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MethodSetting { CacheDataEncrypted ? : Value < boolean > ; CacheTtlInSeconds ? : Value < number > ; CachingEnabled ? : Value < boolean > ; DataTraceEnabled ? : Value < boolean > ; HttpMethod ? : Value < string > ; LoggingLevel ? : Value < string > ; MetricsEnabled ? : Value < boolean > ; ResourcePath ? : Value < string > ; ThrottlingBurstLimit ? : Value < number > ; ThrottlingRateLimit ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface StageProperties { AccessLogSetting ? : AccessLogSetting ; CacheClusterEnabled ? : Value < boolean > ; CacheClusterSize ? : Value < string > ; CanarySetting ? : CanarySetting ; ClientCertificateId ? : Value < string > ; DeploymentId ? : Value < string > ; Description ? : Value < string > ; DocumentationVersion ? : Value < string > ; MethodSettings ? : List < MethodSetting > ; RestApiId : Value < string > ; StageName ? : Value < string > ; Tags ? : List < ResourceTag > ; TracingEnabled ? : Value < boolean > ; Variables ? : { [ key ] : Value < string > ; } ; } export default class Stage extends ResourceBase < StageProperties > { static CanarySetting = CanarySetting ; static AccessLogSetting = AccessLogSetting ; static MethodSetting = MethodSetting ; constructor ( properties ) { super ( 'AWS::ApiGateway::Stage' , properties ) ; } }