awsapigateway

package
v2.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2022 License: Apache-2.0 Imports: 17 Imported by: 30

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AccessLogField_ContextAccountId

func AccessLogField_ContextAccountId() *string

The API owner's AWS account ID.

func AccessLogField_ContextApiId

func AccessLogField_ContextApiId() *string

The identifier API Gateway assigns to your API.

func AccessLogField_ContextAuthorizer

func AccessLogField_ContextAuthorizer(property *string) *string

The stringified value of the specified key-value pair of the `context` map returned from an API Gateway Lambda authorizer function. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

func AccessLogField_ContextAuthorizerClaims

func AccessLogField_ContextAuthorizerClaims(property *string) *string

A property of the claims returned from the Amazon Cognito user pool after the method caller is successfully authenticated. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html

func AccessLogField_ContextAuthorizerIntegrationLatency

func AccessLogField_ContextAuthorizerIntegrationLatency() *string

The authorizer latency in ms.

func AccessLogField_ContextAuthorizerPrincipalId

func AccessLogField_ContextAuthorizerPrincipalId() *string

The principal user identification associated with the token sent by the client and returned from an API Gateway Lambda authorizer (formerly known as a custom authorizer). See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

func AccessLogField_ContextAwsEndpointRequestId

func AccessLogField_ContextAwsEndpointRequestId() *string

The AWS endpoint's request ID.

func AccessLogField_ContextDomainName

func AccessLogField_ContextDomainName() *string

The full domain name used to invoke the API.

This should be the same as the incoming `Host` header.

func AccessLogField_ContextDomainPrefix

func AccessLogField_ContextDomainPrefix() *string

The first label of the `$context.domainName`. This is often used as a caller/customer identifier.

func AccessLogField_ContextErrorMessage

func AccessLogField_ContextErrorMessage() *string

A string containing an API Gateway error message.

func AccessLogField_ContextErrorMessageString

func AccessLogField_ContextErrorMessageString() *string

The quoted value of $context.error.message, namely "$context.error.message".

func AccessLogField_ContextErrorResponseType

func AccessLogField_ContextErrorResponseType() *string

A type of GatewayResponse.

This variable can only be used for simple variable substitution in a GatewayResponse body-mapping template, which is not processed by the Velocity Template Language engine, and in access logging. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html

func AccessLogField_ContextErrorValidationErrorString

func AccessLogField_ContextErrorValidationErrorString() *string

A string containing a detailed validation error message.

func AccessLogField_ContextExtendedRequestId

func AccessLogField_ContextExtendedRequestId() *string

The extended ID that API Gateway assigns to the API request, which contains more useful information for debugging/troubleshooting.

func AccessLogField_ContextHttpMethod

func AccessLogField_ContextHttpMethod() *string

The HTTP method used.

Valid values include: `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, and `PUT`.

func AccessLogField_ContextIdentityAccountId

func AccessLogField_ContextIdentityAccountId() *string

The AWS account ID associated with the request.

func AccessLogField_ContextIdentityApiKey

func AccessLogField_ContextIdentityApiKey() *string

For API methods that require an API key, this variable is the API key associated with the method request.

For methods that don't require an API key, this variable is See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html

func AccessLogField_ContextIdentityApiKeyId

func AccessLogField_ContextIdentityApiKeyId() *string

The API key ID associated with an API request that requires an API key.

func AccessLogField_ContextIdentityCaller

func AccessLogField_ContextIdentityCaller() *string

The principal identifier of the caller making the request.

func AccessLogField_ContextIdentityCognitoAuthenticationProvider

func AccessLogField_ContextIdentityCognitoAuthenticationProvider() *string

The Amazon Cognito authentication provider used by the caller making the request.

Available only if the request was signed with Amazon Cognito credentials. See: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html

func AccessLogField_ContextIdentityCognitoAuthenticationType

func AccessLogField_ContextIdentityCognitoAuthenticationType() *string

The Amazon Cognito authentication type of the caller making the request.

Available only if the request was signed with Amazon Cognito credentials.

func AccessLogField_ContextIdentityCognitoIdentityId

func AccessLogField_ContextIdentityCognitoIdentityId() *string

The Amazon Cognito identity ID of the caller making the request.

Available only if the request was signed with Amazon Cognito credentials.

func AccessLogField_ContextIdentityCognitoIdentityPoolId

func AccessLogField_ContextIdentityCognitoIdentityPoolId() *string

The Amazon Cognito identity pool ID of the caller making the request.

Available only if the request was signed with Amazon Cognito credentials.

func AccessLogField_ContextIdentityPrincipalOrgId

func AccessLogField_ContextIdentityPrincipalOrgId() *string

The AWS organization ID.

func AccessLogField_ContextIdentitySourceIp

func AccessLogField_ContextIdentitySourceIp() *string

The source IP address of the TCP connection making the request to API Gateway.

Warning: You should not trust this value if there is any chance that the `X-Forwarded-For` header could be forged.

func AccessLogField_ContextIdentityUser

func AccessLogField_ContextIdentityUser() *string

The principal identifier of the user making the request.

Used in Lambda authorizers. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html

func AccessLogField_ContextIdentityUserAgent

func AccessLogField_ContextIdentityUserAgent() *string

The User-Agent header of the API caller.

func AccessLogField_ContextIdentityUserArn

func AccessLogField_ContextIdentityUserArn() *string

The Amazon Resource Name (ARN) of the effective user identified after authentication. See: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html

func AccessLogField_ContextIntegrationLatency

func AccessLogField_ContextIntegrationLatency() *string

The integration latency in ms.

func AccessLogField_ContextIntegrationStatus

func AccessLogField_ContextIntegrationStatus() *string

For Lambda proxy integration, this parameter represents the status code returned from AWS Lambda, not from the backend Lambda function.

func AccessLogField_ContextPath

func AccessLogField_ContextPath() *string

The request path.

For example, for a non-proxy request URL of https://{rest-api-id.execute-api.{region}.amazonaws.com/{stage}/root/child, this value is /{stage}/root/child.

func AccessLogField_ContextProtocol

func AccessLogField_ContextProtocol() *string

The request protocol, for example, HTTP/1.1.

func AccessLogField_ContextRequestId

func AccessLogField_ContextRequestId() *string

The ID that API Gateway assigns to the API request.

func AccessLogField_ContextRequestOverrideHeader

func AccessLogField_ContextRequestOverrideHeader(headerName *string) *string

The request header override.

If this parameter is defined, it contains the headers to be used instead of the HTTP Headers that are defined in the Integration Request pane. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-override-request-response-parameters.html

func AccessLogField_ContextRequestOverridePath

func AccessLogField_ContextRequestOverridePath(pathName *string) *string

The request path override.

If this parameter is defined, it contains the request path to be used instead of the URL Path Parameters that are defined in the Integration Request pane. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-override-request-response-parameters.html

func AccessLogField_ContextRequestOverrideQuerystring

func AccessLogField_ContextRequestOverrideQuerystring(querystringName *string) *string

The request query string override.

If this parameter is defined, it contains the request query strings to be used instead of the URL Query String Parameters that are defined in the Integration Request pane.

func AccessLogField_ContextRequestTime

func AccessLogField_ContextRequestTime() *string

The CLF-formatted request time (dd/MMM/yyyy:HH:mm:ss +-hhmm).

func AccessLogField_ContextRequestTimeEpoch

func AccessLogField_ContextRequestTimeEpoch() *string

The Epoch-formatted request time.

func AccessLogField_ContextResourceId

func AccessLogField_ContextResourceId() *string

The identifier that API Gateway assigns to your resource.

func AccessLogField_ContextResourcePath

func AccessLogField_ContextResourcePath() *string

The path to your resource.

For example, for the non-proxy request URI of `https://{rest-api-id.execute-api.{region}.amazonaws.com/{stage}/root/child`, The $context.resourcePath value is `/root/child`. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-step-by-step.html

func AccessLogField_ContextResponseLatency

func AccessLogField_ContextResponseLatency() *string

The response latency in ms.

func AccessLogField_ContextResponseLength

func AccessLogField_ContextResponseLength() *string

The response payload length.

func AccessLogField_ContextResponseOverrideHeader

func AccessLogField_ContextResponseOverrideHeader(headerName *string) *string

The response header override.

If this parameter is defined, it contains the header to be returned instead of the Response header that is defined as the Default mapping in the Integration Response pane. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-override-request-response-parameters.html

func AccessLogField_ContextResponseOverrideStatus

func AccessLogField_ContextResponseOverrideStatus() *string

The response status code override.

If this parameter is defined, it contains the status code to be returned instead of the Method response status that is defined as the Default mapping in the Integration Response pane. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-override-request-response-parameters.html

func AccessLogField_ContextStage

func AccessLogField_ContextStage() *string

The deployment stage of the API request (for example, `Beta` or `Prod`).

func AccessLogField_ContextStatus

func AccessLogField_ContextStatus() *string

The method response status.

func AccessLogField_ContextWafResponseCode

func AccessLogField_ContextWafResponseCode() *string

The response received from AWS WAF: `WAF_ALLOW` or `WAF_BLOCK`.

Will not be set if the stage is not associated with a web ACL. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-aws-waf.html

func AccessLogField_ContextWebaclArn

func AccessLogField_ContextWebaclArn() *string

The complete ARN of the web ACL that is used to decide whether to allow or block the request.

Will not be set if the stage is not associated with a web ACL. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-aws-waf.html

func AccessLogField_ContextXrayTraceId

func AccessLogField_ContextXrayTraceId() *string

The trace ID for the X-Ray trace. See: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-enabling-xray.html

func ApiKey_IsConstruct

func ApiKey_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func ApiKey_IsResource

func ApiKey_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Authorizer_IsAuthorizer

func Authorizer_IsAuthorizer(x interface{}) *bool

Return whether the given object is an Authorizer.

func Authorizer_IsConstruct

func Authorizer_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Authorizer_IsResource

func Authorizer_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func BasePathMapping_IsConstruct

func BasePathMapping_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func BasePathMapping_IsResource

func BasePathMapping_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func CfnAccount_CFN_RESOURCE_TYPE_NAME

func CfnAccount_CFN_RESOURCE_TYPE_NAME() *string

func CfnAccount_IsCfnElement

func CfnAccount_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnAccount_IsCfnResource

func CfnAccount_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnAccount_IsConstruct

func CfnAccount_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnApiKey_CFN_RESOURCE_TYPE_NAME

func CfnApiKey_CFN_RESOURCE_TYPE_NAME() *string

func CfnApiKey_IsCfnElement

func CfnApiKey_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnApiKey_IsCfnResource

func CfnApiKey_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnApiKey_IsConstruct

func CfnApiKey_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnAuthorizer_CFN_RESOURCE_TYPE_NAME

func CfnAuthorizer_CFN_RESOURCE_TYPE_NAME() *string

func CfnAuthorizer_IsCfnElement

func CfnAuthorizer_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnAuthorizer_IsCfnResource

func CfnAuthorizer_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnAuthorizer_IsConstruct

func CfnAuthorizer_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnBasePathMapping_CFN_RESOURCE_TYPE_NAME

func CfnBasePathMapping_CFN_RESOURCE_TYPE_NAME() *string

func CfnBasePathMapping_IsCfnElement

func CfnBasePathMapping_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnBasePathMapping_IsCfnResource

func CfnBasePathMapping_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnBasePathMapping_IsConstruct

func CfnBasePathMapping_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnClientCertificate_CFN_RESOURCE_TYPE_NAME

func CfnClientCertificate_CFN_RESOURCE_TYPE_NAME() *string

func CfnClientCertificate_IsCfnElement

func CfnClientCertificate_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnClientCertificate_IsCfnResource

func CfnClientCertificate_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnClientCertificate_IsConstruct

func CfnClientCertificate_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnDeployment_CFN_RESOURCE_TYPE_NAME

func CfnDeployment_CFN_RESOURCE_TYPE_NAME() *string

func CfnDeployment_IsCfnElement

func CfnDeployment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDeployment_IsCfnResource

func CfnDeployment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnDeployment_IsConstruct

func CfnDeployment_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnDocumentationPart_CFN_RESOURCE_TYPE_NAME

func CfnDocumentationPart_CFN_RESOURCE_TYPE_NAME() *string

func CfnDocumentationPart_IsCfnElement

func CfnDocumentationPart_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDocumentationPart_IsCfnResource

func CfnDocumentationPart_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnDocumentationPart_IsConstruct

func CfnDocumentationPart_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnDocumentationVersion_CFN_RESOURCE_TYPE_NAME

func CfnDocumentationVersion_CFN_RESOURCE_TYPE_NAME() *string

func CfnDocumentationVersion_IsCfnElement

func CfnDocumentationVersion_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDocumentationVersion_IsCfnResource

func CfnDocumentationVersion_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnDocumentationVersion_IsConstruct

func CfnDocumentationVersion_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnDomainName_CFN_RESOURCE_TYPE_NAME

func CfnDomainName_CFN_RESOURCE_TYPE_NAME() *string

func CfnDomainName_IsCfnElement

func CfnDomainName_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnDomainName_IsCfnResource

func CfnDomainName_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnDomainName_IsConstruct

func CfnDomainName_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnGatewayResponse_CFN_RESOURCE_TYPE_NAME

func CfnGatewayResponse_CFN_RESOURCE_TYPE_NAME() *string

func CfnGatewayResponse_IsCfnElement

func CfnGatewayResponse_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnGatewayResponse_IsCfnResource

func CfnGatewayResponse_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnGatewayResponse_IsConstruct

func CfnGatewayResponse_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnMethod_CFN_RESOURCE_TYPE_NAME

func CfnMethod_CFN_RESOURCE_TYPE_NAME() *string

func CfnMethod_IsCfnElement

func CfnMethod_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnMethod_IsCfnResource

func CfnMethod_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnMethod_IsConstruct

func CfnMethod_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnModel_CFN_RESOURCE_TYPE_NAME

func CfnModel_CFN_RESOURCE_TYPE_NAME() *string

func CfnModel_IsCfnElement

func CfnModel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnModel_IsCfnResource

func CfnModel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnModel_IsConstruct

func CfnModel_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnRequestValidator_CFN_RESOURCE_TYPE_NAME

func CfnRequestValidator_CFN_RESOURCE_TYPE_NAME() *string

func CfnRequestValidator_IsCfnElement

func CfnRequestValidator_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnRequestValidator_IsCfnResource

func CfnRequestValidator_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnRequestValidator_IsConstruct

func CfnRequestValidator_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnResource_CFN_RESOURCE_TYPE_NAME

func CfnResource_CFN_RESOURCE_TYPE_NAME() *string

func CfnResource_IsCfnElement

func CfnResource_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnResource_IsCfnResource

func CfnResource_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnResource_IsConstruct

func CfnResource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnRestApi_CFN_RESOURCE_TYPE_NAME

func CfnRestApi_CFN_RESOURCE_TYPE_NAME() *string

func CfnRestApi_IsCfnElement

func CfnRestApi_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnRestApi_IsCfnResource

func CfnRestApi_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnRestApi_IsConstruct

func CfnRestApi_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnStage_CFN_RESOURCE_TYPE_NAME

func CfnStage_CFN_RESOURCE_TYPE_NAME() *string

func CfnStage_IsCfnElement

func CfnStage_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnStage_IsCfnResource

func CfnStage_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnStage_IsConstruct

func CfnStage_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnUsagePlanKey_CFN_RESOURCE_TYPE_NAME

func CfnUsagePlanKey_CFN_RESOURCE_TYPE_NAME() *string

func CfnUsagePlanKey_IsCfnElement

func CfnUsagePlanKey_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnUsagePlanKey_IsCfnResource

func CfnUsagePlanKey_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnUsagePlanKey_IsConstruct

func CfnUsagePlanKey_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnUsagePlan_CFN_RESOURCE_TYPE_NAME

func CfnUsagePlan_CFN_RESOURCE_TYPE_NAME() *string

func CfnUsagePlan_IsCfnElement

func CfnUsagePlan_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnUsagePlan_IsCfnResource

func CfnUsagePlan_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnUsagePlan_IsConstruct

func CfnUsagePlan_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CfnVpcLink_CFN_RESOURCE_TYPE_NAME() *string
func CfnVpcLink_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element.

func CfnVpcLink_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource.

func CfnVpcLink_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CognitoUserPoolsAuthorizer_IsAuthorizer

func CognitoUserPoolsAuthorizer_IsAuthorizer(x interface{}) *bool

Return whether the given object is an Authorizer.

func CognitoUserPoolsAuthorizer_IsConstruct

func CognitoUserPoolsAuthorizer_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func CognitoUserPoolsAuthorizer_IsResource

func CognitoUserPoolsAuthorizer_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Cors_ALL_METHODS

func Cors_ALL_METHODS() *[]*string

func Cors_ALL_ORIGINS

func Cors_ALL_ORIGINS() *[]*string

func Cors_DEFAULT_HEADERS

func Cors_DEFAULT_HEADERS() *[]*string

func Deployment_IsConstruct

func Deployment_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Deployment_IsResource

func Deployment_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func DomainName_IsConstruct

func DomainName_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func DomainName_IsResource

func DomainName_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func GatewayResponse_IsConstruct

func GatewayResponse_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func GatewayResponse_IsResource

func GatewayResponse_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func IdentitySource_Context

func IdentitySource_Context(context *string) *string

Provides a properly formatted request context identity source.

Returns: a request context identity source.

func IdentitySource_Header

func IdentitySource_Header(headerName *string) *string

Provides a properly formatted header identity source.

Returns: a header identity source.

func IdentitySource_QueryString

func IdentitySource_QueryString(queryString *string) *string

Provides a properly formatted query string identity source.

Returns: a query string identity source.

func IdentitySource_StageVariable

func IdentitySource_StageVariable(stageVariable *string) *string

Provides a properly formatted API Gateway stage variable identity source.

Returns: an API Gateway stage variable identity source.

func LambdaRestApi_IsConstruct

func LambdaRestApi_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func LambdaRestApi_IsResource

func LambdaRestApi_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Method_IsConstruct

func Method_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Method_IsResource

func Method_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Model_IsConstruct

func Model_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Model_IsResource

func Model_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func NewAccessLogField_Override

func NewAccessLogField_Override(a AccessLogField)

func NewApiDefinition_Override

func NewApiDefinition_Override(a ApiDefinition)

func NewApiKey_Override

func NewApiKey_Override(a ApiKey, scope constructs.Construct, id *string, props *ApiKeyProps)

func NewAssetApiDefinition_Override

func NewAssetApiDefinition_Override(a AssetApiDefinition, path *string, options *awss3assets.AssetOptions)

func NewAuthorizer_Override

func NewAuthorizer_Override(a Authorizer, scope constructs.Construct, id *string, props *awscdk.ResourceProps)

func NewAwsIntegration_Override

func NewAwsIntegration_Override(a AwsIntegration, props *AwsIntegrationProps)

func NewBasePathMapping_Override

func NewBasePathMapping_Override(b BasePathMapping, scope constructs.Construct, id *string, props *BasePathMappingProps)

func NewCfnAccount_Override

func NewCfnAccount_Override(c CfnAccount, scope constructs.Construct, id *string, props *CfnAccountProps)

Create a new `AWS::ApiGateway::Account`.

func NewCfnApiKey_Override

func NewCfnApiKey_Override(c CfnApiKey, scope constructs.Construct, id *string, props *CfnApiKeyProps)

Create a new `AWS::ApiGateway::ApiKey`.

func NewCfnAuthorizer_Override

func NewCfnAuthorizer_Override(c CfnAuthorizer, scope constructs.Construct, id *string, props *CfnAuthorizerProps)

Create a new `AWS::ApiGateway::Authorizer`.

func NewCfnBasePathMapping_Override

func NewCfnBasePathMapping_Override(c CfnBasePathMapping, scope constructs.Construct, id *string, props *CfnBasePathMappingProps)

Create a new `AWS::ApiGateway::BasePathMapping`.

func NewCfnClientCertificate_Override

func NewCfnClientCertificate_Override(c CfnClientCertificate, scope constructs.Construct, id *string, props *CfnClientCertificateProps)

Create a new `AWS::ApiGateway::ClientCertificate`.

func NewCfnDeployment_Override

func NewCfnDeployment_Override(c CfnDeployment, scope constructs.Construct, id *string, props *CfnDeploymentProps)

Create a new `AWS::ApiGateway::Deployment`.

func NewCfnDocumentationPart_Override

func NewCfnDocumentationPart_Override(c CfnDocumentationPart, scope constructs.Construct, id *string, props *CfnDocumentationPartProps)

Create a new `AWS::ApiGateway::DocumentationPart`.

func NewCfnDocumentationVersion_Override

func NewCfnDocumentationVersion_Override(c CfnDocumentationVersion, scope constructs.Construct, id *string, props *CfnDocumentationVersionProps)

Create a new `AWS::ApiGateway::DocumentationVersion`.

func NewCfnDomainName_Override

func NewCfnDomainName_Override(c CfnDomainName, scope constructs.Construct, id *string, props *CfnDomainNameProps)

Create a new `AWS::ApiGateway::DomainName`.

func NewCfnGatewayResponse_Override

func NewCfnGatewayResponse_Override(c CfnGatewayResponse, scope constructs.Construct, id *string, props *CfnGatewayResponseProps)

Create a new `AWS::ApiGateway::GatewayResponse`.

func NewCfnMethod_Override

func NewCfnMethod_Override(c CfnMethod, scope constructs.Construct, id *string, props *CfnMethodProps)

Create a new `AWS::ApiGateway::Method`.

func NewCfnModel_Override

func NewCfnModel_Override(c CfnModel, scope constructs.Construct, id *string, props *CfnModelProps)

Create a new `AWS::ApiGateway::Model`.

func NewCfnRequestValidator_Override

func NewCfnRequestValidator_Override(c CfnRequestValidator, scope constructs.Construct, id *string, props *CfnRequestValidatorProps)

Create a new `AWS::ApiGateway::RequestValidator`.

func NewCfnResource_Override

func NewCfnResource_Override(c CfnResource, scope constructs.Construct, id *string, props *CfnResourceProps)

Create a new `AWS::ApiGateway::Resource`.

func NewCfnRestApi_Override

func NewCfnRestApi_Override(c CfnRestApi, scope constructs.Construct, id *string, props *CfnRestApiProps)

Create a new `AWS::ApiGateway::RestApi`.

func NewCfnStage_Override

func NewCfnStage_Override(c CfnStage, scope constructs.Construct, id *string, props *CfnStageProps)

Create a new `AWS::ApiGateway::Stage`.

func NewCfnUsagePlanKey_Override

func NewCfnUsagePlanKey_Override(c CfnUsagePlanKey, scope constructs.Construct, id *string, props *CfnUsagePlanKeyProps)

Create a new `AWS::ApiGateway::UsagePlanKey`.

func NewCfnUsagePlan_Override

func NewCfnUsagePlan_Override(c CfnUsagePlan, scope constructs.Construct, id *string, props *CfnUsagePlanProps)

Create a new `AWS::ApiGateway::UsagePlan`.

func NewCfnVpcLink_Override(c CfnVpcLink, scope constructs.Construct, id *string, props *CfnVpcLinkProps)

Create a new `AWS::ApiGateway::VpcLink`.

func NewCognitoUserPoolsAuthorizer_Override

func NewCognitoUserPoolsAuthorizer_Override(c CognitoUserPoolsAuthorizer, scope constructs.Construct, id *string, props *CognitoUserPoolsAuthorizerProps)

func NewDeployment_Override

func NewDeployment_Override(d Deployment, scope constructs.Construct, id *string, props *DeploymentProps)

func NewDomainName_Override

func NewDomainName_Override(d DomainName, scope constructs.Construct, id *string, props *DomainNameProps)

func NewGatewayResponse_Override

func NewGatewayResponse_Override(g GatewayResponse, scope constructs.Construct, id *string, props *GatewayResponseProps)

func NewHttpIntegration_Override

func NewHttpIntegration_Override(h HttpIntegration, url *string, props *HttpIntegrationProps)

func NewIdentitySource_Override

func NewIdentitySource_Override(i IdentitySource)

func NewInlineApiDefinition_Override

func NewInlineApiDefinition_Override(i InlineApiDefinition, definition interface{})

func NewIntegration_Override

func NewIntegration_Override(i Integration, props *IntegrationProps)

func NewLambdaIntegration_Override

func NewLambdaIntegration_Override(l LambdaIntegration, handler awslambda.IFunction, options *LambdaIntegrationOptions)

func NewLambdaRestApi_Override

func NewLambdaRestApi_Override(l LambdaRestApi, scope constructs.Construct, id *string, props *LambdaRestApiProps)

func NewLogGroupLogDestination_Override

func NewLogGroupLogDestination_Override(l LogGroupLogDestination, logGroup awslogs.ILogGroup)

func NewMethod_Override

func NewMethod_Override(m Method, scope constructs.Construct, id *string, props *MethodProps)

func NewMockIntegration_Override

func NewMockIntegration_Override(m MockIntegration, options *IntegrationOptions)

func NewModel_Override

func NewModel_Override(m Model, scope constructs.Construct, id *string, props *ModelProps)

func NewProxyResource_Override

func NewProxyResource_Override(p ProxyResource, scope constructs.Construct, id *string, props *ProxyResourceProps)

func NewRateLimitedApiKey_Override

func NewRateLimitedApiKey_Override(r RateLimitedApiKey, scope constructs.Construct, id *string, props *RateLimitedApiKeyProps)

func NewRequestAuthorizer_Override

func NewRequestAuthorizer_Override(r RequestAuthorizer, scope constructs.Construct, id *string, props *RequestAuthorizerProps)

func NewRequestValidator_Override

func NewRequestValidator_Override(r RequestValidator, scope constructs.Construct, id *string, props *RequestValidatorProps)

func NewResourceBase_Override

func NewResourceBase_Override(r ResourceBase, scope constructs.Construct, id *string)

func NewResource_Override

func NewResource_Override(r Resource, scope constructs.Construct, id *string, props *ResourceProps)

func NewRestApiBase_Override

func NewRestApiBase_Override(r RestApiBase, scope constructs.Construct, id *string, props *RestApiBaseProps)

func NewRestApi_Override

func NewRestApi_Override(r RestApi, scope constructs.Construct, id *string, props *RestApiProps)

func NewS3ApiDefinition_Override

func NewS3ApiDefinition_Override(s S3ApiDefinition, bucket awss3.IBucket, key *string, objectVersion *string)

func NewSpecRestApi_Override

func NewSpecRestApi_Override(s SpecRestApi, scope constructs.Construct, id *string, props *SpecRestApiProps)

func NewStage_Override

func NewStage_Override(s Stage, scope constructs.Construct, id *string, props *StageProps)

func NewStepFunctionsIntegration_Override added in v2.1.0

func NewStepFunctionsIntegration_Override(s StepFunctionsIntegration)

func NewStepFunctionsRestApi_Override added in v2.1.0

func NewStepFunctionsRestApi_Override(s StepFunctionsRestApi, scope constructs.Construct, id *string, props *StepFunctionsRestApiProps)

func NewTokenAuthorizer_Override

func NewTokenAuthorizer_Override(t TokenAuthorizer, scope constructs.Construct, id *string, props *TokenAuthorizerProps)

func NewUsagePlan_Override

func NewUsagePlan_Override(u UsagePlan, scope constructs.Construct, id *string, props *UsagePlanProps)
func NewVpcLink_Override(v VpcLink, scope constructs.Construct, id *string, props *VpcLinkProps)

func ProxyResource_IsConstruct

func ProxyResource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func ProxyResource_IsResource

func ProxyResource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func RateLimitedApiKey_IsConstruct

