package awsapigateway // RateLimitedApiKey properties. // // Example: // var api restApi // // // key := apigateway.NewRateLimitedApiKey(this, jsii.String("rate-limited-api-key"), &RateLimitedApiKeyProps{ // CustomerId: jsii.String("hello-customer"), // Stages: []iStage{ // api.DeploymentStage, // }, // Quota: &QuotaSettings{ // Limit: jsii.Number(10000), // Period: apigateway.Period_MONTH, // }, // }) // type RateLimitedApiKeyProps struct { // Adds a CORS preflight OPTIONS method to this resource and all child resources. // // You can add CORS at the resource-level using `addCorsPreflight`. DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // A name for the API key. // // If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name. ApiKeyName *string `field:"optional" json:"apiKeyName" yaml:"apiKeyName"` // A description of the purpose of the API key. Description *string `field:"optional" json:"description" yaml:"description"` // The value of the API key. // // Must be at least 20 characters long. Value *string `field:"optional" json:"value" yaml:"value"` // An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace. CustomerId *string `field:"optional" json:"customerId" yaml:"customerId"` // Indicates whether the API key can be used by clients. Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"` // Specifies whether the key identifier is distinct from the created API key value. GenerateDistinctId *bool `field:"optional" json:"generateDistinctId" yaml:"generateDistinctId"` // A list of resources this api key is associated with. // Deprecated: - use `stages` instead. Resources *[]IRestApi `field:"optional" json:"resources" yaml:"resources"` // A list of Stages this api key is associated with. Stages *[]IStage `field:"optional" json:"stages" yaml:"stages"` // API Stages to be associated with the RateLimitedApiKey. ApiStages *[]*UsagePlanPerApiStage `field:"optional" json:"apiStages" yaml:"apiStages"` // Number of requests clients can make in a given time period. Quota *QuotaSettings `field:"optional" json:"quota" yaml:"quota"` // Overall throttle settings for the API. Throttle *ThrottleSettings `field:"optional" json:"throttle" yaml:"throttle"` }