func RateLimitedApiKey_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func RateLimitedApiKey_IsResource

func RateLimitedApiKey_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func RequestAuthorizer_IsAuthorizer

func RequestAuthorizer_IsAuthorizer(x interface{}) *bool

Return whether the given object is an Authorizer.

func RequestAuthorizer_IsConstruct

func RequestAuthorizer_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func RequestAuthorizer_IsResource

func RequestAuthorizer_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func RequestValidator_IsConstruct

func RequestValidator_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func RequestValidator_IsResource

func RequestValidator_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func ResourceBase_IsConstruct

func ResourceBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func ResourceBase_IsResource

func ResourceBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Resource_IsConstruct

func Resource_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Resource_IsResource

func Resource_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func RestApiBase_IsConstruct

func RestApiBase_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func RestApiBase_IsResource

func RestApiBase_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func RestApi_IsConstruct

func RestApi_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func RestApi_IsResource

func RestApi_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func SpecRestApi_IsConstruct

func SpecRestApi_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func SpecRestApi_IsResource

func SpecRestApi_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func Stage_IsConstruct

func Stage_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func Stage_IsResource

func Stage_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func StepFunctionsRestApi_IsConstruct added in v2.1.0

func StepFunctionsRestApi_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func StepFunctionsRestApi_IsResource added in v2.1.0

func StepFunctionsRestApi_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func TokenAuthorizer_IsAuthorizer

func TokenAuthorizer_IsAuthorizer(x interface{}) *bool

Return whether the given object is an Authorizer.

func TokenAuthorizer_IsConstruct

func TokenAuthorizer_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func TokenAuthorizer_IsResource

func TokenAuthorizer_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func UsagePlan_IsConstruct

func UsagePlan_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func UsagePlan_IsResource

func UsagePlan_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

func VpcLink_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func VpcLink_IsResource(construct constructs.IConstruct) *bool

Check whether the given construct is a Resource.

Types

type AccessLogDestinationConfig

type AccessLogDestinationConfig struct {
	// The Amazon Resource Name (ARN) of the destination resource.
	DestinationArn *string `json:"destinationArn" yaml:"destinationArn"`
}

Options when binding a log destination to a RestApi Stage.

TODO: EXAMPLE

type AccessLogField

type AccessLogField interface {
}

$context variables that can be used to customize access log pattern.

TODO: EXAMPLE

func NewAccessLogField

func NewAccessLogField() AccessLogField

type AccessLogFormat

type AccessLogFormat interface {
	ToString() *string
}

factory methods for access log format.

TODO: EXAMPLE

func AccessLogFormat_Clf

func AccessLogFormat_Clf() AccessLogFormat

Generate Common Log Format.

func AccessLogFormat_Custom

func AccessLogFormat_Custom(format *string) AccessLogFormat

Custom log format.

You can create any log format string. You can easily get the $ context variable by using the methods of AccessLogField.

TODO: EXAMPLE

func AccessLogFormat_JsonWithStandardFields

func AccessLogFormat_JsonWithStandardFields(fields *JsonWithStandardFieldProps) AccessLogFormat

Access log will be produced in the JSON format with a set of fields most useful in the access log.

All fields are turned on by default with the option to turn off specific fields.

type AddApiKeyOptions

type AddApiKeyOptions struct {
	// Override the CloudFormation logical id of the AWS::ApiGateway::UsagePlanKey resource.
	OverrideLogicalId *string `json:"overrideLogicalId" yaml:"overrideLogicalId"`
}

Options to the UsagePlan.addApiKey() method.

TODO: EXAMPLE

type ApiDefinition

type ApiDefinition interface {
	Bind(scope constructs.Construct) *ApiDefinitionConfig
	BindAfterCreate(_scope constructs.Construct, _restApi IRestApi)
}

Represents an OpenAPI definition asset.

TODO: EXAMPLE

type ApiDefinitionConfig

type ApiDefinitionConfig struct {
	// Inline specification (mutually exclusive with `s3Location`).
	InlineDefinition interface{} `json:"inlineDefinition" yaml:"inlineDefinition"`
	// The location of the specification in S3 (mutually exclusive with `inlineDefinition`).
	S3Location *ApiDefinitionS3Location `json:"s3Location" yaml:"s3Location"`
}

Post-Binding Configuration for a CDK construct.

TODO: EXAMPLE

type ApiDefinitionS3Location

type ApiDefinitionS3Location struct {
	// The S3 bucket.
	Bucket *string `json:"bucket" yaml:"bucket"`
	// The S3 key.
	Key *string `json:"key" yaml:"key"`
	// An optional version.
	Version *string `json:"version" yaml:"version"`
}

S3 location of the API definition file.

TODO: EXAMPLE

type ApiKey

type ApiKey interface {
	awscdk.Resource
	IApiKey
	Env() *awscdk.ResourceEnvironment
	KeyArn() *string
	KeyId() *string
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	GrantRead(grantee awsiam.IGrantable) awsiam.Grant
	GrantReadWrite(grantee awsiam.IGrantable) awsiam.Grant
	GrantWrite(grantee awsiam.IGrantable) awsiam.Grant
	ToString() *string
}

An API Gateway ApiKey.

An ApiKey can be distributed to API clients that are executing requests for Method resources that require an Api Key.

TODO: EXAMPLE

func NewApiKey

func NewApiKey(scope constructs.Construct, id *string, props *ApiKeyProps) ApiKey

type ApiKeyOptions

type ApiKeyOptions 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 `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 `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 `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 `json:"apiKeyName" yaml:"apiKeyName"`
	// A description of the purpose of the API key.
	Description *string `json:"description" yaml:"description"`
	// The value of the API key.
	//
	// Must be at least 20 characters long.
	Value *string `json:"value" yaml:"value"`
}

The options for creating an API Key.

TODO: EXAMPLE

type ApiKeyProps

type ApiKeyProps 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 `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 `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 `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 `json:"apiKeyName" yaml:"apiKeyName"`
	// A description of the purpose of the API key.
	Description *string `json:"description" yaml:"description"`
	// The value of the API key.
	//
	// Must be at least 20 characters long.
	Value *string `json:"value" yaml:"value"`
	// An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace.
	CustomerId *string `json:"customerId" yaml:"customerId"`
	// Indicates whether the API key can be used by clients.
	Enabled *bool `json:"enabled" yaml:"enabled"`
	// Specifies whether the key identifier is distinct from the created API key value.
	GenerateDistinctId *bool `json:"generateDistinctId" yaml:"generateDistinctId"`
	// A list of resources this api key is associated with.
	Resources *[]IRestApi `json:"resources" yaml:"resources"`
}

ApiKey Properties.

TODO: EXAMPLE

type ApiKeySourceType

type ApiKeySourceType string
const (
	ApiKeySourceType_HEADER     ApiKeySourceType = "HEADER"
	ApiKeySourceType_AUTHORIZER ApiKeySourceType = "AUTHORIZER"
)

type AssetApiDefinition

type AssetApiDefinition interface {
	ApiDefinition
	Bind(scope constructs.Construct) *ApiDefinitionConfig
	BindAfterCreate(scope constructs.Construct, restApi IRestApi)
}

OpenAPI specification from a local file.

TODO: EXAMPLE

func ApiDefinition_FromAsset

func ApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition

Loads the API specification from a local disk asset.

func AssetApiDefinition_FromAsset

func AssetApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition

Loads the API specification from a local disk asset.

func InlineApiDefinition_FromAsset

func InlineApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition

Loads the API specification from a local disk asset.

func NewAssetApiDefinition

func NewAssetApiDefinition(path *string, options *awss3assets.AssetOptions) AssetApiDefinition

func S3ApiDefinition_FromAsset

func S3ApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition

Loads the API specification from a local disk asset.

type AuthorizationType

type AuthorizationType string

TODO: EXAMPLE

const (
	AuthorizationType_NONE    AuthorizationType = "NONE"
	AuthorizationType_IAM     AuthorizationType = "IAM"
	AuthorizationType_CUSTOM  AuthorizationType = "CUSTOM"
	AuthorizationType_COGNITO AuthorizationType = "COGNITO"
)

type Authorizer

type Authorizer interface {
	awscdk.Resource
	IAuthorizer
	AuthorizationType() AuthorizationType
	AuthorizerId() *string
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Base class for all custom authorizers.

type AwsIntegration

type AwsIntegration interface {
	Integration
	Bind(method Method) *IntegrationConfig
}

This type of integration lets an API expose AWS service actions.

It is intended for calling all AWS service actions, but is not recommended for calling a Lambda function, because the Lambda custom integration is a legacy technology.

TODO: EXAMPLE

func NewAwsIntegration

func NewAwsIntegration(props *AwsIntegrationProps) AwsIntegration

func StepFunctionsIntegration_StartExecution added in v2.1.0

func StepFunctionsIntegration_StartExecution(stateMachine awsstepfunctions.IStateMachine, options *StepFunctionsExecutionIntegrationOptions) AwsIntegration

Integrates a Synchronous Express State Machine from AWS Step Functions to an API Gateway method.

TODO: EXAMPLE

type AwsIntegrationProps

type AwsIntegrationProps struct {
	// The name of the integrated AWS service (e.g. `s3`).
	Service *string `json:"service" yaml:"service"`
	// The AWS action to perform in the integration.
	//
	// Use `actionParams` to specify key-value params for the action.
	//
	// Mutually exclusive with `path`.
	Action *string `json:"action" yaml:"action"`
	// Parameters for the action.
	//
	// `action` must be set, and `path` must be undefined.
	// The action params will be URL encoded.
	ActionParameters *map[string]*string `json:"actionParameters" yaml:"actionParameters"`
	// The integration's HTTP method type.
	IntegrationHttpMethod *string `json:"integrationHttpMethod" yaml:"integrationHttpMethod"`
	// Integration options, such as content handling, request/response mapping, etc.
	Options *IntegrationOptions `json:"options" yaml:"options"`
	// The path to use for path-base APIs.
	//
	// For example, for S3 GET, you can set path to `bucket/key`.
	// For lambda, you can set path to `2015-03-31/functions/${function-arn}/invocations`
	//
	// Mutually exclusive with the `action` options.
	Path *string `json:"path" yaml:"path"`
	// Use AWS_PROXY integration.
	Proxy *bool `json:"proxy" yaml:"proxy"`
	// The region of the integrated AWS service.
	Region *string `json:"region" yaml:"region"`
	// A designated subdomain supported by certain AWS service for fast host-name lookup.
	Subdomain *string `json:"subdomain" yaml:"subdomain"`
}

TODO: EXAMPLE

type BasePathMapping

type BasePathMapping interface {
	awscdk.Resource
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

This resource creates a base path that clients who call your API must use in the invocation URL.

Unless you're importing a domain with `DomainName.fromDomainNameAttributes()`, you can use `DomainName.addBasePathMapping()` to define mappings.

TODO: EXAMPLE

func NewBasePathMapping

func NewBasePathMapping(scope constructs.Construct, id *string, props *BasePathMappingProps) BasePathMapping

type BasePathMappingOptions

type BasePathMappingOptions struct {
	// The base path name that callers of the API must provide in the URL after the domain name (e.g. `example.com/base-path`). If you specify this property, it can't be an empty string.
	BasePath *string `json:"basePath" yaml:"basePath"`
	// The Deployment stage of API [disable-awslint:ref-via-interface].
	Stage Stage `json:"stage" yaml:"stage"`
}

TODO: EXAMPLE

type BasePathMappingProps

type BasePathMappingProps struct {
	// The base path name that callers of the API must provide in the URL after the domain name (e.g. `example.com/base-path`). If you specify this property, it can't be an empty string.
	BasePath *string `json:"basePath" yaml:"basePath"`
	// The Deployment stage of API [disable-awslint:ref-via-interface].
	Stage Stage `json:"stage" yaml:"stage"`
	// The DomainName to associate with this base path mapping.
	DomainName IDomainName `json:"domainName" yaml:"domainName"`
	// The RestApi resource to target.
	RestApi IRestApi `json:"restApi" yaml:"restApi"`
}

TODO: EXAMPLE

type CfnAccount

type CfnAccount interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CloudWatchRoleArn() *string
	SetCloudWatchRoleArn(val *string)
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::Account`.

The `AWS::ApiGateway::Account` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs.

> If an API Gateway resource has never been created in your AWS account , you must add a dependency on another API Gateway resource, such as an [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) or [AWS::ApiGateway::ApiKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) resource. > > If an API Gateway resource has been created in your AWS account , no dependency is required (even if the resource was deleted).

TODO: EXAMPLE

func NewCfnAccount

func NewCfnAccount(scope constructs.Construct, id *string, props *CfnAccountProps) CfnAccount

Create a new `AWS::ApiGateway::Account`.

type CfnAccountProps

type CfnAccountProps struct {
	// The Amazon Resource Name (ARN) of an IAM role that has write access to CloudWatch Logs in your account.
	CloudWatchRoleArn *string `json:"cloudWatchRoleArn" yaml:"cloudWatchRoleArn"`
}

Properties for defining a `CfnAccount`.

TODO: EXAMPLE

type CfnApiKey

type CfnApiKey interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrApiKeyId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	CustomerId() *string
	SetCustomerId(val *string)
	Description() *string
	SetDescription(val *string)
	Enabled() interface{}
	SetEnabled(val interface{})
	GenerateDistinctId() interface{}
	SetGenerateDistinctId(val interface{})
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	StageKeys() interface{}
	SetStageKeys(val interface{})
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	Value() *string
	SetValue(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::ApiKey`.

The `AWS::ApiGateway::ApiKey` resource creates a unique key that you can distribute to clients who are executing API Gateway `Method` resources that require an API key. To specify which API key clients must use, map the API key with the `RestApi` and `Stage` resources that include the methods that require a key.

TODO: EXAMPLE

func NewCfnApiKey

func NewCfnApiKey(scope constructs.Construct, id *string, props *CfnApiKeyProps) CfnApiKey

Create a new `AWS::ApiGateway::ApiKey`.

type CfnApiKeyProps

type CfnApiKeyProps struct {
	// An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace.
	CustomerId *string `json:"customerId" yaml:"customerId"`
	// A description of the purpose of the API key.
	Description *string `json:"description" yaml:"description"`
	// Indicates whether the API key can be used by clients.
	Enabled interface{} `json:"enabled" yaml:"enabled"`
	// Specifies whether the key identifier is distinct from the created API key value.
	//
	// This parameter is deprecated and should not be used.
	GenerateDistinctId interface{} `json:"generateDistinctId" yaml:"generateDistinctId"`
	// 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. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .
	//
	// > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
	Name *string `json:"name" yaml:"name"`
	// A list of stages to associate with this API key.
	StageKeys interface{} `json:"stageKeys" yaml:"stageKeys"`
	// An array of arbitrary tags (key-value pairs) to associate with the API key.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// The value of the API key.
	//
	// Must be at least 20 characters long.
	Value *string `json:"value" yaml:"value"`
}

Properties for defining a `CfnApiKey`.

TODO: EXAMPLE

type CfnApiKey_StageKeyProperty

type CfnApiKey_StageKeyProperty struct {
	// The ID of a `RestApi` resource that includes the stage with which you want to associate the API key.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The name of the stage with which to associate the API key.
	//
	// The stage must be included in the `RestApi` resource that you specified in the `RestApiId` property.
	StageName *string `json:"stageName" yaml:"stageName"`
}

`StageKey` is a property of the [AWS::ApiGateway::ApiKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) resource that specifies the stage to associate with the API key. This association allows only clients with the key to make requests to methods in that stage.

TODO: EXAMPLE

type CfnAuthorizer

type CfnAuthorizer interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrAuthorizerId() *string
	AuthorizerCredentials() *string
	SetAuthorizerCredentials(val *string)
	AuthorizerResultTtlInSeconds() *float64
	SetAuthorizerResultTtlInSeconds(val *float64)
	AuthorizerUri() *string
	SetAuthorizerUri(val *string)
	AuthType() *string
	SetAuthType(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	IdentitySource() *string
	SetIdentitySource(val *string)
	IdentityValidationExpression() *string
	SetIdentityValidationExpression(val *string)
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	ProviderArns() *[]*string
	SetProviderArns(val *[]*string)
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	Type() *string
	SetType(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::Authorizer`.

The `AWS::ApiGateway::Authorizer` resource creates an authorization layer that API Gateway activates for methods that have authorization enabled. API Gateway activates the authorizer when a client calls those methods.

TODO: EXAMPLE

func NewCfnAuthorizer

func NewCfnAuthorizer(scope constructs.Construct, id *string, props *CfnAuthorizerProps) CfnAuthorizer

Create a new `AWS::ApiGateway::Authorizer`.

type CfnAuthorizerProps

type CfnAuthorizerProps struct {
	// The name of the authorizer.
	Name *string `json:"name" yaml:"name"`
	// The ID of the `RestApi` resource that API Gateway creates the authorizer in.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The type of authorizer. Valid values include:.
	//
	// - `TOKEN` : A custom authorizer that uses a Lambda function.
	// - `COGNITO_USER_POOLS` : An authorizer that uses Amazon Cognito user pools.
	// - `REQUEST` : An authorizer that uses a Lambda function using incoming request parameters.
	Type *string `json:"type" yaml:"type"`
	// The credentials that are required for the authorizer.
	//
	// To specify an IAM role that API Gateway assumes, specify the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null.
	AuthorizerCredentials *string `json:"authorizerCredentials" yaml:"authorizerCredentials"`
	// The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches authorizer results.
	//
	// If you specify a value greater than 0, API Gateway caches the authorizer responses. By default, API Gateway sets this property to 300. The maximum value is 3600, or 1 hour.
	AuthorizerResultTtlInSeconds *float64 `json:"authorizerResultTtlInSeconds" yaml:"authorizerResultTtlInSeconds"`
	// The authorizer's Uniform Resource Identifier (URI).
	//
	// If you specify `TOKEN` for the authorizer's `Type` property, specify a Lambda function URI that has the form `arn:aws:apigateway: *region* :lambda:path/ *path*` . The path usually has the form /2015-03-31/functions/ *LambdaFunctionARN* /invocations.
	AuthorizerUri *string `json:"authorizerUri" yaml:"authorizerUri"`
	// An optional customer-defined field that's used in OpenApi imports and exports without functional impact.
	AuthType *string `json:"authType" yaml:"authType"`
	// The source of the identity in an incoming request.
	//
	// If you specify `TOKEN` or `COGNITO_USER_POOLS` for the `Type` property, this property is required. Specify a header mapping expression using the form `method.request.header. *name*` , where *name* is the name of a custom authorization header that clients submit as part of their requests.
	//
	// If you specify `REQUEST` for the `Type` property, this property is required when authorization caching is enabled. Specify a comma-separated string of one or more mapping expressions of the specified request parameter using the form `method.request.parameter. *name*` . For supported parameter types, see [Configure Lambda Authorizer Using the API Gateway Console](https://docs.aws.amazon.com/apigateway/latest/developerguide/configure-api-gateway-lambda-authorization-with-console.html) in the *API Gateway Developer Guide* .
	IdentitySource *string `json:"identitySource" yaml:"identitySource"`
	// A validation expression for the incoming identity.
	//
	// If you specify `TOKEN` for the authorizer's `Type` property, specify a regular expression. API Gateway uses the expression to attempt to match the incoming client token, and proceeds if the token matches. If the token doesn't match, API Gateway responds with a 401 (unauthorized request) error code.
	IdentityValidationExpression *string `json:"identityValidationExpression" yaml:"identityValidationExpression"`
	// A list of the Amazon Cognito user pool Amazon Resource Names (ARNs) to associate with this authorizer.
	//
	// Required if you specify `COGNITO_USER_POOLS` as the authorizer `Type` . For more information, see [Use Amazon Cognito User Pools](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html#apigateway-enable-cognito-user-pool) in the *API Gateway Developer Guide* .
	ProviderArns *[]*string `json:"providerArns" yaml:"providerArns"`
}

Properties for defining a `CfnAuthorizer`.

TODO: EXAMPLE

type CfnBasePathMapping

type CfnBasePathMapping interface {
	awscdk.CfnResource
	awscdk.IInspectable
	BasePath() *string
	SetBasePath(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DomainName() *string
	SetDomainName(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	Stage() *string
	SetStage(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::BasePathMapping`.

The `AWS::ApiGateway::BasePathMapping` resource creates a base path that clients who call your API must use in the invocation URL.

TODO: EXAMPLE

func NewCfnBasePathMapping

func NewCfnBasePathMapping(scope constructs.Construct, id *string, props *CfnBasePathMappingProps) CfnBasePathMapping

Create a new `AWS::ApiGateway::BasePathMapping`.

type CfnBasePathMappingProps

type CfnBasePathMappingProps struct {
	// The `DomainName` of an [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource.
	DomainName *string `json:"domainName" yaml:"domainName"`
	// The base path name that callers of the API must provide in the URL after the domain name.
	BasePath *string `json:"basePath" yaml:"basePath"`
	// The ID of the API.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The name of the API's stage.
	Stage *string `json:"stage" yaml:"stage"`
}

Properties for defining a `CfnBasePathMapping`.

TODO: EXAMPLE

type CfnClientCertificate

type CfnClientCertificate interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrClientCertificateId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::ClientCertificate`.

The `AWS::ApiGateway::ClientCertificate` resource creates a client certificate that API Gateway uses to configure client-side SSL authentication for sending requests to the integration endpoint.

TODO: EXAMPLE

func NewCfnClientCertificate

func NewCfnClientCertificate(scope constructs.Construct, id *string, props *CfnClientCertificateProps) CfnClientCertificate

Create a new `AWS::ApiGateway::ClientCertificate`.

type CfnClientCertificateProps

type CfnClientCertificateProps struct {
	// A description of the client certificate.
	Description *string `json:"description" yaml:"description"`
	// An array of arbitrary tags (key-value pairs) to associate with the client certificate.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnClientCertificate`.

TODO: EXAMPLE

type CfnDeployment

type CfnDeployment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrDeploymentId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DeploymentCanarySettings() interface{}
	SetDeploymentCanarySettings(val interface{})
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	StageDescription() interface{}
	SetStageDescription(val interface{})
	StageName() *string
	SetStageName(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::Deployment`.

The `AWS::ApiGateway::Deployment` resource deploys an API Gateway `RestApi` resource to a stage so that clients can call the API over the internet. The stage acts as an environment.

TODO: EXAMPLE

func NewCfnDeployment

func NewCfnDeployment(scope constructs.Construct, id *string, props *CfnDeploymentProps) CfnDeployment

Create a new `AWS::ApiGateway::Deployment`.

type CfnDeploymentProps

type CfnDeploymentProps struct {
	// The ID of the `RestApi` resource to deploy.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// Specifies settings for the canary deployment.
	DeploymentCanarySettings interface{} `json:"deploymentCanarySettings" yaml:"deploymentCanarySettings"`
	// A description of the purpose of the API Gateway deployment.
	Description *string `json:"description" yaml:"description"`
	// Configures the stage that API Gateway creates with this deployment.
	StageDescription interface{} `json:"stageDescription" yaml:"stageDescription"`
	// A name for the stage that API Gateway creates with this deployment.
	//
	// Use only alphanumeric characters.
	StageName *string `json:"stageName" yaml:"stageName"`
}

Properties for defining a `CfnDeployment`.

TODO: EXAMPLE

type CfnDeployment_AccessLogSettingProperty

type CfnDeployment_AccessLogSettingProperty struct {
	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs.
	//
	// If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-` .
	DestinationArn *string `json:"destinationArn" yaml:"destinationArn"`
	// A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference) . The format must include at least `$context.requestId` .
	Format *string `json:"format" yaml:"format"`
}

The `AccessLogSetting` property type specifies settings for logging access in this stage.

`AccessLogSetting` is a property of the [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type.

TODO: EXAMPLE

type CfnDeployment_CanarySettingProperty

type CfnDeployment_CanarySettingProperty struct {
	// The percent (0-100) of traffic diverted to a canary deployment.
	PercentTraffic *float64 `json:"percentTraffic" yaml:"percentTraffic"`
	// Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary.
	//
	// These stage variables are represented as a string-to-string map between stage variable names and their values.
	StageVariableOverrides interface{} `json:"stageVariableOverrides" yaml:"stageVariableOverrides"`
	// Whether the canary deployment uses the stage cache or not.
	UseStageCache interface{} `json:"useStageCache" yaml:"useStageCache"`
}

The `CanarySetting` property type specifies settings for the canary deployment in this stage.

`CanarySetting` is a property of the [StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type.

TODO: EXAMPLE

type CfnDeployment_DeploymentCanarySettingsProperty

type CfnDeployment_DeploymentCanarySettingsProperty struct {
	// The percentage (0-100) of traffic diverted to a canary deployment.
	PercentTraffic *float64 `json:"percentTraffic" yaml:"percentTraffic"`
	// Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary.
	//
	// These stage variables are represented as a string-to-string map between stage variable names and their values.
	//
	// Duplicates are not allowed.
	StageVariableOverrides interface{} `json:"stageVariableOverrides" yaml:"stageVariableOverrides"`
	// Whether the canary deployment uses the stage cache.
	UseStageCache interface{} `json:"useStageCache" yaml:"useStageCache"`
}

The `DeploymentCanarySettings` property type specifies settings for the canary deployment.

TODO: EXAMPLE

type CfnDeployment_MethodSettingProperty

type CfnDeployment_MethodSettingProperty struct {
	// Indicates whether the cached responses are encrypted.
	CacheDataEncrypted interface{} `json:"cacheDataEncrypted" yaml:"cacheDataEncrypted"`
	// The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses.
	CacheTtlInSeconds *float64 `json:"cacheTtlInSeconds" yaml:"cacheTtlInSeconds"`
	// Indicates whether responses are cached and returned for requests.
	//
	// You must enable a cache cluster on the stage to cache responses. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide* .
	CachingEnabled interface{} `json:"cachingEnabled" yaml:"cachingEnabled"`
	// Indicates whether data trace logging is enabled for methods in the stage.
	//
	// API Gateway pushes these logs to Amazon CloudWatch Logs.
	DataTraceEnabled interface{} `json:"dataTraceEnabled" yaml:"dataTraceEnabled"`
	// The HTTP method.
	HttpMethod *string `json:"httpMethod" yaml:"httpMethod"`
	// The logging level for this method.
	//
	// For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference* .
	LoggingLevel *string `json:"loggingLevel" yaml:"loggingLevel"`
	// Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage.
	MetricsEnabled interface{} `json:"metricsEnabled" yaml:"metricsEnabled"`
	// The resource path for this method.
	//
	// Forward slashes ( `/` ) are encoded as `~1` and the initial slash must include a forward slash. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource` . To specify the root path, use only a slash ( `/` ).
	ResourcePath *string `json:"resourcePath" yaml:"resourcePath"`
	// The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account .
	//
	// For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	ThrottlingBurstLimit *float64 `json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"`
	// The number of steady-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account .
	//
	// For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	ThrottlingRateLimit *float64 `json:"throttlingRateLimit" yaml:"throttlingRateLimit"`
}

The `MethodSetting` property type configures settings for all methods in a stage.

The `MethodSettings` property of the [Amazon API Gateway Deployment StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type contains a list of `MethodSetting` property types.

TODO: EXAMPLE

type CfnDeployment_StageDescriptionProperty

type CfnDeployment_StageDescriptionProperty struct {
	// Specifies settings for logging access in this stage.
	AccessLogSetting interface{} `json:"accessLogSetting" yaml:"accessLogSetting"`
	// Indicates whether cache clustering is enabled for the stage.
	CacheClusterEnabled interface{} `json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"`
	// The size of the stage's cache cluster.
	CacheClusterSize *string `json:"cacheClusterSize" yaml:"cacheClusterSize"`
	// Indicates whether the cached responses are encrypted.
	CacheDataEncrypted interface{} `json:"cacheDataEncrypted" yaml:"cacheDataEncrypted"`
	// The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses.
	CacheTtlInSeconds *float64 `json:"cacheTtlInSeconds" yaml:"cacheTtlInSeconds"`
	// Indicates whether responses are cached and returned for requests.
	//
	// You must enable a cache cluster on the stage to cache responses. For more information, see [Enable API Gateway Caching in a Stage to Enhance API Performance](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) in the *API Gateway Developer Guide* .
	CachingEnabled interface{} `json:"cachingEnabled" yaml:"cachingEnabled"`
	// Specifies settings for the canary deployment in this stage.
	CanarySetting interface{} `json:"canarySetting" yaml:"canarySetting"`
	// The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage.
	ClientCertificateId *string `json:"clientCertificateId" yaml:"clientCertificateId"`
	// Indicates whether data trace logging is enabled for methods in the stage.
	//
	// API Gateway pushes these logs to Amazon CloudWatch Logs.
	DataTraceEnabled interface{} `json:"dataTraceEnabled" yaml:"dataTraceEnabled"`
	// A description of the purpose of the stage.
	Description *string `json:"description" yaml:"description"`
	// The version identifier of the API documentation snapshot.
	DocumentationVersion *string `json:"documentationVersion" yaml:"documentationVersion"`
	// The logging level for this method.
	//
	// For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference* .
	LoggingLevel *string `json:"loggingLevel" yaml:"loggingLevel"`
	// Configures settings for all of the stage's methods.
	MethodSettings interface{} `json:"methodSettings" yaml:"methodSettings"`
	// Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage.
	MetricsEnabled interface{} `json:"metricsEnabled" yaml:"metricsEnabled"`
	// An array of arbitrary tags (key-value pairs) to associate with the stage.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// The target request burst rate limit.
	//
	// This allows more requests through for a period of time than the target rate limit. For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	ThrottlingBurstLimit *float64 `json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"`
	// The target request steady-state rate limit.
	//
	// For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	ThrottlingRateLimit *float64 `json:"throttlingRateLimit" yaml:"throttlingRateLimit"`
	// Specifies whether active tracing with X-ray is enabled for this stage.
	//
	// For more information, see [Trace API Gateway API Execution with AWS X-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide* .
	TracingEnabled interface{} `json:"tracingEnabled" yaml:"tracingEnabled"`
	// A map that defines the stage variables.
	//
	// Variable names must consist of alphanumeric characters, and the values must match the following regular expression: `[A-Za-z0-9-._~:/?#&=,]+` .
	Variables interface{} `json:"variables" yaml:"variables"`
}

`StageDescription` is a property of the [AWS::ApiGateway::Deployment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html) resource that configures a deployment stage.

TODO: EXAMPLE

type CfnDocumentationPart

type CfnDocumentationPart interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Location() interface{}
	SetLocation(val interface{})
	LogicalId() *string
	Node() constructs.Node
	Properties() *string
	SetProperties(val *string)
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::DocumentationPart`.

The `AWS::ApiGateway::DocumentationPart` resource creates a documentation part for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide* .

TODO: EXAMPLE

func NewCfnDocumentationPart

func NewCfnDocumentationPart(scope constructs.Construct, id *string, props *CfnDocumentationPartProps) CfnDocumentationPart

Create a new `AWS::ApiGateway::DocumentationPart`.

type CfnDocumentationPartProps

type CfnDocumentationPartProps struct {
	// The location of the API entity that the documentation applies to.
	Location interface{} `json:"location" yaml:"location"`
	// The documentation content map of the targeted API entity.
	Properties *string `json:"properties" yaml:"properties"`
	// The identifier of the targeted API entity.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
}

Properties for defining a `CfnDocumentationPart`.

TODO: EXAMPLE

type CfnDocumentationPart_LocationProperty

type CfnDocumentationPart_LocationProperty struct {
	// The HTTP verb of a method.
	Method *string `json:"method" yaml:"method"`
	// The name of the targeted API entity.
	Name *string `json:"name" yaml:"name"`
	// The URL path of the target.
	Path *string `json:"path" yaml:"path"`
	// The HTTP status code of a response.
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
	// The type of API entity that the documentation content applies to.
	Type *string `json:"type" yaml:"type"`
}

The `Location` property specifies the location of the Amazon API Gateway API entity that the documentation applies to.

`Location` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.

> For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/api-reference/resource/documentation-part/#location) in the *Amazon API Gateway REST API Reference* .

TODO: EXAMPLE

type CfnDocumentationVersion

type CfnDocumentationVersion interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	DocumentationVersion() *string
	SetDocumentationVersion(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::DocumentationVersion`.

The `AWS::ApiGateway::DocumentationVersion` resource creates a snapshot of the documentation for an API. For more information, see [Representation of API Documentation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api-content-representation.html) in the *API Gateway Developer Guide* .

TODO: EXAMPLE

func NewCfnDocumentationVersion

func NewCfnDocumentationVersion(scope constructs.Construct, id *string, props *CfnDocumentationVersionProps) CfnDocumentationVersion

Create a new `AWS::ApiGateway::DocumentationVersion`.

type CfnDocumentationVersionProps

type CfnDocumentationVersionProps struct {
	// The version identifier of the API documentation snapshot.
	DocumentationVersion *string `json:"documentationVersion" yaml:"documentationVersion"`
	// The identifier of the API.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The description of the API documentation snapshot.
	Description *string `json:"description" yaml:"description"`
}

Properties for defining a `CfnDocumentationVersion`.

TODO: EXAMPLE

type CfnDomainName

type CfnDomainName interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrDistributionDomainName() *string
	AttrDistributionHostedZoneId() *string
	AttrRegionalDomainName() *string
	AttrRegionalHostedZoneId() *string
	CertificateArn() *string
	SetCertificateArn(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	DomainName() *string
	SetDomainName(val *string)
	EndpointConfiguration() interface{}
	SetEndpointConfiguration(val interface{})
	LogicalId() *string
	MutualTlsAuthentication() interface{}
	SetMutualTlsAuthentication(val interface{})
	Node() constructs.Node
	OwnershipVerificationCertificateArn() *string
	SetOwnershipVerificationCertificateArn(val *string)
	Ref() *string
	RegionalCertificateArn() *string
	SetRegionalCertificateArn(val *string)
	SecurityPolicy() *string
	SetSecurityPolicy(val *string)
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::DomainName`.

The `AWS::ApiGateway::DomainName` resource specifies a custom domain name for your API in API Gateway.

You can use a custom domain name to provide a URL that's more intuitive and easier to recall. For more information about using custom domain names, see [Set up Custom Domain Name for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html) in the *API Gateway Developer Guide* .

TODO: EXAMPLE

func NewCfnDomainName

func NewCfnDomainName(scope constructs.Construct, id *string, props *CfnDomainNameProps) CfnDomainName

Create a new `AWS::ApiGateway::DomainName`.

type CfnDomainNameProps

type CfnDomainNameProps struct {
	// The reference to an AWS -managed certificate for use by the edge-optimized endpoint for this domain name.
	//
	// AWS Certificate Manager is the only supported source. For requirements and additional information about setting up certificates, see [Get Certificates Ready in AWS Certificate Manager](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html#how-to-custom-domains-prerequisites) in the *API Gateway Developer Guide* .
	CertificateArn *string `json:"certificateArn" yaml:"certificateArn"`
	// The custom domain name for your API.
	//
	// Uppercase letters are not supported.
	DomainName *string `json:"domainName" yaml:"domainName"`
	// A list of the endpoint types of the domain name.
	EndpointConfiguration interface{} `json:"endpointConfiguration" yaml:"endpointConfiguration"`
	// The mutual TLS authentication configuration for a custom domain name.
	MutualTlsAuthentication interface{} `json:"mutualTlsAuthentication" yaml:"mutualTlsAuthentication"`
	// The ARN of the public certificate issued by ACM to validate ownership of your custom domain.
	//
	// Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the RegionalCertificateArn.
	OwnershipVerificationCertificateArn *string `json:"ownershipVerificationCertificateArn" yaml:"ownershipVerificationCertificateArn"`
	// The reference to an AWS -managed certificate for use by the regional endpoint for the domain name.
	//
	// AWS Certificate Manager is the only supported source.
	RegionalCertificateArn *string `json:"regionalCertificateArn" yaml:"regionalCertificateArn"`
	// The Transport Layer Security (TLS) version + cipher suite for this domain name.
	//
	// Valid values include `TLS_1_0` and `TLS_1_2` .
	SecurityPolicy *string `json:"securityPolicy" yaml:"securityPolicy"`
	// An array of arbitrary tags (key-value pairs) to associate with the domain name.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnDomainName`.

TODO: EXAMPLE

type CfnDomainName_EndpointConfigurationProperty

type CfnDomainName_EndpointConfigurationProperty struct {
	// A list of endpoint types of an API or its custom domain name.
	//
	// For an edge-optimized API and its custom domain name, the endpoint type is `EDGE` . For a regional API and its custom domain name, the endpoint type is `REGIONAL` .
	Types *[]*string `json:"types" yaml:"types"`
}

The `EndpointConfiguration` property type specifies the endpoint types of an Amazon API Gateway domain name.

`EndpointConfiguration` is a property of the [AWS::ApiGateway::DomainName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource.

TODO: EXAMPLE

type CfnDomainName_MutualTlsAuthenticationProperty

type CfnDomainName_MutualTlsAuthenticationProperty struct {
	// An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3:// bucket-name / key-name` .
	//
	// The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. To update the truststore, you must have permissions to access the S3 object.
	TruststoreUri *string `json:"truststoreUri" yaml:"truststoreUri"`
	// The version of the S3 object that contains your truststore.
	//
	// To specify a version, you must have versioning enabled for the S3 bucket.
	TruststoreVersion *string `json:"truststoreVersion" yaml:"truststoreVersion"`
}

If specified, API Gateway performs two-way authentication between the client and the server.

Clients must present a trusted certificate to access your API.

TODO: EXAMPLE

type CfnGatewayResponse

type CfnGatewayResponse interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	ResponseParameters() interface{}
	SetResponseParameters(val interface{})
	ResponseTemplates() interface{}
	SetResponseTemplates(val interface{})
	ResponseType() *string
	SetResponseType(val *string)
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	StatusCode() *string
	SetStatusCode(val *string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::GatewayResponse`.

The `AWS::ApiGateway::GatewayResponse` resource creates a gateway response for your API. For more information, see [API Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/customize-gateway-responses.html#api-gateway-gatewayResponse-definition) in the *API Gateway Developer Guide* .

TODO: EXAMPLE

func NewCfnGatewayResponse

func NewCfnGatewayResponse(scope constructs.Construct, id *string, props *CfnGatewayResponseProps) CfnGatewayResponse

Create a new `AWS::ApiGateway::GatewayResponse`.

type CfnGatewayResponseProps

type CfnGatewayResponseProps struct {
	// The response type.
	//
	// For valid values, see [GatewayResponse](https://docs.aws.amazon.com/apigateway/api-reference/resource/gateway-response/) in the *API Gateway API Reference* .
	ResponseType *string `json:"responseType" yaml:"responseType"`
	// The identifier of the API.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The response parameters (paths, query strings, and headers) for the response.
	//
	// Duplicates not allowed.
	ResponseParameters interface{} `json:"responseParameters" yaml:"responseParameters"`
	// The response templates for the response.
	//
	// Duplicates not allowed.
	ResponseTemplates interface{} `json:"responseTemplates" yaml:"responseTemplates"`
	// The HTTP status code for the response.
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
}

Properties for defining a `CfnGatewayResponse`.

TODO: EXAMPLE

type CfnMethod

type CfnMethod interface {
	awscdk.CfnResource
	awscdk.IInspectable
	ApiKeyRequired() interface{}
	SetApiKeyRequired(val interface{})
	AuthorizationScopes() *[]*string
	SetAuthorizationScopes(val *[]*string)
	AuthorizationType() *string
	SetAuthorizationType(val *string)
	AuthorizerId() *string
	SetAuthorizerId(val *string)
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	HttpMethod() *string
	SetHttpMethod(val *string)
	Integration() interface{}
	SetIntegration(val interface{})
	LogicalId() *string
	MethodResponses() interface{}
	SetMethodResponses(val interface{})
	Node() constructs.Node
	OperationName() *string
	SetOperationName(val *string)
	Ref() *string
	RequestModels() interface{}
	SetRequestModels(val interface{})
	RequestParameters() interface{}
	SetRequestParameters(val interface{})
	RequestValidatorId() *string
	SetRequestValidatorId(val *string)
	ResourceId() *string
	SetResourceId(val *string)
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::Method`.

The `AWS::ApiGateway::Method` resource creates API Gateway methods that define the parameters and body that clients must send in their requests.

TODO: EXAMPLE

func NewCfnMethod

func NewCfnMethod(scope constructs.Construct, id *string, props *CfnMethodProps) CfnMethod

Create a new `AWS::ApiGateway::Method`.

type CfnMethodProps

type CfnMethodProps struct {
	// The HTTP method that clients use to call this method.
	HttpMethod *string `json:"httpMethod" yaml:"httpMethod"`
	// The ID of an API Gateway [resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html) . For root resource methods, specify the `RestApi` root resource ID, such as `{ "Fn::GetAtt": ["MyRestApi", "RootResourceId"] }` .
	ResourceId *string `json:"resourceId" yaml:"resourceId"`
	// The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which API Gateway creates the method.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// Indicates whether the method requires clients to submit a valid API key.
	ApiKeyRequired interface{} `json:"apiKeyRequired" yaml:"apiKeyRequired"`
	// A list of authorization scopes configured on the method.
	//
	// The scopes are used with a `COGNITO_USER_POOLS` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes match a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.
	AuthorizationScopes *[]*string `json:"authorizationScopes" yaml:"authorizationScopes"`
	// The method's authorization type.
	//
	// This parameter is required. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/api-reference/resource/method/) in the *API Gateway API Reference* .
	//
	// > If you specify the `AuthorizerId` property, specify `CUSTOM` or `COGNITO_USER_POOLS` for this property.
	AuthorizationType *string `json:"authorizationType" yaml:"authorizationType"`
	// The identifier of the [authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html) to use on this method. If you specify this property, specify `CUSTOM` or `COGNITO_USER_POOLS` for the `AuthorizationType` property.
	AuthorizerId *string `json:"authorizerId" yaml:"authorizerId"`
	// The backend system that the method calls when it receives a request.
	Integration interface{} `json:"integration" yaml:"integration"`
	// The responses that can be sent to the client who calls the method.
	MethodResponses interface{} `json:"methodResponses" yaml:"methodResponses"`
	// A friendly operation name for the method.
	//
	// For example, you can assign the `OperationName` of `ListPets` for the `GET /pets` method.
	OperationName *string `json:"operationName" yaml:"operationName"`
	// The resources that are used for the request's content type.
	//
	// Specify request models as key-value pairs (string-to-string mapping), with a content type as the key and a `Model` resource name as the value. To use the same model regardless of the content type, specify `$default` as the key.
	RequestModels interface{} `json:"requestModels" yaml:"requestModels"`
	// The request parameters that API Gateway accepts.
	//
	// Specify request parameters as key-value pairs (string-to-Boolean mapping), with a source as the key and a Boolean as the value. The Boolean specifies whether a parameter is required. A source must match the format `method.request. *location* . *name*` , where the location is querystring, path, or header, and *name* is a valid, unique parameter name.
	RequestParameters interface{} `json:"requestParameters" yaml:"requestParameters"`
	// The ID of the associated request validator.
	RequestValidatorId *string `json:"requestValidatorId" yaml:"requestValidatorId"`
}

Properties for defining a `CfnMethod`.

TODO: EXAMPLE

type CfnMethod_IntegrationProperty

type CfnMethod_IntegrationProperty struct {
	// A list of request parameters whose values API Gateway caches.
	//
	// For cases where the integration type allows for RequestParameters to be set, these parameters must also be specified in [RequestParameters](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters) to be supported in `CacheKeyParameters` .
	CacheKeyParameters *[]*string `json:"cacheKeyParameters" yaml:"cacheKeyParameters"`
	// An API-specific tag group of related cached parameters.
	CacheNamespace *string `json:"cacheNamespace" yaml:"cacheNamespace"`
	// The ID of the `VpcLink` used for the integration when `connectionType=VPC_LINK` , otherwise undefined.
	ConnectionId *string `json:"connectionId" yaml:"connectionId"`
	// The type of the network connection to the integration endpoint.
	//
	// The valid value is `INTERNET` for connections through the public routable internet or `VPC_LINK` for private connections between API Gateway and a network load balancer in a VPC. The default value is `INTERNET` .
	ConnectionType *string `json:"connectionType" yaml:"connectionType"`
	// Specifies how to handle request payload content type conversions. Valid values are:.
	//
	// - `CONVERT_TO_BINARY` : Converts a request payload from a base64-encoded string to a binary blob.
	// - `CONVERT_TO_TEXT` : Converts a request payload from a binary blob to a base64-encoded string.
	//
	// If this property isn't defined, the request payload is passed through from the method request to the integration request without modification, provided that the `PassthroughBehaviors` property is configured to support payload pass-through.
	ContentHandling *string `json:"contentHandling" yaml:"contentHandling"`
	// The credentials that are required for the integration.
	//
	// To specify an AWS Identity and Access Management (IAM) role that API Gateway assumes, specify the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify arn:aws:iam::*:user/*.
	//
	// To use resource-based permissions on the AWS Lambda (Lambda) function, don't specify this property. Use the [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) resource to permit API Gateway to call the function. For more information, see [Allow Amazon API Gateway to Invoke a Lambda Function](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#access-control-resource-based-example-apigateway-invoke-function) in the *AWS Lambda Developer Guide* .
	Credentials *string `json:"credentials" yaml:"credentials"`
	// The integration's HTTP method type.
	//
	// For the `Type` property, if you specify `MOCK` , this property is optional. For all other types, you must specify this property.
	IntegrationHttpMethod *string `json:"integrationHttpMethod" yaml:"integrationHttpMethod"`
	// The response that API Gateway provides after a method's backend completes processing a request.
	//
	// API Gateway intercepts the response from the backend so that you can control how API Gateway surfaces backend responses. For example, you can map the backend status codes to codes that you define.
	IntegrationResponses interface{} `json:"integrationResponses" yaml:"integrationResponses"`
	// Indicates when API Gateway passes requests to the targeted backend.
	//
	// This behavior depends on the request's `Content-Type` header and whether you defined a mapping template for it.
	//
	// For more information and valid values, see the [passthroughBehavior](https://docs.aws.amazon.com/apigateway/api-reference/link-relation/integration-put/#passthroughBehavior) field in the *API Gateway API Reference* .
	PassthroughBehavior *string `json:"passthroughBehavior" yaml:"passthroughBehavior"`
	// The request parameters that API Gateway sends with the backend request.
	//
	// Specify request parameters as key-value pairs (string-to-string mappings), with a destination as the key and a source as the value.
	//
	// Specify the destination by using the following pattern `integration.request. *location* . *name*` , where *location* is query string, path, or header, and *name* is a valid, unique parameter name.
	//
	// The source must be an existing method request parameter or a static value. You must enclose static values in single quotation marks and pre-encode these values based on their destination in the request.
	RequestParameters interface{} `json:"requestParameters" yaml:"requestParameters"`
	// A map of Apache Velocity templates that are applied on the request payload.
	//
	// The template that API Gateway uses is based on the value of the `Content-Type` header that's sent by the client. The content type value is the key, and the template is the value (specified as a string), such as the following snippet:
	//
	// `"application/json": "{\n \"statusCode\": 200\n}"`
	//
	// For more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide* .
	RequestTemplates interface{} `json:"requestTemplates" yaml:"requestTemplates"`
	// Custom timeout between 50 and 29,000 milliseconds.
	//
	// The default value is 29,000 milliseconds or 29 seconds.
	TimeoutInMillis *float64 `json:"timeoutInMillis" yaml:"timeoutInMillis"`
	// The type of backend that your method is running, such as `HTTP` or `MOCK` .
	//
	// For all of the valid values, see the [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#type) property for the `Integration` resource in the *Amazon API Gateway REST API Reference* .
	Type *string `json:"type" yaml:"type"`
	// The Uniform Resource Identifier (URI) for the integration.
	//
	// If you specify `HTTP` for the `Type` property, specify the API endpoint URL.
	//
	// If you specify `MOCK` for the `Type` property, don't specify this property.
	//
	// If you specify `AWS` for the `Type` property, specify an AWS service that follows this form: arn:aws:apigateway: *region* : *subdomain* . *service|service* : *path|action* / *service_api* . For example, a Lambda function URI follows this form: arn:aws:apigateway: *region* :lambda:path/ *path* . The path is usually in the form /2015-03-31/functions/ *LambdaFunctionARN* /invocations. For more information, see the `uri` property of the [Integration](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/) resource in the Amazon API Gateway REST API Reference.
	//
	// If you specified `HTTP` or `AWS` for the `Type` property, you must specify this property.
	Uri *string `json:"uri" yaml:"uri"`
}

`Integration` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that specifies information about the target backend that a method calls.

TODO: EXAMPLE

type CfnMethod_IntegrationResponseProperty

type CfnMethod_IntegrationResponseProperty struct {
	// The status code that API Gateway uses to map the integration response to a [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) status code.
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
	// Specifies how to handle request payload content type conversions. Valid values are:.
	//
	// - `CONVERT_TO_BINARY` : Converts a request payload from a base64-encoded string to a binary blob.
	// - `CONVERT_TO_TEXT` : Converts a request payload from a binary blob to a base64-encoded string.
	//
	// If this property isn't defined, the request payload is passed through from the method request to the integration request without modification.
	ContentHandling *string `json:"contentHandling" yaml:"contentHandling"`
	// The response parameters from the backend response that API Gateway sends to the method response.
	//
	// Specify response parameters as key-value pairs ( [string-to-string mappings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html) ).
	//
	// Use the destination as the key and the source as the value:
	//
	// - The destination must be an existing response parameter in the [MethodResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-methodresponse.html) property.
	// - The source must be an existing method request parameter or a static value. You must enclose static values in single quotation marks and pre-encode these values based on the destination specified in the request.
	//
	// For more information about templates, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide* .
	ResponseParameters interface{} `json:"responseParameters" yaml:"responseParameters"`
	// The templates that are used to transform the integration response body.
	//
	// Specify templates as key-value pairs (string-to-string mappings), with a content type as the key and a template as the value. For more information, see [API Gateway Mapping Template and Access Logging Variable Reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) in the *API Gateway Developer Guide* .
	ResponseTemplates interface{} `json:"responseTemplates" yaml:"responseTemplates"`
	// A [regular expression](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-regexes.html) that specifies which error strings or status codes from the backend map to the integration response.
	SelectionPattern *string `json:"selectionPattern" yaml:"selectionPattern"`
}

`IntegrationResponse` is a property of the [Amazon API Gateway Method Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html) property type that specifies the response that API Gateway sends after a method's backend finishes processing a request.

TODO: EXAMPLE

type CfnMethod_MethodResponseProperty

type CfnMethod_MethodResponseProperty struct {
	// The method response's status code, which you map to an [IntegrationResponse](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration-integrationresponse.html) .
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
	// The resources used for the response's content type.
	//
	// Specify response models as key-value pairs (string-to-string maps), with a content type as the key and a [Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html) resource name as the value.
	ResponseModels interface{} `json:"responseModels" yaml:"responseModels"`
	// Response parameters that API Gateway sends to the client that called a method.
	//
	// Specify response parameters as key-value pairs (string-to-Boolean maps), with a destination as the key and a Boolean as the value. Specify the destination using the following pattern: `method.response.header. *name*` , where *name* is a valid, unique header name. The Boolean specifies whether a parameter is required.
	ResponseParameters interface{} `json:"responseParameters" yaml:"responseParameters"`
}

`MethodResponse` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that defines the responses that can be sent to the client that calls a method.

TODO: EXAMPLE

type CfnModel

type CfnModel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ContentType() *string
	SetContentType(val *string)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Schema() interface{}
	SetSchema(val interface{})
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::Model`.

The `AWS::ApiGateway::Model` resource defines the structure of a request or response payload for an API method.

TODO: EXAMPLE

func NewCfnModel

func NewCfnModel(scope constructs.Construct, id *string, props *CfnModelProps) CfnModel

Create a new `AWS::ApiGateway::Model`.

type CfnModelProps

type CfnModelProps struct {
	// The ID of a REST API with which to associate this model.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The content type for the model.
	ContentType *string `json:"contentType" yaml:"contentType"`
	// A description that identifies this model.
	Description *string `json:"description" yaml:"description"`
	// A name for the model.
	//
	// If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the model name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .
	//
	// > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
	Name *string `json:"name" yaml:"name"`
	// The schema to use to transform data to one or more output formats.
	//
	// Specify null ( `{}` ) if you don't want to specify a schema.
	Schema interface{} `json:"schema" yaml:"schema"`
}

Properties for defining a `CfnModel`.

TODO: EXAMPLE

type CfnRequestValidator

type CfnRequestValidator interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrRequestValidatorId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	ValidateRequestBody() interface{}
	SetValidateRequestBody(val interface{})
	ValidateRequestParameters() interface{}
	SetValidateRequestParameters(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::RequestValidator`.

The `AWS::ApiGateway::RequestValidator` resource sets up basic validation rules for incoming requests to your API. For more information, see [Enable Basic Request Validation for an API in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide* .

TODO: EXAMPLE

func NewCfnRequestValidator

func NewCfnRequestValidator(scope constructs.Construct, id *string, props *CfnRequestValidatorProps) CfnRequestValidator

Create a new `AWS::ApiGateway::RequestValidator`.

type CfnRequestValidatorProps

type CfnRequestValidatorProps struct {
	// The identifier of the targeted API entity.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The name of this request validator.
	Name *string `json:"name" yaml:"name"`
	// Indicates whether to validate the request body according to the configured schema for the targeted API and method.
	ValidateRequestBody interface{} `json:"validateRequestBody" yaml:"validateRequestBody"`
	// Indicates whether to validate request parameters.
	ValidateRequestParameters interface{} `json:"validateRequestParameters" yaml:"validateRequestParameters"`
}

Properties for defining a `CfnRequestValidator`.

TODO: EXAMPLE

type CfnResource

type CfnResource interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrResourceId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	LogicalId() *string
	Node() constructs.Node
	ParentId() *string
	SetParentId(val *string)
	PathPart() *string
	SetPathPart(val *string)
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::Resource`.

The `AWS::ApiGateway::Resource` resource creates a resource in an API.

TODO: EXAMPLE

func NewCfnResource

func NewCfnResource(scope constructs.Construct, id *string, props *CfnResourceProps) CfnResource

Create a new `AWS::ApiGateway::Resource`.

type CfnResourceProps

type CfnResourceProps struct {
	// If you want to create a child resource, the ID of the parent resource.
	//
	// For resources without a parent, specify the `RestApi` root resource ID, such as `{ "Fn::GetAtt": ["MyRestApi", "RootResourceId"] }` .
	ParentId *string `json:"parentId" yaml:"parentId"`
	// A path name for the resource.
	PathPart *string `json:"pathPart" yaml:"pathPart"`
	// The ID of the [RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource in which you want to create this resource.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
}

Properties for defining a `CfnResource`.

TODO: EXAMPLE

type CfnRestApi

type CfnRestApi interface {
	awscdk.CfnResource
	awscdk.IInspectable
	ApiKeySourceType() *string
	SetApiKeySourceType(val *string)
	AttrRootResourceId() *string
	BinaryMediaTypes() *[]*string
	SetBinaryMediaTypes(val *[]*string)
	Body() interface{}
	SetBody(val interface{})
	BodyS3Location() interface{}
	SetBodyS3Location(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CloneFrom() *string
	SetCloneFrom(val *string)
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	DisableExecuteApiEndpoint() interface{}
	SetDisableExecuteApiEndpoint(val interface{})
	EndpointConfiguration() interface{}
	SetEndpointConfiguration(val interface{})
	FailOnWarnings() interface{}
	SetFailOnWarnings(val interface{})
	LogicalId() *string
	MinimumCompressionSize() *float64
	SetMinimumCompressionSize(val *float64)
	Mode() *string
	SetMode(val *string)
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Parameters() interface{}
	SetParameters(val interface{})
	Policy() interface{}
	SetPolicy(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::RestApi`.

The `AWS::ApiGateway::RestApi` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/api-reference/link-relation/restapi-create/) in the *Amazon API Gateway REST API Reference* .

> On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/) , becoming the foundation of the OpenAPI Specification.

TODO: EXAMPLE

func NewCfnRestApi

func NewCfnRestApi(scope constructs.Construct, id *string, props *CfnRestApiProps) CfnRestApi

Create a new `AWS::ApiGateway::RestApi`.

type CfnRestApiProps

type CfnRestApiProps struct {
	// The source of the API key for metering requests according to a usage plan. Valid values are:.
	//
	// - `HEADER` to read the API key from the `X-API-Key` header of a request.
	// - `AUTHORIZER` to read the API key from the `UsageIdentifierKey` from a Lambda authorizer.
	ApiKeySourceType *string `json:"apiKeySourceType" yaml:"apiKeySourceType"`
	// The list of binary media types that are supported by the `RestApi` resource.
	//
	// Use `~1` instead of `/` in the media types, for example `image~1png` or `application~1octet-stream` . By default, `RestApi` supports only UTF-8-encoded text payloads. Duplicates are not allowed. For more information, see [Enable Support for Binary Payloads in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-payload-encodings.html) in the *API Gateway Developer Guide* .
	BinaryMediaTypes *[]*string `json:"binaryMediaTypes" yaml:"binaryMediaTypes"`
	// An OpenAPI specification that defines a set of RESTful APIs in JSON format.
	//
	// For YAML templates, you can also provide the specification in YAML format.
	Body interface{} `json:"body" yaml:"body"`
	// The Amazon Simple Storage Service (Amazon S3) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format.
	BodyS3Location interface{} `json:"bodyS3Location" yaml:"bodyS3Location"`
	// The ID of the `RestApi` resource that you want to clone.
	CloneFrom *string `json:"cloneFrom" yaml:"cloneFrom"`
	// A description of the `RestApi` resource.
	Description *string `json:"description" yaml:"description"`
	// Specifies whether clients can invoke your API by using the default `execute-api` endpoint.
	//
	// By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint.
	DisableExecuteApiEndpoint interface{} `json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"`
	// A list of the endpoint types of the API.
	//
	// Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the `Parameters` property.
	EndpointConfiguration interface{} `json:"endpointConfiguration" yaml:"endpointConfiguration"`
	// Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the `RestApi` resource.
	FailOnWarnings interface{} `json:"failOnWarnings" yaml:"failOnWarnings"`
	// A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API.
	//
	// When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.
	MinimumCompressionSize *float64 `json:"minimumCompressionSize" yaml:"minimumCompressionSize"`
	// This property applies only when you use OpenAPI to define your REST API.
	//
	// The `Mode` determines how API Gateway handles resource updates.
	//
	// Valid values are `overwrite` or `merge` .
	//
	// For `overwrite` , the new API definition replaces the existing one. The existing API identifier remains unchanged.
	//
	// For `merge` , the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API. Use `merge` to define top-level `RestApi` properties in addition to using OpenAPI. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties.
	//
	// If you don't specify this property, a default value is chosen. For REST APIs created before March 29, 2021, the default is `overwrite` . Otherwise, the default value is `merge` .
	Mode *string `json:"mode" yaml:"mode"`
	// A name for the `RestApi` resource.
	Name *string `json:"name" yaml:"name"`
	// Custom header parameters for the request.
	Parameters interface{} `json:"parameters" yaml:"parameters"`
	// A policy document that contains the permissions for the `RestApi` resource.
	//
	// To set the ARN for the policy, use the `!Join` intrinsic function with `""` as delimiter and values of `"execute-api:/"` and `"*"` .
	Policy interface{} `json:"policy" yaml:"policy"`
	// An array of arbitrary tags (key-value pairs) to associate with the API.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnRestApi`.

TODO: EXAMPLE

type CfnRestApi_EndpointConfigurationProperty

type CfnRestApi_EndpointConfigurationProperty struct {
	// A list of endpoint types of an API or its custom domain name. Valid values include:.
	//
	// - `EDGE` : For an edge-optimized API and its custom domain name.
	// - `REGIONAL` : For a regional API and its custom domain name.
	// - `PRIVATE` : For a private API.
	Types *[]*string `json:"types" yaml:"types"`
	// A list of VPC endpoint IDs of an API ( [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) ) against which to create Route53 ALIASes. It is only supported for `PRIVATE` endpoint type.
	VpcEndpointIds *[]*string `json:"vpcEndpointIds" yaml:"vpcEndpointIds"`
}

The `EndpointConfiguration` property type specifies the endpoint types of a REST API.

`EndpointConfiguration` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource.

TODO: EXAMPLE

type CfnRestApi_S3LocationProperty

type CfnRestApi_S3LocationProperty struct {
	// The name of the S3 bucket where the OpenAPI file is stored.
	Bucket *string `json:"bucket" yaml:"bucket"`
	// The Amazon S3 ETag (a file checksum) of the OpenAPI file.
	//
	// If you don't specify a value, API Gateway skips ETag validation of your OpenAPI file.
	ETag *string `json:"eTag" yaml:"eTag"`
	// The file name of the OpenAPI file (Amazon S3 object name).
	Key *string `json:"key" yaml:"key"`
	// For versioning-enabled buckets, a specific version of the OpenAPI file.
	Version *string `json:"version" yaml:"version"`
}

`S3Location` is a property of the [AWS::ApiGateway::RestApi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource that specifies the Amazon S3 location of a OpenAPI (formerly Swagger) file that defines a set of RESTful APIs in JSON or YAML.

> On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/) , becoming the foundation of the OpenAPI Specification.

TODO: EXAMPLE

type CfnStage

type CfnStage interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AccessLogSetting() interface{}
	SetAccessLogSetting(val interface{})
	CacheClusterEnabled() interface{}
	SetCacheClusterEnabled(val interface{})
	CacheClusterSize() *string
	SetCacheClusterSize(val *string)
	CanarySetting() interface{}
	SetCanarySetting(val interface{})
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	ClientCertificateId() *string
	SetClientCertificateId(val *string)
	CreationStack() *[]*string
	DeploymentId() *string
	SetDeploymentId(val *string)
	Description() *string
	SetDescription(val *string)
	DocumentationVersion() *string
	SetDocumentationVersion(val *string)
	LogicalId() *string
	MethodSettings() interface{}
	SetMethodSettings(val interface{})
	Node() constructs.Node
	Ref() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Stack() awscdk.Stack
	StageName() *string
	SetStageName(val *string)
	Tags() awscdk.TagManager
	TracingEnabled() interface{}
	SetTracingEnabled(val interface{})
	UpdatedProperites() *map[string]interface{}
	Variables() interface{}
	SetVariables(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::Stage`.

The `AWS::ApiGateway::Stage` resource creates a stage for a deployment.

TODO: EXAMPLE

func NewCfnStage

func NewCfnStage(scope constructs.Construct, id *string, props *CfnStageProps) CfnStage

Create a new `AWS::ApiGateway::Stage`.

type CfnStageProps

type CfnStageProps struct {
	// The ID of the `RestApi` resource that you're deploying with this stage.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// Specifies settings for logging access in this stage.
	AccessLogSetting interface{} `json:"accessLogSetting" yaml:"accessLogSetting"`
	// Indicates whether cache clustering is enabled for the stage.
	CacheClusterEnabled interface{} `json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"`
	// The stage's cache cluster size.
	CacheClusterSize *string `json:"cacheClusterSize" yaml:"cacheClusterSize"`
	// Specifies settings for the canary deployment in this stage.
	CanarySetting interface{} `json:"canarySetting" yaml:"canarySetting"`
	// The ID of the client certificate that API Gateway uses to call your integration endpoints in the stage.
	ClientCertificateId *string `json:"clientCertificateId" yaml:"clientCertificateId"`
	// The ID of the deployment that the stage is associated with.
	//
	// This parameter is required to create a stage.
	DeploymentId *string `json:"deploymentId" yaml:"deploymentId"`
	// A description of the stage.
	Description *string `json:"description" yaml:"description"`
	// The version ID of the API documentation snapshot.
	DocumentationVersion *string `json:"documentationVersion" yaml:"documentationVersion"`
	// Settings for all methods in the stage.
	MethodSettings interface{} `json:"methodSettings" yaml:"methodSettings"`
	// The name of the stage, which API Gateway uses as the first path segment in the invoked Uniform Resource Identifier (URI).
	StageName *string `json:"stageName" yaml:"stageName"`
	// An array of arbitrary tags (key-value pairs) to associate with the stage.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// Specifies whether active X-Ray tracing is enabled for this stage.
	//
	// For more information, see [Trace API Gateway API Execution with AWS X-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide* .
	TracingEnabled interface{} `json:"tracingEnabled" yaml:"tracingEnabled"`
	// A map (string-to-string map) that defines the stage variables, where the variable name is the key and the variable value is the value.
	//
	// Variable names are limited to alphanumeric characters. Values must match the following regular expression: `[A-Za-z0-9-._~:/?#&=,]+` .
	Variables interface{} `json:"variables" yaml:"variables"`
}

Properties for defining a `CfnStage`.

TODO: EXAMPLE

type CfnStage_AccessLogSettingProperty

type CfnStage_AccessLogSettingProperty struct {
	// The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs.
	//
	// If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with `amazon-apigateway-` . This parameter is required to enable access logging.
	DestinationArn *string `json:"destinationArn" yaml:"destinationArn"`
	// A single line format of the access logs of data, as specified by selected [$context variables](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference) . The format must include at least `$context.requestId` . This parameter is required to enable access logging.
	Format *string `json:"format" yaml:"format"`
}

The `AccessLogSetting` property type specifies settings for logging access in this stage.

`AccessLogSetting` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.

TODO: EXAMPLE

type CfnStage_CanarySettingProperty

type CfnStage_CanarySettingProperty struct {
	// The identifier of the deployment that the stage points to.
	DeploymentId *string `json:"deploymentId" yaml:"deploymentId"`
	// The percentage (0-100) of traffic diverted to a canary deployment.
	PercentTraffic *float64 `json:"percentTraffic" yaml:"percentTraffic"`
	// Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary.
	//
	// These stage variables are represented as a string-to-string map between stage variable names and their values.
	//
	// Duplicates are not allowed.
	StageVariableOverrides interface{} `json:"stageVariableOverrides" yaml:"stageVariableOverrides"`
	// Whether the canary deployment uses the stage cache or not.
	UseStageCache interface{} `json:"useStageCache" yaml:"useStageCache"`
}

The `CanarySetting` property type specifies settings for the canary deployment in this stage.

`CanarySetting` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.

TODO: EXAMPLE

type CfnStage_MethodSettingProperty

type CfnStage_MethodSettingProperty struct {
	// Indicates whether the cached responses are encrypted.
	CacheDataEncrypted interface{} `json:"cacheDataEncrypted" yaml:"cacheDataEncrypted"`
	// The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses.
	CacheTtlInSeconds *float64 `json:"cacheTtlInSeconds" yaml:"cacheTtlInSeconds"`
	// Indicates whether responses are cached and returned for requests.
	//
	// You must enable a cache cluster on the stage to cache responses.
	CachingEnabled interface{} `json:"cachingEnabled" yaml:"cachingEnabled"`
	// Indicates whether data trace logging is enabled for methods in the stage.
	//
	// API Gateway pushes these logs to Amazon CloudWatch Logs.
	DataTraceEnabled interface{} `json:"dataTraceEnabled" yaml:"dataTraceEnabled"`
	// The HTTP method.
	//
	// To apply settings to multiple resources and methods, specify an asterisk ( `*` ) for the `HttpMethod` and `/*` for the `ResourcePath` . This parameter is required when you specify a `MethodSetting` .
	HttpMethod *string `json:"httpMethod" yaml:"httpMethod"`
	// The logging level for this method.
	//
	// For valid values, see the `loggingLevel` property of the [Stage](https://docs.aws.amazon.com/apigateway/api-reference/resource/stage/#loggingLevel) resource in the *Amazon API Gateway API Reference* .
	LoggingLevel *string `json:"loggingLevel" yaml:"loggingLevel"`
	// Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage.
	MetricsEnabled interface{} `json:"metricsEnabled" yaml:"metricsEnabled"`
	// The resource path for this method.
	//
	// Forward slashes ( `/` ) are encoded as `~1` and the initial slash must include a forward slash. For example, the path value `/resource/subresource` must be encoded as `/~1resource~1subresource` . To specify the root path, use only a slash ( `/` ). To apply settings to multiple resources and methods, specify an asterisk ( `*` ) for the `HttpMethod` and `/*` for the `ResourcePath` . This parameter is required when you specify a `MethodSetting` .
	ResourcePath *string `json:"resourcePath" yaml:"resourcePath"`
	// The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account .
	//
	// For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	ThrottlingBurstLimit *float64 `json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"`
	// The number of steady-state requests per second that API Gateway permits across all APIs, stages, and methods in your AWS account .
	//
	// For more information, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	ThrottlingRateLimit *float64 `json:"throttlingRateLimit" yaml:"throttlingRateLimit"`
}

The `MethodSetting` property type configures settings for all methods in a stage.

The `MethodSettings` property of the `AWS::ApiGateway::Stage` resource contains a list of `MethodSetting` property types.

TODO: EXAMPLE

type CfnUsagePlan

type CfnUsagePlan interface {
	awscdk.CfnResource
	awscdk.IInspectable
	ApiStages() interface{}
	SetApiStages(val interface{})
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Node() constructs.Node
	Quota() interface{}
	SetQuota(val interface{})
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	Throttle() interface{}
	SetThrottle(val interface{})
	UpdatedProperites() *map[string]interface{}
	UsagePlanName() *string
	SetUsagePlanName(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::UsagePlan`.

The `AWS::ApiGateway::UsagePlan` resource creates a usage plan for deployed APIs. A usage plan sets a target for the throttling and quota limits on individual client API keys. For more information, see [Creating and Using API Usage Plans in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide* .

In some cases clients can exceed the targets that you set. Don’t rely on usage plans to control costs. Consider using [AWS Budgets](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests.

TODO: EXAMPLE

func NewCfnUsagePlan

func NewCfnUsagePlan(scope constructs.Construct, id *string, props *CfnUsagePlanProps) CfnUsagePlan

Create a new `AWS::ApiGateway::UsagePlan`.

type CfnUsagePlanKey

type CfnUsagePlanKey interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AttrId() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	KeyId() *string
	SetKeyId(val *string)
	KeyType() *string
	SetKeyType(val *string)
	LogicalId() *string
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	UpdatedProperites() *map[string]interface{}
	UsagePlanId() *string
	SetUsagePlanId(val *string)
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::UsagePlanKey`.

The `AWS::ApiGateway::UsagePlanKey` resource associates an API key with a usage plan. This association determines which users the usage plan is applied to.

TODO: EXAMPLE

func NewCfnUsagePlanKey

func NewCfnUsagePlanKey(scope constructs.Construct, id *string, props *CfnUsagePlanKeyProps) CfnUsagePlanKey

Create a new `AWS::ApiGateway::UsagePlanKey`.

type CfnUsagePlanKeyProps

type CfnUsagePlanKeyProps struct {
	// The ID of the usage plan key.
	KeyId *string `json:"keyId" yaml:"keyId"`
	// The type of usage plan key.
	//
	// Currently, the only valid key type is `API_KEY` .
	KeyType *string `json:"keyType" yaml:"keyType"`
	// The ID of the usage plan.
	UsagePlanId *string `json:"usagePlanId" yaml:"usagePlanId"`
}

Properties for defining a `CfnUsagePlanKey`.

TODO: EXAMPLE

type CfnUsagePlanProps

type CfnUsagePlanProps struct {
	// The API stages to associate with this usage plan.
	ApiStages interface{} `json:"apiStages" yaml:"apiStages"`
	// A description of the usage plan.
	Description *string `json:"description" yaml:"description"`
	// Configures the number of requests that users can make within a given interval.
	Quota interface{} `json:"quota" yaml:"quota"`
	// An array of arbitrary tags (key-value pairs) to associate with the usage plan.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
	// Configures the overall request rate (average requests per second) and burst capacity.
	Throttle interface{} `json:"throttle" yaml:"throttle"`
	// A name for the usage plan.
	UsagePlanName *string `json:"usagePlanName" yaml:"usagePlanName"`
}

Properties for defining a `CfnUsagePlan`.

TODO: EXAMPLE

type CfnUsagePlan_ApiStageProperty

type CfnUsagePlan_ApiStageProperty struct {
	// The ID of an API that is in the specified `Stage` property that you want to associate with the usage plan.
	ApiId *string `json:"apiId" yaml:"apiId"`
	// The name of the stage to associate with the usage plan.
	Stage *string `json:"stage" yaml:"stage"`
	// Map containing method-level throttling information for an API stage in a usage plan.
	//
	// The key for the map is the path and method for which to configure custom throttling, for example, "/pets/GET".
	//
	// Duplicates are not allowed.
	Throttle interface{} `json:"throttle" yaml:"throttle"`
}

`ApiStage` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies which stages and APIs to associate with a usage plan.

TODO: EXAMPLE

type CfnUsagePlan_QuotaSettingsProperty

type CfnUsagePlan_QuotaSettingsProperty struct {
	// The target maximum number of requests that can be made in a given time period.
	Limit *float64 `json:"limit" yaml:"limit"`
	// The day that a time period starts.
	//
	// For example, with a time period of `WEEK` , an offset of `0` starts on Sunday, and an offset of `1` starts on Monday.
	Offset *float64 `json:"offset" yaml:"offset"`
	// The time period for which the target maximum limit of requests applies, such as `DAY` or `WEEK` .
	//
	// For valid values, see the period property for the [UsagePlan](https://docs.aws.amazon.com/apigateway/api-reference/resource/usage-plan) resource in the *Amazon API Gateway REST API Reference* .
	Period *string `json:"period" yaml:"period"`
}

`QuotaSettings` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs.

In some cases clients can exceed the targets that you set. Don’t rely on usage plans to control costs. Consider using [AWS Budgets](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests.

TODO: EXAMPLE

type CfnUsagePlan_ThrottleSettingsProperty

type CfnUsagePlan_ThrottleSettingsProperty struct {
	// The API target request burst rate limit.
	//
	// This allows more requests through for a period of time than the target rate limit. For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	BurstLimit *float64 `json:"burstLimit" yaml:"burstLimit"`
	// The API target request steady-state rate limit.
	//
	// For more information about request throttling, see [Manage API Request Throttling](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html) in the *API Gateway Developer Guide* .
	RateLimit *float64 `json:"rateLimit" yaml:"rateLimit"`
}

`ThrottleSettings` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs.

TODO: EXAMPLE

type CfnVpcLink interface {
	awscdk.CfnResource
	awscdk.IInspectable
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CreationStack() *[]*string
	Description() *string
	SetDescription(val *string)
	LogicalId() *string
	Name() *string
	SetName(val *string)
	Node() constructs.Node
	Ref() *string
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	TargetArns() *[]*string
	SetTargetArns(val *[]*string)
	UpdatedProperites() *map[string]interface{}
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OverrideLogicalId(newLogicalId *string)
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	ToString() *string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::ApiGateway::VpcLink`.

The `AWS::ApiGateway::VpcLink` resource creates an API Gateway VPC link for a REST API to access resources in an Amazon Virtual Private Cloud (VPC). For more information, see [vpclink:create](https://docs.aws.amazon.com/apigateway/api-reference/link-relation/vpclink-create/) in the `Amazon API Gateway REST API Reference` .

TODO: EXAMPLE

func NewCfnVpcLink(scope constructs.Construct, id *string, props *CfnVpcLinkProps) CfnVpcLink

Create a new `AWS::ApiGateway::VpcLink`.

type CfnVpcLinkProps

type CfnVpcLinkProps struct {
	// A name for the VPC link.
	Name *string `json:"name" yaml:"name"`
	// The ARN of network load balancer of the VPC targeted by the VPC link.
	//
	// The network load balancer must be owned by the same AWS account of the API owner.
	TargetArns *[]*string `json:"targetArns" yaml:"targetArns"`
	// A description of the VPC link.
	Description *string `json:"description" yaml:"description"`
	// An array of arbitrary tags (key-value pairs) to associate with the VPC link.
	Tags *[]*awscdk.CfnTag `json:"tags" yaml:"tags"`
}

Properties for defining a `CfnVpcLink`.

TODO: EXAMPLE

type CognitoUserPoolsAuthorizer

type CognitoUserPoolsAuthorizer interface {
	Authorizer
	IAuthorizer
	AuthorizationType() AuthorizationType
	AuthorizerArn() *string
	AuthorizerId() *string
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Cognito user pools based custom authorizer.

TODO: EXAMPLE

func NewCognitoUserPoolsAuthorizer

func NewCognitoUserPoolsAuthorizer(scope constructs.Construct, id *string, props *CognitoUserPoolsAuthorizerProps) CognitoUserPoolsAuthorizer

type CognitoUserPoolsAuthorizerProps

type CognitoUserPoolsAuthorizerProps struct {
	// The user pools to associate with this authorizer.
	CognitoUserPools *[]awscognito.IUserPool `json:"cognitoUserPools" yaml:"cognitoUserPools"`
	// An optional human friendly name for the authorizer.
	//
	// Note that, this is not the primary identifier of the authorizer.
	AuthorizerName *string `json:"authorizerName" yaml:"authorizerName"`
	// The request header mapping expression for the bearer token.
	//
	// This is typically passed as part of the header, in which case
	// this should be `method.request.header.Authorizer` where Authorizer is the header containing the bearer token.
	// See: https://docs.aws.amazon.com/apigateway/api-reference/link-relation/authorizer-create/#identitySource
	//
	IdentitySource *string `json:"identitySource" yaml:"identitySource"`
	// How long APIGateway should cache the results.
	//
	// Max 1 hour.
	// Disable caching by setting this to 0.
	ResultsCacheTtl awscdk.Duration `json:"resultsCacheTtl" yaml:"resultsCacheTtl"`
}

Properties for CognitoUserPoolsAuthorizer.

TODO: EXAMPLE

type ConnectionType

type ConnectionType string

TODO: EXAMPLE

const (
	ConnectionType_INTERNET ConnectionType = "INTERNET"
	ConnectionType_VPC_LINK ConnectionType = "VPC_LINK"
)

type ContentHandling

type ContentHandling string

TODO: EXAMPLE

const (
	ContentHandling_CONVERT_TO_BINARY ContentHandling = "CONVERT_TO_BINARY"
	ContentHandling_CONVERT_TO_TEXT   ContentHandling = "CONVERT_TO_TEXT"
)

type Cors

type Cors interface {
}

TODO: EXAMPLE

type CorsOptions

type CorsOptions struct {
	// Specifies the list of origins that are allowed to make requests to this resource.
	//
	// If you wish to allow all origins, specify `Cors.ALL_ORIGINS` or
	// `[ * ]`.
	//
	// Responses will include the `Access-Control-Allow-Origin` response header.
	// If `Cors.ALL_ORIGINS` is specified, the `Vary: Origin` response header will
	// also be included.
	// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
	//
	AllowOrigins *[]*string `json:"allowOrigins" yaml:"allowOrigins"`
	// The Access-Control-Allow-Credentials response header tells browsers whether to expose the response to frontend JavaScript code when the request's credentials mode (Request.credentials) is "include".
	//
	// When a request's credentials mode (Request.credentials) is "include",
	// browsers will only expose the response to frontend JavaScript code if the
	// Access-Control-Allow-Credentials value is true.
	//
	// Credentials are cookies, authorization headers or TLS client certificates.
	// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
	//
	AllowCredentials *bool `json:"allowCredentials" yaml:"allowCredentials"`
	// The Access-Control-Allow-Headers response header is used in response to a preflight request which includes the Access-Control-Request-Headers to indicate which HTTP headers can be used during the actual request.
	// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
	//
	AllowHeaders *[]*string `json:"allowHeaders" yaml:"allowHeaders"`
	// The Access-Control-Allow-Methods response header specifies the method or methods allowed when accessing the resource in response to a preflight request.
	//
	// If `ANY` is specified, it will be expanded to `Cors.ALL_METHODS`.
	// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
	//
	AllowMethods *[]*string `json:"allowMethods" yaml:"allowMethods"`
	// Sets Access-Control-Max-Age to -1, which means that caching is disabled.
	//
	// This option cannot be used with `maxAge`.
	DisableCache *bool `json:"disableCache" yaml:"disableCache"`
	// The Access-Control-Expose-Headers response header indicates which headers can be exposed as part of the response by listing their names.
	//
	// If you want clients to be able to access other headers, you have to list
	// them using the Access-Control-Expose-Headers header.
	// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
	//
	ExposeHeaders *[]*string `json:"exposeHeaders" yaml:"exposeHeaders"`
	// The Access-Control-Max-Age response header indicates how long the results of a preflight request (that is the information contained in the Access-Control-Allow-Methods and Access-Control-Allow-Headers headers) can be cached.
	//
	// To disable caching altogether use `disableCache: true`.
	// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age
	//
	MaxAge awscdk.Duration `json:"maxAge" yaml:"maxAge"`
	// Specifies the response status code returned from the OPTIONS method.
	StatusCode *float64 `json:"statusCode" yaml:"statusCode"`
}

TODO: EXAMPLE

type Deployment

type Deployment interface {
	awscdk.Resource
	Api() IRestApi
	DeploymentId() *string
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	AddToLogicalId(data interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

A Deployment of a REST API.

An immutable representation of a RestApi resource that can be called by users using Stages. A deployment must be associated with a Stage for it to be callable over the Internet.

Normally, you don't need to define deployments manually. The RestApi construct manages a Deployment resource that represents the latest model. It can be accessed through `restApi.latestDeployment` (unless `deploy: false` is set when defining the `RestApi`).

If you manually define this resource, you will need to know that since deployments are immutable, as long as the resource's logical ID doesn't change, the deployment will represent the snapshot in time in which the resource was created. This means that if you modify the RestApi model (i.e. add methods or resources), these changes will not be reflected unless a new deployment resource is created.

To achieve this behavior, the method `addToLogicalId(data)` can be used to augment the logical ID generated for the deployment resource such that it will include arbitrary data. This is done automatically for the `restApi.latestDeployment` deployment.

Furthermore, since a deployment does not reference any of the REST API resources and methods, CloudFormation will likely provision it before these resources are created, which means that it will represent a "half-baked" model. Use the `node.addDependency(dep)` method to circumvent that. This is done automatically for the `restApi.latestDeployment` deployment.

TODO: EXAMPLE

func NewDeployment

func NewDeployment(scope constructs.Construct, id *string, props *DeploymentProps) Deployment

type DeploymentProps

type DeploymentProps struct {
	// The Rest API to deploy.
	Api IRestApi `json:"api" yaml:"api"`
	// A description of the purpose of the API Gateway deployment.
	Description *string `json:"description" yaml:"description"`
	// When an API Gateway model is updated, a new deployment will automatically be created.
	//
	// If this is true, the old API Gateway Deployment resource will not be deleted.
	// This will allow manually reverting back to a previous deployment in case for example
	RetainDeployments *bool `json:"retainDeployments" yaml:"retainDeployments"`
}

TODO: EXAMPLE

type DomainName

type DomainName interface {
	awscdk.Resource
	IDomainName
	DomainName() *string
	DomainNameAliasDomainName() *string
	DomainNameAliasHostedZoneId() *string
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	AddBasePathMapping(targetApi IRestApi, options *BasePathMappingOptions) BasePathMapping
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

TODO: EXAMPLE

func NewDomainName

func NewDomainName(scope constructs.Construct, id *string, props *DomainNameProps) DomainName

type DomainNameAttributes

type DomainNameAttributes struct {
	// The domain name (e.g. `example.com`).
	DomainName *string `json:"domainName" yaml:"domainName"`
	// The Route53 hosted zone ID to use in order to connect a record set to this domain through an alias.
	DomainNameAliasHostedZoneId *string `json:"domainNameAliasHostedZoneId" yaml:"domainNameAliasHostedZoneId"`
	// The Route53 alias target to use in order to connect a record set to this domain through an alias.
	DomainNameAliasTarget *string `json:"domainNameAliasTarget" yaml:"domainNameAliasTarget"`
}

TODO: EXAMPLE

type DomainNameOptions

type DomainNameOptions struct {
	// The reference to an AWS-managed certificate for use by the edge-optimized endpoint for the domain name.
	//
	// For "EDGE" domain names, the certificate
	// needs to be in the US East (N. Virginia) region.
	Certificate awscertificatemanager.ICertificate `json:"certificate" yaml:"certificate"`
	// The custom domain name for your API.
	//
	// Uppercase letters are not supported.
	DomainName *string `json:"domainName" yaml:"domainName"`
	// The base path name that callers of the API must provide in the URL after the domain name (e.g. `example.com/base-path`). If you specify this property, it can't be an empty string.
	BasePath *string `json:"basePath" yaml:"basePath"`
	// The type of endpoint for this DomainName.
	EndpointType EndpointType `json:"endpointType" yaml:"endpointType"`
	// The mutual TLS authentication configuration for a custom domain name.
	Mtls *MTLSConfig `json:"mtls" yaml:"mtls"`
	// The Transport Layer Security (TLS) version + cipher suite for this domain name.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html
	//
	SecurityPolicy SecurityPolicy `json:"securityPolicy" yaml:"securityPolicy"`
}

TODO: EXAMPLE

type DomainNameProps

type DomainNameProps struct {
	// The reference to an AWS-managed certificate for use by the edge-optimized endpoint for the domain name.
	//
	// For "EDGE" domain names, the certificate
	// needs to be in the US East (N. Virginia) region.
	Certificate awscertificatemanager.ICertificate `json:"certificate" yaml:"certificate"`
	// The custom domain name for your API.
	//
	// Uppercase letters are not supported.
	DomainName *string `json:"domainName" yaml:"domainName"`
	// The base path name that callers of the API must provide in the URL after the domain name (e.g. `example.com/base-path`). If you specify this property, it can't be an empty string.
	BasePath *string `json:"basePath" yaml:"basePath"`
	// The type of endpoint for this DomainName.
	EndpointType EndpointType `json:"endpointType" yaml:"endpointType"`
	// The mutual TLS authentication configuration for a custom domain name.
	Mtls *MTLSConfig `json:"mtls" yaml:"mtls"`
	// The Transport Layer Security (TLS) version + cipher suite for this domain name.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html
	//
	SecurityPolicy SecurityPolicy `json:"securityPolicy" yaml:"securityPolicy"`
	// If specified, all requests to this domain will be mapped to the production deployment of this API.
	//
	// If you wish to map this domain to multiple APIs
	// with different base paths, don't specify this option and use
	// `addBasePathMapping`.
	Mapping IRestApi `json:"mapping" yaml:"mapping"`
}

TODO: EXAMPLE

type EndpointConfiguration

type EndpointConfiguration struct {
	// A list of endpoint types of an API or its custom domain name.
	Types *[]EndpointType `json:"types" yaml:"types"`
	// A list of VPC Endpoints against which to create Route53 ALIASes.
	VpcEndpoints *[]awsec2.IVpcEndpoint `json:"vpcEndpoints" yaml:"vpcEndpoints"`
}

The endpoint configuration of a REST API, including VPCs and endpoint types.

EndpointConfiguration is a property of the AWS::ApiGateway::RestApi resource.

TODO: EXAMPLE

type EndpointType

type EndpointType string

TODO: EXAMPLE

const (
	EndpointType_EDGE     EndpointType = "EDGE"
	EndpointType_REGIONAL EndpointType = "REGIONAL"
	EndpointType_PRIVATE  EndpointType = "PRIVATE"
)

type GatewayResponse

type GatewayResponse interface {
	awscdk.Resource
	IGatewayResponse
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Configure the response received by clients, produced from the API Gateway backend.

TODO: EXAMPLE

func NewGatewayResponse

func NewGatewayResponse(scope constructs.Construct, id *string, props *GatewayResponseProps) GatewayResponse

type GatewayResponseOptions

type GatewayResponseOptions struct {
	// Response type to associate with gateway response.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html
	//
	Type ResponseType `json:"type" yaml:"type"`
	// Custom headers parameters for response.
	ResponseHeaders *map[string]*string `json:"responseHeaders" yaml:"responseHeaders"`
	// Http status code for response.
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
	// Custom templates to get mapped as response.
	Templates *map[string]*string `json:"templates" yaml:"templates"`
}

Options to add gateway response.

TODO: EXAMPLE

type GatewayResponseProps

type GatewayResponseProps struct {
	// Response type to associate with gateway response.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html
	//
	Type ResponseType `json:"type" yaml:"type"`
	// Custom headers parameters for response.
	ResponseHeaders *map[string]*string `json:"responseHeaders" yaml:"responseHeaders"`
	// Http status code for response.
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
	// Custom templates to get mapped as response.
	Templates *map[string]*string `json:"templates" yaml:"templates"`
	// Rest api resource to target.
	RestApi IRestApi `json:"restApi" yaml:"restApi"`
}

Properties for a new gateway response.

TODO: EXAMPLE

type HttpIntegration

type HttpIntegration interface {
	Integration
	Bind(_method Method) *IntegrationConfig
}

You can integrate an API method with an HTTP endpoint using the HTTP proxy integration or the HTTP custom integration,.

With the proxy integration, the setup is simple. You only need to set the HTTP method and the HTTP endpoint URI, according to the backend requirements, if you are not concerned with content encoding or caching.

With the custom integration, the setup is more involved. In addition to the proxy integration setup steps, you need to specify how the incoming request data is mapped to the integration request and how the resulting integration response data is mapped to the method response.

TODO: EXAMPLE

func NewHttpIntegration

func NewHttpIntegration(url *string, props *HttpIntegrationProps) HttpIntegration

type HttpIntegrationProps

type HttpIntegrationProps struct {
	// HTTP method to use when invoking the backend URL.
	HttpMethod *string `json:"httpMethod" yaml:"httpMethod"`
	// Integration options, such as request/resopnse mapping, content handling, etc.
	Options *IntegrationOptions `json:"options" yaml:"options"`
	// Determines whether to use proxy integration or custom integration.
	Proxy *bool `json:"proxy" yaml:"proxy"`
}

TODO: EXAMPLE

type IAccessLogDestination

type IAccessLogDestination interface {
	// Binds this destination to the RestApi Stage.
	Bind(stage IStage) *AccessLogDestinationConfig
}

Access log destination for a RestApi Stage.

type IApiKey

type IApiKey interface {
	awscdk.IResource
	// The API key ARN.
	KeyArn() *string
	// The API key ID.
	KeyId() *string
}

API keys are alphanumeric string values that you distribute to app developer customers to grant access to your API.

func ApiKey_FromApiKeyId

func ApiKey_FromApiKeyId(scope constructs.Construct, id *string, apiKeyId *string) IApiKey

Import an ApiKey by its Id.

type IAuthorizer

type IAuthorizer interface {
	// The authorization type of this authorizer.
	AuthorizationType() AuthorizationType
	// The authorizer ID.
	AuthorizerId() *string
}

Represents an API Gateway authorizer.

type IDomainName

type IDomainName interface {
	awscdk.IResource
	// The domain name (e.g. `example.com`).
	DomainName() *string
	// The Route53 alias target to use in order to connect a record set to this domain through an alias.
	DomainNameAliasDomainName() *string
	// The Route53 hosted zone ID to use in order to connect a record set to this domain through an alias.
	DomainNameAliasHostedZoneId() *string
}

func DomainName_FromDomainNameAttributes

func DomainName_FromDomainNameAttributes(scope constructs.Construct, id *string, attrs *DomainNameAttributes) IDomainName

Imports an existing domain name.

type IGatewayResponse

type IGatewayResponse interface {
	awscdk.IResource
}

Represents gateway response resource.

type IModel

type IModel interface {
	// Returns the model name, such as 'myModel'.
	ModelId() *string
}

func Model_EMPTY_MODEL

func Model_EMPTY_MODEL() IModel

func Model_ERROR_MODEL

func Model_ERROR_MODEL() IModel

func Model_FromModelName

func Model_FromModelName(scope constructs.Construct, id *string, modelName *string) IModel

type IRequestValidator

type IRequestValidator interface {
	awscdk.IResource
	// ID of the request validator, such as abc123.
	RequestValidatorId() *string
}

func RequestValidator_FromRequestValidatorId

func RequestValidator_FromRequestValidatorId(scope constructs.Construct, id *string, requestValidatorId *string) IRequestValidator

type IResource

type IResource interface {
	awscdk.IResource
	// Adds an OPTIONS method to this resource which responds to Cross-Origin Resource Sharing (CORS) preflight requests.
	//
	// Cross-Origin Resource Sharing (CORS) is a mechanism that uses additional
	// HTTP headers to tell browsers to give a web application running at one
	// origin, access to selected resources from a different origin. A web
	// application executes a cross-origin HTTP request when it requests a
	// resource that has a different origin (domain, protocol, or port) from its
	// own.
	//
	// Returns: a `Method` object
	// See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
	//
	AddCorsPreflight(options *CorsOptions) Method
	// Defines a new method for this resource.
	//
	// Returns: The newly created `Method` object.
	AddMethod(httpMethod *string, target Integration, options *MethodOptions) Method
	// Adds a greedy proxy resource ("{proxy+}") and an ANY method to this route.
	AddProxy(options *ProxyResourceOptions) ProxyResource
	// Defines a new child resource where this resource is the parent.
	//
	// Returns: A Resource object
	AddResource(pathPart *string, options *ResourceOptions) Resource
	// Retrieves a child resource by path part.
	//
	// Returns: the child resource or undefined if not found
	GetResource(pathPart *string) IResource
	// Gets or create all resources leading up to the specified path.
	//
	// - Path may only start with "/" if this method is called on the root resource.
	// - All resources are created using default options.
	//
	// Returns: a new or existing resource.
	ResourceForPath(path *string) Resource
	// The rest API that this resource is part of.
	//
	// The reason we need the RestApi object itself and not just the ID is because the model
	// is being tracked by the top-level RestApi object for the purpose of calculating it's
	// hash to determine the ID of the deployment. This allows us to automatically update
	// the deployment when the model of the REST API changes.
	Api() IRestApi
	// Default options for CORS preflight OPTIONS method.
	DefaultCorsPreflightOptions() *CorsOptions
	// An integration to use as a default for all methods created within this API unless an integration is specified.
	DefaultIntegration() Integration
	// Method options to use as a default for all methods created within this API unless custom options are specified.
	DefaultMethodOptions() *MethodOptions
	// The parent of this resource or undefined for the root resource.
	ParentResource() IResource
	// The full path of this resource.
	Path() *string
	// The ID of the resource.
	ResourceId() *string
}

func ProxyResource_FromResourceAttributes

func ProxyResource_FromResourceAttributes(scope constructs.Construct, id *string, attrs *ResourceAttributes) IResource

Import an existing resource.

func Resource_FromResourceAttributes

func Resource_FromResourceAttributes(scope constructs.Construct, id *string, attrs *ResourceAttributes) IResource

Import an existing resource.

type IRestApi

type IRestApi interface {
	awscdk.IResource
	// Gets the "execute-api" ARN.
	//
	// Returns: The "execute-api" ARN.
	ArnForExecuteApi(method *string, path *string, stage *string) *string
	// API Gateway stage that points to the latest deployment (if defined).
	DeploymentStage() Stage
	// API Gateway stage that points to the latest deployment (if defined).
	SetDeploymentStage(d Stage)
	// API Gateway deployment that represents the latest changes of the API.
	//
	// This resource will be automatically updated every time the REST API model changes.
	// `undefined` when no deployment is configured.
	LatestDeployment() Deployment
	// The ID of this API Gateway RestApi.
	RestApiId() *string
	// The resource ID of the root resource.
	RestApiRootResourceId() *string
	// Represents the root resource ("/") of this API. Use it to define the API model:.
	//
	// api.root.addMethod('ANY', redirectToHomePage); // "ANY /"
	//     api.root.addResource('friends').addMethod('GET', getFriendsHandler); // "GET /friends"
	Root() IResource
}

func LambdaRestApi_FromRestApiAttributes

func LambdaRestApi_FromRestApiAttributes(scope constructs.Construct, id *string, attrs *RestApiAttributes) IRestApi

Import an existing RestApi that can be configured with additional Methods and Resources.

func LambdaRestApi_FromRestApiId

func LambdaRestApi_FromRestApiId(scope constructs.Construct, id *string, restApiId *string) IRestApi

Import an existing RestApi.

func RestApi_FromRestApiAttributes

func RestApi_FromRestApiAttributes(scope constructs.Construct, id *string, attrs *RestApiAttributes) IRestApi

Import an existing RestApi that can be configured with additional Methods and Resources.

func RestApi_FromRestApiId

func RestApi_FromRestApiId(scope constructs.Construct, id *string, restApiId *string) IRestApi

Import an existing RestApi.

func StepFunctionsRestApi_FromRestApiAttributes added in v2.1.0

func StepFunctionsRestApi_FromRestApiAttributes(scope constructs.Construct, id *string, attrs *RestApiAttributes) IRestApi

Import an existing RestApi that can be configured with additional Methods and Resources.

func StepFunctionsRestApi_FromRestApiId added in v2.1.0

func StepFunctionsRestApi_FromRestApiId(scope constructs.Construct, id *string, restApiId *string) IRestApi

Import an existing RestApi.

type IStage

type IStage interface {
	awscdk.IResource
	// RestApi to which this stage is associated.
	RestApi() IRestApi
	// Name of this stage.
	StageName() *string
}

Represents an APIGateway Stage.

type IUsagePlan

type IUsagePlan interface {
	awscdk.IResource
	// Adds an ApiKey.
	AddApiKey(apiKey IApiKey, options *AddApiKeyOptions)
	// Id of the usage plan.
	UsagePlanId() *string
}

A UsagePlan, either managed by this CDK app, or imported.

func UsagePlan_FromUsagePlanId

func UsagePlan_FromUsagePlanId(scope constructs.Construct, id *string, usagePlanId *string) IUsagePlan

Import an externally defined usage plan using its ARN.

type IVpcLink interface {
	awscdk.IResource
	// Physical ID of the VpcLink resource.
	VpcLinkId() *string
}

Represents an API Gateway VpcLink.

func VpcLink_FromVpcLinkId(scope constructs.Construct, id *string, vpcLinkId *string) IVpcLink

Import a VPC Link by its Id.

type IdentitySource

type IdentitySource interface {
}

Represents an identity source.

The source can be specified either as a literal value (e.g: `Auth`) which cannot be blank, or as an unresolved string token.

TODO: EXAMPLE

func NewIdentitySource

func NewIdentitySource() IdentitySource

type InlineApiDefinition

type InlineApiDefinition interface {
	ApiDefinition
	Bind(_scope constructs.Construct) *ApiDefinitionConfig
	BindAfterCreate(_scope constructs.Construct, _restApi IRestApi)
}

OpenAPI specification from an inline JSON object.

TODO: EXAMPLE

func ApiDefinition_FromInline

func ApiDefinition_FromInline(definition interface{}) InlineApiDefinition

Create an API definition from an inline object.

The inline object must follow the schema of OpenAPI 2.0 or OpenAPI 3.0

TODO: EXAMPLE

func AssetApiDefinition_FromInline

func AssetApiDefinition_FromInline(definition interface{}) InlineApiDefinition

Create an API definition from an inline object.

The inline object must follow the schema of OpenAPI 2.0 or OpenAPI 3.0

TODO: EXAMPLE

func InlineApiDefinition_FromInline

func InlineApiDefinition_FromInline(definition interface{}) InlineApiDefinition

Create an API definition from an inline object.

The inline object must follow the schema of OpenAPI 2.0 or OpenAPI 3.0

TODO: EXAMPLE

func NewInlineApiDefinition

func NewInlineApiDefinition(definition interface{}) InlineApiDefinition

func S3ApiDefinition_FromInline

func S3ApiDefinition_FromInline(definition interface{}) InlineApiDefinition

Create an API definition from an inline object.

The inline object must follow the schema of OpenAPI 2.0 or OpenAPI 3.0

TODO: EXAMPLE

type Integration

type Integration interface {
	Bind(_method Method) *IntegrationConfig
}

Base class for backend integrations for an API Gateway method.

Use one of the concrete classes such as `MockIntegration`, `AwsIntegration`, `LambdaIntegration` or implement on your own by specifying the set of props.

TODO: EXAMPLE

func NewIntegration

func NewIntegration(props *IntegrationProps) Integration

type IntegrationConfig

type IntegrationConfig struct {
	// Specifies an API method integration type.
	Type IntegrationType `json:"type" yaml:"type"`
	// This value is included in computing the Deployment's fingerprint.
	//
	// When the fingerprint
	// changes, a new deployment is triggered.
	// This property should contain values associated with the Integration that upon changing
	// should trigger a fresh the Deployment needs to be refreshed.
	DeploymentToken *string `json:"deploymentToken" yaml:"deploymentToken"`
	// The integration's HTTP method type.
	IntegrationHttpMethod *string `json:"integrationHttpMethod" yaml:"integrationHttpMethod"`
	// Integration options.
	Options *IntegrationOptions `json:"options" yaml:"options"`
	// The Uniform Resource Identifier (URI) for the integration.
	// See: https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#uri
	//
	Uri *string `json:"uri" yaml:"uri"`
}

Result of binding an Integration to a Method.

TODO: EXAMPLE

type IntegrationOptions

type IntegrationOptions struct {
	// A list of request parameters whose values are to be cached.
	//
	// It determines
	// request parameters that will make it into the cache key.
	CacheKeyParameters *[]*string `json:"cacheKeyParameters" yaml:"cacheKeyParameters"`
	// An API-specific tag group of related cached parameters.
	CacheNamespace *string `json:"cacheNamespace" yaml:"cacheNamespace"`
	// The type of network connection to the integration endpoint.
	ConnectionType ConnectionType `json:"connectionType" yaml:"connectionType"`
	// Specifies how to handle request payload content type conversions.
	ContentHandling ContentHandling `json:"contentHandling" yaml:"contentHandling"`
	// Requires that the caller's identity be passed through from the request.
	CredentialsPassthrough *bool `json:"credentialsPassthrough" yaml:"credentialsPassthrough"`
	// An IAM role that API Gateway assumes.
	//
	// Mutually exclusive with `credentialsPassThrough`.
	CredentialsRole awsiam.IRole `json:"credentialsRole" yaml:"credentialsRole"`
	// The response that API Gateway provides after a method's backend completes processing a request.
	//
	// API Gateway intercepts the response from the
	// backend so that you can control how API Gateway surfaces backend
	// responses. For example, you can map the backend status codes to codes
	// that you define.
	IntegrationResponses *[]*IntegrationResponse `json:"integrationResponses" yaml:"integrationResponses"`
	// Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource.
	//
	// There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and
	// NEVER.
	PassthroughBehavior PassthroughBehavior `json:"passthroughBehavior" yaml:"passthroughBehavior"`
	// The request parameters that API Gateway sends with the backend request.
	//
	// Specify request parameters as key-value pairs (string-to-string
	// mappings), with a destination as the key and a source as the value.
	//
	// Specify the destination by using the following pattern
	// integration.request.location.name, where location is querystring, path,
	// or header, and name is a valid, unique parameter name.
	//
	// The source must be an existing method request parameter or a static
	// value. You must enclose static values in single quotation marks and
	// pre-encode these values based on their destination in the request.
	RequestParameters *map[string]*string `json:"requestParameters" yaml:"requestParameters"`
	// A map of Apache Velocity templates that are applied on the request payload.
	//
	// The template that API Gateway uses is based on the value of the
	// Content-Type header that's sent by the client. The content type value is
	// the key, and the template is the value (specified as a string), such as
	// the following snippet:
	//
	// “`
	//    { "application/json": "{ \"statusCode\": 200 }" }
	// “`
	// See: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
	//
	RequestTemplates *map[string]*string `json:"requestTemplates" yaml:"requestTemplates"`
	// The maximum amount of time an integration will run before it returns without a response.
	//
	// Must be between 50 milliseconds and 29 seconds.
	Timeout awscdk.Duration `json:"timeout" yaml:"timeout"`
	// The VpcLink used for the integration.
	//
	// Required if connectionType is VPC_LINK
	VpcLink IVpcLink `json:"vpcLink" yaml:"vpcLink"`
}

TODO: EXAMPLE

type IntegrationProps

type IntegrationProps struct {
	// Specifies an API method integration type.
	Type IntegrationType `json:"type" yaml:"type"`
	// The integration's HTTP method type.
	//
	// Required unless you use a MOCK integration.
	IntegrationHttpMethod *string `json:"integrationHttpMethod" yaml:"integrationHttpMethod"`
	// Integration options.
	Options *IntegrationOptions `json:"options" yaml:"options"`
	// The Uniform Resource Identifier (URI) for the integration.
	//
	// - If you specify HTTP for the `type` property, specify the API endpoint URL.
	// - If you specify MOCK for the `type` property, don't specify this property.
	// - If you specify AWS for the `type` property, specify an AWS service that
	//    follows this form: `arn:partition:apigateway:region:subdomain.service|service:path|action/service_api.`
	//    For example, a Lambda function URI follows this form:
	//    arn:partition:apigateway:region:lambda:path/path. The path is usually in the
	//    form /2015-03-31/functions/LambdaFunctionARN/invocations.
	// See: https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#uri
	//
	Uri interface{} `json:"uri" yaml:"uri"`
}

TODO: EXAMPLE

type IntegrationResponse

type IntegrationResponse struct {
	// The status code that API Gateway uses to map the integration response to a MethodResponse status code.
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
	// Specifies how to handle request payload content type conversions.
	ContentHandling ContentHandling `json:"contentHandling" yaml:"contentHandling"`
	// The response parameters from the backend response that API Gateway sends to the method response.
	//
	// Use the destination as the key and the source as the value:
	//
	// - The destination must be an existing response parameter in the
	//    MethodResponse property.
	// - The source must be an existing method request parameter or a static
	//    value. You must enclose static values in single quotation marks and
	//    pre-encode these values based on the destination specified in the
	//    request.
	// See: http://docs.aws.amazon.com/apigateway/latest/developerguide/request-response-data-mappings.html
	//
	ResponseParameters *map[string]*string `json:"responseParameters" yaml:"responseParameters"`
	// The templates that are used to transform the integration response body.
	//
	// Specify templates as key-value pairs, with a content type as the key and
	// a template as the value.
	// See: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
	//
	ResponseTemplates *map[string]*string `json:"responseTemplates" yaml:"responseTemplates"`
	// Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end.
	//
	// For example, if the success response returns nothing and the error response returns some string, you
	// could use the “.+“ regex to match error response. However, make sure that the error response does not contain any
	// newline (“\n“) character in such cases. If the back end is an AWS Lambda function, the AWS Lambda function error
	// header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-integration-settings-integration-response.html
	//
	SelectionPattern *string `json:"selectionPattern" yaml:"selectionPattern"`
}

TODO: EXAMPLE

type IntegrationType

type IntegrationType string

TODO: EXAMPLE

const (
	IntegrationType_AWS        IntegrationType = "AWS"
	IntegrationType_AWS_PROXY  IntegrationType = "AWS_PROXY"
	IntegrationType_HTTP       IntegrationType = "HTTP"
	IntegrationType_HTTP_PROXY IntegrationType = "HTTP_PROXY"
	IntegrationType_MOCK       IntegrationType = "MOCK"
)

type JsonSchema

type JsonSchema struct {
	AdditionalItems      *[]*JsonSchema `json:"additionalItems" yaml:"additionalItems"`
	AdditionalProperties interface{}    `json:"additionalProperties" yaml:"additionalProperties"`
	AllOf                *[]*JsonSchema `json:"allOf" yaml:"allOf"`
	AnyOf                *[]*JsonSchema `json:"anyOf" yaml:"anyOf"`
	Contains             interface{}    `json:"contains" yaml:"contains"`
	// The default value if you use an enum.
	Default           interface{}             `json:"default" yaml:"default"`
	Definitions       *map[string]*JsonSchema `json:"definitions" yaml:"definitions"`
	Dependencies      *map[string]interface{} `json:"dependencies" yaml:"dependencies"`
	Description       *string                 `json:"description" yaml:"description"`
	Enum              *[]interface{}          `json:"enum" yaml:"enum"`
	ExclusiveMaximum  *bool                   `json:"exclusiveMaximum" yaml:"exclusiveMaximum"`
	ExclusiveMinimum  *bool                   `json:"exclusiveMinimum" yaml:"exclusiveMinimum"`
	Format            *string                 `json:"format" yaml:"format"`
	Id                *string                 `json:"id" yaml:"id"`
	Items             interface{}             `json:"items" yaml:"items"`
	Maximum           *float64                `json:"maximum" yaml:"maximum"`
	MaxItems          *float64                `json:"maxItems" yaml:"maxItems"`
	MaxLength         *float64                `json:"maxLength" yaml:"maxLength"`
	MaxProperties     *float64                `json:"maxProperties" yaml:"maxProperties"`
	Minimum           *float64                `json:"minimum" yaml:"minimum"`
	MinItems          *float64                `json:"minItems" yaml:"minItems"`
	MinLength         *float64                `json:"minLength" yaml:"minLength"`
	MinProperties     *float64                `json:"minProperties" yaml:"minProperties"`
	MultipleOf        *float64                `json:"multipleOf" yaml:"multipleOf"`
	Not               **JsonSchema            `json:"not" yaml:"not"`
	OneOf             *[]*JsonSchema          `json:"oneOf" yaml:"oneOf"`
	Pattern           *string                 `json:"pattern" yaml:"pattern"`
	PatternProperties *map[string]*JsonSchema `json:"patternProperties" yaml:"patternProperties"`
	Properties        *map[string]*JsonSchema `json:"properties" yaml:"properties"`
	PropertyNames     **JsonSchema            `json:"propertyNames" yaml:"propertyNames"`
	Ref               *string                 `json:"ref" yaml:"ref"`
	Required          *[]*string              `json:"required" yaml:"required"`
	Schema            JsonSchemaVersion       `json:"schema" yaml:"schema"`
	Title             *string                 `json:"title" yaml:"title"`
	Type              interface{}             `json:"type" yaml:"type"`
	UniqueItems       *bool                   `json:"uniqueItems" yaml:"uniqueItems"`
}

Represents a JSON schema definition of the structure of a REST API model.

Copied from npm module jsonschema.

TODO: EXAMPLE

See: https://github.com/tdegrunt/jsonschema

type JsonSchemaType

type JsonSchemaType string

TODO: EXAMPLE

const (
	JsonSchemaType_NULL    JsonSchemaType = "NULL"
	JsonSchemaType_BOOLEAN JsonSchemaType = "BOOLEAN"
	JsonSchemaType_OBJECT  JsonSchemaType = "OBJECT"
	JsonSchemaType_ARRAY   JsonSchemaType = "ARRAY"
	JsonSchemaType_NUMBER  JsonSchemaType = "NUMBER"
	JsonSchemaType_INTEGER JsonSchemaType = "INTEGER"
	JsonSchemaType_STRING  JsonSchemaType = "STRING"
)

type JsonSchemaVersion

type JsonSchemaVersion string

TODO: EXAMPLE

const (
	JsonSchemaVersion_DRAFT4 JsonSchemaVersion = "DRAFT4"
	JsonSchemaVersion_DRAFT7 JsonSchemaVersion = "DRAFT7"
)

type JsonWithStandardFieldProps

type JsonWithStandardFieldProps struct {
	// If this flag is enabled, the principal identifier of the caller will be output to the log.
	Caller *bool `json:"caller" yaml:"caller"`
	// If this flag is enabled, the http method will be output to the log.
	HttpMethod *bool `json:"httpMethod" yaml:"httpMethod"`
	// If this flag is enabled, the source IP of request will be output to the log.
	Ip *bool `json:"ip" yaml:"ip"`
	// If this flag is enabled, the request protocol will be output to the log.
	Protocol *bool `json:"protocol" yaml:"protocol"`
	// If this flag is enabled, the CLF-formatted request time((dd/MMM/yyyy:HH:mm:ss +-hhmm) will be output to the log.
	RequestTime *bool `json:"requestTime" yaml:"requestTime"`
	// If this flag is enabled, the path to your resource will be output to the log.
	ResourcePath *bool `json:"resourcePath" yaml:"resourcePath"`
	// If this flag is enabled, the response payload length will be output to the log.
	ResponseLength *bool `json:"responseLength" yaml:"responseLength"`
	// If this flag is enabled, the method response status will be output to the log.
	Status *bool `json:"status" yaml:"status"`
	// If this flag is enabled, the principal identifier of the user will be output to the log.
	User *bool `json:"user" yaml:"user"`
}

Properties for controlling items output in JSON standard format.

TODO: EXAMPLE

type LambdaAuthorizerProps

type LambdaAuthorizerProps struct {
	// The handler for the authorizer lambda function.
	//
	// The handler must follow a very specific protocol on the input it receives and the output it needs to produce.
	// API Gateway has documented the handler's input specification
	// {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html | here} and output specification
	// {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html | here}.
	Handler awslambda.IFunction `json:"handler" yaml:"handler"`
	// An optional IAM role for APIGateway to assume before calling the Lambda-based authorizer.
	//
	// The IAM role must be
	// assumable by 'apigateway.amazonaws.com'.
	AssumeRole awsiam.IRole `json:"assumeRole" yaml:"assumeRole"`
	// An optional human friendly name for the authorizer.
	//
	// Note that, this is not the primary identifier of the authorizer.
	AuthorizerName *string `json:"authorizerName" yaml:"authorizerName"`
	// How long APIGateway should cache the results.
	//
	// Max 1 hour.
	// Disable caching by setting this to 0.
	ResultsCacheTtl awscdk.Duration `json:"resultsCacheTtl" yaml:"resultsCacheTtl"`
}

Base properties for all lambda authorizers.

TODO: EXAMPLE

type LambdaIntegration

type LambdaIntegration interface {
	AwsIntegration
	Bind(method Method) *IntegrationConfig
}

Integrates an AWS Lambda function to an API Gateway method.

TODO: EXAMPLE

func NewLambdaIntegration

func NewLambdaIntegration(handler awslambda.IFunction, options *LambdaIntegrationOptions) LambdaIntegration

type LambdaIntegrationOptions

type LambdaIntegrationOptions struct {
	// A list of request parameters whose values are to be cached.
	//
	// It determines
	// request parameters that will make it into the cache key.
	CacheKeyParameters *[]*string `json:"cacheKeyParameters" yaml:"cacheKeyParameters"`
	// An API-specific tag group of related cached parameters.
	CacheNamespace *string `json:"cacheNamespace" yaml:"cacheNamespace"`
	// The type of network connection to the integration endpoint.
	ConnectionType ConnectionType `json:"connectionType" yaml:"connectionType"`
	// Specifies how to handle request payload content type conversions.
	ContentHandling ContentHandling `json:"contentHandling" yaml:"contentHandling"`
	// Requires that the caller's identity be passed through from the request.
	CredentialsPassthrough *bool `json:"credentialsPassthrough" yaml:"credentialsPassthrough"`
	// An IAM role that API Gateway assumes.
	//
	// Mutually exclusive with `credentialsPassThrough`.
	CredentialsRole awsiam.IRole `json:"credentialsRole" yaml:"credentialsRole"`
	// The response that API Gateway provides after a method's backend completes processing a request.
	//
	// API Gateway intercepts the response from the
	// backend so that you can control how API Gateway surfaces backend
	// responses. For example, you can map the backend status codes to codes
	// that you define.
	IntegrationResponses *[]*IntegrationResponse `json:"integrationResponses" yaml:"integrationResponses"`
	// Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource.
	//
	// There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and
	// NEVER.
	PassthroughBehavior PassthroughBehavior `json:"passthroughBehavior" yaml:"passthroughBehavior"`
	// The request parameters that API Gateway sends with the backend request.
	//
	// Specify request parameters as key-value pairs (string-to-string
	// mappings), with a destination as the key and a source as the value.
	//
	// Specify the destination by using the following pattern
	// integration.request.location.name, where location is querystring, path,
	// or header, and name is a valid, unique parameter name.
	//
	// The source must be an existing method request parameter or a static
	// value. You must enclose static values in single quotation marks and
	// pre-encode these values based on their destination in the request.
	RequestParameters *map[string]*string `json:"requestParameters" yaml:"requestParameters"`
	// A map of Apache Velocity templates that are applied on the request payload.
	//
	// The template that API Gateway uses is based on the value of the
	// Content-Type header that's sent by the client. The content type value is
	// the key, and the template is the value (specified as a string), such as
	// the following snippet:
	//
	// “`
	//    { "application/json": "{ \"statusCode\": 200 }" }
	// “`
	// See: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
	//
	RequestTemplates *map[string]*string `json:"requestTemplates" yaml:"requestTemplates"`
	// The maximum amount of time an integration will run before it returns without a response.
	//
	// Must be between 50 milliseconds and 29 seconds.
	Timeout awscdk.Duration `json:"timeout" yaml:"timeout"`
	// The VpcLink used for the integration.
	//
	// Required if connectionType is VPC_LINK
	VpcLink IVpcLink `json:"vpcLink" yaml:"vpcLink"`
	// Allow invoking method from AWS Console UI (for testing purposes).
	//
	// This will add another permission to the AWS Lambda resource policy which
	// will allow the `test-invoke-stage` stage to invoke this handler. If this
	// is set to `false`, the function will only be usable from the deployment
	// endpoint.
	AllowTestInvoke *bool `json:"allowTestInvoke" yaml:"allowTestInvoke"`
	// Use proxy integration or normal (request/response mapping) integration.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-output-format
	//
	Proxy *bool `json:"proxy" yaml:"proxy"`
}

TODO: EXAMPLE

type LambdaRestApi

type LambdaRestApi interface {
	RestApi
	CloudWatchAccount() CfnAccount
	SetCloudWatchAccount(val CfnAccount)
	DeploymentStage() Stage
	SetDeploymentStage(val Stage)
	DomainName() DomainName
	Env() *awscdk.ResourceEnvironment
	LatestDeployment() Deployment
	Methods() *[]Method
	Node() constructs.Node
	PhysicalName() *string
	RestApiId() *string
	RestApiName() *string
	RestApiRootResourceId() *string
	Root() IResource
	Stack() awscdk.Stack
	Url() *string
	AddApiKey(id *string, options *ApiKeyOptions) IApiKey
	AddDomainName(id *string, options *DomainNameOptions) DomainName
	AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse
	AddModel(id *string, props *ModelOptions) Model
	AddRequestValidator(id *string, props *RequestValidatorOptions) RequestValidator
	AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	ArnForExecuteApi(method *string, path *string, stage *string) *string
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	ToString() *string
	UrlForPath(path *string) *string
}

Defines an API Gateway REST API with AWS Lambda proxy integration.

Use the `proxy` property to define a greedy proxy ("{proxy+}") and "ANY" method from the specified path. If not defined, you will need to explicity add resources and methods to the API.

TODO: EXAMPLE

func NewLambdaRestApi

func NewLambdaRestApi(scope constructs.Construct, id *string, props *LambdaRestApiProps) LambdaRestApi

type LambdaRestApiProps

type LambdaRestApiProps 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 `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 `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 `json:"defaultMethodOptions" yaml:"defaultMethodOptions"`
	// Automatically configure an AWS CloudWatch role for API Gateway.
	CloudWatchRole *bool `json:"cloudWatchRole" yaml:"cloudWatchRole"`
	// Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.
	//
	// Since API Gateway deployments are immutable, When this option is enabled
	// (by default), an AWS::ApiGateway::Deployment resource will automatically
	// created with a logical ID that hashes the API model (methods, resources
	// and options). This means that when the model changes, the logical ID of
	// this CloudFormation resource will change, and a new deployment will be
	// created.
	//
	// If this is set, `latestDeployment` will refer to the `Deployment` object
	// and `deploymentStage` will refer to a `Stage` that points to this
	// deployment. To customize the stage options, use the `deployOptions`
	// property.
	//
	// A CloudFormation Output will also be defined with the root URL endpoint
	// of this REST API.
	Deploy *bool `json:"deploy" yaml:"deploy"`
	// Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled.
	//
	// If `deploy` is disabled,
	// this value cannot be set.
	DeployOptions *StageOptions `json:"deployOptions" yaml:"deployOptions"`
	// Specifies whether clients can invoke the API using the default execute-api endpoint.
	//
	// To require that clients use a custom domain name to invoke the
	// API, disable the default endpoint.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
	//
	DisableExecuteApiEndpoint *bool `json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"`
	// Configure a custom domain name and map it to this API.
	DomainName *DomainNameOptions `json:"domainName" yaml:"domainName"`
	// Export name for the CfnOutput containing the API endpoint.
	EndpointExportName *string `json:"endpointExportName" yaml:"endpointExportName"`
	// A list of the endpoint types of the API.
	//
	// Use this property when creating
	// an API.
	EndpointTypes *[]EndpointType `json:"endpointTypes" yaml:"endpointTypes"`
	// Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.
	FailOnWarnings *bool `json:"failOnWarnings" yaml:"failOnWarnings"`
	// Custom header parameters for the request.
	// See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html
	//
	Parameters *map[string]*string `json:"parameters" yaml:"parameters"`
	// A policy document that contains the permissions for this RestApi.
	Policy awsiam.PolicyDocument `json:"policy" yaml:"policy"`
	// A name for the API Gateway RestApi resource.
	RestApiName *string `json:"restApiName" yaml:"restApiName"`
	// Retains old deployment resources when the API changes.
	//
	// This allows
	// manually reverting stages to point to old deployments via the AWS
	// Console.
	RetainDeployments *bool `json:"retainDeployments" yaml:"retainDeployments"`
	// The source of the API key for metering requests according to a usage plan.
	ApiKeySourceType ApiKeySourceType `json:"apiKeySourceType" yaml:"apiKeySourceType"`
	// The list of binary media mime-types that are supported by the RestApi resource, such as "image/png" or "application/octet-stream".
	BinaryMediaTypes *[]*string `json:"binaryMediaTypes" yaml:"binaryMediaTypes"`
	// The ID of the API Gateway RestApi resource that you want to clone.
	CloneFrom IRestApi `json:"cloneFrom" yaml:"cloneFrom"`
	// A description of the purpose of this API Gateway RestApi resource.
	Description *string `json:"description" yaml:"description"`
	// The EndpointConfiguration property type specifies the endpoint types of a REST API.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html
	//
	EndpointConfiguration *EndpointConfiguration `json:"endpointConfiguration" yaml:"endpointConfiguration"`
	// A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (when undefined) on an API.
	//
	// When compression is enabled, compression or
	// decompression is not applied on the payload if the payload size is
	// smaller than this value. Setting it to zero allows compression for any
	// payload size.
	MinimumCompressionSize *float64 `json:"minimumCompressionSize" yaml:"minimumCompressionSize"`
	// The default Lambda function that handles all requests from this API.
	//
	// This handler will be used as a the default integration for all methods in
	// this API, unless specified otherwise in `addMethod`.
	Handler awslambda.IFunction `json:"handler" yaml:"handler"`
	// If true, route all requests to the Lambda Function.
	//
	// If set to false, you will need to explicitly define the API model using
	// `addResource` and `addMethod` (or `addProxy`).
	Proxy *bool `json:"proxy" yaml:"proxy"`
}

TODO: EXAMPLE

type LogGroupLogDestination

type LogGroupLogDestination interface {
	IAccessLogDestination
	Bind(_stage IStage) *AccessLogDestinationConfig
}

Use CloudWatch Logs as a custom access log destination for API Gateway.

TODO: EXAMPLE

func NewLogGroupLogDestination

func NewLogGroupLogDestination(logGroup awslogs.ILogGroup) LogGroupLogDestination

type MTLSConfig

type MTLSConfig struct {
	// The bucket that the trust store is hosted in.
	Bucket awss3.IBucket `json:"bucket" yaml:"bucket"`
	// The key in S3 to look at for the trust store.
	Key *string `json:"key" yaml:"key"`
	// The version of the S3 object that contains your truststore.
	//
	// To specify a version, you must have versioning enabled for the S3 bucket.
	Version *string `json:"version" yaml:"version"`
}

The mTLS authentication configuration for a custom domain name.

TODO: EXAMPLE

type Method

type Method interface {
	awscdk.Resource
	Api() IRestApi
	Env() *awscdk.ResourceEnvironment
	HttpMethod() *string
	MethodArn() *string
	MethodId() *string
	Node() constructs.Node
	PhysicalName() *string
	Resource() IResource
	Stack() awscdk.Stack
	TestMethodArn() *string
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

TODO: EXAMPLE

func NewMethod

func NewMethod(scope constructs.Construct, id *string, props *MethodProps) Method

type MethodDeploymentOptions

type MethodDeploymentOptions struct {
	// Indicates whether the cached responses are encrypted.
	CacheDataEncrypted *bool `json:"cacheDataEncrypted" yaml:"cacheDataEncrypted"`
	// Specifies the time to live (TTL), in seconds, for cached responses.
	//
	// The
	// higher the TTL, the longer the response will be cached.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html
	//
	CacheTtl awscdk.Duration `json:"cacheTtl" yaml:"cacheTtl"`
	// Specifies whether responses should be cached and returned for requests.
	//
	// A
	// cache cluster must be enabled on the stage for responses to be cached.
	CachingEnabled *bool `json:"cachingEnabled" yaml:"cachingEnabled"`
	// Specifies whether data trace logging is enabled for this method.
	//
	// When enabled, API gateway will log the full API requests and responses.
	// This can be useful to troubleshoot APIs, but can result in logging sensitive data.
	// We recommend that you don't enable this feature for production APIs.
	DataTraceEnabled *bool `json:"dataTraceEnabled" yaml:"dataTraceEnabled"`
	// Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
	LoggingLevel MethodLoggingLevel `json:"loggingLevel" yaml:"loggingLevel"`
	// Specifies whether Amazon CloudWatch metrics are enabled for this method.
	MetricsEnabled *bool `json:"metricsEnabled" yaml:"metricsEnabled"`
	// Specifies the throttling burst limit.
	//
	// The total rate of all requests in your AWS account is limited to 5,000 requests.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
	//
	ThrottlingBurstLimit *float64 `json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"`
	// Specifies the throttling rate limit.
	//
	// The total rate of all requests in your AWS account is limited to 10,000 requests per second (rps).
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
	//
	ThrottlingRateLimit *float64 `json:"throttlingRateLimit" yaml:"throttlingRateLimit"`
}

TODO: EXAMPLE

type MethodLoggingLevel

type MethodLoggingLevel string

TODO: EXAMPLE

const (
	MethodLoggingLevel_OFF   MethodLoggingLevel = "OFF"
	MethodLoggingLevel_ERROR MethodLoggingLevel = "ERROR"
	MethodLoggingLevel_INFO  MethodLoggingLevel = "INFO"
)

type MethodOptions

type MethodOptions struct {
	// Indicates whether the method requires clients to submit a valid API key.
	ApiKeyRequired *bool `json:"apiKeyRequired" yaml:"apiKeyRequired"`
	// A list of authorization scopes configured on the method.
	//
	// The scopes are used with
	// a COGNITO_USER_POOLS authorizer to authorize the method invocation.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes
	//
	AuthorizationScopes *[]*string `json:"authorizationScopes" yaml:"authorizationScopes"`
	// Method authorization. If the value is set of `Custom`, an `authorizer` must also be specified.
	//
	// If you're using one of the authorizers that are available via the {@link Authorizer} class, such as {@link Authorizer#token()},
	// it is recommended that this option not be specified. The authorizer will take care of setting the correct authorization type.
	// However, specifying an authorization type using this property that conflicts with what is expected by the {@link Authorizer}
	// will result in an error.
	AuthorizationType AuthorizationType `json:"authorizationType" yaml:"authorizationType"`
	// If `authorizationType` is `Custom`, this specifies the ID of the method authorizer resource.
	//
	// If specified, the value of `authorizationType` must be set to `Custom`
	Authorizer IAuthorizer `json:"authorizer" yaml:"authorizer"`
	// The responses that can be sent to the client who calls the method.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-response.html
	//
	MethodResponses *[]*MethodResponse `json:"methodResponses" yaml:"methodResponses"`
	// A friendly operation name for the method.
	//
	// For example, you can assign the
	// OperationName of ListPets for the GET /pets method.
	OperationName *string `json:"operationName" yaml:"operationName"`
	// The models which describe data structure of request payload.
	//
	// When
	// combined with `requestValidator` or `requestValidatorOptions`, the service
	// will validate the API request payload before it reaches the API's Integration (including proxies).
	// Specify `requestModels` as key-value pairs, with a content type
	// (e.g. `'application/json'`) as the key and an API Gateway Model as the value.
	//
	// TODO: EXAMPLE
	//
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html#setup-method-request-model
	//
	RequestModels *map[string]IModel `json:"requestModels" yaml:"requestModels"`
	// The request parameters that API Gateway accepts.
	//
	// Specify request parameters
	// as key-value pairs (string-to-Boolean mapping), with a source as the key and
	// a Boolean as the value. The Boolean specifies whether a parameter is required.
	// A source must match the format method.request.location.name, where the location
	// is querystring, path, or header, and name is a valid, unique parameter name.
	RequestParameters *map[string]*bool `json:"requestParameters" yaml:"requestParameters"`
	// The ID of the associated request validator.
	//
	// Only one of `requestValidator` or `requestValidatorOptions` must be specified.
	// Works together with `requestModels` or `requestParameters` to validate
	// the request before it reaches integration like Lambda Proxy Integration.
	RequestValidator IRequestValidator `json:"requestValidator" yaml:"requestValidator"`
	// Request validator options to create new validator Only one of `requestValidator` or `requestValidatorOptions` must be specified.
	//
	// Works together with `requestModels` or `requestParameters` to validate
	// the request before it reaches integration like Lambda Proxy Integration.
	RequestValidatorOptions *RequestValidatorOptions `json:"requestValidatorOptions" yaml:"requestValidatorOptions"`
}

TODO: EXAMPLE

type MethodProps

type MethodProps struct {
	// The HTTP method ("GET", "POST", "PUT", ...) that clients use to call this method.
	HttpMethod *string `json:"httpMethod" yaml:"httpMethod"`
	// The resource this method is associated with.
	//
	// For root resource methods,
	// specify the `RestApi` object.
	Resource IResource `json:"resource" yaml:"resource"`
	// The backend system that the method calls when it receives a request.
	Integration Integration `json:"integration" yaml:"integration"`
	// Method options.
	Options *MethodOptions `json:"options" yaml:"options"`
}

TODO: EXAMPLE

type MethodResponse

type MethodResponse struct {
	// The method response's status code, which you map to an IntegrationResponse.
	//
	// Required.
	StatusCode *string `json:"statusCode" yaml:"statusCode"`
	// The resources used for the response's content type.
	//
	// Specify response models as
	// key-value pairs (string-to-string maps), with a content type as the key and a Model
	// resource name as the value.
	ResponseModels *map[string]IModel `json:"responseModels" yaml:"responseModels"`
	// Response parameters that API Gateway sends to the client that called a method.
	//
	// Specify response parameters as key-value pairs (string-to-Boolean maps), with
	// a destination as the key and a Boolean as the value. Specify the destination
	// using the following pattern: method.response.header.name, where the name is a
	// valid, unique header name. The Boolean specifies whether a parameter is required.
	ResponseParameters *map[string]*bool `json:"responseParameters" yaml:"responseParameters"`
}

TODO: EXAMPLE

type MockIntegration

type MockIntegration interface {
	Integration
	Bind(_method Method) *IntegrationConfig
}

This type of integration lets API Gateway return a response without sending the request further to the backend.

This is useful for API testing because it can be used to test the integration set up without incurring charges for using the backend and to enable collaborative development of an API. In collaborative development, a team can isolate their development effort by setting up simulations of API components owned by other teams by using the MOCK integrations. It is also used to return CORS-related headers to ensure that the API method permits CORS access. In fact, the API Gateway console integrates the OPTIONS method to support CORS with a mock integration. Gateway responses are other examples of mock integrations.

TODO: EXAMPLE

func NewMockIntegration

func NewMockIntegration(options *IntegrationOptions) MockIntegration

type Model

type Model interface {
	awscdk.Resource
	IModel
	Env() *awscdk.ResourceEnvironment
	ModelId() *string
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

TODO: EXAMPLE

func NewModel

func NewModel(scope constructs.Construct, id *string, props *ModelProps) Model

type ModelOptions

type ModelOptions struct {
	// The schema to use to transform data to one or more output formats.
	//
	// Specify null ({}) if you don't want to specify a schema.
	Schema *JsonSchema `json:"schema" yaml:"schema"`
	// The content type for the model.
	//
	// You can also force a
	// content type in the request or response model mapping.
	ContentType *string `json:"contentType" yaml:"contentType"`
	// A description that identifies this model.
	Description *string `json:"description" yaml:"description"`
	// A name for the model.
	//
	// Important
	//   If you specify a name, you cannot perform updates that
	//   require replacement of this resource. You can perform
	//   updates that require no or some interruption. If you
	//   must replace the resource, specify a new name.
	ModelName *string `json:"modelName" yaml:"modelName"`
}

TODO: EXAMPLE

type ModelProps

type ModelProps struct {
	// The schema to use to transform data to one or more output formats.
	//
	// Specify null ({}) if you don't want to specify a schema.
	Schema *JsonSchema `json:"schema" yaml:"schema"`
	// The content type for the model.
	//
	// You can also force a
	// content type in the request or response model mapping.
	ContentType *string `json:"contentType" yaml:"contentType"`
	// A description that identifies this model.
	Description *string `json:"description" yaml:"description"`
	// A name for the model.
	//
	// Important
	//   If you specify a name, you cannot perform updates that
	//   require replacement of this resource. You can perform
	//   updates that require no or some interruption. If you
	//   must replace the resource, specify a new name.
	ModelName *string `json:"modelName" yaml:"modelName"`
	// The rest API that this model is part of.
	//
	// The reason we need the RestApi object itself and not just the ID is because the model
	// is being tracked by the top-level RestApi object for the purpose of calculating it's
	// hash to determine the ID of the deployment. This allows us to automatically update
	// the deployment when the model of the REST API changes.
	RestApi IRestApi `json:"restApi" yaml:"restApi"`
}

TODO: EXAMPLE

type PassthroughBehavior

type PassthroughBehavior string

TODO: EXAMPLE

const (
	PassthroughBehavior_WHEN_NO_MATCH     PassthroughBehavior = "WHEN_NO_MATCH"
	PassthroughBehavior_NEVER             PassthroughBehavior = "NEVER"
	PassthroughBehavior_WHEN_NO_TEMPLATES PassthroughBehavior = "WHEN_NO_TEMPLATES"
)

type Period

type Period string

Time period for which quota settings apply.

TODO: EXAMPLE

const (
	Period_DAY   Period = "DAY"
	Period_WEEK  Period = "WEEK"
	Period_MONTH Period = "MONTH"
)

type ProxyResource

type ProxyResource interface {
	Resource
	AnyMethod() Method
	Api() IRestApi
	DefaultCorsPreflightOptions() *CorsOptions
	DefaultIntegration() Integration
	DefaultMethodOptions() *MethodOptions
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	ParentResource() IResource
	Path() *string
	PhysicalName() *string
	ResourceId() *string
	Stack() awscdk.Stack
	AddCorsPreflight(options *CorsOptions) Method
	AddMethod(httpMethod *string, integration Integration, options *MethodOptions) Method
	AddProxy(options *ProxyResourceOptions) ProxyResource
	AddResource(pathPart *string, options *ResourceOptions) Resource
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResource(pathPart *string) IResource
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ResourceForPath(path *string) Resource
	ToString() *string
}

Defines a {proxy+} greedy resource and an ANY method on a route.

TODO: EXAMPLE

See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html

func NewProxyResource

func NewProxyResource(scope constructs.Construct, id *string, props *ProxyResourceProps) ProxyResource

type ProxyResourceOptions

type ProxyResourceOptions 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 `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 `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 `json:"defaultMethodOptions" yaml:"defaultMethodOptions"`
	// Adds an "ANY" method to this resource.
	//
	// If set to `false`, you will have to explicitly
	// add methods to this resource after it's created.
	AnyMethod *bool `json:"anyMethod" yaml:"anyMethod"`
}

TODO: EXAMPLE

type ProxyResourceProps

type ProxyResourceProps 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 `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 `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 `json:"defaultMethodOptions" yaml:"defaultMethodOptions"`
	// Adds an "ANY" method to this resource.
	//
	// If set to `false`, you will have to explicitly
	// add methods to this resource after it's created.
	AnyMethod *bool `json:"anyMethod" yaml:"anyMethod"`
	// The parent resource of this resource.
	//
	// You can either pass another
	// `Resource` object or a `RestApi` object here.
	Parent IResource `json:"parent" yaml:"parent"`
}

TODO: EXAMPLE

type QuotaSettings

type QuotaSettings struct {
	// The maximum number of requests that users can make within the specified time period.
	Limit *float64 `json:"limit" yaml:"limit"`
	// For the initial time period, the number of requests to subtract from the specified limit.
	Offset *float64 `json:"offset" yaml:"offset"`
	// The time period for which the maximum limit of requests applies.
	Period Period `json:"period" yaml:"period"`
}

Specifies the maximum number of requests that clients can make to API Gateway APIs.

TODO: EXAMPLE

type RateLimitedApiKey

type RateLimitedApiKey interface {
	awscdk.Resource
	IApiKey
	Env() *awscdk.ResourceEnvironment
	KeyArn() *string
	KeyId() *string
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	GrantRead(grantee awsiam.IGrantable) awsiam.Grant
	GrantReadWrite(grantee awsiam.IGrantable) awsiam.Grant
	GrantWrite(grantee awsiam.IGrantable) awsiam.Grant
	ToString() *string
}

An API Gateway ApiKey, for which a rate limiting configuration can be specified.

TODO: EXAMPLE

func NewRateLimitedApiKey

func NewRateLimitedApiKey(scope constructs.Construct, id *string, props *RateLimitedApiKeyProps) RateLimitedApiKey

type RateLimitedApiKeyProps

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 `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 `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 `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 `json:"apiKeyName" yaml:"apiKeyName"`
	// A description of the purpose of the API key.
	Description *string `json:"description" yaml:"description"`
	// The value of the API key.
	//
	// Must be at least 20 characters long.
	Value *string `json:"value" yaml:"value"`
	// An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace.
	CustomerId *string `json:"customerId" yaml:"customerId"`
	// Indicates whether the API key can be used by clients.
	Enabled *bool `json:"enabled" yaml:"enabled"`
	// Specifies whether the key identifier is distinct from the created API key value.
	GenerateDistinctId *bool `json:"generateDistinctId" yaml:"generateDistinctId"`
	// A list of resources this api key is associated with.
	Resources *[]IRestApi `json:"resources" yaml:"resources"`
	// API Stages to be associated with the RateLimitedApiKey.
	ApiStages *[]*UsagePlanPerApiStage `json:"apiStages" yaml:"apiStages"`
	// Number of requests clients can make in a given time period.
	Quota *QuotaSettings `json:"quota" yaml:"quota"`
	// Overall throttle settings for the API.
	Throttle *ThrottleSettings `json:"throttle" yaml:"throttle"`
}

RateLimitedApiKey properties.

TODO: EXAMPLE

type RequestAuthorizer

type RequestAuthorizer interface {
	Authorizer
	IAuthorizer
	AuthorizationType() AuthorizationType
	AuthorizerArn() *string
	AuthorizerId() *string
	Env() *awscdk.ResourceEnvironment
	Handler() awslambda.IFunction
	Node() constructs.Node
	PhysicalName() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Role() awsiam.IRole
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	LazyRestApiId() *string
	SetupPermissions()
	ToString() *string
}

Request-based lambda authorizer that recognizes the caller's identity via request parameters, such as headers, paths, query strings, stage variables, or context variables.

Based on the request, authorization is performed by a lambda function.

TODO: EXAMPLE

func NewRequestAuthorizer

func NewRequestAuthorizer(scope constructs.Construct, id *string, props *RequestAuthorizerProps) RequestAuthorizer

type RequestAuthorizerProps

type RequestAuthorizerProps struct {
	// The handler for the authorizer lambda function.
	//
	// The handler must follow a very specific protocol on the input it receives and the output it needs to produce.
	// API Gateway has documented the handler's input specification
	// {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html | here} and output specification
	// {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html | here}.
	Handler awslambda.IFunction `json:"handler" yaml:"handler"`
	// An optional IAM role for APIGateway to assume before calling the Lambda-based authorizer.
	//
	// The IAM role must be
	// assumable by 'apigateway.amazonaws.com'.
	AssumeRole awsiam.IRole `json:"assumeRole" yaml:"assumeRole"`
	// An optional human friendly name for the authorizer.
	//
	// Note that, this is not the primary identifier of the authorizer.
	AuthorizerName *string `json:"authorizerName" yaml:"authorizerName"`
	// How long APIGateway should cache the results.
	//
	// Max 1 hour.
	// Disable caching by setting this to 0.
	ResultsCacheTtl awscdk.Duration `json:"resultsCacheTtl" yaml:"resultsCacheTtl"`
	// An array of request header mapping expressions for identities.
	//
	// Supported parameter types are
	// Header, Query String, Stage Variable, and Context. For instance, extracting an authorization
	// token from a header would use the identity source `IdentitySource.header('Authorizer')`.
	//
	// Note: API Gateway uses the specified identity sources as the request authorizer caching key. When caching is
	// enabled, API Gateway calls the authorizer's Lambda function only after successfully verifying that all the
	// specified identity sources are present at runtime. If a specified identify source is missing, null, or empty,
	// API Gateway returns a 401 Unauthorized response without calling the authorizer Lambda function.
	// See: https://docs.aws.amazon.com/apigateway/api-reference/link-relation/authorizer-create/#identitySource
	//
	IdentitySources *[]*string `json:"identitySources" yaml:"identitySources"`
}

Properties for RequestAuthorizer.

TODO: EXAMPLE

type RequestContext added in v2.1.0

type RequestContext struct {
	// Represents the information of $context.identity.accountId.
	//
	// Whether the AWS account of the API owner should be included in the request context
	AccountId *bool `json:"accountId" yaml:"accountId"`
	// Represents the information of $context.apiId.
	//
	// Whether the identifier API Gateway assigns to your API should be included in the request context.
	ApiId *bool `json:"apiId" yaml:"apiId"`
	// Represents the information of $context.identity.apiKey.
	//
	// Whether the API key associated with the request should be included in request context.
	ApiKey *bool `json:"apiKey" yaml:"apiKey"`
	// Represents the information of $context.authorizer.principalId.
	//
	// Whether the principal user identifier associated with the token sent by the client and returned
	// from an API Gateway Lambda authorizer should be included in the request context.
	AuthorizerPrincipalId *bool `json:"authorizerPrincipalId" yaml:"authorizerPrincipalId"`
	// Represents the information of $context.identity.caller.
	//
	// Whether the principal identifier of the caller that signed the request should be included in the request context.
	// Supported for resources that use IAM authorization.
	Caller *bool `json:"caller" yaml:"caller"`
	// Represents the information of $context.identity.cognitoAuthenticationProvider.
	//
	// Whether the list of the Amazon Cognito authentication providers used by the caller making the request should be included in the request context.
	// Available only if the request was signed with Amazon Cognito credentials.
	CognitoAuthenticationProvider *bool `json:"cognitoAuthenticationProvider" yaml:"cognitoAuthenticationProvider"`
	// Represents the information of $context.identity.cognitoAuthenticationType.
	//
	// Whether the Amazon Cognito authentication type of the caller making the request should be included in the request context.
	// Available only if the request was signed with Amazon Cognito credentials.
	// Possible values include authenticated for authenticated identities and unauthenticated for unauthenticated identities.
	CognitoAuthenticationType *bool `json:"cognitoAuthenticationType" yaml:"cognitoAuthenticationType"`
	// Represents the information of $context.identity.cognitoIdentityId.
	//
	// Whether the Amazon Cognito identity ID of the caller making the request should be included in the request context.
	// Available only if the request was signed with Amazon Cognito credentials.
	CognitoIdentityId *bool `json:"cognitoIdentityId" yaml:"cognitoIdentityId"`
	// Represents the information of $context.identity.cognitoIdentityPoolId.
	//
	// Whether the Amazon Cognito identity pool ID of the caller making the request should be included in the request context.
	// Available only if the request was signed with Amazon Cognito credentials.
	CognitoIdentityPoolId *bool `json:"cognitoIdentityPoolId" yaml:"cognitoIdentityPoolId"`
	// Represents the information of $context.httpMethod.
	//
	// Whether the HTTP method used should be included in the request context.
	// Valid values include: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT.
	HttpMethod *bool `json:"httpMethod" yaml:"httpMethod"`
	// Represents the information of $context.requestId.
	//
	// Whether the ID for the request should be included in the request context.
	RequestId *bool `json:"requestId" yaml:"requestId"`
	// Represents the information of $context.resourceId.
	//
	// Whether the identifier that API Gateway assigns to your resource should be included in the request context.
	ResourceId *bool `json:"resourceId" yaml:"resourceId"`
	// Represents the information of $context.resourcePath.
	//
	// Whether the path to the resource should be included in the request context.
	ResourcePath *bool `json:"resourcePath" yaml:"resourcePath"`
	// Represents the information of $context.identity.sourceIp.
	//
	// Whether the source IP address of the immediate TCP connection making the request
	// to API Gateway endpoint should be included in the request context.
	SourceIp *bool `json:"sourceIp" yaml:"sourceIp"`
	// Represents the information of $context.stage.
	//
	// Whether the deployment stage of the API request should be included in the request context.
	Stage *bool `json:"stage" yaml:"stage"`
	// Represents the information of $context.identity.user.
	//
	// Whether the principal identifier of the user that will be authorized should be included in the request context.
	// Supported for resources that use IAM authorization.
	User *bool `json:"user" yaml:"user"`
	// Represents the information of $context.identity.userAgent.
	//
	// Whether the User-Agent header of the API caller should be included in the request context.
	UserAgent *bool `json:"userAgent" yaml:"userAgent"`
	// Represents the information of $context.identity.userArn.
	//
	// Whether the Amazon Resource Name (ARN) of the effective user identified after authentication should be included in the request context.
	UserArn *bool `json:"userArn" yaml:"userArn"`
}

Configure what must be included in the `requestContext`.

More details can be found at mapping templates documentation.

TODO: EXAMPLE

See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

type RequestValidator

type RequestValidator interface {
	awscdk.Resource
	IRequestValidator
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	RequestValidatorId() *string
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

TODO: EXAMPLE

func NewRequestValidator

func NewRequestValidator(scope constructs.Construct, id *string, props *RequestValidatorProps) RequestValidator

type RequestValidatorOptions

type RequestValidatorOptions struct {
	// The name of this request validator.
	RequestValidatorName *string `json:"requestValidatorName" yaml:"requestValidatorName"`
	// Indicates whether to validate the request body according to the configured schema for the targeted API and method.
	ValidateRequestBody *bool `json:"validateRequestBody" yaml:"validateRequestBody"`
	// Indicates whether to validate request parameters.
	ValidateRequestParameters *bool `json:"validateRequestParameters" yaml:"validateRequestParameters"`
}

TODO: EXAMPLE

type RequestValidatorProps

type RequestValidatorProps struct {
	// The name of this request validator.
	RequestValidatorName *string `json:"requestValidatorName" yaml:"requestValidatorName"`
	// Indicates whether to validate the request body according to the configured schema for the targeted API and method.
	ValidateRequestBody *bool `json:"validateRequestBody" yaml:"validateRequestBody"`
	// Indicates whether to validate request parameters.
	ValidateRequestParameters *bool `json:"validateRequestParameters" yaml:"validateRequestParameters"`
	// The rest API that this model is part of.
	//
	// The reason we need the RestApi object itself and not just the ID is because the model
	// is being tracked by the top-level RestApi object for the purpose of calculating it's
	// hash to determine the ID of the deployment. This allows us to automatically update
	// the deployment when the model of the REST API changes.
	RestApi IRestApi `json:"restApi" yaml:"restApi"`
}

TODO: EXAMPLE

type Resource

type Resource interface {
	ResourceBase
	Api() IRestApi
	DefaultCorsPreflightOptions() *CorsOptions
	DefaultIntegration() Integration
	DefaultMethodOptions() *MethodOptions
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	ParentResource() IResource
	Path() *string
	PhysicalName() *string
	ResourceId() *string
	Stack() awscdk.Stack
	AddCorsPreflight(options *CorsOptions) Method
	AddMethod(httpMethod *string, integration Integration, options *MethodOptions) Method
	AddProxy(options *ProxyResourceOptions) ProxyResource
	AddResource(pathPart *string, options *ResourceOptions) Resource
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResource(pathPart *string) IResource
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ResourceForPath(path *string) Resource
	ToString() *string
}

TODO: EXAMPLE

func NewResource

func NewResource(scope constructs.Construct, id *string, props *ResourceProps) Resource

type ResourceAttributes

type ResourceAttributes struct {
	// The full path of this resource.
	Path *string `json:"path" yaml:"path"`
	// The ID of the resource.
	ResourceId *string `json:"resourceId" yaml:"resourceId"`
	// The rest API that this resource is part of.
	RestApi IRestApi `json:"restApi" yaml:"restApi"`
}

Attributes that can be specified when importing a Resource.

TODO: EXAMPLE

type ResourceBase

type ResourceBase interface {
	awscdk.Resource
	IResource
	Api() IRestApi
	DefaultCorsPreflightOptions() *CorsOptions
	DefaultIntegration() Integration
	DefaultMethodOptions() *MethodOptions
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	ParentResource() IResource
	Path() *string
	PhysicalName() *string
	ResourceId() *string
	Stack() awscdk.Stack
	AddCorsPreflight(options *CorsOptions) Method
	AddMethod(httpMethod *string, integration Integration, options *MethodOptions) Method
	AddProxy(options *ProxyResourceOptions) ProxyResource
	AddResource(pathPart *string, options *ResourceOptions) Resource
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResource(pathPart *string) IResource
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ResourceForPath(path *string) Resource
	ToString() *string
}

type ResourceOptions

type ResourceOptions 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 `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 `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 `json:"defaultMethodOptions" yaml:"defaultMethodOptions"`
}

TODO: EXAMPLE

type ResourceProps

type ResourceProps 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 `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 `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 `json:"defaultMethodOptions" yaml:"defaultMethodOptions"`
	// The parent resource of this resource.
	//
	// You can either pass another
	// `Resource` object or a `RestApi` object here.
	Parent IResource `json:"parent" yaml:"parent"`
	// A path name for the resource.
	PathPart *string `json:"pathPart" yaml:"pathPart"`
}

TODO: EXAMPLE

type ResponseType

type ResponseType interface {
	ResponseType() *string
}

Supported types of gateway responses.

TODO: EXAMPLE

See: https://docs.aws.amazon.com/apigateway/latest/developerguide/supported-gateway-response-types.html

func ResponseType_ACCESS_DENIED

func ResponseType_ACCESS_DENIED() ResponseType

func ResponseType_API_CONFIGURATION_ERROR

func ResponseType_API_CONFIGURATION_ERROR() ResponseType

func ResponseType_AUTHORIZER_CONFIGURATION_ERROR

func ResponseType_AUTHORIZER_CONFIGURATION_ERROR() ResponseType

func ResponseType_AUTHORIZER_FAILURE

func ResponseType_AUTHORIZER_FAILURE() ResponseType

func ResponseType_BAD_REQUEST_BODY

func ResponseType_BAD_REQUEST_BODY() ResponseType

func ResponseType_BAD_REQUEST_PARAMETERS

func ResponseType_BAD_REQUEST_PARAMETERS() ResponseType

func ResponseType_DEFAULT_4XX

func ResponseType_DEFAULT_4XX() ResponseType

func ResponseType_DEFAULT_5XX

func ResponseType_DEFAULT_5XX() ResponseType

func ResponseType_EXPIRED_TOKEN

func ResponseType_EXPIRED_TOKEN() ResponseType

func ResponseType_INTEGRATION_FAILURE

func ResponseType_INTEGRATION_FAILURE() ResponseType

func ResponseType_INTEGRATION_TIMEOUT

func ResponseType_INTEGRATION_TIMEOUT() ResponseType

func ResponseType_INVALID_API_KEY

func ResponseType_INVALID_API_KEY() ResponseType

func ResponseType_INVALID_SIGNATURE

func ResponseType_INVALID_SIGNATURE() ResponseType

func ResponseType_MISSING_AUTHENTICATION_TOKEN

func ResponseType_MISSING_AUTHENTICATION_TOKEN() ResponseType

func ResponseType_Of

func ResponseType_Of(type_ *string) ResponseType

A custom response type to support future cases.

func ResponseType_QUOTA_EXCEEDED

func ResponseType_QUOTA_EXCEEDED() ResponseType

func ResponseType_REQUEST_TOO_LARGE

func ResponseType_REQUEST_TOO_LARGE() ResponseType

func ResponseType_RESOURCE_NOT_FOUND

func ResponseType_RESOURCE_NOT_FOUND() ResponseType

func ResponseType_THROTTLED

func ResponseType_THROTTLED() ResponseType

func ResponseType_UNAUTHORIZED

func ResponseType_UNAUTHORIZED() ResponseType

func ResponseType_UNSUPPORTED_MEDIA_TYPE

func ResponseType_UNSUPPORTED_MEDIA_TYPE() ResponseType

func ResponseType_WAF_FILTERED

func ResponseType_WAF_FILTERED() ResponseType

type RestApi

type RestApi interface {
	RestApiBase
	CloudWatchAccount() CfnAccount
	SetCloudWatchAccount(val CfnAccount)
	DeploymentStage() Stage
	SetDeploymentStage(val Stage)
	DomainName() DomainName
	Env() *awscdk.ResourceEnvironment
	LatestDeployment() Deployment
	Methods() *[]Method
	Node() constructs.Node
	PhysicalName() *string
	RestApiId() *string
	RestApiName() *string
	RestApiRootResourceId() *string
	Root() IResource
	Stack() awscdk.Stack
	Url() *string
	AddApiKey(id *string, options *ApiKeyOptions) IApiKey
	AddDomainName(id *string, options *DomainNameOptions) DomainName
	AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse
	AddModel(id *string, props *ModelOptions) Model
	AddRequestValidator(id *string, props *RequestValidatorOptions) RequestValidator
	AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	ArnForExecuteApi(method *string, path *string, stage *string) *string
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	ToString() *string
	UrlForPath(path *string) *string
}

Represents a REST API in Amazon API Gateway.

Use `addResource` and `addMethod` to configure the API model.

By default, the API will automatically be deployed and accessible from a public endpoint.

TODO: EXAMPLE

func NewRestApi

func NewRestApi(scope constructs.Construct, id *string, props *RestApiProps) RestApi

type RestApiAttributes

type RestApiAttributes struct {
	// The ID of the API Gateway RestApi.
	RestApiId *string `json:"restApiId" yaml:"restApiId"`
	// The resource ID of the root resource.
	RootResourceId *string `json:"rootResourceId" yaml:"rootResourceId"`
}

Attributes that can be specified when importing a RestApi.

TODO: EXAMPLE

type RestApiBase

type RestApiBase interface {
	awscdk.Resource
	IRestApi
	CloudWatchAccount() CfnAccount
	SetCloudWatchAccount(val CfnAccount)
	DeploymentStage() Stage
	SetDeploymentStage(val Stage)
	DomainName() DomainName
	Env() *awscdk.ResourceEnvironment
	LatestDeployment() Deployment
	Node() constructs.Node
	PhysicalName() *string
	RestApiId() *string
	RestApiName() *string
	RestApiRootResourceId() *string
	Root() IResource
	Stack() awscdk.Stack
	AddApiKey(id *string, options *ApiKeyOptions) IApiKey
	AddDomainName(id *string, options *DomainNameOptions) DomainName
	AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse
	AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	ArnForExecuteApi(method *string, path *string, stage *string) *string
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	ToString() *string
	UrlForPath(path *string) *string
}

Base implementation that are common to various implementations of IRestApi.

TODO: EXAMPLE

type RestApiBaseProps

type RestApiBaseProps struct {
	// Automatically configure an AWS CloudWatch role for API Gateway.
	CloudWatchRole *bool `json:"cloudWatchRole" yaml:"cloudWatchRole"`
	// Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.
	//
	// Since API Gateway deployments are immutable, When this option is enabled
	// (by default), an AWS::ApiGateway::Deployment resource will automatically
	// created with a logical ID that hashes the API model (methods, resources
	// and options). This means that when the model changes, the logical ID of
	// this CloudFormation resource will change, and a new deployment will be
	// created.
	//
	// If this is set, `latestDeployment` will refer to the `Deployment` object
	// and `deploymentStage` will refer to a `Stage` that points to this
	// deployment. To customize the stage options, use the `deployOptions`
	// property.
	//
	// A CloudFormation Output will also be defined with the root URL endpoint
	// of this REST API.
	Deploy *bool `json:"deploy" yaml:"deploy"`
	// Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled.
	//
	// If `deploy` is disabled,
	// this value cannot be set.
	DeployOptions *StageOptions `json:"deployOptions" yaml:"deployOptions"`
	// Specifies whether clients can invoke the API using the default execute-api endpoint.
	//
	// To require that clients use a custom domain name to invoke the
	// API, disable the default endpoint.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
	//
	DisableExecuteApiEndpoint *bool `json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"`
	// Configure a custom domain name and map it to this API.
	DomainName *DomainNameOptions `json:"domainName" yaml:"domainName"`
	// Export name for the CfnOutput containing the API endpoint.
	EndpointExportName *string `json:"endpointExportName" yaml:"endpointExportName"`
	// A list of the endpoint types of the API.
	//
	// Use this property when creating
	// an API.
	EndpointTypes *[]EndpointType `json:"endpointTypes" yaml:"endpointTypes"`
	// Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.
	FailOnWarnings *bool `json:"failOnWarnings" yaml:"failOnWarnings"`
	// Custom header parameters for the request.
	// See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html
	//
	Parameters *map[string]*string `json:"parameters" yaml:"parameters"`
	// A policy document that contains the permissions for this RestApi.
	Policy awsiam.PolicyDocument `json:"policy" yaml:"policy"`
	// A name for the API Gateway RestApi resource.
	RestApiName *string `json:"restApiName" yaml:"restApiName"`
	// Retains old deployment resources when the API changes.
	//
	// This allows
	// manually reverting stages to point to old deployments via the AWS
	// Console.
	RetainDeployments *bool `json:"retainDeployments" yaml:"retainDeployments"`
}

Represents the props that all Rest APIs share.

TODO: EXAMPLE

type RestApiProps

type RestApiProps 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 `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 `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 `json:"defaultMethodOptions" yaml:"defaultMethodOptions"`
	// Automatically configure an AWS CloudWatch role for API Gateway.
	CloudWatchRole *bool `json:"cloudWatchRole" yaml:"cloudWatchRole"`
	// Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.
	//
	// Since API Gateway deployments are immutable, When this option is enabled
	// (by default), an AWS::ApiGateway::Deployment resource will automatically
	// created with a logical ID that hashes the API model (methods, resources
	// and options). This means that when the model changes, the logical ID of
	// this CloudFormation resource will change, and a new deployment will be
	// created.
	//
	// If this is set, `latestDeployment` will refer to the `Deployment` object
	// and `deploymentStage` will refer to a `Stage` that points to this
	// deployment. To customize the stage options, use the `deployOptions`
	// property.
	//
	// A CloudFormation Output will also be defined with the root URL endpoint
	// of this REST API.
	Deploy *bool `json:"deploy" yaml:"deploy"`
	// Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled.
	//
	// If `deploy` is disabled,
	// this value cannot be set.
	DeployOptions *StageOptions `json:"deployOptions" yaml:"deployOptions"`
	// Specifies whether clients can invoke the API using the default execute-api endpoint.
	//
	// To require that clients use a custom domain name to invoke the
	// API, disable the default endpoint.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
	//
	DisableExecuteApiEndpoint *bool `json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"`
	// Configure a custom domain name and map it to this API.
	DomainName *DomainNameOptions `json:"domainName" yaml:"domainName"`
	// Export name for the CfnOutput containing the API endpoint.
	EndpointExportName *string `json:"endpointExportName" yaml:"endpointExportName"`
	// A list of the endpoint types of the API.
	//
	// Use this property when creating
	// an API.
	EndpointTypes *[]EndpointType `json:"endpointTypes" yaml:"endpointTypes"`
	// Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.
	FailOnWarnings *bool `json:"failOnWarnings" yaml:"failOnWarnings"`
	// Custom header parameters for the request.
	// See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html
	//
	Parameters *map[string]*string `json:"parameters" yaml:"parameters"`
	// A policy document that contains the permissions for this RestApi.
	Policy awsiam.PolicyDocument `json:"policy" yaml:"policy"`
	// A name for the API Gateway RestApi resource.
	RestApiName *string `json:"restApiName" yaml:"restApiName"`
	// Retains old deployment resources when the API changes.
	//
	// This allows
	// manually reverting stages to point to old deployments via the AWS
	// Console.
	RetainDeployments *bool `json:"retainDeployments" yaml:"retainDeployments"`
	// The source of the API key for metering requests according to a usage plan.
	ApiKeySourceType ApiKeySourceType `json:"apiKeySourceType" yaml:"apiKeySourceType"`
	// The list of binary media mime-types that are supported by the RestApi resource, such as "image/png" or "application/octet-stream".
	BinaryMediaTypes *[]*string `json:"binaryMediaTypes" yaml:"binaryMediaTypes"`
	// The ID of the API Gateway RestApi resource that you want to clone.
	CloneFrom IRestApi `json:"cloneFrom" yaml:"cloneFrom"`
	// A description of the purpose of this API Gateway RestApi resource.
	Description *string `json:"description" yaml:"description"`
	// The EndpointConfiguration property type specifies the endpoint types of a REST API.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html
	//
	EndpointConfiguration *EndpointConfiguration `json:"endpointConfiguration" yaml:"endpointConfiguration"`
	// A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (when undefined) on an API.
	//
	// When compression is enabled, compression or
	// decompression is not applied on the payload if the payload size is
	// smaller than this value. Setting it to zero allows compression for any
	// payload size.
	MinimumCompressionSize *float64 `json:"minimumCompressionSize" yaml:"minimumCompressionSize"`
}

Props to create a new instance of RestApi.

TODO: EXAMPLE

type S3ApiDefinition

type S3ApiDefinition interface {
	ApiDefinition
	Bind(_scope constructs.Construct) *ApiDefinitionConfig
	BindAfterCreate(_scope constructs.Construct, _restApi IRestApi)
}

OpenAPI specification from an S3 archive.

TODO: EXAMPLE

func ApiDefinition_FromBucket

func ApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition

Creates an API definition from a specification file in an S3 bucket.

func AssetApiDefinition_FromBucket

func AssetApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition

Creates an API definition from a specification file in an S3 bucket.

func InlineApiDefinition_FromBucket

func InlineApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition

Creates an API definition from a specification file in an S3 bucket.

func NewS3ApiDefinition

func NewS3ApiDefinition(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition

func S3ApiDefinition_FromBucket

func S3ApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition

Creates an API definition from a specification file in an S3 bucket.

type SecurityPolicy

type SecurityPolicy string

The minimum version of the SSL protocol that you want API Gateway to use for HTTPS connections.

TODO: EXAMPLE

const (
	SecurityPolicy_TLS_1_0 SecurityPolicy = "TLS_1_0"
	SecurityPolicy_TLS_1_2 SecurityPolicy = "TLS_1_2"
)

type SpecRestApi

type SpecRestApi interface {
	RestApiBase
	CloudWatchAccount() CfnAccount
	SetCloudWatchAccount(val CfnAccount)
	DeploymentStage() Stage
	SetDeploymentStage(val Stage)
	DomainName() DomainName
	Env() *awscdk.ResourceEnvironment
	LatestDeployment() Deployment
	Node() constructs.Node
	PhysicalName() *string
	RestApiId() *string
	RestApiName() *string
	RestApiRootResourceId() *string
	Root() IResource
	Stack() awscdk.Stack
	AddApiKey(id *string, options *ApiKeyOptions) IApiKey
	AddDomainName(id *string, options *DomainNameOptions) DomainName
	AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse
	AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	ArnForExecuteApi(method *string, path *string, stage *string) *string
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	ToString() *string
	UrlForPath(path *string) *string
}

Represents a REST API in Amazon API Gateway, created with an OpenAPI specification.

Some properties normally accessible on @see {@link RestApi} - such as the description - must be declared in the specification. All Resources and Methods need to be defined as part of the OpenAPI specification file, and cannot be added via the CDK.

By default, the API will automatically be deployed and accessible from a public endpoint.

TODO: EXAMPLE

func NewSpecRestApi

func NewSpecRestApi(scope constructs.Construct, id *string, props *SpecRestApiProps) SpecRestApi

type SpecRestApiProps

type SpecRestApiProps struct {
	// Automatically configure an AWS CloudWatch role for API Gateway.
	CloudWatchRole *bool `json:"cloudWatchRole" yaml:"cloudWatchRole"`
	// Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.
	//
	// Since API Gateway deployments are immutable, When this option is enabled
	// (by default), an AWS::ApiGateway::Deployment resource will automatically
	// created with a logical ID that hashes the API model (methods, resources
	// and options). This means that when the model changes, the logical ID of
	// this CloudFormation resource will change, and a new deployment will be
	// created.
	//
	// If this is set, `latestDeployment` will refer to the `Deployment` object
	// and `deploymentStage` will refer to a `Stage` that points to this
	// deployment. To customize the stage options, use the `deployOptions`
	// property.
	//
	// A CloudFormation Output will also be defined with the root URL endpoint
	// of this REST API.
	Deploy *bool `json:"deploy" yaml:"deploy"`
	// Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled.
	//
	// If `deploy` is disabled,
	// this value cannot be set.
	DeployOptions *StageOptions `json:"deployOptions" yaml:"deployOptions"`
	// Specifies whether clients can invoke the API using the default execute-api endpoint.
	//
	// To require that clients use a custom domain name to invoke the
	// API, disable the default endpoint.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
	//
	DisableExecuteApiEndpoint *bool `json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"`
	// Configure a custom domain name and map it to this API.
	DomainName *DomainNameOptions `json:"domainName" yaml:"domainName"`
	// Export name for the CfnOutput containing the API endpoint.
	EndpointExportName *string `json:"endpointExportName" yaml:"endpointExportName"`
	// A list of the endpoint types of the API.
	//
	// Use this property when creating
	// an API.
	EndpointTypes *[]EndpointType `json:"endpointTypes" yaml:"endpointTypes"`
	// Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.
	FailOnWarnings *bool `json:"failOnWarnings" yaml:"failOnWarnings"`
	// Custom header parameters for the request.
	// See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html
	//
	Parameters *map[string]*string `json:"parameters" yaml:"parameters"`
	// A policy document that contains the permissions for this RestApi.
	Policy awsiam.PolicyDocument `json:"policy" yaml:"policy"`
	// A name for the API Gateway RestApi resource.
	RestApiName *string `json:"restApiName" yaml:"restApiName"`
	// Retains old deployment resources when the API changes.
	//
	// This allows
	// manually reverting stages to point to old deployments via the AWS
	// Console.
	RetainDeployments *bool `json:"retainDeployments" yaml:"retainDeployments"`
	// An OpenAPI definition compatible with API Gateway.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html
	//
	ApiDefinition ApiDefinition `json:"apiDefinition" yaml:"apiDefinition"`
}

Props to instantiate a new SpecRestApi.

TODO: EXAMPLE

type Stage

type Stage interface {
	awscdk.Resource
	IStage
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	RestApi() IRestApi
	Stack() awscdk.Stack
	StageArn() *string
	StageName() *string
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
	UrlForPath(path *string) *string
}

TODO: EXAMPLE

func NewStage

func NewStage(scope constructs.Construct, id *string, props *StageProps) Stage

type StageOptions

type StageOptions struct {
	// Indicates whether the cached responses are encrypted.
	CacheDataEncrypted *bool `json:"cacheDataEncrypted" yaml:"cacheDataEncrypted"`
	// Specifies the time to live (TTL), in seconds, for cached responses.
	//
	// The
	// higher the TTL, the longer the response will be cached.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html
	//
	CacheTtl awscdk.Duration `json:"cacheTtl" yaml:"cacheTtl"`
	// Specifies whether responses should be cached and returned for requests.
	//
	// A
	// cache cluster must be enabled on the stage for responses to be cached.
	CachingEnabled *bool `json:"cachingEnabled" yaml:"cachingEnabled"`
	// Specifies whether data trace logging is enabled for this method.
	//
	// When enabled, API gateway will log the full API requests and responses.
	// This can be useful to troubleshoot APIs, but can result in logging sensitive data.
	// We recommend that you don't enable this feature for production APIs.
	DataTraceEnabled *bool `json:"dataTraceEnabled" yaml:"dataTraceEnabled"`
	// Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
	LoggingLevel MethodLoggingLevel `json:"loggingLevel" yaml:"loggingLevel"`
	// Specifies whether Amazon CloudWatch metrics are enabled for this method.
	MetricsEnabled *bool `json:"metricsEnabled" yaml:"metricsEnabled"`
	// Specifies the throttling burst limit.
	//
	// The total rate of all requests in your AWS account is limited to 5,000 requests.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
	//
	ThrottlingBurstLimit *float64 `json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"`
	// Specifies the throttling rate limit.
	//
	// The total rate of all requests in your AWS account is limited to 10,000 requests per second (rps).
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
	//
	ThrottlingRateLimit *float64 `json:"throttlingRateLimit" yaml:"throttlingRateLimit"`
	// The CloudWatch Logs log group.
	AccessLogDestination IAccessLogDestination `json:"accessLogDestination" yaml:"accessLogDestination"`
	// A single line format of access logs of data, as specified by selected $content variables.
	//
	// The format must include at least `AccessLogFormat.contextRequestId()`.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference
	//
	AccessLogFormat AccessLogFormat `json:"accessLogFormat" yaml:"accessLogFormat"`
	// Indicates whether cache clustering is enabled for the stage.
	CacheClusterEnabled *bool `json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"`
	// The stage's cache cluster size.
	CacheClusterSize *string `json:"cacheClusterSize" yaml:"cacheClusterSize"`
	// The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage.
	ClientCertificateId *string `json:"clientCertificateId" yaml:"clientCertificateId"`
	// A description of the purpose of the stage.
	Description *string `json:"description" yaml:"description"`
	// The version identifier of the API documentation snapshot.
	DocumentationVersion *string `json:"documentationVersion" yaml:"documentationVersion"`
	// Method deployment options for specific resources/methods.
	//
	// These will
	// override common options defined in `StageOptions#methodOptions`.
	MethodOptions *map[string]*MethodDeploymentOptions `json:"methodOptions" yaml:"methodOptions"`
	// The name of the stage, which API Gateway uses as the first path segment in the invoked Uniform Resource Identifier (URI).
	StageName *string `json:"stageName" yaml:"stageName"`
	// Specifies whether Amazon X-Ray tracing is enabled for this method.
	TracingEnabled *bool `json:"tracingEnabled" yaml:"tracingEnabled"`
	// A map that defines the stage variables.
	//
	// Variable names must consist of
	// alphanumeric characters, and the values must match the following regular
	// expression: [A-Za-z0-9-._~:/?#&=,]+.
	Variables *map[string]*string `json:"variables" yaml:"variables"`
}

TODO: EXAMPLE

type StageProps

type StageProps struct {
	// Indicates whether the cached responses are encrypted.
	CacheDataEncrypted *bool `json:"cacheDataEncrypted" yaml:"cacheDataEncrypted"`
	// Specifies the time to live (TTL), in seconds, for cached responses.
	//
	// The
	// higher the TTL, the longer the response will be cached.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html
	//
	CacheTtl awscdk.Duration `json:"cacheTtl" yaml:"cacheTtl"`
	// Specifies whether responses should be cached and returned for requests.
	//
	// A
	// cache cluster must be enabled on the stage for responses to be cached.
	CachingEnabled *bool `json:"cachingEnabled" yaml:"cachingEnabled"`
	// Specifies whether data trace logging is enabled for this method.
	//
	// When enabled, API gateway will log the full API requests and responses.
	// This can be useful to troubleshoot APIs, but can result in logging sensitive data.
	// We recommend that you don't enable this feature for production APIs.
	DataTraceEnabled *bool `json:"dataTraceEnabled" yaml:"dataTraceEnabled"`
	// Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
	LoggingLevel MethodLoggingLevel `json:"loggingLevel" yaml:"loggingLevel"`
	// Specifies whether Amazon CloudWatch metrics are enabled for this method.
	MetricsEnabled *bool `json:"metricsEnabled" yaml:"metricsEnabled"`
	// Specifies the throttling burst limit.
	//
	// The total rate of all requests in your AWS account is limited to 5,000 requests.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
	//
	ThrottlingBurstLimit *float64 `json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"`
	// Specifies the throttling rate limit.
	//
	// The total rate of all requests in your AWS account is limited to 10,000 requests per second (rps).
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html
	//
	ThrottlingRateLimit *float64 `json:"throttlingRateLimit" yaml:"throttlingRateLimit"`
	// The CloudWatch Logs log group.
	AccessLogDestination IAccessLogDestination `json:"accessLogDestination" yaml:"accessLogDestination"`
	// A single line format of access logs of data, as specified by selected $content variables.
	//
	// The format must include at least `AccessLogFormat.contextRequestId()`.
	// See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference
	//
	AccessLogFormat AccessLogFormat `json:"accessLogFormat" yaml:"accessLogFormat"`
	// Indicates whether cache clustering is enabled for the stage.
	CacheClusterEnabled *bool `json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"`
	// The stage's cache cluster size.
	CacheClusterSize *string `json:"cacheClusterSize" yaml:"cacheClusterSize"`
	// The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage.
	ClientCertificateId *string `json:"clientCertificateId" yaml:"clientCertificateId"`
	// A description of the purpose of the stage.
	Description *string `json:"description" yaml:"description"`
	// The version identifier of the API documentation snapshot.
	DocumentationVersion *string `json:"documentationVersion" yaml:"documentationVersion"`
	// Method deployment options for specific resources/methods.
	//
	// These will
	// override common options defined in `StageOptions#methodOptions`.
	MethodOptions *map[string]*MethodDeploymentOptions `json:"methodOptions" yaml:"methodOptions"`
	// The name of the stage, which API Gateway uses as the first path segment in the invoked Uniform Resource Identifier (URI).
	StageName *string `json:"stageName" yaml:"stageName"`
	// Specifies whether Amazon X-Ray tracing is enabled for this method.
	TracingEnabled *bool `json:"tracingEnabled" yaml:"tracingEnabled"`
	// A map that defines the stage variables.
	//
	// Variable names must consist of
	// alphanumeric characters, and the values must match the following regular
	// expression: [A-Za-z0-9-._~:/?#&=,]+.
	Variables *map[string]*string `json:"variables" yaml:"variables"`
	// The deployment that this stage points to [disable-awslint:ref-via-interface].
	Deployment Deployment `json:"deployment" yaml:"deployment"`
}

TODO: EXAMPLE

type StepFunctionsExecutionIntegrationOptions added in v2.1.0

type StepFunctionsExecutionIntegrationOptions struct {
	// A list of request parameters whose values are to be cached.
	//
	// It determines
	// request parameters that will make it into the cache key.
	CacheKeyParameters *[]*string `json:"cacheKeyParameters" yaml:"cacheKeyParameters"`
	// An API-specific tag group of related cached parameters.
	CacheNamespace *string `json:"cacheNamespace" yaml:"cacheNamespace"`
	// The type of network connection to the integration endpoint.
	ConnectionType ConnectionType `json:"connectionType" yaml:"connectionType"`
	// Specifies how to handle request payload content type conversions.
	ContentHandling ContentHandling `json:"contentHandling" yaml:"contentHandling"`
	// Requires that the caller's identity be passed through from the request.
	CredentialsPassthrough *bool `json:"credentialsPassthrough" yaml:"credentialsPassthrough"`
	// An IAM role that API Gateway assumes.
	//
	// Mutually exclusive with `credentialsPassThrough`.
	CredentialsRole awsiam.IRole `json:"credentialsRole" yaml:"credentialsRole"`
	// The response that API Gateway provides after a method's backend completes processing a request.
	//
	// API Gateway intercepts the response from the
	// backend so that you can control how API Gateway surfaces backend
	// responses. For example, you can map the backend status codes to codes
	// that you define.
	IntegrationResponses *[]*IntegrationResponse `json:"integrationResponses" yaml:"integrationResponses"`
	// Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource.
	//
	// There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and
	// NEVER.
	PassthroughBehavior PassthroughBehavior `json:"passthroughBehavior" yaml:"passthroughBehavior"`
	// The request parameters that API Gateway sends with the backend request.
	//
	// Specify request parameters as key-value pairs (string-to-string
	// mappings), with a destination as the key and a source as the value.
	//
	// Specify the destination by using the following pattern
	// integration.request.location.name, where location is querystring, path,
	// or header, and name is a valid, unique parameter name.
	//
	// The source must be an existing method request parameter or a static
	// value. You must enclose static values in single quotation marks and
	// pre-encode these values based on their destination in the request.
	RequestParameters *map[string]*string `json:"requestParameters" yaml:"requestParameters"`
	// A map of Apache Velocity templates that are applied on the request payload.
	//
	// The template that API Gateway uses is based on the value of the
	// Content-Type header that's sent by the client. The content type value is
	// the key, and the template is the value (specified as a string), such as
	// the following snippet:
	//
	// “`
	//    { "application/json": "{ \"statusCode\": 200 }" }
	// “`
	// See: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
	//
	RequestTemplates *map[string]*string `json:"requestTemplates" yaml:"requestTemplates"`
	// The maximum amount of time an integration will run before it returns without a response.
	//
	// Must be between 50 milliseconds and 29 seconds.
	Timeout awscdk.Duration `json:"timeout" yaml:"timeout"`
	// The VpcLink used for the integration.
	//
	// Required if connectionType is VPC_LINK
	VpcLink IVpcLink `json:"vpcLink" yaml:"vpcLink"`
	// Check if header is to be included inside the execution input.
	//
	// The execution input will include a new key `headers`:
	//
	// {
	//    "body": {},
	//    "headers": {
	//       "header1": "value",
	//       "header2": "value"
	//    }
	// }
	Headers *bool `json:"headers" yaml:"headers"`
	// Check if path is to be included inside the execution input.
	//
	// The execution input will include a new key `path`:
	//
	// {
	//    "body": {},
	//    "path": {
	//      "resourceName": "resourceValue"
	//    }
	// }
	Path *bool `json:"path" yaml:"path"`
	// Check if querystring is to be included inside the execution input.
	//
	// The execution input will include a new key `queryString`:
	//
	// {
	//    "body": {},
	//    "querystring": {
	//      "key": "value"
	//    }
	// }
	Querystring *bool `json:"querystring" yaml:"querystring"`
	// Which details of the incoming request must be passed onto the underlying state machine, such as, account id, user identity, request id, etc.
	//
	// The execution input will include a new key `requestContext`:
	//
	// {
	//    "body": {},
	//    "requestContext": {
	//        "key": "value"
	//    }
	// }
	RequestContext *RequestContext `json:"requestContext" yaml:"requestContext"`
}

Options when configuring Step Functions synchronous integration with Rest API.

TODO: EXAMPLE

type StepFunctionsIntegration added in v2.1.0

type StepFunctionsIntegration interface {
}

Options to integrate with various StepFunction API.

TODO: EXAMPLE

func NewStepFunctionsIntegration added in v2.1.0

func NewStepFunctionsIntegration() StepFunctionsIntegration

type StepFunctionsRestApi added in v2.1.0

type StepFunctionsRestApi interface {
	RestApi
	CloudWatchAccount() CfnAccount
	SetCloudWatchAccount(val CfnAccount)
	DeploymentStage() Stage
	SetDeploymentStage(val Stage)
	DomainName() DomainName
	Env() *awscdk.ResourceEnvironment
	LatestDeployment() Deployment
	Methods() *[]Method
	Node() constructs.Node
	PhysicalName() *string
	RestApiId() *string
	RestApiName() *string
	RestApiRootResourceId() *string
	Root() IResource
	Stack() awscdk.Stack
	Url() *string
	AddApiKey(id *string, options *ApiKeyOptions) IApiKey
	AddDomainName(id *string, options *DomainNameOptions) DomainName
	AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse
	AddModel(id *string, props *ModelOptions) Model
	AddRequestValidator(id *string, props *RequestValidatorOptions) RequestValidator
	AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	ArnForExecuteApi(method *string, path *string, stage *string) *string
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	ToString() *string
	UrlForPath(path *string) *string
}

Defines an API Gateway REST API with a Synchrounous Express State Machine as a proxy integration.

TODO: EXAMPLE

func NewStepFunctionsRestApi added in v2.1.0

func NewStepFunctionsRestApi(scope constructs.Construct, id *string, props *StepFunctionsRestApiProps) StepFunctionsRestApi

type StepFunctionsRestApiProps added in v2.1.0

type StepFunctionsRestApiProps 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 `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 `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 `json:"defaultMethodOptions" yaml:"defaultMethodOptions"`
	// Automatically configure an AWS CloudWatch role for API Gateway.
	CloudWatchRole *bool `json:"cloudWatchRole" yaml:"cloudWatchRole"`
	// Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.
	//
	// Since API Gateway deployments are immutable, When this option is enabled
	// (by default), an AWS::ApiGateway::Deployment resource will automatically
	// created with a logical ID that hashes the API model (methods, resources
	// and options). This means that when the model changes, the logical ID of
	// this CloudFormation resource will change, and a new deployment will be
	// created.
	//
	// If this is set, `latestDeployment` will refer to the `Deployment` object
	// and `deploymentStage` will refer to a `Stage` that points to this
	// deployment. To customize the stage options, use the `deployOptions`
	// property.
	//
	// A CloudFormation Output will also be defined with the root URL endpoint
	// of this REST API.
	Deploy *bool `json:"deploy" yaml:"deploy"`
	// Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled.
	//
	// If `deploy` is disabled,
	// this value cannot be set.
	DeployOptions *StageOptions `json:"deployOptions" yaml:"deployOptions"`
	// Specifies whether clients can invoke the API using the default execute-api endpoint.
	//
	// To require that clients use a custom domain name to invoke the
	// API, disable the default endpoint.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
	//
	DisableExecuteApiEndpoint *bool `json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"`
	// Configure a custom domain name and map it to this API.
	DomainName *DomainNameOptions `json:"domainName" yaml:"domainName"`
	// Export name for the CfnOutput containing the API endpoint.
	EndpointExportName *string `json:"endpointExportName" yaml:"endpointExportName"`
	// A list of the endpoint types of the API.
	//
	// Use this property when creating
	// an API.
	EndpointTypes *[]EndpointType `json:"endpointTypes" yaml:"endpointTypes"`
	// Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.
	FailOnWarnings *bool `json:"failOnWarnings" yaml:"failOnWarnings"`
	// Custom header parameters for the request.
	// See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html
	//
	Parameters *map[string]*string `json:"parameters" yaml:"parameters"`
	// A policy document that contains the permissions for this RestApi.
	Policy awsiam.PolicyDocument `json:"policy" yaml:"policy"`
	// A name for the API Gateway RestApi resource.
	RestApiName *string `json:"restApiName" yaml:"restApiName"`
	// Retains old deployment resources when the API changes.
	//
	// This allows
	// manually reverting stages to point to old deployments via the AWS
	// Console.
	RetainDeployments *bool `json:"retainDeployments" yaml:"retainDeployments"`
	// The source of the API key for metering requests according to a usage plan.
	ApiKeySourceType ApiKeySourceType `json:"apiKeySourceType" yaml:"apiKeySourceType"`
	// The list of binary media mime-types that are supported by the RestApi resource, such as "image/png" or "application/octet-stream".
	BinaryMediaTypes *[]*string `json:"binaryMediaTypes" yaml:"binaryMediaTypes"`
	// The ID of the API Gateway RestApi resource that you want to clone.
	CloneFrom IRestApi `json:"cloneFrom" yaml:"cloneFrom"`
	// A description of the purpose of this API Gateway RestApi resource.
	Description *string `json:"description" yaml:"description"`
	// The EndpointConfiguration property type specifies the endpoint types of a REST API.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html
	//
	EndpointConfiguration *EndpointConfiguration `json:"endpointConfiguration" yaml:"endpointConfiguration"`
	// A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (when undefined) on an API.
	//
	// When compression is enabled, compression or
	// decompression is not applied on the payload if the payload size is
	// smaller than this value. Setting it to zero allows compression for any
	// payload size.
	MinimumCompressionSize *float64 `json:"minimumCompressionSize" yaml:"minimumCompressionSize"`
	// The default State Machine that handles all requests from this API.
	//
	// This stateMachine will be used as a the default integration for all methods in
	// this API, unless specified otherwise in `addMethod`.
	StateMachine awsstepfunctions.IStateMachine `json:"stateMachine" yaml:"stateMachine"`
	// Check if header is to be included inside the execution input.
	//
	// The execution input will include a new key `headers`:
	//
	// {
	//    "body": {},
	//    "headers": {
	//       "header1": "value",
	//       "header2": "value"
	//    }
	// }
	Headers *bool `json:"headers" yaml:"headers"`
	// Check if path is to be included inside the execution input.
	//
	// The execution input will include a new key `path`:
	//
	// {
	//    "body": {},
	//    "path": {
	//      "resourceName": "resourceValue"
	//    }
	// }
	Path *bool `json:"path" yaml:"path"`
	// Check if querystring is to be included inside the execution input.
	//
	// The execution input will include a new key `queryString`:
	//
	// {
	//    "body": {},
	//    "querystring": {
	//      "key": "value"
	//    }
	// }
	Querystring *bool `json:"querystring" yaml:"querystring"`
	// Which details of the incoming request must be passed onto the underlying state machine, such as, account id, user identity, request id, etc.
	//
	// The execution input will include a new key `requestContext`:
	//
	// {
	//    "body": {},
	//    "requestContext": {
	//        "key": "value"
	//    }
	// }
	RequestContext *RequestContext `json:"requestContext" yaml:"requestContext"`
}

Properties for StepFunctionsRestApi.

TODO: EXAMPLE

type ThrottleSettings

type ThrottleSettings struct {
	// The maximum API request rate limit over a time ranging from one to a few seconds.
	BurstLimit *float64 `json:"burstLimit" yaml:"burstLimit"`
	// The API request steady-state rate limit (average requests per second over an extended period of time).
	RateLimit *float64 `json:"rateLimit" yaml:"rateLimit"`
}

Container for defining throttling parameters to API stages or methods.

TODO: EXAMPLE

type ThrottlingPerMethod

type ThrottlingPerMethod struct {
	// [disable-awslint:ref-via-interface] The method for which you specify the throttling settings.
	Method Method `json:"method" yaml:"method"`
	// Specifies the overall request rate (average requests per second) and burst capacity.
	Throttle *ThrottleSettings `json:"throttle" yaml:"throttle"`
}

Represents per-method throttling for a resource.

TODO: EXAMPLE

type TokenAuthorizer

type TokenAuthorizer interface {
	Authorizer
	IAuthorizer
	AuthorizationType() AuthorizationType
	AuthorizerArn() *string
	AuthorizerId() *string
	Env() *awscdk.ResourceEnvironment
	Handler() awslambda.IFunction
	Node() constructs.Node
	PhysicalName() *string
	RestApiId() *string
	SetRestApiId(val *string)
	Role() awsiam.IRole
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	LazyRestApiId() *string
	SetupPermissions()
	ToString() *string
}

Token based lambda authorizer that recognizes the caller's identity as a bearer token, such as a JSON Web Token (JWT) or an OAuth token.

Based on the token, authorization is performed by a lambda function.

TODO: EXAMPLE

func NewTokenAuthorizer

func NewTokenAuthorizer(scope constructs.Construct, id *string, props *TokenAuthorizerProps) TokenAuthorizer

type TokenAuthorizerProps

type TokenAuthorizerProps struct {
	// The handler for the authorizer lambda function.
	//
	// The handler must follow a very specific protocol on the input it receives and the output it needs to produce.
	// API Gateway has documented the handler's input specification
	// {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html | here} and output specification
	// {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html | here}.
	Handler awslambda.IFunction `json:"handler" yaml:"handler"`
	// An optional IAM role for APIGateway to assume before calling the Lambda-based authorizer.
	//
	// The IAM role must be
	// assumable by 'apigateway.amazonaws.com'.
	AssumeRole awsiam.IRole `json:"assumeRole" yaml:"assumeRole"`
	// An optional human friendly name for the authorizer.
	//
	// Note that, this is not the primary identifier of the authorizer.
	AuthorizerName *string `json:"authorizerName" yaml:"authorizerName"`
	// How long APIGateway should cache the results.
	//
	// Max 1 hour.
	// Disable caching by setting this to 0.
	ResultsCacheTtl awscdk.Duration `json:"resultsCacheTtl" yaml:"resultsCacheTtl"`
	// The request header mapping expression for the bearer token.
	//
	// This is typically passed as part of the header, in which case
	// this should be `method.request.header.Authorizer` where Authorizer is the header containing the bearer token.
	// See: https://docs.aws.amazon.com/apigateway/api-reference/link-relation/authorizer-create/#identitySource
	//
	IdentitySource *string `json:"identitySource" yaml:"identitySource"`
	// An optional regex to be matched against the authorization token.
	//
	// When matched the authorizer lambda is invoked,
	// otherwise a 401 Unauthorized is returned to the client.
	ValidationRegex *string `json:"validationRegex" yaml:"validationRegex"`
}

Properties for TokenAuthorizer.

TODO: EXAMPLE

type UsagePlan

type UsagePlan interface {
	awscdk.Resource
	IUsagePlan
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	UsagePlanId() *string
	AddApiKey(apiKey IApiKey, options *AddApiKeyOptions)
	AddApiStage(apiStage *UsagePlanPerApiStage)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

TODO: EXAMPLE

func NewUsagePlan

func NewUsagePlan(scope constructs.Construct, id *string, props *UsagePlanProps) UsagePlan

type UsagePlanPerApiStage

type UsagePlanPerApiStage struct {
	Api IRestApi `json:"api" yaml:"api"`
	// [disable-awslint:ref-via-interface].
	Stage    Stage                   `json:"stage" yaml:"stage"`
	Throttle *[]*ThrottlingPerMethod `json:"throttle" yaml:"throttle"`
}

Represents the API stages that a usage plan applies to.

TODO: EXAMPLE

type UsagePlanProps

type UsagePlanProps struct {
	// API Stages to be associated with the usage plan.
	ApiStages *[]*UsagePlanPerApiStage `json:"apiStages" yaml:"apiStages"`
	// Represents usage plan purpose.
	Description *string `json:"description" yaml:"description"`
	// Name for this usage plan.
	Name *string `json:"name" yaml:"name"`
	// Number of requests clients can make in a given time period.
	Quota *QuotaSettings `json:"quota" yaml:"quota"`
	// Overall throttle settings for the API.
	Throttle *ThrottleSettings `json:"throttle" yaml:"throttle"`
}

TODO: EXAMPLE

type VpcLink interface {
	awscdk.Resource
	IVpcLink
	Env() *awscdk.ResourceEnvironment
	Node() constructs.Node
	PhysicalName() *string
	Stack() awscdk.Stack
	VpcLinkId() *string
	AddTargets(targets ...awselasticloadbalancingv2.INetworkLoadBalancer)
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	ToString() *string
}

Define a new VPC Link Specifies an API Gateway VPC link for a RestApi to access resources in an Amazon Virtual Private Cloud (VPC).

TODO: EXAMPLE

func NewVpcLink(scope constructs.Construct, id *string, props *VpcLinkProps) VpcLink

type VpcLinkProps

type VpcLinkProps struct {
	// The description of the VPC link.
	Description *string `json:"description" yaml:"description"`
	// The network load balancers of the VPC targeted by the VPC link.
	//
	// The network load balancers must be owned by the same AWS account of the API owner.
	Targets *[]awselasticloadbalancingv2.INetworkLoadBalancer `json:"targets" yaml:"targets"`
	// The name used to label and identify the VPC link.
	VpcLinkName *string `json:"vpcLinkName" yaml:"vpcLinkName"`
}

Properties for a VpcLink.

TODO: EXAMPLE

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL