Documentation ¶
Index ¶
- func AccessLogField_ContextAccountId() *string
- func AccessLogField_ContextApiId() *string
- func AccessLogField_ContextAuthenticateError() *string
- func AccessLogField_ContextAuthenticateLatency() *string
- func AccessLogField_ContextAuthenticateStatus() *string
- func AccessLogField_ContextAuthorizeError() *string
- func AccessLogField_ContextAuthorizeLatency() *string
- func AccessLogField_ContextAuthorizeStatus() *string
- func AccessLogField_ContextAuthorizer(property *string) *string
- func AccessLogField_ContextAuthorizerClaims(property *string) *string
- func AccessLogField_ContextAuthorizerError() *string
- func AccessLogField_ContextAuthorizerIntegrationLatency() *string
- func AccessLogField_ContextAuthorizerIntegrationStatus() *string
- func AccessLogField_ContextAuthorizerLatency() *string
- func AccessLogField_ContextAuthorizerPrincipalId() *string
- func AccessLogField_ContextAuthorizerRequestId() *string
- func AccessLogField_ContextAuthorizerStatus() *string
- func AccessLogField_ContextAwsEndpointRequestId() *string
- func AccessLogField_ContextCallerAccountId() *string
- func AccessLogField_ContextCustomDomainBasePathMatched() *string
- func AccessLogField_ContextDomainName() *string
- func AccessLogField_ContextDomainPrefix() *string
- func AccessLogField_ContextErrorMessage() *string
- func AccessLogField_ContextErrorMessageString() *string
- func AccessLogField_ContextErrorResponseType() *string
- func AccessLogField_ContextErrorValidationErrorString() *string
- func AccessLogField_ContextExtendedRequestId() *string
- func AccessLogField_ContextHttpMethod() *string
- func AccessLogField_ContextIdentityAccountId() *string
- func AccessLogField_ContextIdentityApiKey() *string
- func AccessLogField_ContextIdentityApiKeyId() *string
- func AccessLogField_ContextIdentityCaller() *string
- func AccessLogField_ContextIdentityClientCertIssunerDN() *string
- func AccessLogField_ContextIdentityClientCertPem() *string
- func AccessLogField_ContextIdentityClientCertSerialNumber() *string
- func AccessLogField_ContextIdentityClientCertSubjectDN() *string
- func AccessLogField_ContextIdentityClientCertValidityNotAfter() *string
- func AccessLogField_ContextIdentityClientCertValidityNotBefore() *string
- func AccessLogField_ContextIdentityCognitoAuthenticationProvider() *string
- func AccessLogField_ContextIdentityCognitoAuthenticationType() *string
- func AccessLogField_ContextIdentityCognitoIdentityId() *string
- func AccessLogField_ContextIdentityCognitoIdentityPoolId() *string
- func AccessLogField_ContextIdentityPrincipalOrgId() *string
- func AccessLogField_ContextIdentitySourceIp() *string
- func AccessLogField_ContextIdentityUser() *string
- func AccessLogField_ContextIdentityUserAgent() *string
- func AccessLogField_ContextIdentityUserArn() *string
- func AccessLogField_ContextIntegrationErrorMessage() *string
- func AccessLogField_ContextIntegrationLatency() *string
- func AccessLogField_ContextIntegrationStatus() *string
- func AccessLogField_ContextOwnerAccountId() *string
- func AccessLogField_ContextPath() *string
- func AccessLogField_ContextProtocol() *string
- func AccessLogField_ContextRequestId() *string
- func AccessLogField_ContextRequestOverrideHeader(headerName *string) *string
- func AccessLogField_ContextRequestOverridePath(pathName *string) *string
- func AccessLogField_ContextRequestOverrideQuerystring(querystringName *string) *string
- func AccessLogField_ContextRequestTime() *string
- func AccessLogField_ContextRequestTimeEpoch() *string
- func AccessLogField_ContextResourceId() *string
- func AccessLogField_ContextResourcePath() *string
- func AccessLogField_ContextResponseLatency() *string
- func AccessLogField_ContextResponseLength() *string
- func AccessLogField_ContextResponseOverrideHeader(headerName *string) *string
- func AccessLogField_ContextResponseOverrideStatus() *string
- func AccessLogField_ContextStage() *string
- func AccessLogField_ContextStatus() *string
- func AccessLogField_ContextWafError() *string
- func AccessLogField_ContextWafLatency() *string
- func AccessLogField_ContextWafResponseCode() *string
- func AccessLogField_ContextWafStatus() *string
- func AccessLogField_ContextWebaclArn() *string
- func AccessLogField_ContextXrayTraceId() *string
- func ApiKey_IsConstruct(x interface{}) *bool
- func ApiKey_IsOwnedResource(construct constructs.IConstruct) *bool
- func ApiKey_IsResource(construct constructs.IConstruct) *bool
- func Authorizer_IsAuthorizer(x interface{}) *bool
- func Authorizer_IsConstruct(x interface{}) *bool
- func Authorizer_IsOwnedResource(construct constructs.IConstruct) *bool
- func Authorizer_IsResource(construct constructs.IConstruct) *bool
- func BasePathMapping_IsConstruct(x interface{}) *bool
- func BasePathMapping_IsOwnedResource(construct constructs.IConstruct) *bool
- func BasePathMapping_IsResource(construct constructs.IConstruct) *bool
- func CfnAccount_CFN_RESOURCE_TYPE_NAME() *string
- func CfnAccount_IsCfnElement(x interface{}) *bool
- func CfnAccount_IsCfnResource(x interface{}) *bool
- func CfnAccount_IsConstruct(x interface{}) *bool
- func CfnApiKey_CFN_RESOURCE_TYPE_NAME() *string
- func CfnApiKey_IsCfnElement(x interface{}) *bool
- func CfnApiKey_IsCfnResource(x interface{}) *bool
- func CfnApiKey_IsConstruct(x interface{}) *bool
- func CfnAuthorizer_CFN_RESOURCE_TYPE_NAME() *string
- func CfnAuthorizer_IsCfnElement(x interface{}) *bool
- func CfnAuthorizer_IsCfnResource(x interface{}) *bool
- func CfnAuthorizer_IsConstruct(x interface{}) *bool
- func CfnBasePathMapping_CFN_RESOURCE_TYPE_NAME() *string
- func CfnBasePathMapping_IsCfnElement(x interface{}) *bool
- func CfnBasePathMapping_IsCfnResource(x interface{}) *bool
- func CfnBasePathMapping_IsConstruct(x interface{}) *bool
- func CfnClientCertificate_CFN_RESOURCE_TYPE_NAME() *string
- func CfnClientCertificate_IsCfnElement(x interface{}) *bool
- func CfnClientCertificate_IsCfnResource(x interface{}) *bool
- func CfnClientCertificate_IsConstruct(x interface{}) *bool
- func CfnDeployment_CFN_RESOURCE_TYPE_NAME() *string
- func CfnDeployment_IsCfnElement(x interface{}) *bool
- func CfnDeployment_IsCfnResource(x interface{}) *bool
- func CfnDeployment_IsConstruct(x interface{}) *bool
- func CfnDocumentationPart_CFN_RESOURCE_TYPE_NAME() *string
- func CfnDocumentationPart_IsCfnElement(x interface{}) *bool
- func CfnDocumentationPart_IsCfnResource(x interface{}) *bool
- func CfnDocumentationPart_IsConstruct(x interface{}) *bool
- func CfnDocumentationVersion_CFN_RESOURCE_TYPE_NAME() *string
- func CfnDocumentationVersion_IsCfnElement(x interface{}) *bool
- func CfnDocumentationVersion_IsCfnResource(x interface{}) *bool
- func CfnDocumentationVersion_IsConstruct(x interface{}) *bool
- func CfnDomainName_CFN_RESOURCE_TYPE_NAME() *string
- func CfnDomainName_IsCfnElement(x interface{}) *bool
- func CfnDomainName_IsCfnResource(x interface{}) *bool
- func CfnDomainName_IsConstruct(x interface{}) *bool
- func CfnGatewayResponse_CFN_RESOURCE_TYPE_NAME() *string
- func CfnGatewayResponse_IsCfnElement(x interface{}) *bool
- func CfnGatewayResponse_IsCfnResource(x interface{}) *bool
- func CfnGatewayResponse_IsConstruct(x interface{}) *bool
- func CfnMethod_CFN_RESOURCE_TYPE_NAME() *string
- func CfnMethod_IsCfnElement(x interface{}) *bool
- func CfnMethod_IsCfnResource(x interface{}) *bool
- func CfnMethod_IsConstruct(x interface{}) *bool
- func CfnModel_CFN_RESOURCE_TYPE_NAME() *string
- func CfnModel_IsCfnElement(x interface{}) *bool
- func CfnModel_IsCfnResource(x interface{}) *bool
- func CfnModel_IsConstruct(x interface{}) *bool
- func CfnRequestValidator_CFN_RESOURCE_TYPE_NAME() *string
- func CfnRequestValidator_IsCfnElement(x interface{}) *bool
- func CfnRequestValidator_IsCfnResource(x interface{}) *bool
- func CfnRequestValidator_IsConstruct(x interface{}) *bool
- func CfnResource_CFN_RESOURCE_TYPE_NAME() *string
- func CfnResource_IsCfnElement(x interface{}) *bool
- func CfnResource_IsCfnResource(x interface{}) *bool
- func CfnResource_IsConstruct(x interface{}) *bool
- func CfnRestApi_CFN_RESOURCE_TYPE_NAME() *string
- func CfnRestApi_IsCfnElement(x interface{}) *bool
- func CfnRestApi_IsCfnResource(x interface{}) *bool
- func CfnRestApi_IsConstruct(x interface{}) *bool
- func CfnStage_CFN_RESOURCE_TYPE_NAME() *string
- func CfnStage_IsCfnElement(x interface{}) *bool
- func CfnStage_IsCfnResource(x interface{}) *bool
- func CfnStage_IsConstruct(x interface{}) *bool
- func CfnUsagePlanKey_CFN_RESOURCE_TYPE_NAME() *string
- func CfnUsagePlanKey_IsCfnElement(x interface{}) *bool
- func CfnUsagePlanKey_IsCfnResource(x interface{}) *bool
- func CfnUsagePlanKey_IsConstruct(x interface{}) *bool
- func CfnUsagePlan_CFN_RESOURCE_TYPE_NAME() *string
- func CfnUsagePlan_IsCfnElement(x interface{}) *bool
- func CfnUsagePlan_IsCfnResource(x interface{}) *bool
- func CfnUsagePlan_IsConstruct(x interface{}) *bool
- func CfnVpcLink_CFN_RESOURCE_TYPE_NAME() *string
- func CfnVpcLink_IsCfnElement(x interface{}) *bool
- func CfnVpcLink_IsCfnResource(x interface{}) *bool
- func CfnVpcLink_IsConstruct(x interface{}) *bool
- func CognitoUserPoolsAuthorizer_IsAuthorizer(x interface{}) *bool
- func CognitoUserPoolsAuthorizer_IsConstruct(x interface{}) *bool
- func CognitoUserPoolsAuthorizer_IsOwnedResource(construct constructs.IConstruct) *bool
- func CognitoUserPoolsAuthorizer_IsResource(construct constructs.IConstruct) *bool
- func Cors_ALL_METHODS() *[]*string
- func Cors_ALL_ORIGINS() *[]*string
- func Cors_DEFAULT_HEADERS() *[]*string
- func Deployment_IsConstruct(x interface{}) *bool
- func Deployment_IsOwnedResource(construct constructs.IConstruct) *bool
- func Deployment_IsResource(construct constructs.IConstruct) *bool
- func DomainName_IsConstruct(x interface{}) *bool
- func DomainName_IsOwnedResource(construct constructs.IConstruct) *bool
- func DomainName_IsResource(construct constructs.IConstruct) *bool
- func GatewayResponse_IsConstruct(x interface{}) *bool
- func GatewayResponse_IsOwnedResource(construct constructs.IConstruct) *bool
- func GatewayResponse_IsResource(construct constructs.IConstruct) *bool
- func IdentitySource_Context(context *string) *string
- func IdentitySource_Header(headerName *string) *string
- func IdentitySource_QueryString(queryString *string) *string
- func IdentitySource_StageVariable(stageVariable *string) *string
- func LambdaRestApi_IsConstruct(x interface{}) *bool
- func LambdaRestApi_IsOwnedResource(construct constructs.IConstruct) *bool
- func LambdaRestApi_IsResource(construct constructs.IConstruct) *bool
- func LambdaRestApi_IsRestApi(x interface{}) *bool
- func Method_IsConstruct(x interface{}) *bool
- func Method_IsOwnedResource(construct constructs.IConstruct) *bool
- func Method_IsResource(construct constructs.IConstruct) *bool
- func Model_IsConstruct(x interface{}) *bool
- func Model_IsOwnedResource(construct constructs.IConstruct) *bool
- func Model_IsResource(construct constructs.IConstruct) *bool
- func NewAccessLogField_Override(a AccessLogField)
- func NewApiDefinition_Override(a ApiDefinition)
- func NewApiKey_Override(a ApiKey, scope constructs.Construct, id *string, props *ApiKeyProps)
- func NewAssetApiDefinition_Override(a AssetApiDefinition, path *string, options *awss3assets.AssetOptions)
- func NewAuthorizer_Override(a Authorizer, scope constructs.Construct, id *string, ...)
- func NewAwsIntegration_Override(a AwsIntegration, props *AwsIntegrationProps)
- func NewBasePathMapping_Override(b BasePathMapping, scope constructs.Construct, id *string, ...)
- func NewCfnAccount_Override(c CfnAccount, scope constructs.Construct, id *string, props *CfnAccountProps)
- func NewCfnApiKey_Override(c CfnApiKey, scope constructs.Construct, id *string, props *CfnApiKeyProps)
- func NewCfnAuthorizer_Override(c CfnAuthorizer, scope constructs.Construct, id *string, ...)
- func NewCfnBasePathMapping_Override(c CfnBasePathMapping, scope constructs.Construct, id *string, ...)
- func NewCfnClientCertificate_Override(c CfnClientCertificate, scope constructs.Construct, id *string, ...)
- func NewCfnDeployment_Override(c CfnDeployment, scope constructs.Construct, id *string, ...)
- func NewCfnDocumentationPart_Override(c CfnDocumentationPart, scope constructs.Construct, id *string, ...)
- func NewCfnDocumentationVersion_Override(c CfnDocumentationVersion, scope constructs.Construct, id *string, ...)
- func NewCfnDomainName_Override(c CfnDomainName, scope constructs.Construct, id *string, ...)
- func NewCfnGatewayResponse_Override(c CfnGatewayResponse, scope constructs.Construct, id *string, ...)
- func NewCfnMethod_Override(c CfnMethod, scope constructs.Construct, id *string, props *CfnMethodProps)
- func NewCfnModel_Override(c CfnModel, scope constructs.Construct, id *string, props *CfnModelProps)
- func NewCfnRequestValidator_Override(c CfnRequestValidator, scope constructs.Construct, id *string, ...)
- func NewCfnResource_Override(c CfnResource, scope constructs.Construct, id *string, props *CfnResourceProps)
- func NewCfnRestApi_Override(c CfnRestApi, scope constructs.Construct, id *string, props *CfnRestApiProps)
- func NewCfnStage_Override(c CfnStage, scope constructs.Construct, id *string, props *CfnStageProps)
- func NewCfnUsagePlanKey_Override(c CfnUsagePlanKey, scope constructs.Construct, id *string, ...)
- func NewCfnUsagePlan_Override(c CfnUsagePlan, scope constructs.Construct, id *string, ...)
- func NewCfnVpcLink_Override(c CfnVpcLink, scope constructs.Construct, id *string, props *CfnVpcLinkProps)
- func NewCognitoUserPoolsAuthorizer_Override(c CognitoUserPoolsAuthorizer, scope constructs.Construct, id *string, ...)
- func NewDeployment_Override(d Deployment, scope constructs.Construct, id *string, props *DeploymentProps)
- func NewDomainName_Override(d DomainName, scope constructs.Construct, id *string, props *DomainNameProps)
- func NewFirehoseLogDestination_Override(f FirehoseLogDestination, stream awskinesisfirehose.CfnDeliveryStream)
- func NewGatewayResponse_Override(g GatewayResponse, scope constructs.Construct, id *string, ...)
- func NewHttpIntegration_Override(h HttpIntegration, url *string, props *HttpIntegrationProps)
- func NewIdentitySource_Override(i IdentitySource)
- func NewInlineApiDefinition_Override(i InlineApiDefinition, definition interface{})
- func NewIntegration_Override(i Integration, props *IntegrationProps)
- func NewLambdaIntegration_Override(l LambdaIntegration, handler awslambda.IFunction, ...)
- func NewLambdaRestApi_Override(l LambdaRestApi, scope constructs.Construct, id *string, ...)
- func NewLogGroupLogDestination_Override(l LogGroupLogDestination, logGroup awslogs.ILogGroup)
- func NewMethod_Override(m Method, scope constructs.Construct, id *string, props *MethodProps)
- func NewMockIntegration_Override(m MockIntegration, options *IntegrationOptions)
- func NewModel_Override(m Model, scope constructs.Construct, id *string, props *ModelProps)
- func NewProxyResource_Override(p ProxyResource, scope constructs.Construct, id *string, ...)
- func NewRateLimitedApiKey_Override(r RateLimitedApiKey, scope constructs.Construct, id *string, ...)
- func NewRequestAuthorizer_Override(r RequestAuthorizer, scope constructs.Construct, id *string, ...)
- func NewRequestValidator_Override(r RequestValidator, scope constructs.Construct, id *string, ...)
- func NewResourceBase_Override(r ResourceBase, scope constructs.Construct, id *string)
- func NewResource_Override(r Resource, scope constructs.Construct, id *string, props *ResourceProps)
- func NewRestApiBase_Override(r RestApiBase, scope constructs.Construct, id *string, props *RestApiBaseProps)
- func NewRestApi_Override(r RestApi, scope constructs.Construct, id *string, props *RestApiProps)
- func NewS3ApiDefinition_Override(s S3ApiDefinition, bucket awss3.IBucket, key *string, objectVersion *string)
- func NewSagemakerIntegration_Override(s SagemakerIntegration, endpoint awssagemaker.IEndpoint, ...)
- func NewSpecRestApi_Override(s SpecRestApi, scope constructs.Construct, id *string, props *SpecRestApiProps)
- func NewStageBase_Override(s StageBase, scope constructs.Construct, id *string, ...)
- func NewStage_Override(s Stage, scope constructs.Construct, id *string, props *StageProps)
- func NewStepFunctionsIntegration_Override(s StepFunctionsIntegration)
- func NewStepFunctionsRestApi_Override(s StepFunctionsRestApi, scope constructs.Construct, id *string, ...)
- func NewTokenAuthorizer_Override(t TokenAuthorizer, scope constructs.Construct, id *string, ...)
- 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(x interface{}) *bool
- func ProxyResource_IsOwnedResource(construct constructs.IConstruct) *bool
- func ProxyResource_IsResource(construct constructs.IConstruct) *bool
- func RateLimitedApiKey_IsConstruct(x interface{}) *bool
- func RateLimitedApiKey_IsOwnedResource(construct constructs.IConstruct) *bool
- func RateLimitedApiKey_IsResource(construct constructs.IConstruct) *bool
- func RequestAuthorizer_IsAuthorizer(x interface{}) *bool
- func RequestAuthorizer_IsConstruct(x interface{}) *bool
- func RequestAuthorizer_IsOwnedResource(construct constructs.IConstruct) *bool
- func RequestAuthorizer_IsResource(construct constructs.IConstruct) *bool
- func RequestValidator_IsConstruct(x interface{}) *bool
- func RequestValidator_IsOwnedResource(construct constructs.IConstruct) *bool
- func RequestValidator_IsResource(construct constructs.IConstruct) *bool
- func ResourceBase_IsConstruct(x interface{}) *bool
- func ResourceBase_IsOwnedResource(construct constructs.IConstruct) *bool
- func ResourceBase_IsResource(construct constructs.IConstruct) *bool
- func Resource_IsConstruct(x interface{}) *bool
- func Resource_IsOwnedResource(construct constructs.IConstruct) *bool
- func Resource_IsResource(construct constructs.IConstruct) *bool
- func RestApiBase_IsConstruct(x interface{}) *bool
- func RestApiBase_IsOwnedResource(construct constructs.IConstruct) *bool
- func RestApiBase_IsResource(construct constructs.IConstruct) *bool
- func RestApi_IsConstruct(x interface{}) *bool
- func RestApi_IsOwnedResource(construct constructs.IConstruct) *bool
- func RestApi_IsResource(construct constructs.IConstruct) *bool
- func RestApi_IsRestApi(x interface{}) *bool
- func SpecRestApi_IsConstruct(x interface{}) *bool
- func SpecRestApi_IsOwnedResource(construct constructs.IConstruct) *bool
- func SpecRestApi_IsResource(construct constructs.IConstruct) *bool
- func StageBase_IsConstruct(x interface{}) *bool
- func StageBase_IsOwnedResource(construct constructs.IConstruct) *bool
- func StageBase_IsResource(construct constructs.IConstruct) *bool
- func Stage_IsConstruct(x interface{}) *bool
- func Stage_IsOwnedResource(construct constructs.IConstruct) *bool
- func Stage_IsResource(construct constructs.IConstruct) *bool
- func StepFunctionsRestApi_IsConstruct(x interface{}) *bool
- func StepFunctionsRestApi_IsOwnedResource(construct constructs.IConstruct) *bool
- func StepFunctionsRestApi_IsResource(construct constructs.IConstruct) *bool
- func StepFunctionsRestApi_IsRestApi(x interface{}) *bool
- func TokenAuthorizer_IsAuthorizer(x interface{}) *bool
- func TokenAuthorizer_IsConstruct(x interface{}) *bool
- func TokenAuthorizer_IsOwnedResource(construct constructs.IConstruct) *bool
- func TokenAuthorizer_IsResource(construct constructs.IConstruct) *bool
- func UsagePlan_IsConstruct(x interface{}) *bool
- func UsagePlan_IsOwnedResource(construct constructs.IConstruct) *bool
- func UsagePlan_IsResource(construct constructs.IConstruct) *bool
- func VpcLink_IsConstruct(x interface{}) *bool
- func VpcLink_IsOwnedResource(construct constructs.IConstruct) *bool
- func VpcLink_IsResource(construct constructs.IConstruct) *bool
- type AccessLogDestinationConfig
- type AccessLogField
- type AccessLogFormat
- type AddApiKeyOptions
- type ApiDefinition
- type ApiDefinitionConfig
- type ApiDefinitionS3Location
- type ApiKey
- type ApiKeyOptions
- type ApiKeyProps
- type ApiKeySourceType
- type ApiMappingOptions
- type AssetApiDefinition
- func ApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition
- func AssetApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition
- func InlineApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition
- func NewAssetApiDefinition(path *string, options *awss3assets.AssetOptions) AssetApiDefinition
- func S3ApiDefinition_FromAsset(file *string, options *awss3assets.AssetOptions) AssetApiDefinition
- type AuthorizationType
- type Authorizer
- type AwsIntegration
- type AwsIntegrationProps
- type BasePathMapping
- type BasePathMappingOptions
- type BasePathMappingProps
- type CfnAccount
- type CfnAccountProps
- type CfnApiKey
- type CfnApiKeyProps
- type CfnApiKey_StageKeyProperty
- type CfnAuthorizer
- type CfnAuthorizerProps
- type CfnBasePathMapping
- type CfnBasePathMappingProps
- type CfnClientCertificate
- type CfnClientCertificateProps
- type CfnDeployment
- type CfnDeploymentProps
- type CfnDeployment_AccessLogSettingProperty
- type CfnDeployment_CanarySettingProperty
- type CfnDeployment_DeploymentCanarySettingsProperty
- type CfnDeployment_MethodSettingProperty
- type CfnDeployment_StageDescriptionProperty
- type CfnDocumentationPart
- type CfnDocumentationPartProps
- type CfnDocumentationPart_LocationProperty
- type CfnDocumentationVersion
- type CfnDocumentationVersionProps
- type CfnDomainName
- type CfnDomainNameProps
- type CfnDomainName_EndpointConfigurationProperty
- type CfnDomainName_MutualTlsAuthenticationProperty
- type CfnGatewayResponse
- type CfnGatewayResponseProps
- type CfnMethod
- type CfnMethodProps
- type CfnMethod_IntegrationProperty
- type CfnMethod_IntegrationResponseProperty
- type CfnMethod_MethodResponseProperty
- type CfnModel
- type CfnModelProps
- type CfnRequestValidator
- type CfnRequestValidatorProps
- type CfnResource
- type CfnResourceProps
- type CfnRestApi
- type CfnRestApiProps
- type CfnRestApi_EndpointConfigurationProperty
- type CfnRestApi_S3LocationProperty
- type CfnStage
- type CfnStageProps
- type CfnStage_AccessLogSettingProperty
- type CfnStage_CanarySettingProperty
- type CfnStage_MethodSettingProperty
- type CfnUsagePlan
- type CfnUsagePlanKey
- type CfnUsagePlanKeyProps
- type CfnUsagePlanProps
- type CfnUsagePlan_ApiStageProperty
- type CfnUsagePlan_QuotaSettingsProperty
- type CfnUsagePlan_ThrottleSettingsProperty
- type CfnVpcLink
- type CfnVpcLinkProps
- type CognitoUserPoolsAuthorizer
- type CognitoUserPoolsAuthorizerProps
- type ConnectionType
- type ContentHandling
- type Cors
- type CorsOptions
- type Deployment
- type DeploymentProps
- type DomainName
- type DomainNameAttributes
- type DomainNameOptions
- type DomainNameProps
- type EndpointConfiguration
- type EndpointType
- type FirehoseLogDestination
- type GatewayResponse
- type GatewayResponseOptions
- type GatewayResponseProps
- type HttpIntegration
- type HttpIntegrationProps
- type IAccessLogDestination
- type IApiKey
- type IAuthorizer
- type IDomainName
- type IGatewayResponse
- type IModel
- type IRequestValidator
- type IResource
- type IRestApi
- func LambdaRestApi_FromRestApiAttributes(scope constructs.Construct, id *string, attrs *RestApiAttributes) IRestApi
- func LambdaRestApi_FromRestApiId(scope constructs.Construct, id *string, restApiId *string) IRestApi
- func RestApi_FromRestApiAttributes(scope constructs.Construct, id *string, attrs *RestApiAttributes) IRestApi
- func RestApi_FromRestApiId(scope constructs.Construct, id *string, restApiId *string) IRestApi
- func StepFunctionsRestApi_FromRestApiAttributes(scope constructs.Construct, id *string, attrs *RestApiAttributes) IRestApi
- func StepFunctionsRestApi_FromRestApiId(scope constructs.Construct, id *string, restApiId *string) IRestApi
- type IStage
- type IUsagePlan
- type IVpcLink
- type IdentitySource
- type InlineApiDefinition
- func ApiDefinition_FromInline(definition interface{}) InlineApiDefinition
- func AssetApiDefinition_FromInline(definition interface{}) InlineApiDefinition
- func InlineApiDefinition_FromInline(definition interface{}) InlineApiDefinition
- func NewInlineApiDefinition(definition interface{}) InlineApiDefinition
- func S3ApiDefinition_FromInline(definition interface{}) InlineApiDefinition
- type Integration
- type IntegrationConfig
- type IntegrationOptions
- type IntegrationProps
- type IntegrationResponse
- type IntegrationType
- type JsonSchema
- type JsonSchemaType
- type JsonSchemaVersion
- type JsonWithStandardFieldProps
- type LambdaAuthorizerProps
- type LambdaIntegration
- type LambdaIntegrationOptions
- type LambdaRestApi
- type LambdaRestApiProps
- type LogGroupLogDestination
- type MTLSConfig
- type Method
- type MethodDeploymentOptions
- type MethodLoggingLevel
- type MethodOptions
- type MethodProps
- type MethodResponse
- type MockIntegration
- type Model
- type ModelOptions
- type ModelProps
- type PassthroughBehavior
- type Period
- type ProxyResource
- type ProxyResourceOptions
- type ProxyResourceProps
- type QuotaSettings
- type RateLimitedApiKey
- type RateLimitedApiKeyProps
- type RequestAuthorizer
- type RequestAuthorizerProps
- type RequestContext
- type RequestValidator
- type RequestValidatorOptions
- type RequestValidatorProps
- type Resource
- type ResourceAttributes
- type ResourceBase
- type ResourceOptions
- type ResourceProps
- type ResponseType
- func ResponseType_ACCESS_DENIED() ResponseType
- func ResponseType_API_CONFIGURATION_ERROR() ResponseType
- func ResponseType_AUTHORIZER_CONFIGURATION_ERROR() ResponseType
- func ResponseType_AUTHORIZER_FAILURE() ResponseType
- func ResponseType_BAD_REQUEST_BODY() ResponseType
- func ResponseType_BAD_REQUEST_PARAMETERS() ResponseType
- func ResponseType_DEFAULT_4XX() ResponseType
- func ResponseType_DEFAULT_5XX() ResponseType
- func ResponseType_EXPIRED_TOKEN() ResponseType
- func ResponseType_INTEGRATION_FAILURE() ResponseType
- func ResponseType_INTEGRATION_TIMEOUT() ResponseType
- func ResponseType_INVALID_API_KEY() ResponseType
- func ResponseType_INVALID_SIGNATURE() ResponseType
- func ResponseType_MISSING_AUTHENTICATION_TOKEN() ResponseType
- func ResponseType_Of(type_ *string) ResponseType
- func ResponseType_QUOTA_EXCEEDED() ResponseType
- func ResponseType_REQUEST_TOO_LARGE() ResponseType
- func ResponseType_RESOURCE_NOT_FOUND() ResponseType
- func ResponseType_THROTTLED() ResponseType
- func ResponseType_UNAUTHORIZED() ResponseType
- func ResponseType_UNSUPPORTED_MEDIA_TYPE() ResponseType
- func ResponseType_WAF_FILTERED() ResponseType
- type RestApi
- type RestApiAttributes
- type RestApiBase
- type RestApiBaseProps
- type RestApiProps
- type S3ApiDefinition
- func ApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition
- func AssetApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition
- func InlineApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition
- func NewS3ApiDefinition(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition
- func S3ApiDefinition_FromBucket(bucket awss3.IBucket, key *string, objectVersion *string) S3ApiDefinition
- type SagemakerIntegration
- type SagemakerIntegrationOptions
- type SecurityPolicy
- type SpecRestApi
- type SpecRestApiProps
- type Stage
- type StageAttributes
- type StageBase
- type StageOptions
- type StageProps
- type StepFunctionsExecutionIntegrationOptions
- type StepFunctionsIntegration
- type StepFunctionsRestApi
- type StepFunctionsRestApiProps
- type ThrottleSettings
- type ThrottlingPerMethod
- type TokenAuthorizer
- type TokenAuthorizerProps
- type UsagePlan
- type UsagePlanPerApiStage
- type UsagePlanProps
- type VpcLink
- type VpcLinkProps
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AccessLogField_ContextAccountId ¶
func AccessLogField_ContextAccountId() *string
The API callers AWS account ID. Deprecated: Use `contextCallerAccountId` or `contextOwnerAccountId` instead.
func AccessLogField_ContextApiId ¶
func AccessLogField_ContextApiId() *string
The identifier API Gateway assigns to your API.
func AccessLogField_ContextAuthenticateError ¶ added in v2.45.0
func AccessLogField_ContextAuthenticateError() *string
The error message returned from an authentication attempt.
func AccessLogField_ContextAuthenticateLatency ¶ added in v2.45.0
func AccessLogField_ContextAuthenticateLatency() *string
The authentication latency in ms.
func AccessLogField_ContextAuthenticateStatus ¶ added in v2.45.0
func AccessLogField_ContextAuthenticateStatus() *string
The status code returned from an authentication attempt.
func AccessLogField_ContextAuthorizeError ¶ added in v2.45.0
func AccessLogField_ContextAuthorizeError() *string
The authorization error message.
func AccessLogField_ContextAuthorizeLatency ¶ added in v2.45.0
func AccessLogField_ContextAuthorizeLatency() *string
The authorization latency in ms.
func AccessLogField_ContextAuthorizeStatus ¶ added in v2.45.0
func AccessLogField_ContextAuthorizeStatus() *string
The status code returned from an authorization attempt.
func AccessLogField_ContextAuthorizer ¶
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 ¶
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_ContextAuthorizerError ¶ added in v2.45.0
func AccessLogField_ContextAuthorizerError() *string
The error message returned from an authorizer.
func AccessLogField_ContextAuthorizerIntegrationLatency ¶
func AccessLogField_ContextAuthorizerIntegrationLatency() *string
The authorizer latency in ms.
func AccessLogField_ContextAuthorizerIntegrationStatus ¶ added in v2.45.0
func AccessLogField_ContextAuthorizerIntegrationStatus() *string
The status code returned from a Lambda authorizer.
func AccessLogField_ContextAuthorizerLatency ¶ added in v2.45.0
func AccessLogField_ContextAuthorizerLatency() *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_ContextAuthorizerRequestId ¶ added in v2.45.0
func AccessLogField_ContextAuthorizerRequestId() *string
The AWS endpoint's request ID.
func AccessLogField_ContextAuthorizerStatus ¶ added in v2.45.0
func AccessLogField_ContextAuthorizerStatus() *string
The status code returned from an authorizer.
func AccessLogField_ContextAwsEndpointRequestId ¶
func AccessLogField_ContextAwsEndpointRequestId() *string
The AWS endpoint's request ID.
func AccessLogField_ContextCallerAccountId ¶ added in v2.42.0
func AccessLogField_ContextCallerAccountId() *string
The API callers AWS account ID.
func AccessLogField_ContextCustomDomainBasePathMatched ¶ added in v2.45.0
func AccessLogField_ContextCustomDomainBasePathMatched() *string
The path for an API mapping that an incoming request matched.
Applicable when a client uses a custom domain name to access an API. For example if a client sends a request to https://api.example.com/v1/orders/1234, and the request matches the API mapping with the path v1/orders, the value is v1/orders. See: https://docs.aws.amazon.com/en_jp/apigateway/latest/developerguide/rest-api-mappings.html
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_ContextIdentityClientCertIssunerDN ¶ added in v2.45.0
func AccessLogField_ContextIdentityClientCertIssunerDN() *string
The distinguished name of the issuer of the certificate that a client presents.
Present when a client accesses an API by using a custom domain name that has mutual TLS enabled. Present only in access logs if mutual TLS authentication fails.
func AccessLogField_ContextIdentityClientCertPem ¶ added in v2.45.0
func AccessLogField_ContextIdentityClientCertPem() *string
The PEM-encoded client certificate that the client presented during mutual TLS authentication.
Present when a client accesses an API by using a custom domain name that has mutual TLS enabled. Present only in access logs if mutual TLS authentication fails.
func AccessLogField_ContextIdentityClientCertSerialNumber ¶ added in v2.45.0
func AccessLogField_ContextIdentityClientCertSerialNumber() *string
The serial number of the certificate.
Present when a client accesses an API by using a custom domain name that has mutual TLS enabled. Present only in access logs if mutual TLS authentication fails.
func AccessLogField_ContextIdentityClientCertSubjectDN ¶ added in v2.45.0
func AccessLogField_ContextIdentityClientCertSubjectDN() *string
The distinguished name of the subject of the certificate that a client presents.
Present when a client accesses an API by using a custom domain name that has mutual TLS enabled. Present only in access logs if mutual TLS authentication fails.
func AccessLogField_ContextIdentityClientCertValidityNotAfter ¶ added in v2.45.0
func AccessLogField_ContextIdentityClientCertValidityNotAfter() *string
The date after which the certificate is invalid.
Present when a client accesses an API by using a custom domain name that has mutual TLS enabled. Present only in access logs if mutual TLS authentication fails.
func AccessLogField_ContextIdentityClientCertValidityNotBefore ¶ added in v2.45.0
func AccessLogField_ContextIdentityClientCertValidityNotBefore() *string
The date before which the certificate is invalid.
Present when a client accesses an API by using a custom domain name that has mutual TLS enabled. Present only in access logs if mutual TLS authentication fails.
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_ContextIntegrationErrorMessage ¶ added in v2.45.0
func AccessLogField_ContextIntegrationErrorMessage() *string
A string that contains an integration error message.
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_ContextOwnerAccountId ¶ added in v2.42.0
func AccessLogField_ContextOwnerAccountId() *string
The API owner's AWS account ID.
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 ¶
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 ¶
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 ¶
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 ¶
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_ContextWafError ¶ added in v2.45.0
func AccessLogField_ContextWafError() *string
The error message returned from AWS WAF.
func AccessLogField_ContextWafLatency ¶ added in v2.45.0
func AccessLogField_ContextWafLatency() *string
The AWS WAF latency in ms.
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_ContextWafStatus ¶ added in v2.45.0
func AccessLogField_ContextWafStatus() *string
The status code returned from AWS WAF.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func ApiKey_IsOwnedResource ¶ added in v2.32.0
func ApiKey_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Authorizer_IsOwnedResource ¶ added in v2.32.0
func Authorizer_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func BasePathMapping_IsOwnedResource ¶ added in v2.32.0
func BasePathMapping_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnAccount_IsConstruct ¶
func CfnAccount_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnApiKey_IsConstruct ¶
func CfnApiKey_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnAuthorizer_IsConstruct ¶
func CfnAuthorizer_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnBasePathMapping_IsConstruct ¶
func CfnBasePathMapping_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnClientCertificate_IsConstruct ¶
func CfnClientCertificate_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnDeployment_IsConstruct ¶
func CfnDeployment_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnDocumentationPart_IsConstruct ¶
func CfnDocumentationPart_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnDocumentationVersion_IsConstruct ¶
func CfnDocumentationVersion_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnDomainName_IsConstruct ¶
func CfnDomainName_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnGatewayResponse_IsConstruct ¶
func CfnGatewayResponse_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnMethod_IsConstruct ¶
func CfnMethod_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnModel_IsConstruct ¶
func CfnModel_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnRequestValidator_IsConstruct ¶
func CfnRequestValidator_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnResource_IsConstruct ¶
func CfnResource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnRestApi_IsConstruct ¶
func CfnRestApi_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnStage_IsConstruct ¶
func CfnStage_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnUsagePlanKey_IsConstruct ¶
func CfnUsagePlanKey_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnUsagePlan_IsConstruct ¶
func CfnUsagePlan_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnVpcLink_CFN_RESOURCE_TYPE_NAME ¶
func CfnVpcLink_CFN_RESOURCE_TYPE_NAME() *string
func CfnVpcLink_IsCfnElement ¶
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 ¶
func CfnVpcLink_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnVpcLink_IsConstruct ¶
func CfnVpcLink_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CognitoUserPoolsAuthorizer_IsOwnedResource ¶ added in v2.32.0
func CognitoUserPoolsAuthorizer_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Deployment_IsOwnedResource ¶ added in v2.32.0
func Deployment_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func DomainName_IsOwnedResource ¶ added in v2.32.0
func DomainName_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func GatewayResponse_IsOwnedResource ¶ added in v2.32.0
func GatewayResponse_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func GatewayResponse_IsResource ¶
func GatewayResponse_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func IdentitySource_Context ¶
Provides a properly formatted request context identity source.
Returns: a request context identity source.
func IdentitySource_Header ¶
Provides a properly formatted header identity source.
Returns: a header identity source.
func IdentitySource_QueryString ¶
Provides a properly formatted query string identity source.
Returns: a query string identity source.
func IdentitySource_StageVariable ¶
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func LambdaRestApi_IsOwnedResource ¶ added in v2.32.0
func LambdaRestApi_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func LambdaRestApi_IsResource ¶
func LambdaRestApi_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func LambdaRestApi_IsRestApi ¶ added in v2.139.0
func LambdaRestApi_IsRestApi(x interface{}) *bool
Return whether the given object is a `RestApi`.
func Method_IsConstruct ¶
func Method_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Method_IsOwnedResource ¶ added in v2.32.0
func Method_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Model_IsOwnedResource ¶ added in v2.32.0
func Model_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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)
func NewCfnApiKey_Override ¶
func NewCfnApiKey_Override(c CfnApiKey, scope constructs.Construct, id *string, props *CfnApiKeyProps)
func NewCfnAuthorizer_Override ¶
func NewCfnAuthorizer_Override(c CfnAuthorizer, scope constructs.Construct, id *string, props *CfnAuthorizerProps)
func NewCfnBasePathMapping_Override ¶
func NewCfnBasePathMapping_Override(c CfnBasePathMapping, scope constructs.Construct, id *string, props *CfnBasePathMappingProps)
func NewCfnClientCertificate_Override ¶
func NewCfnClientCertificate_Override(c CfnClientCertificate, scope constructs.Construct, id *string, props *CfnClientCertificateProps)
func NewCfnDeployment_Override ¶
func NewCfnDeployment_Override(c CfnDeployment, scope constructs.Construct, id *string, props *CfnDeploymentProps)
func NewCfnDocumentationPart_Override ¶
func NewCfnDocumentationPart_Override(c CfnDocumentationPart, scope constructs.Construct, id *string, props *CfnDocumentationPartProps)
func NewCfnDocumentationVersion_Override ¶
func NewCfnDocumentationVersion_Override(c CfnDocumentationVersion, scope constructs.Construct, id *string, props *CfnDocumentationVersionProps)
func NewCfnDomainName_Override ¶
func NewCfnDomainName_Override(c CfnDomainName, scope constructs.Construct, id *string, props *CfnDomainNameProps)
func NewCfnGatewayResponse_Override ¶
func NewCfnGatewayResponse_Override(c CfnGatewayResponse, scope constructs.Construct, id *string, props *CfnGatewayResponseProps)
func NewCfnMethod_Override ¶
func NewCfnMethod_Override(c CfnMethod, scope constructs.Construct, id *string, props *CfnMethodProps)
func NewCfnModel_Override ¶
func NewCfnModel_Override(c CfnModel, scope constructs.Construct, id *string, props *CfnModelProps)
func NewCfnRequestValidator_Override ¶
func NewCfnRequestValidator_Override(c CfnRequestValidator, scope constructs.Construct, id *string, props *CfnRequestValidatorProps)
func NewCfnResource_Override ¶
func NewCfnResource_Override(c CfnResource, scope constructs.Construct, id *string, props *CfnResourceProps)
func NewCfnRestApi_Override ¶
func NewCfnRestApi_Override(c CfnRestApi, scope constructs.Construct, id *string, props *CfnRestApiProps)
func NewCfnStage_Override ¶
func NewCfnStage_Override(c CfnStage, scope constructs.Construct, id *string, props *CfnStageProps)
func NewCfnUsagePlanKey_Override ¶
func NewCfnUsagePlanKey_Override(c CfnUsagePlanKey, scope constructs.Construct, id *string, props *CfnUsagePlanKeyProps)
func NewCfnUsagePlan_Override ¶
func NewCfnUsagePlan_Override(c CfnUsagePlan, scope constructs.Construct, id *string, props *CfnUsagePlanProps)
func NewCfnVpcLink_Override ¶
func NewCfnVpcLink_Override(c CfnVpcLink, scope constructs.Construct, id *string, props *CfnVpcLinkProps)
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 NewFirehoseLogDestination_Override ¶ added in v2.109.0
func NewFirehoseLogDestination_Override(f FirehoseLogDestination, stream awskinesisfirehose.CfnDeliveryStream)
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 NewSagemakerIntegration_Override ¶ added in v2.94.0
func NewSagemakerIntegration_Override(s SagemakerIntegration, endpoint awssagemaker.IEndpoint, options *SagemakerIntegrationOptions)
func NewSpecRestApi_Override ¶
func NewSpecRestApi_Override(s SpecRestApi, scope constructs.Construct, id *string, props *SpecRestApiProps)
func NewStageBase_Override ¶ added in v2.46.0
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 ¶
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func ProxyResource_IsOwnedResource ¶ added in v2.32.0
func ProxyResource_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func RateLimitedApiKey_IsOwnedResource ¶ added in v2.32.0
func RateLimitedApiKey_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func RequestAuthorizer_IsOwnedResource ¶ added in v2.32.0
func RequestAuthorizer_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func RequestValidator_IsOwnedResource ¶ added in v2.32.0
func RequestValidator_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func ResourceBase_IsOwnedResource ¶ added in v2.32.0
func ResourceBase_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Resource_IsOwnedResource ¶ added in v2.32.0
func Resource_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func RestApiBase_IsOwnedResource ¶ added in v2.32.0
func RestApiBase_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func RestApi_IsOwnedResource ¶ added in v2.32.0
func RestApi_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func RestApi_IsResource ¶
func RestApi_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func RestApi_IsRestApi ¶ added in v2.139.0
func RestApi_IsRestApi(x interface{}) *bool
Return whether the given object is a `RestApi`.
func SpecRestApi_IsConstruct ¶
func SpecRestApi_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func SpecRestApi_IsOwnedResource ¶ added in v2.32.0
func SpecRestApi_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func SpecRestApi_IsResource ¶
func SpecRestApi_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func StageBase_IsConstruct ¶ added in v2.46.0
func StageBase_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func StageBase_IsOwnedResource ¶ added in v2.46.0
func StageBase_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func StageBase_IsResource ¶ added in v2.46.0
func StageBase_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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Stage_IsOwnedResource ¶ added in v2.32.0
func Stage_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func StepFunctionsRestApi_IsOwnedResource ¶ added in v2.32.0
func StepFunctionsRestApi_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func StepFunctionsRestApi_IsResource ¶ added in v2.1.0
func StepFunctionsRestApi_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func StepFunctionsRestApi_IsRestApi ¶ added in v2.139.0
func StepFunctionsRestApi_IsRestApi(x interface{}) *bool
Return whether the given object is a `RestApi`.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func TokenAuthorizer_IsOwnedResource ¶ added in v2.32.0
func TokenAuthorizer_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
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.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func UsagePlan_IsOwnedResource ¶ added in v2.32.0
func UsagePlan_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func UsagePlan_IsResource ¶
func UsagePlan_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func VpcLink_IsConstruct ¶
func VpcLink_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func VpcLink_IsOwnedResource ¶ added in v2.32.0
func VpcLink_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func VpcLink_IsResource ¶
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 `field:"required" json:"destinationArn" yaml:"destinationArn"` }
Options when binding a log destination to a RestApi Stage.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" accessLogDestinationConfig := &AccessLogDestinationConfig{ DestinationArn: jsii.String("destinationArn"), }
type AccessLogField ¶
type AccessLogField interface { }
$context variables that can be used to customize access log pattern.
Example:
apigateway.AccessLogFormat_Custom(jSON.stringify(map[string]interface{}{ "requestId": apigateway.AccessLogField_contextRequestId(), "sourceIp": apigateway.AccessLogField_contextIdentitySourceIp(), "method": apigateway.AccessLogField_contextHttpMethod(), "userContext": map[string]*string{ "sub": apigateway.AccessLogField_contextAuthorizerClaims(jsii.String("sub")), "email": apigateway.AccessLogField_contextAuthorizerClaims(jsii.String("email")), }, }))
func NewAccessLogField ¶
func NewAccessLogField() AccessLogField
type AccessLogFormat ¶
type AccessLogFormat interface { // Output a format string to be used with CloudFormation. ToString() *string }
factory methods for access log format.
Example:
destinationBucket := s3.NewBucket(this, jsii.String("Bucket")) deliveryStreamRole := iam.NewRole(this, jsii.String("Role"), &RoleProps{ AssumedBy: iam.NewServicePrincipal(jsii.String("firehose.amazonaws.com")), }) stream := firehose.NewCfnDeliveryStream(this, jsii.String("MyStream"), &CfnDeliveryStreamProps{ DeliveryStreamName: jsii.String("amazon-apigateway-delivery-stream"), S3DestinationConfiguration: &S3DestinationConfigurationProperty{ BucketArn: destinationBucket.BucketArn, RoleArn: deliveryStreamRole.RoleArn, }, }) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewFirehoseLogDestination(stream), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, })
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.
Example:
apigateway.AccessLogFormat_Custom(jSON.stringify(map[string]interface{}{ "requestId": apigateway.AccessLogField_contextRequestId(), "sourceIp": apigateway.AccessLogField_contextIdentitySourceIp(), "method": apigateway.AccessLogField_contextHttpMethod(), "userContext": map[string]*string{ "sub": apigateway.AccessLogField_contextAuthorizerClaims(jsii.String("sub")), "email": apigateway.AccessLogField_contextAuthorizerClaims(jsii.String("email")), }, }))
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. // Default: - autogenerated by the CDK. // OverrideLogicalId *string `field:"optional" json:"overrideLogicalId" yaml:"overrideLogicalId"` }
Options to the UsagePlan.addApiKey() method.
Example:
var usageplan usagePlan var apiKey apiKey usageplan.addApiKey(apiKey, &AddApiKeyOptions{ OverrideLogicalId: jsii.String("..."), })
type ApiDefinition ¶
type ApiDefinition interface { // Called when the specification is initialized to allow this object to bind to the stack, add resources and have fun. Bind(scope constructs.Construct) *ApiDefinitionConfig // Called after the CFN RestApi resource has been created to allow the Api Definition to bind to it. // // Specifically it's required to allow assets to add // metadata for tooling like SAM CLI to be able to find their origins. BindAfterCreate(_scope constructs.Construct, _restApi IRestApi) }
Represents an OpenAPI definition asset.
Example:
myApiDefinition := apigateway.ApiDefinition_FromAsset(jsii.String("path-to-file.json")) specRestApi := apigateway.NewSpecRestApi(this, jsii.String("my-specrest-api"), &SpecRestApiProps{ Deploy: jsii.Boolean(false), ApiDefinition: myApiDefinition, }) // Use `stageName` to deploy to an existing stage deployment := apigateway.NewDeployment(this, jsii.String("my-deployment"), &DeploymentProps{ Api: specRestApi, StageName: jsii.String("dev"), RetainDeployments: jsii.Boolean(true), }) // Trigger a new deployment on OpenAPI definition updates deployment.AddToLogicalId(myApiDefinition)
type ApiDefinitionConfig ¶
type ApiDefinitionConfig struct { // Inline specification (mutually exclusive with `s3Location`). // Default: - API definition is not defined inline. // InlineDefinition interface{} `field:"optional" json:"inlineDefinition" yaml:"inlineDefinition"` // The location of the specification in S3 (mutually exclusive with `inlineDefinition`). // Default: - API definition is not an S3 location. // S3Location *ApiDefinitionS3Location `field:"optional" json:"s3Location" yaml:"s3Location"` }
Post-Binding Configuration for a CDK construct.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var inlineDefinition interface{} apiDefinitionConfig := &ApiDefinitionConfig{ InlineDefinition: inlineDefinition, S3Location: &ApiDefinitionS3Location{ Bucket: jsii.String("bucket"), Key: jsii.String("key"), // the properties below are optional Version: jsii.String("version"), }, }
type ApiDefinitionS3Location ¶
type ApiDefinitionS3Location struct { // The S3 bucket. Bucket *string `field:"required" json:"bucket" yaml:"bucket"` // The S3 key. Key *string `field:"required" json:"key" yaml:"key"` // An optional version. // Default: - latest version. // Version *string `field:"optional" json:"version" yaml:"version"` }
S3 location of the API definition file.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" apiDefinitionS3Location := &ApiDefinitionS3Location{ Bucket: jsii.String("bucket"), Key: jsii.String("key"), // the properties below are optional Version: jsii.String("version"), }
type ApiKey ¶
type ApiKey interface { awscdk.Resource IApiKey // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The API key ARN. KeyArn() *string // The API key ID. KeyId() *string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Permits the IAM principal all read operations through this key. GrantRead(grantee awsiam.IGrantable) awsiam.Grant // Permits the IAM principal all read and write operations through this key. GrantReadWrite(grantee awsiam.IGrantable) awsiam.Grant // Permits the IAM principal all write operations through this key. GrantWrite(grantee awsiam.IGrantable) awsiam.Grant // Returns a string representation of this construct. 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.
Example:
importedKey := apigateway.ApiKey_FromApiKeyId(this, jsii.String("imported-key"), jsii.String("<api-key-id>"))
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // A name for the API key. // // If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name. // Default: automically generated name. // ApiKeyName *string `field:"optional" json:"apiKeyName" yaml:"apiKeyName"` // A description of the purpose of the API key. // Default: none. // Description *string `field:"optional" json:"description" yaml:"description"` // The value of the API key. // // Must be at least 20 characters long. // Default: none. // Value *string `field:"optional" json:"value" yaml:"value"` }
The options for creating an API Key.
Example:
var api restApi key := api.AddApiKey(jsii.String("ApiKey"), &ApiKeyOptions{ ApiKeyName: jsii.String("myApiKey1"), Value: jsii.String("MyApiKeyThatIsAtLeast20Characters"), })
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // A name for the API key. // // If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name. // Default: automically generated name. // ApiKeyName *string `field:"optional" json:"apiKeyName" yaml:"apiKeyName"` // A description of the purpose of the API key. // Default: none. // Description *string `field:"optional" json:"description" yaml:"description"` // The value of the API key. // // Must be at least 20 characters long. // Default: none. // Value *string `field:"optional" json:"value" yaml:"value"` // An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace. // Default: none. // CustomerId *string `field:"optional" json:"customerId" yaml:"customerId"` // Indicates whether the API key can be used by clients. // Default: true. // Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"` // Specifies whether the key identifier is distinct from the created API key value. // Default: false. // GenerateDistinctId *bool `field:"optional" json:"generateDistinctId" yaml:"generateDistinctId"` // A list of resources this api key is associated with. // Default: none. // // Deprecated: - use `stages` instead. Resources *[]IRestApi `field:"optional" json:"resources" yaml:"resources"` // A list of Stages this api key is associated with. // Default: - the api key is not associated with any stages. // Stages *[]IStage `field:"optional" json:"stages" yaml:"stages"` }
ApiKey Properties.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var authorizer authorizer var integration integration var model model var requestValidator requestValidator var restApi restApi var stage stage apiKeyProps := &ApiKeyProps{ ApiKeyName: jsii.String("apiKeyName"), CustomerId: jsii.String("customerId"), DefaultCorsPreflightOptions: &CorsOptions{ AllowOrigins: []*string{ jsii.String("allowOrigins"), }, // the properties below are optional AllowCredentials: jsii.Boolean(false), AllowHeaders: []*string{ jsii.String("allowHeaders"), }, AllowMethods: []*string{ jsii.String("allowMethods"), }, DisableCache: jsii.Boolean(false), ExposeHeaders: []*string{ jsii.String("exposeHeaders"), }, MaxAge: cdk.Duration_Minutes(jsii.Number(30)), StatusCode: jsii.Number(123), }, DefaultIntegration: integration, DefaultMethodOptions: &MethodOptions{ ApiKeyRequired: jsii.Boolean(false), AuthorizationScopes: []*string{ jsii.String("authorizationScopes"), }, AuthorizationType: awscdk.Aws_apigateway.AuthorizationType_NONE, Authorizer: authorizer, MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]iModel{ "responseModelsKey": model, }, ResponseParameters: map[string]*bool{ "responseParametersKey": jsii.Boolean(false), }, }, }, OperationName: jsii.String("operationName"), RequestModels: map[string]*iModel{ "requestModelsKey": model, }, RequestParameters: map[string]*bool{ "requestParametersKey": jsii.Boolean(false), }, RequestValidator: requestValidator, RequestValidatorOptions: &RequestValidatorOptions{ RequestValidatorName: jsii.String("requestValidatorName"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), }, }, Description: jsii.String("description"), Enabled: jsii.Boolean(false), GenerateDistinctId: jsii.Boolean(false), Resources: []iRestApi{ restApi, }, Stages: []iStage{ stage, }, Value: jsii.String("value"), }
type ApiKeySourceType ¶
type ApiKeySourceType string
const ( // To read the API key from the `X-API-Key` header of a request. ApiKeySourceType_HEADER ApiKeySourceType = "HEADER" // To read the API key from the `UsageIdentifierKey` from a custom authorizer. ApiKeySourceType_AUTHORIZER ApiKeySourceType = "AUTHORIZER" )
type ApiMappingOptions ¶ added in v2.47.0
type ApiMappingOptions struct { // The api 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. // // If this is undefined, a mapping will be added for the empty path. Any request // that does not match a mapping will get sent to the API that has been mapped // to the empty path. // Default: - map requests from the domain root (e.g. `example.com`). // BasePath *string `field:"optional" json:"basePath" yaml:"basePath"` }
Options for creating an api mapping.
Example:
var acmCertificateForExampleCom interface{} var restApi restApi var secondRestApi restApi domain := apigateway.NewDomainName(this, jsii.String("custom-domain"), &DomainNameProps{ DomainName: jsii.String("example.com"), Certificate: acmCertificateForExampleCom, Mapping: restApi, }) domain.AddApiMapping(secondRestApi.DeploymentStage, &ApiMappingOptions{ BasePath: jsii.String("orders/v2/api"), })
type AssetApiDefinition ¶
type AssetApiDefinition interface { ApiDefinition // Called when the specification is initialized to allow this object to bind to the stack, add resources and have fun. Bind(scope constructs.Construct) *ApiDefinitionConfig // Called after the CFN RestApi resource has been created to allow the Api Definition to bind to it. // // Specifically it's required to allow assets to add // metadata for tooling like SAM CLI to be able to find their origins. BindAfterCreate(scope constructs.Construct, restApi IRestApi) }
OpenAPI specification from a local file.
Example:
myApiDefinition := apigateway.ApiDefinition_FromAsset(jsii.String("path-to-file.json")) specRestApi := apigateway.NewSpecRestApi(this, jsii.String("my-specrest-api"), &SpecRestApiProps{ Deploy: jsii.Boolean(false), ApiDefinition: myApiDefinition, }) // Use `stageName` to deploy to an existing stage deployment := apigateway.NewDeployment(this, jsii.String("my-deployment"), &DeploymentProps{ Api: specRestApi, StageName: jsii.String("dev"), RetainDeployments: jsii.Boolean(true), }) // Trigger a new deployment on OpenAPI definition updates deployment.AddToLogicalId(myApiDefinition)
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
Example:
var books resource userPool := cognito.NewUserPool(this, jsii.String("UserPool")) auth := apigateway.NewCognitoUserPoolsAuthorizer(this, jsii.String("booksAuthorizer"), &CognitoUserPoolsAuthorizerProps{ CognitoUserPools: []iUserPool{ userPool, }, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, AuthorizationType: apigateway.AuthorizationType_COGNITO, })
const ( // Open access. AuthorizationType_NONE AuthorizationType = "NONE" // Use AWS IAM permissions. AuthorizationType_IAM AuthorizationType = "IAM" // Use a custom authorizer. AuthorizationType_CUSTOM AuthorizationType = "CUSTOM" // Use an AWS Cognito user pool. AuthorizationType_COGNITO AuthorizationType = "COGNITO" )
type Authorizer ¶
type Authorizer interface { awscdk.Resource IAuthorizer // The authorization type of this authorizer. AuthorizationType() AuthorizationType // The authorizer ID. AuthorizerId() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
Base class for all custom authorizers.
type AwsIntegration ¶
type AwsIntegration interface { Integration // Can be overridden by subclasses to allow the integration to interact with the method being integrated, access the REST API object, method ARNs, etc. 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.
Example:
getMessageIntegration := apigateway.NewAwsIntegration(&AwsIntegrationProps{ Service: jsii.String("sqs"), Path: jsii.String("queueName"), Region: jsii.String("eu-west-1"), })
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.
Example:
stateMachine := stepfunctions.NewStateMachine(this, jsii.String("MyStateMachine"), &StateMachineProps{ StateMachineType: stepfunctions.StateMachineType_EXPRESS, Definition: stepfunctions.Chain_Start(stepfunctions.NewPass(this, jsii.String("Pass"))), }) api := apigateway.NewRestApi(this, jsii.String("Api"), &RestApiProps{ RestApiName: jsii.String("MyApi"), }) api.Root.AddMethod(jsii.String("GET"), apigateway.StepFunctionsIntegration_StartExecution(stateMachine))
type AwsIntegrationProps ¶
type AwsIntegrationProps struct { // The name of the integrated AWS service (e.g. `s3`). Service *string `field:"required" 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 `field:"optional" 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 `field:"optional" json:"actionParameters" yaml:"actionParameters"` // The integration's HTTP method type. // Default: POST. // IntegrationHttpMethod *string `field:"optional" json:"integrationHttpMethod" yaml:"integrationHttpMethod"` // Integration options, such as content handling, request/response mapping, etc. Options *IntegrationOptions `field:"optional" 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 `field:"optional" json:"path" yaml:"path"` // Use AWS_PROXY integration. // Default: false. // Proxy *bool `field:"optional" json:"proxy" yaml:"proxy"` // The region of the integrated AWS service. // Default: - same region as the stack. // Region *string `field:"optional" json:"region" yaml:"region"` // A designated subdomain supported by certain AWS service for fast host-name lookup. Subdomain *string `field:"optional" json:"subdomain" yaml:"subdomain"` }
Example:
getMessageIntegration := apigateway.NewAwsIntegration(&AwsIntegrationProps{ Service: jsii.String("sqs"), Path: jsii.String("queueName"), Region: jsii.String("eu-west-1"), })
type BasePathMapping ¶
type BasePathMapping interface { awscdk.Resource // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. 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.
Example:
var api restApi domainName := apigateway.DomainName_FromDomainNameAttributes(this, jsii.String("DomainName"), &DomainNameAttributes{ DomainName: jsii.String("domainName"), DomainNameAliasHostedZoneId: jsii.String("domainNameAliasHostedZoneId"), DomainNameAliasTarget: jsii.String("domainNameAliasTarget"), }) apigateway.NewBasePathMapping(this, jsii.String("BasePathMapping"), &BasePathMappingProps{ DomainName: domainName, RestApi: api, })
func NewBasePathMapping ¶
func NewBasePathMapping(scope constructs.Construct, id *string, props *BasePathMappingProps) BasePathMapping
type BasePathMappingOptions ¶
type BasePathMappingOptions struct { // Whether to attach the base path mapping to a stage. // // Use this property to create a base path mapping without attaching it to the Rest API default stage. // This property is ignored if `stage` is provided. // Default: - true. // AttachToStage *bool `field:"optional" json:"attachToStage" yaml:"attachToStage"` // 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. // Default: - map requests from the domain root (e.g. `example.com`). If this // is undefined, no additional mappings will be allowed on this domain name. // BasePath *string `field:"optional" json:"basePath" yaml:"basePath"` // The Deployment stage of API [disable-awslint:ref-via-interface]. // Default: - map to deploymentStage of restApi otherwise stage needs to pass in URL. // Stage Stage `field:"optional" json:"stage" yaml:"stage"` }
Example:
var domain domainName var api1 restApi var api2 restApi domain.AddBasePathMapping(api1, &BasePathMappingOptions{ BasePath: jsii.String("go-to-api1"), }) domain.AddBasePathMapping(api2, &BasePathMappingOptions{ BasePath: jsii.String("boom"), })
type BasePathMappingProps ¶
type BasePathMappingProps struct { // Whether to attach the base path mapping to a stage. // // Use this property to create a base path mapping without attaching it to the Rest API default stage. // This property is ignored if `stage` is provided. // Default: - true. // AttachToStage *bool `field:"optional" json:"attachToStage" yaml:"attachToStage"` // 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. // Default: - map requests from the domain root (e.g. `example.com`). If this // is undefined, no additional mappings will be allowed on this domain name. // BasePath *string `field:"optional" json:"basePath" yaml:"basePath"` // The Deployment stage of API [disable-awslint:ref-via-interface]. // Default: - map to deploymentStage of restApi otherwise stage needs to pass in URL. // Stage Stage `field:"optional" json:"stage" yaml:"stage"` // The DomainName to associate with this base path mapping. DomainName IDomainName `field:"required" json:"domainName" yaml:"domainName"` // The RestApi resource to target. RestApi IRestApi `field:"required" json:"restApi" yaml:"restApi"` }
Example:
var api restApi domainName := apigateway.DomainName_FromDomainNameAttributes(this, jsii.String("DomainName"), &DomainNameAttributes{ DomainName: jsii.String("domainName"), DomainNameAliasHostedZoneId: jsii.String("domainNameAliasHostedZoneId"), DomainNameAliasTarget: jsii.String("domainNameAliasTarget"), }) apigateway.NewBasePathMapping(this, jsii.String("BasePathMapping"), &BasePathMappingProps{ DomainName: domainName, RestApi: api, })
type CfnAccount ¶
type CfnAccount interface { awscdk.CfnResource awscdk.IInspectable // The ID for the account. // // For example: `abc123` . AttrId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // The ARN of an Amazon CloudWatch role for the current Account. CloudWatchRoleArn() *string SetCloudWatchRoleArn(val *string) // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::Account` resource specifies the IAM role that Amazon API Gateway uses to write API logs to Amazon CloudWatch Logs.
To avoid overwriting other roles, you should only have one `AWS::ApiGateway::Account` resource per region per account.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnAccount := awscdk.Aws_apigateway.NewCfnAccount(this, jsii.String("MyCfnAccount"), &CfnAccountProps{ CloudWatchRoleArn: jsii.String("cloudWatchRoleArn"), })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html
func NewCfnAccount ¶
func NewCfnAccount(scope constructs.Construct, id *string, props *CfnAccountProps) CfnAccount
type CfnAccountProps ¶
type CfnAccountProps struct { // The ARN of an Amazon CloudWatch role for the current Account. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html#cfn-apigateway-account-cloudwatchrolearn // CloudWatchRoleArn *string `field:"optional" json:"cloudWatchRoleArn" yaml:"cloudWatchRoleArn"` }
Properties for defining a `CfnAccount`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnAccountProps := &CfnAccountProps{ CloudWatchRoleArn: jsii.String("cloudWatchRoleArn"), }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-account.html
type CfnApiKey ¶
type CfnApiKey interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // The ID for the API key. // // For example: `abc123` . AttrApiKeyId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // An AWS Marketplace customer identifier, when integrating with the AWS SaaS Marketplace. CustomerId() *string SetCustomerId(val *string) // The description of the ApiKey. Description() *string SetDescription(val *string) // Specifies whether the ApiKey can be used by callers. Enabled() interface{} SetEnabled(val interface{}) // Specifies whether ( `true` ) or not ( `false` ) the key identifier is distinct from the created API key value. GenerateDistinctId() interface{} SetGenerateDistinctId(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // A name for the API key. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key. StageKeys() interface{} SetStageKeys(val interface{}) // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The key-value map of strings. TagsRaw() *[]*awscdk.CfnTag SetTagsRaw(val *[]*awscdk.CfnTag) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Specifies a value of the API key. Value() *string SetValue(val *string) // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnApiKey := awscdk.Aws_apigateway.NewCfnApiKey(this, jsii.String("MyCfnApiKey"), &CfnApiKeyProps{ CustomerId: jsii.String("customerId"), Description: jsii.String("description"), Enabled: jsii.Boolean(false), GenerateDistinctId: jsii.Boolean(false), Name: jsii.String("name"), StageKeys: []interface{}{ &StageKeyProperty{ RestApiId: jsii.String("restApiId"), StageName: jsii.String("stageName"), }, }, Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, Value: jsii.String("value"), })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html
func NewCfnApiKey ¶
func NewCfnApiKey(scope constructs.Construct, id *string, props *CfnApiKeyProps) CfnApiKey
type CfnApiKeyProps ¶
type CfnApiKeyProps struct { // An AWS Marketplace customer identifier, when integrating with the AWS SaaS Marketplace. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-customerid // CustomerId *string `field:"optional" json:"customerId" yaml:"customerId"` // The description of the ApiKey. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-description // Description *string `field:"optional" json:"description" yaml:"description"` // Specifies whether the ApiKey can be used by callers. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-enabled // // Default: - false. // Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"` // Specifies whether ( `true` ) or not ( `false` ) the key identifier is distinct from the created API key value. // // This parameter is deprecated and should not be used. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-generatedistinctid // GenerateDistinctId interface{} `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-name // Name *string `field:"optional" json:"name" yaml:"name"` // DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-stagekeys // StageKeys interface{} `field:"optional" json:"stageKeys" yaml:"stageKeys"` // The key-value map of strings. // // The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with `aws:` . The tag value can be up to 256 characters. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-tags // Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` // Specifies a value of the API key. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html#cfn-apigateway-apikey-value // Value *string `field:"optional" json:"value" yaml:"value"` }
Properties for defining a `CfnApiKey`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnApiKeyProps := &CfnApiKeyProps{ CustomerId: jsii.String("customerId"), Description: jsii.String("description"), Enabled: jsii.Boolean(false), GenerateDistinctId: jsii.Boolean(false), Name: jsii.String("name"), StageKeys: []interface{}{ &StageKeyProperty{ RestApiId: jsii.String("restApiId"), StageName: jsii.String("stageName"), }, }, Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, Value: jsii.String("value"), }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html
type CfnApiKey_StageKeyProperty ¶
type CfnApiKey_StageKeyProperty struct { // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html#cfn-apigateway-apikey-stagekey-restapiid // RestApiId *string `field:"optional" json:"restApiId" yaml:"restApiId"` // The stage name associated with the stage key. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-apikey-stagekey.html#cfn-apigateway-apikey-stagekey-stagename // StageName *string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" stageKeyProperty := &StageKeyProperty{ RestApiId: jsii.String("restApiId"), StageName: jsii.String("stageName"), }
type CfnAuthorizer ¶
type CfnAuthorizer interface { awscdk.CfnResource awscdk.IInspectable // The ID for the authorizer. // // For example: `abc123` . AttrAuthorizerId() *string // Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. AuthorizerCredentials() *string SetAuthorizerCredentials(val *string) // The TTL in seconds of cached authorizer results. AuthorizerResultTtlInSeconds() *float64 SetAuthorizerResultTtlInSeconds(val *float64) // Specifies the authorizer's Uniform Resource Identifier (URI). AuthorizerUri() *string SetAuthorizerUri(val *string) // Optional customer-defined field, used in OpenAPI imports and exports without functional impact. AuthType() *string SetAuthType(val *string) // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The identity source for which authorization is requested. IdentitySource() *string SetIdentitySource(val *string) // A validation expression for the incoming identity token. IdentityValidationExpression() *string SetIdentityValidationExpression(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The name of the authorizer. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // A list of the Amazon Cognito user pool ARNs for the `COGNITO_USER_POOLS` authorizer. ProviderArns() *[]*string SetProviderArns(val *[]*string) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The authorizer type. Type() *string SetType(val *string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnAuthorizer := awscdk.Aws_apigateway.NewCfnAuthorizer(this, jsii.String("MyCfnAuthorizer"), &CfnAuthorizerProps{ Name: jsii.String("name"), RestApiId: jsii.String("restApiId"), Type: jsii.String("type"), // the properties below are optional AuthorizerCredentials: jsii.String("authorizerCredentials"), AuthorizerResultTtlInSeconds: jsii.Number(123), AuthorizerUri: jsii.String("authorizerUri"), AuthType: jsii.String("authType"), IdentitySource: jsii.String("identitySource"), IdentityValidationExpression: jsii.String("identityValidationExpression"), ProviderArns: []*string{ jsii.String("providerArns"), }, })
func NewCfnAuthorizer ¶
func NewCfnAuthorizer(scope constructs.Construct, id *string, props *CfnAuthorizerProps) CfnAuthorizer
type CfnAuthorizerProps ¶
type CfnAuthorizerProps struct { // The name of the authorizer. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-name // Name *string `field:"required" json:"name" yaml:"name"` // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // The authorizer type. // // Valid values are `TOKEN` for a Lambda function using a single authorization token submitted in a custom header, `REQUEST` for a Lambda function using incoming request parameters, and `COGNITO_USER_POOLS` for using an Amazon Cognito user pool. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type // Type *string `field:"required" json:"type" yaml:"type"` // Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. // // To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizercredentials // AuthorizerCredentials *string `field:"optional" json:"authorizerCredentials" yaml:"authorizerCredentials"` // The TTL in seconds of cached authorizer results. // // If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizerresultttlinseconds // AuthorizerResultTtlInSeconds *float64 `field:"optional" json:"authorizerResultTtlInSeconds" yaml:"authorizerResultTtlInSeconds"` // Specifies the authorizer's Uniform Resource Identifier (URI). // // For `TOKEN` or `REQUEST` authorizers, this must be a well-formed Lambda function URI, for example, `arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations` . In general, the URI has this form `arn:aws:apigateway:{region}:lambda:path/{service_api}` , where `{region}` is the same as the region hosting the Lambda function, `path` indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial `/` . For Lambda functions, this is usually of the form `/2015-03-31/functions/[FunctionARN]/invocations` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authorizeruri // AuthorizerUri *string `field:"optional" json:"authorizerUri" yaml:"authorizerUri"` // Optional customer-defined field, used in OpenAPI imports and exports without functional impact. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-authtype // AuthType *string `field:"optional" json:"authType" yaml:"authType"` // The identity source for which authorization is requested. // // For a `TOKEN` or `COGNITO_USER_POOLS` authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is `Auth` , the header mapping expression is `method.request.header.Auth` . For the `REQUEST` authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an `Auth` header, a `Name` query string parameter are defined as identity sources, this value is `method.request.header.Auth, method.request.querystring.Name` . These parameters will be used to derive the authorization caching key and to perform runtime validation of the `REQUEST` authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource // IdentitySource *string `field:"optional" json:"identitySource" yaml:"identitySource"` // A validation expression for the incoming identity token. // // For `TOKEN` authorizers, this value is a regular expression. For `COGNITO_USER_POOLS` authorizers, API Gateway will match the `aud` field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the `REQUEST` authorizer. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identityvalidationexpression // IdentityValidationExpression *string `field:"optional" json:"identityValidationExpression" yaml:"identityValidationExpression"` // A list of the Amazon Cognito user pool ARNs for the `COGNITO_USER_POOLS` authorizer. // // Each element is of this format: `arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}` . For a `TOKEN` or `REQUEST` authorizer, this is not defined. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-providerarns // ProviderArns *[]*string `field:"optional" json:"providerArns" yaml:"providerArns"` }
Properties for defining a `CfnAuthorizer`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnAuthorizerProps := &CfnAuthorizerProps{ Name: jsii.String("name"), RestApiId: jsii.String("restApiId"), Type: jsii.String("type"), // the properties below are optional AuthorizerCredentials: jsii.String("authorizerCredentials"), AuthorizerResultTtlInSeconds: jsii.Number(123), AuthorizerUri: jsii.String("authorizerUri"), AuthType: jsii.String("authType"), IdentitySource: jsii.String("identitySource"), IdentityValidationExpression: jsii.String("identityValidationExpression"), ProviderArns: []*string{ jsii.String("providerArns"), }, }
type CfnBasePathMapping ¶
type CfnBasePathMapping interface { awscdk.CfnResource awscdk.IInspectable // The base path name that callers of the API must provide as part of the URL after the domain name. BasePath() *string SetBasePath(val *string) // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The domain name of the BasePathMapping resource to be described. DomainName() *string SetDomainName(val *string) Id() *string SetId(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The name of the associated stage. Stage() *string SetStage(val *string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::BasePathMapping` resource creates a base path that clients who call your API must use in the invocation URL.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnBasePathMapping := awscdk.Aws_apigateway.NewCfnBasePathMapping(this, jsii.String("MyCfnBasePathMapping"), &CfnBasePathMappingProps{ DomainName: jsii.String("domainName"), // the properties below are optional BasePath: jsii.String("basePath"), Id: jsii.String("id"), RestApiId: jsii.String("restApiId"), Stage: jsii.String("stage"), })
func NewCfnBasePathMapping ¶
func NewCfnBasePathMapping(scope constructs.Construct, id *string, props *CfnBasePathMappingProps) CfnBasePathMapping
type CfnBasePathMappingProps ¶
type CfnBasePathMappingProps struct { // The domain name of the BasePathMapping resource to be described. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-domainname // DomainName *string `field:"required" json:"domainName" yaml:"domainName"` // The base path name that callers of the API must provide as part of the URL after the domain name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath // BasePath *string `field:"optional" json:"basePath" yaml:"basePath"` // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-id // Id *string `field:"optional" json:"id" yaml:"id"` // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-restapiid // RestApiId *string `field:"optional" json:"restApiId" yaml:"restApiId"` // The name of the associated stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-stage // Stage *string `field:"optional" json:"stage" yaml:"stage"` }
Properties for defining a `CfnBasePathMapping`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnBasePathMappingProps := &CfnBasePathMappingProps{ DomainName: jsii.String("domainName"), // the properties below are optional BasePath: jsii.String("basePath"), Id: jsii.String("id"), RestApiId: jsii.String("restApiId"), Stage: jsii.String("stage"), }
type CfnClientCertificate ¶
type CfnClientCertificate interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // The ID for the client certificate. // // For example: `abc123` . AttrClientCertificateId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The description of the client certificate. Description() *string SetDescription(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The collection of tags. TagsRaw() *[]*awscdk.CfnTag SetTagsRaw(val *[]*awscdk.CfnTag) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnClientCertificate := awscdk.Aws_apigateway.NewCfnClientCertificate(this, jsii.String("MyCfnClientCertificate"), &CfnClientCertificateProps{ Description: jsii.String("description"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, })
func NewCfnClientCertificate ¶
func NewCfnClientCertificate(scope constructs.Construct, id *string, props *CfnClientCertificateProps) CfnClientCertificate
type CfnClientCertificateProps ¶
type CfnClientCertificateProps struct { // The description of the client certificate. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html#cfn-apigateway-clientcertificate-description // Description *string `field:"optional" json:"description" yaml:"description"` // The collection of tags. // // Each tag element is associated with a given resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-clientcertificate.html#cfn-apigateway-clientcertificate-tags // Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnClientCertificate`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnClientCertificateProps := &CfnClientCertificateProps{ Description: jsii.String("description"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, }
type CfnDeployment ¶
type CfnDeployment interface { awscdk.CfnResource awscdk.IInspectable // The ID for the deployment. // // For example: `abc123` . AttrDeploymentId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The input configuration for a canary deployment. DeploymentCanarySettings() interface{} SetDeploymentCanarySettings(val interface{}) // The description for the Deployment resource to create. Description() *string SetDescription(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The description of the Stage resource for the Deployment resource to create. StageDescription() interface{} SetStageDescription(val interface{}) // The name of the Stage resource for the Deployment resource to create. StageName() *string SetStageName(val *string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDeployment := awscdk.Aws_apigateway.NewCfnDeployment(this, jsii.String("MyCfnDeployment"), &CfnDeploymentProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional DeploymentCanarySettings: &DeploymentCanarySettingsProperty{ PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }, Description: jsii.String("description"), StageDescription: &StageDescriptionProperty{ AccessLogSetting: &AccessLogSettingProperty{ DestinationArn: jsii.String("destinationArn"), Format: jsii.String("format"), }, CacheClusterEnabled: jsii.Boolean(false), CacheClusterSize: jsii.String("cacheClusterSize"), CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), CanarySetting: &CanarySettingProperty{ PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }, ClientCertificateId: jsii.String("clientCertificateId"), DataTraceEnabled: jsii.Boolean(false), Description: jsii.String("description"), DocumentationVersion: jsii.String("documentationVersion"), LoggingLevel: jsii.String("loggingLevel"), MethodSettings: []interface{}{ &MethodSettingProperty{ CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), DataTraceEnabled: jsii.Boolean(false), HttpMethod: jsii.String("httpMethod"), LoggingLevel: jsii.String("loggingLevel"), MetricsEnabled: jsii.Boolean(false), ResourcePath: jsii.String("resourcePath"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), }, }, MetricsEnabled: jsii.Boolean(false), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), TracingEnabled: jsii.Boolean(false), Variables: map[string]*string{ "variablesKey": jsii.String("variables"), }, }, StageName: jsii.String("stageName"), })
func NewCfnDeployment ¶
func NewCfnDeployment(scope constructs.Construct, id *string, props *CfnDeploymentProps) CfnDeployment
type CfnDeploymentProps ¶
type CfnDeploymentProps struct { // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // The input configuration for a canary deployment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-deploymentcanarysettings // DeploymentCanarySettings interface{} `field:"optional" json:"deploymentCanarySettings" yaml:"deploymentCanarySettings"` // The description for the Deployment resource to create. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-description // Description *string `field:"optional" json:"description" yaml:"description"` // The description of the Stage resource for the Deployment resource to create. // // To specify a stage description, you must also provide a stage name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-stagedescription // StageDescription interface{} `field:"optional" json:"stageDescription" yaml:"stageDescription"` // The name of the Stage resource for the Deployment resource to create. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-deployment.html#cfn-apigateway-deployment-stagename // StageName *string `field:"optional" json:"stageName" yaml:"stageName"` }
Properties for defining a `CfnDeployment`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDeploymentProps := &CfnDeploymentProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional DeploymentCanarySettings: &DeploymentCanarySettingsProperty{ PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }, Description: jsii.String("description"), StageDescription: &StageDescriptionProperty{ AccessLogSetting: &AccessLogSettingProperty{ DestinationArn: jsii.String("destinationArn"), Format: jsii.String("format"), }, CacheClusterEnabled: jsii.Boolean(false), CacheClusterSize: jsii.String("cacheClusterSize"), CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), CanarySetting: &CanarySettingProperty{ PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }, ClientCertificateId: jsii.String("clientCertificateId"), DataTraceEnabled: jsii.Boolean(false), Description: jsii.String("description"), DocumentationVersion: jsii.String("documentationVersion"), LoggingLevel: jsii.String("loggingLevel"), MethodSettings: []interface{}{ &MethodSettingProperty{ CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), DataTraceEnabled: jsii.Boolean(false), HttpMethod: jsii.String("httpMethod"), LoggingLevel: jsii.String("loggingLevel"), MetricsEnabled: jsii.Boolean(false), ResourcePath: jsii.String("resourcePath"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), }, }, MetricsEnabled: jsii.Boolean(false), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), TracingEnabled: jsii.Boolean(false), Variables: map[string]*string{ "variablesKey": jsii.String("variables"), }, }, StageName: jsii.String("stageName"), }
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-` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html#cfn-apigateway-deployment-accesslogsetting-destinationarn // DestinationArn *string `field:"optional" json:"destinationArn" yaml:"destinationArn"` // A single line format of the access logs of data, as specified by selected $context variables. // // The format must include at least `$context.requestId` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-accesslogsetting.html#cfn-apigateway-deployment-accesslogsetting-format // Format *string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" accessLogSettingProperty := &AccessLogSettingProperty{ DestinationArn: jsii.String("destinationArn"), Format: jsii.String("format"), }
type CfnDeployment_CanarySettingProperty ¶
type CfnDeployment_CanarySettingProperty struct { // The percent (0-100) of traffic diverted to a canary deployment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-percenttraffic // PercentTraffic *float64 `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-stagevariableoverrides // StageVariableOverrides interface{} `field:"optional" json:"stageVariableOverrides" yaml:"stageVariableOverrides"` // A Boolean flag to indicate whether the canary deployment uses the stage cache or not. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-canarysetting.html#cfn-apigateway-deployment-canarysetting-usestagecache // UseStageCache interface{} `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" canarySettingProperty := &CanarySettingProperty{ PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }
type CfnDeployment_DeploymentCanarySettingsProperty ¶
type CfnDeployment_DeploymentCanarySettingsProperty struct { // The percentage (0.0-100.0) of traffic routed to the canary deployment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html#cfn-apigateway-deployment-deploymentcanarysettings-percenttraffic // PercentTraffic *float64 `field:"optional" json:"percentTraffic" yaml:"percentTraffic"` // A stage variable overrides used for the canary release deployment. // // They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html#cfn-apigateway-deployment-deploymentcanarysettings-stagevariableoverrides // StageVariableOverrides interface{} `field:"optional" json:"stageVariableOverrides" yaml:"stageVariableOverrides"` // A Boolean flag to indicate whether the canary release deployment uses the stage cache or not. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-deploymentcanarysettings.html#cfn-apigateway-deployment-deploymentcanarysettings-usestagecache // UseStageCache interface{} `field:"optional" json:"useStageCache" yaml:"useStageCache"` }
The `DeploymentCanarySettings` property type specifies settings for the canary deployment.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" deploymentCanarySettingsProperty := &DeploymentCanarySettingsProperty{ PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }
type CfnDeployment_MethodSettingProperty ¶
type CfnDeployment_MethodSettingProperty struct { // Specifies whether the cached responses are encrypted. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-cachedataencrypted // CacheDataEncrypted interface{} `field:"optional" 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: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-cachettlinseconds // CacheTtlInSeconds *float64 `field:"optional" json:"cacheTtlInSeconds" yaml:"cacheTtlInSeconds"` // Specifies whether responses should be cached and returned for requests. // // A cache cluster must be enabled on the stage for responses to be cached. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-cachingenabled // CachingEnabled interface{} `field:"optional" json:"cachingEnabled" yaml:"cachingEnabled"` // Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. // // This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-datatraceenabled // DataTraceEnabled interface{} `field:"optional" json:"dataTraceEnabled" yaml:"dataTraceEnabled"` // The HTTP method. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-httpmethod // HttpMethod *string `field:"optional" json:"httpMethod" yaml:"httpMethod"` // Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. // // Valid values are `OFF` , `ERROR` , and `INFO` . Choose `ERROR` to write only error-level entries to CloudWatch Logs, or choose `INFO` to include all `ERROR` events as well as extra informational events. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-logginglevel // LoggingLevel *string `field:"optional" json:"loggingLevel" yaml:"loggingLevel"` // Specifies whether Amazon CloudWatch metrics are enabled for this method. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-metricsenabled // MetricsEnabled interface{} `field:"optional" 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 ( `/` ). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-resourcepath // ResourcePath *string `field:"optional" json:"resourcePath" yaml:"resourcePath"` // Specifies the throttling burst limit. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-throttlingburstlimit // ThrottlingBurstLimit *float64 `field:"optional" json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"` // Specifies the throttling rate limit. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-methodsetting.html#cfn-apigateway-deployment-methodsetting-throttlingratelimit // ThrottlingRateLimit *float64 `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" methodSettingProperty := &MethodSettingProperty{ CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), DataTraceEnabled: jsii.Boolean(false), HttpMethod: jsii.String("httpMethod"), LoggingLevel: jsii.String("loggingLevel"), MetricsEnabled: jsii.Boolean(false), ResourcePath: jsii.String("resourcePath"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), }
type CfnDeployment_StageDescriptionProperty ¶
type CfnDeployment_StageDescriptionProperty struct { // Specifies settings for logging access in this stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-accesslogsetting // AccessLogSetting interface{} `field:"optional" json:"accessLogSetting" yaml:"accessLogSetting"` // Specifies whether a cache cluster is enabled for the stage. // // To activate a method-level cache, set `CachingEnabled` to `true` for a method. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cacheclusterenabled // CacheClusterEnabled interface{} `field:"optional" json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"` // The size of the stage's cache cluster. // // For more information, see [cacheClusterSize](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html#apigw-CreateStage-request-cacheClusterSize) in the *API Gateway API Reference* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cacheclustersize // CacheClusterSize *string `field:"optional" json:"cacheClusterSize" yaml:"cacheClusterSize"` // Indicates whether the cached responses are encrypted. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachedataencrypted // CacheDataEncrypted interface{} `field:"optional" json:"cacheDataEncrypted" yaml:"cacheDataEncrypted"` // The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachettlinseconds // CacheTtlInSeconds *float64 `field:"optional" 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* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-cachingenabled // CachingEnabled interface{} `field:"optional" json:"cachingEnabled" yaml:"cachingEnabled"` // Specifies settings for the canary deployment in this stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-canarysetting // CanarySetting interface{} `field:"optional" json:"canarySetting" yaml:"canarySetting"` // The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-clientcertificateid // ClientCertificateId *string `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-datatraceenabled // DataTraceEnabled interface{} `field:"optional" json:"dataTraceEnabled" yaml:"dataTraceEnabled"` // A description of the purpose of the stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-description // Description *string `field:"optional" json:"description" yaml:"description"` // The version identifier of the API documentation snapshot. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-documentationversion // DocumentationVersion *string `field:"optional" json:"documentationVersion" yaml:"documentationVersion"` // The logging level for this method. // // For valid values, see the `loggingLevel` property of the [MethodSetting](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodSetting.html) resource in the *Amazon API Gateway API Reference* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-logginglevel // LoggingLevel *string `field:"optional" json:"loggingLevel" yaml:"loggingLevel"` // Configures settings for all of the stage's methods. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-methodsettings // MethodSettings interface{} `field:"optional" json:"methodSettings" yaml:"methodSettings"` // Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-metricsenabled // MetricsEnabled interface{} `field:"optional" json:"metricsEnabled" yaml:"metricsEnabled"` // An array of arbitrary tags (key-value pairs) to associate with the stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-tags // Tags *[]*awscdk.CfnTag `field:"optional" 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* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-throttlingburstlimit // ThrottlingBurstLimit *float64 `field:"optional" 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* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-throttlingratelimit // ThrottlingRateLimit *float64 `field:"optional" 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* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-tracingenabled // TracingEnabled interface{} `field:"optional" 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-._~:/?#&=,]+` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html#cfn-apigateway-deployment-stagedescription-variables // Variables interface{} `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" stageDescriptionProperty := &StageDescriptionProperty{ AccessLogSetting: &AccessLogSettingProperty{ DestinationArn: jsii.String("destinationArn"), Format: jsii.String("format"), }, CacheClusterEnabled: jsii.Boolean(false), CacheClusterSize: jsii.String("cacheClusterSize"), CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), CanarySetting: &CanarySettingProperty{ PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }, ClientCertificateId: jsii.String("clientCertificateId"), DataTraceEnabled: jsii.Boolean(false), Description: jsii.String("description"), DocumentationVersion: jsii.String("documentationVersion"), LoggingLevel: jsii.String("loggingLevel"), MethodSettings: []interface{}{ &MethodSettingProperty{ CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), DataTraceEnabled: jsii.Boolean(false), HttpMethod: jsii.String("httpMethod"), LoggingLevel: jsii.String("loggingLevel"), MetricsEnabled: jsii.Boolean(false), ResourcePath: jsii.String("resourcePath"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), }, }, MetricsEnabled: jsii.Boolean(false), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), TracingEnabled: jsii.Boolean(false), Variables: map[string]*string{ "variablesKey": jsii.String("variables"), }, }
type CfnDocumentationPart ¶
type CfnDocumentationPart interface { awscdk.CfnResource awscdk.IInspectable // The ID for the documentation part. AttrDocumentationPartId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The location of the targeted API entity of the to-be-created documentation part. Location() interface{} SetLocation(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // The new documentation content map of the targeted API entity. Properties() *string SetProperties(val *string) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDocumentationPart := awscdk.Aws_apigateway.NewCfnDocumentationPart(this, jsii.String("MyCfnDocumentationPart"), &CfnDocumentationPartProps{ Location: &LocationProperty{ Method: jsii.String("method"), Name: jsii.String("name"), Path: jsii.String("path"), StatusCode: jsii.String("statusCode"), Type: jsii.String("type"), }, Properties: jsii.String("properties"), RestApiId: jsii.String("restApiId"), })
func NewCfnDocumentationPart ¶
func NewCfnDocumentationPart(scope constructs.Construct, id *string, props *CfnDocumentationPartProps) CfnDocumentationPart
type CfnDocumentationPartProps ¶
type CfnDocumentationPartProps struct { // The location of the targeted API entity of the to-be-created documentation part. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-location // Location interface{} `field:"required" json:"location" yaml:"location"` // The new documentation content map of the targeted API entity. // // Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-properties // Properties *string `field:"required" json:"properties" yaml:"properties"` // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html#cfn-apigateway-documentationpart-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` }
Properties for defining a `CfnDocumentationPart`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDocumentationPartProps := &CfnDocumentationPartProps{ Location: &LocationProperty{ Method: jsii.String("method"), Name: jsii.String("name"), Path: jsii.String("path"), StatusCode: jsii.String("statusCode"), Type: jsii.String("type"), }, Properties: jsii.String("properties"), RestApiId: jsii.String("restApiId"), }
type CfnDocumentationPart_LocationProperty ¶
type CfnDocumentationPart_LocationProperty struct { // The HTTP verb of a method. // // It is a valid field for the API entity types of `METHOD` , `PATH_PARAMETER` , `QUERY_PARAMETER` , `REQUEST_HEADER` , `REQUEST_BODY` , `RESPONSE` , `RESPONSE_HEADER` , and `RESPONSE_BODY` . The default value is `*` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other `location` attributes, the child entity's `method` attribute must match that of the parent entity exactly. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-method // Method *string `field:"optional" json:"method" yaml:"method"` // The name of the targeted API entity. // // It is a valid and required field for the API entity types of `AUTHORIZER` , `MODEL` , `PATH_PARAMETER` , `QUERY_PARAMETER` , `REQUEST_HEADER` , `REQUEST_BODY` and `RESPONSE_HEADER` . It is an invalid field for any other entity type. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-name // Name *string `field:"optional" json:"name" yaml:"name"` // The URL path of the target. // // It is a valid field for the API entity types of `RESOURCE` , `METHOD` , `PATH_PARAMETER` , `QUERY_PARAMETER` , `REQUEST_HEADER` , `REQUEST_BODY` , `RESPONSE` , `RESPONSE_HEADER` , and `RESPONSE_BODY` . The default value is `/` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other `location` attributes, the child entity's `path` attribute must match that of the parent entity as a prefix. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-path // Path *string `field:"optional" json:"path" yaml:"path"` // The HTTP status code of a response. // // It is a valid field for the API entity types of `RESPONSE` , `RESPONSE_HEADER` , and `RESPONSE_BODY` . The default value is `*` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other `location` attributes, the child entity's `statusCode` attribute must match that of the parent entity exactly. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-statuscode // StatusCode *string `field:"optional" json:"statusCode" yaml:"statusCode"` // The type of API entity to which the documentation content applies. // // Valid values are `API` , `AUTHORIZER` , `MODEL` , `RESOURCE` , `METHOD` , `PATH_PARAMETER` , `QUERY_PARAMETER` , `REQUEST_HEADER` , `REQUEST_BODY` , `RESPONSE` , `RESPONSE_HEADER` , and `RESPONSE_BODY` . Content inheritance does not apply to any entity of the `API` , `AUTHORIZER` , `METHOD` , `MODEL` , `REQUEST_BODY` , or `RESOURCE` type. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-documentationpart-location.html#cfn-apigateway-documentationpart-location-type // Type *string `field:"optional" 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/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" locationProperty := &LocationProperty{ Method: jsii.String("method"), Name: jsii.String("name"), Path: jsii.String("path"), StatusCode: jsii.String("statusCode"), Type: jsii.String("type"), }
type CfnDocumentationVersion ¶
type CfnDocumentationVersion interface { awscdk.CfnResource awscdk.IInspectable // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // A description about the new documentation snapshot. Description() *string SetDescription(val *string) // The version identifier of the to-be-updated documentation version. DocumentationVersion() *string SetDocumentationVersion(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDocumentationVersion := awscdk.Aws_apigateway.NewCfnDocumentationVersion(this, jsii.String("MyCfnDocumentationVersion"), &CfnDocumentationVersionProps{ DocumentationVersion: jsii.String("documentationVersion"), RestApiId: jsii.String("restApiId"), // the properties below are optional Description: jsii.String("description"), })
func NewCfnDocumentationVersion ¶
func NewCfnDocumentationVersion(scope constructs.Construct, id *string, props *CfnDocumentationVersionProps) CfnDocumentationVersion
type CfnDocumentationVersionProps ¶
type CfnDocumentationVersionProps struct { // The version identifier of the to-be-updated documentation version. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-documentationversion // DocumentationVersion *string `field:"required" json:"documentationVersion" yaml:"documentationVersion"` // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // A description about the new documentation snapshot. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationversion.html#cfn-apigateway-documentationversion-description // Description *string `field:"optional" json:"description" yaml:"description"` }
Properties for defining a `CfnDocumentationVersion`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDocumentationVersionProps := &CfnDocumentationVersionProps{ DocumentationVersion: jsii.String("documentationVersion"), RestApiId: jsii.String("restApiId"), // the properties below are optional Description: jsii.String("description"), }
type CfnDomainName ¶
type CfnDomainName interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // The Amazon CloudFront distribution domain name that's mapped to the custom domain name. // // This is only applicable for endpoints whose type is `EDGE` . // // Example: `d111111abcdef8.cloudfront.net` AttrDistributionDomainName() *string // The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. // // The only valid value is `Z2FDTNDATAQYW2` for all regions. AttrDistributionHostedZoneId() *string // The domain name associated with the regional endpoint for this custom domain name. // // You set up this association by adding a DNS record that points the custom domain name to this regional domain name. AttrRegionalDomainName() *string // The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. AttrRegionalHostedZoneId() *string // The reference to an AWS -managed certificate that will be used by edge-optimized endpoint for this domain name. CertificateArn() *string SetCertificateArn(val *string) // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The custom domain name as an API host name, for example, `my-api.example.com` . DomainName() *string SetDomainName(val *string) // The endpoint configuration of this DomainName showing the endpoint types of the domain name. EndpointConfiguration() interface{} SetEndpointConfiguration(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The mutual TLS authentication configuration for a custom domain name. MutualTlsAuthentication() interface{} SetMutualTlsAuthentication(val interface{}) // The tree node. Node() constructs.Node // The ARN of the public certificate issued by ACM to validate ownership of your custom domain. OwnershipVerificationCertificateArn() *string SetOwnershipVerificationCertificateArn(val *string) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The reference to an AWS -managed certificate that will be used for validating the regional domain name. RegionalCertificateArn() *string SetRegionalCertificateArn(val *string) // The Transport Layer Security (TLS) version + cipher suite for this DomainName. SecurityPolicy() *string SetSecurityPolicy(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The collection of tags. TagsRaw() *[]*awscdk.CfnTag SetTagsRaw(val *[]*awscdk.CfnTag) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDomainName := awscdk.Aws_apigateway.NewCfnDomainName(this, jsii.String("MyCfnDomainName"), &CfnDomainNameProps{ CertificateArn: jsii.String("certificateArn"), DomainName: jsii.String("domainName"), EndpointConfiguration: &EndpointConfigurationProperty{ Types: []*string{ jsii.String("types"), }, }, MutualTlsAuthentication: &MutualTlsAuthenticationProperty{ TruststoreUri: jsii.String("truststoreUri"), TruststoreVersion: jsii.String("truststoreVersion"), }, OwnershipVerificationCertificateArn: jsii.String("ownershipVerificationCertificateArn"), RegionalCertificateArn: jsii.String("regionalCertificateArn"), SecurityPolicy: jsii.String("securityPolicy"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, })
func NewCfnDomainName ¶
func NewCfnDomainName(scope constructs.Construct, id *string, props *CfnDomainNameProps) CfnDomainName
type CfnDomainNameProps ¶
type CfnDomainNameProps struct { // The reference to an AWS -managed certificate that will be used by edge-optimized endpoint for this domain name. // // AWS Certificate Manager is the only supported source. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn // CertificateArn *string `field:"optional" json:"certificateArn" yaml:"certificateArn"` // The custom domain name as an API host name, for example, `my-api.example.com` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname // DomainName *string `field:"optional" json:"domainName" yaml:"domainName"` // The endpoint configuration of this DomainName showing the endpoint types of the domain name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-endpointconfiguration // EndpointConfiguration interface{} `field:"optional" json:"endpointConfiguration" yaml:"endpointConfiguration"` // The mutual TLS authentication configuration for a custom domain name. // // If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication // MutualTlsAuthentication interface{} `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn // OwnershipVerificationCertificateArn *string `field:"optional" json:"ownershipVerificationCertificateArn" yaml:"ownershipVerificationCertificateArn"` // The reference to an AWS -managed certificate that will be used for validating the regional domain name. // // AWS Certificate Manager is the only supported source. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn // RegionalCertificateArn *string `field:"optional" json:"regionalCertificateArn" yaml:"regionalCertificateArn"` // The Transport Layer Security (TLS) version + cipher suite for this DomainName. // // The valid values are `TLS_1_0` and `TLS_1_2` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy // SecurityPolicy *string `field:"optional" json:"securityPolicy" yaml:"securityPolicy"` // The collection of tags. // // Each tag element is associated with a given resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-tags // Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnDomainName`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDomainNameProps := &CfnDomainNameProps{ CertificateArn: jsii.String("certificateArn"), DomainName: jsii.String("domainName"), EndpointConfiguration: &EndpointConfigurationProperty{ Types: []*string{ jsii.String("types"), }, }, MutualTlsAuthentication: &MutualTlsAuthenticationProperty{ TruststoreUri: jsii.String("truststoreUri"), TruststoreVersion: jsii.String("truststoreVersion"), }, OwnershipVerificationCertificateArn: jsii.String("ownershipVerificationCertificateArn"), RegionalCertificateArn: jsii.String("regionalCertificateArn"), SecurityPolicy: jsii.String("securityPolicy"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, }
type CfnDomainName_EndpointConfigurationProperty ¶
type CfnDomainName_EndpointConfigurationProperty struct { // A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). // // 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` . For a private API, the endpoint type is `PRIVATE` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-endpointconfiguration.html#cfn-apigateway-domainname-endpointconfiguration-types // Types *[]*string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" endpointConfigurationProperty := &EndpointConfigurationProperty{ Types: []*string{ jsii.String("types"), }, }
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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreuri // TruststoreUri *string `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-domainname-mutualtlsauthentication.html#cfn-apigateway-domainname-mutualtlsauthentication-truststoreversion // TruststoreVersion *string `field:"optional" json:"truststoreVersion" yaml:"truststoreVersion"` }
The mutual TLS authentication configuration for a custom domain name.
If specified, API Gateway performs two-way authentication between the client and the server. Clients must present a trusted certificate to access your API.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" mutualTlsAuthenticationProperty := &MutualTlsAuthenticationProperty{ TruststoreUri: jsii.String("truststoreUri"), TruststoreVersion: jsii.String("truststoreVersion"), }
type CfnGatewayResponse ¶
type CfnGatewayResponse interface { awscdk.CfnResource awscdk.IInspectable // The ID for the gateway response. // // For example: `abc123` . AttrId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. ResponseParameters() interface{} SetResponseParameters(val interface{}) // Response templates of the GatewayResponse as a string-to-string map of key-value pairs. ResponseTemplates() interface{} SetResponseTemplates(val interface{}) // The response type of the associated GatewayResponse. ResponseType() *string SetResponseType(val *string) // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The HTTP status code for this GatewayResponse. StatusCode() *string SetStatusCode(val *string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnGatewayResponse := awscdk.Aws_apigateway.NewCfnGatewayResponse(this, jsii.String("MyCfnGatewayResponse"), &CfnGatewayResponseProps{ ResponseType: jsii.String("responseType"), RestApiId: jsii.String("restApiId"), // the properties below are optional ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, StatusCode: jsii.String("statusCode"), })
func NewCfnGatewayResponse ¶
func NewCfnGatewayResponse(scope constructs.Construct, id *string, props *CfnGatewayResponseProps) CfnGatewayResponse
type CfnGatewayResponseProps ¶
type CfnGatewayResponseProps struct { // The response type of the associated GatewayResponse. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetype // ResponseType *string `field:"required" json:"responseType" yaml:"responseType"` // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responseparameters // ResponseParameters interface{} `field:"optional" json:"responseParameters" yaml:"responseParameters"` // Response templates of the GatewayResponse as a string-to-string map of key-value pairs. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-responsetemplates // ResponseTemplates interface{} `field:"optional" json:"responseTemplates" yaml:"responseTemplates"` // The HTTP status code for this GatewayResponse. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-gatewayresponse.html#cfn-apigateway-gatewayresponse-statuscode // StatusCode *string `field:"optional" json:"statusCode" yaml:"statusCode"` }
Properties for defining a `CfnGatewayResponse`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnGatewayResponseProps := &CfnGatewayResponseProps{ ResponseType: jsii.String("responseType"), RestApiId: jsii.String("restApiId"), // the properties below are optional ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, StatusCode: jsii.String("statusCode"), }
type CfnMethod ¶
type CfnMethod interface { awscdk.CfnResource awscdk.IInspectable // A boolean flag specifying whether a valid ApiKey is required to invoke this method. ApiKeyRequired() interface{} SetApiKeyRequired(val interface{}) // A list of authorization scopes configured on the method. AuthorizationScopes() *[]*string SetAuthorizationScopes(val *[]*string) // The method's authorization type. AuthorizationType() *string SetAuthorizationType(val *string) // The identifier of an authorizer to use on this method. AuthorizerId() *string SetAuthorizerId(val *string) // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The method's HTTP verb. HttpMethod() *string SetHttpMethod(val *string) // Represents an `HTTP` , `HTTP_PROXY` , `AWS` , `AWS_PROXY` , or Mock integration. Integration() interface{} SetIntegration(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // Gets a method response associated with a given HTTP status code. MethodResponses() interface{} SetMethodResponses(val interface{}) // The tree node. Node() constructs.Node // A human-friendly operation identifier for the method. OperationName() *string SetOperationName(val *string) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key). RequestModels() interface{} SetRequestModels(val interface{}) // A key-value map defining required or optional method request parameters that can be accepted by API Gateway. RequestParameters() interface{} SetRequestParameters(val interface{}) // The identifier of a RequestValidator for request validation. RequestValidatorId() *string SetRequestValidatorId(val *string) // The Resource identifier for the MethodResponse resource. ResourceId() *string SetResourceId(val *string) // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::Method` resource creates API Gateway methods that define the parameters and body that clients must send in their requests.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnMethod := awscdk.Aws_apigateway.NewCfnMethod(this, jsii.String("MyCfnMethod"), &CfnMethodProps{ HttpMethod: jsii.String("httpMethod"), ResourceId: jsii.String("resourceId"), RestApiId: jsii.String("restApiId"), // the properties below are optional ApiKeyRequired: jsii.Boolean(false), AuthorizationScopes: []*string{ jsii.String("authorizationScopes"), }, AuthorizationType: jsii.String("authorizationType"), AuthorizerId: jsii.String("authorizerId"), Integration: &IntegrationProperty{ Type: jsii.String("type"), // the properties below are optional CacheKeyParameters: []*string{ jsii.String("cacheKeyParameters"), }, CacheNamespace: jsii.String("cacheNamespace"), ConnectionId: jsii.String("connectionId"), ConnectionType: jsii.String("connectionType"), ContentHandling: jsii.String("contentHandling"), Credentials: jsii.String("credentials"), IntegrationHttpMethod: jsii.String("integrationHttpMethod"), IntegrationResponses: []interface{}{ &IntegrationResponseProperty{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: jsii.String("contentHandling"), ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }, }, PassthroughBehavior: jsii.String("passthroughBehavior"), RequestParameters: map[string]*string{ "requestParametersKey": jsii.String("requestParameters"), }, RequestTemplates: map[string]*string{ "requestTemplatesKey": jsii.String("requestTemplates"), }, TimeoutInMillis: jsii.Number(123), Uri: jsii.String("uri"), }, MethodResponses: []interface{}{ &MethodResponseProperty{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]*string{ "responseModelsKey": jsii.String("responseModels"), }, ResponseParameters: map[string]interface{}{ "responseParametersKey": jsii.Boolean(false), }, }, }, OperationName: jsii.String("operationName"), RequestModels: map[string]*string{ "requestModelsKey": jsii.String("requestModels"), }, RequestParameters: map[string]interface{}{ "requestParametersKey": jsii.Boolean(false), }, RequestValidatorId: jsii.String("requestValidatorId"), })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html
func NewCfnMethod ¶
func NewCfnMethod(scope constructs.Construct, id *string, props *CfnMethodProps) CfnMethod
type CfnMethodProps ¶
type CfnMethodProps struct { // The method's HTTP verb. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-httpmethod // HttpMethod *string `field:"required" json:"httpMethod" yaml:"httpMethod"` // The Resource identifier for the MethodResponse resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-resourceid // ResourceId *string `field:"required" json:"resourceId" yaml:"resourceId"` // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // A boolean flag specifying whether a valid ApiKey is required to invoke this method. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-apikeyrequired // ApiKeyRequired interface{} `field:"optional" 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 matches 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes // AuthorizationScopes *[]*string `field:"optional" json:"authorizationScopes" yaml:"authorizationScopes"` // The method's authorization type. // // This parameter is required. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html) in the *API Gateway API Reference* . // // > If you specify the `AuthorizerId` property, specify `CUSTOM` or `COGNITO_USER_POOLS` for this property. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationtype // AuthorizationType *string `field:"optional" json:"authorizationType" yaml:"authorizationType"` // The identifier of an authorizer to use on this method. // // The method's authorization type must be `CUSTOM` or `COGNITO_USER_POOLS` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizerid // AuthorizerId *string `field:"optional" json:"authorizerId" yaml:"authorizerId"` // Represents an `HTTP` , `HTTP_PROXY` , `AWS` , `AWS_PROXY` , or Mock integration. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-integration // Integration interface{} `field:"optional" json:"integration" yaml:"integration"` // Gets a method response associated with a given HTTP status code. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-methodresponses // MethodResponses interface{} `field:"optional" json:"methodResponses" yaml:"methodResponses"` // A human-friendly operation identifier for the method. // // For example, you can assign the `operationName` of `ListPets` for the `GET /pets` method in the `PetStore` example. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-operationname // OperationName *string `field:"optional" json:"operationName" yaml:"operationName"` // A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestmodels // RequestModels interface{} `field:"optional" json:"requestModels" yaml:"requestModels"` // A key-value map defining required or optional method request parameters that can be accepted by API Gateway. // // A key is a method request parameter name matching the pattern of `method.request.{location}.{name}` , where `location` is `querystring` , `path` , or `header` and `name` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required ( `true` ) or optional ( `false` ). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestparameters // RequestParameters interface{} `field:"optional" json:"requestParameters" yaml:"requestParameters"` // The identifier of a RequestValidator for request validation. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-requestvalidatorid // RequestValidatorId *string `field:"optional" json:"requestValidatorId" yaml:"requestValidatorId"` }
Properties for defining a `CfnMethod`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnMethodProps := &CfnMethodProps{ HttpMethod: jsii.String("httpMethod"), ResourceId: jsii.String("resourceId"), RestApiId: jsii.String("restApiId"), // the properties below are optional ApiKeyRequired: jsii.Boolean(false), AuthorizationScopes: []*string{ jsii.String("authorizationScopes"), }, AuthorizationType: jsii.String("authorizationType"), AuthorizerId: jsii.String("authorizerId"), Integration: &IntegrationProperty{ Type: jsii.String("type"), // the properties below are optional CacheKeyParameters: []*string{ jsii.String("cacheKeyParameters"), }, CacheNamespace: jsii.String("cacheNamespace"), ConnectionId: jsii.String("connectionId"), ConnectionType: jsii.String("connectionType"), ContentHandling: jsii.String("contentHandling"), Credentials: jsii.String("credentials"), IntegrationHttpMethod: jsii.String("integrationHttpMethod"), IntegrationResponses: []interface{}{ &IntegrationResponseProperty{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: jsii.String("contentHandling"), ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }, }, PassthroughBehavior: jsii.String("passthroughBehavior"), RequestParameters: map[string]*string{ "requestParametersKey": jsii.String("requestParameters"), }, RequestTemplates: map[string]*string{ "requestTemplatesKey": jsii.String("requestTemplates"), }, TimeoutInMillis: jsii.Number(123), Uri: jsii.String("uri"), }, MethodResponses: []interface{}{ &MethodResponseProperty{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]*string{ "responseModelsKey": jsii.String("responseModels"), }, ResponseParameters: map[string]interface{}{ "responseParametersKey": jsii.Boolean(false), }, }, }, OperationName: jsii.String("operationName"), RequestModels: map[string]*string{ "requestModelsKey": jsii.String("requestModels"), }, RequestParameters: map[string]interface{}{ "requestParametersKey": jsii.Boolean(false), }, RequestValidatorId: jsii.String("requestValidatorId"), }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html
type CfnMethod_IntegrationProperty ¶
type CfnMethod_IntegrationProperty struct { // Specifies an API method integration type. The valid value is one of the following:. // // For the HTTP and HTTP proxy integrations, each integration can specify a protocol ( `http/https` ), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. An HTTP or HTTP proxy integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-type // Type *string `field:"required" json:"type" yaml:"type"` // A list of request parameters whose values API Gateway caches. // // To be valid values for `cacheKeyParameters` , these parameters must also be specified for Method `requestParameters` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-cachekeyparameters // CacheKeyParameters *[]*string `field:"optional" json:"cacheKeyParameters" yaml:"cacheKeyParameters"` // Specifies a group of related cached parameters. // // By default, API Gateway uses the resource ID as the `cacheNamespace` . You can specify the same `cacheNamespace` across resources to return the same cached data for requests to different resources. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-cachenamespace // CacheNamespace *string `field:"optional" json:"cacheNamespace" yaml:"cacheNamespace"` // The ID of the VpcLink used for the integration when `connectionType=VPC_LINK` and undefined, otherwise. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-connectionid // ConnectionId *string `field:"optional" 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` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-connectiontype // ConnectionType *string `field:"optional" json:"connectionType" yaml:"connectionType"` // Specifies how to handle request payload content type conversions. // // Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT` , with the following behaviors: // // If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the `passthroughBehavior` is configured to support payload pass-through. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-contenthandling // ContentHandling *string `field:"optional" json:"contentHandling" yaml:"contentHandling"` // Specifies the credentials required for the integration, if any. // // For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string `arn:aws:iam::\*:user/\*` . To use resource-based permissions on supported AWS services, specify null. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-credentials // Credentials *string `field:"optional" json:"credentials" yaml:"credentials"` // Specifies the integration's HTTP method type. // // For the Type property, if you specify `MOCK` , this property is optional. For Lambda integrations, you must set the integration method to `POST` . For all other types, you must specify this property. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-integrationhttpmethod // IntegrationHttpMethod *string `field:"optional" json:"integrationHttpMethod" yaml:"integrationHttpMethod"` // Specifies the integration's responses. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-integrationresponses // IntegrationResponses interface{} `field:"optional" json:"integrationResponses" yaml:"integrationResponses"` // Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. // // A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in `requestTemplates` . The valid value is one of the following: `WHEN_NO_MATCH` : passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. `WHEN_NO_TEMPLATES` : passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response. `NEVER` : rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-passthroughbehavior // PassthroughBehavior *string `field:"optional" json:"passthroughBehavior" yaml:"passthroughBehavior"` // A key-value map specifying request parameters that are passed from the method request to the back end. // // The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of `method.request.{location}.{name}` , where `location` is `querystring` , `path` , or `header` and `name` must be a valid and unique method request parameter name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-requestparameters // RequestParameters interface{} `field:"optional" json:"requestParameters" yaml:"requestParameters"` // Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. // // The content type value is the key in this map, and the template (as a String) is the value. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-requesttemplates // RequestTemplates interface{} `field:"optional" json:"requestTemplates" yaml:"requestTemplates"` // Custom timeout between 50 and 29,000 milliseconds. // // The default value is 29,000 milliseconds or 29 seconds. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-timeoutinmillis // TimeoutInMillis *float64 `field:"optional" json:"timeoutInMillis" yaml:"timeoutInMillis"` // Specifies Uniform Resource Identifier (URI) of the integration endpoint. // // For `HTTP` or `HTTP_PROXY` integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification for standard integrations. If `connectionType` is `VPC_LINK` specify the Network Load Balancer DNS name. For `AWS` or `AWS_PROXY` integrations, the URI is of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}` . Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_api refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of GetObject, the uri can be either `arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}` or `arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}` // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-uri // Uri *string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" integrationProperty := &IntegrationProperty{ Type: jsii.String("type"), // the properties below are optional CacheKeyParameters: []*string{ jsii.String("cacheKeyParameters"), }, CacheNamespace: jsii.String("cacheNamespace"), ConnectionId: jsii.String("connectionId"), ConnectionType: jsii.String("connectionType"), ContentHandling: jsii.String("contentHandling"), Credentials: jsii.String("credentials"), IntegrationHttpMethod: jsii.String("integrationHttpMethod"), IntegrationResponses: []interface{}{ &IntegrationResponseProperty{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: jsii.String("contentHandling"), ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }, }, PassthroughBehavior: jsii.String("passthroughBehavior"), RequestParameters: map[string]*string{ "requestParametersKey": jsii.String("requestParameters"), }, RequestTemplates: map[string]*string{ "requestTemplatesKey": jsii.String("requestTemplates"), }, TimeoutInMillis: jsii.Number(123), Uri: jsii.String("uri"), }
type CfnMethod_IntegrationResponseProperty ¶
type CfnMethod_IntegrationResponseProperty struct { // Specifies the status code that is used to map the integration response to an existing MethodResponse. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integrationresponse.html#cfn-apigateway-method-integrationresponse-statuscode // StatusCode *string `field:"required" json:"statusCode" yaml:"statusCode"` // Specifies how to handle response payload content type conversions. // // Supported values are `CONVERT_TO_BINARY` and `CONVERT_TO_TEXT` , with the following behaviors: // // If this property is not defined, the response payload will be passed through from the integration response to the method response without modification. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integrationresponse.html#cfn-apigateway-method-integrationresponse-contenthandling // ContentHandling *string `field:"optional" json:"contentHandling" yaml:"contentHandling"` // A key-value map specifying response parameters that are passed to the method response from the back end. // // The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of `method.response.header.{name}` , where `name` is a valid and unique header name. The mapped non-static value must match the pattern of `integration.response.header.{name}` or `integration.response.body.{JSON-expression}` , where `name` is a valid and unique response header name and `JSON-expression` is a valid JSON expression without the `$` prefix. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integrationresponse.html#cfn-apigateway-method-integrationresponse-responseparameters // ResponseParameters interface{} `field:"optional" json:"responseParameters" yaml:"responseParameters"` // Specifies the templates used to transform the integration response body. // // Response templates are represented as a key/value map, with a content-type as the key and a template as the value. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integrationresponse.html#cfn-apigateway-method-integrationresponse-responsetemplates // ResponseTemplates interface{} `field:"optional" 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: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integrationresponse.html#cfn-apigateway-method-integrationresponse-selectionpattern // SelectionPattern *string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" integrationResponseProperty := &IntegrationResponseProperty{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: jsii.String("contentHandling"), ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }
type CfnMethod_MethodResponseProperty ¶
type CfnMethod_MethodResponseProperty struct { // The method response's status code. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-statuscode // StatusCode *string `field:"required" json:"statusCode" yaml:"statusCode"` // Specifies the Model resources used for the response's content-type. // // Response models are represented as a key/value map, with a content-type as the key and a Model name as the value. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-responsemodels // ResponseModels interface{} `field:"optional" json:"responseModels" yaml:"responseModels"` // A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. // // A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern `method.response.header.{name}` , where `name` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in `integration.response.header.{name}` , a static value enclosed within a pair of single quotes (e.g., `'application/json'` ), or a JSON expression from the back-end response payload in the form of `integration.response.body.{JSON-expression}` , where `JSON-expression` is a valid JSON expression without the `$` prefix.) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-methodresponse.html#cfn-apigateway-method-methodresponse-responseparameters // ResponseParameters interface{} `field:"optional" json:"responseParameters" yaml:"responseParameters"` }
Represents a method response of a given HTTP status code returned to the client.
The method response is passed from the back end through the associated integration response that can be transformed using a mapping template.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" methodResponseProperty := &MethodResponseProperty{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]*string{ "responseModelsKey": jsii.String("responseModels"), }, ResponseParameters: map[string]interface{}{ "responseParametersKey": jsii.Boolean(false), }, }
type CfnModel ¶
type CfnModel interface { awscdk.CfnResource awscdk.IInspectable // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // The content-type for the model. ContentType() *string SetContentType(val *string) // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The description of the model. Description() *string SetDescription(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // A name for the model. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The schema for the model. Schema() interface{} SetSchema(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::Model` resource defines the structure of a request or response payload for an API method.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var schema interface{} cfnModel := awscdk.Aws_apigateway.NewCfnModel(this, jsii.String("MyCfnModel"), &CfnModelProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional ContentType: jsii.String("contentType"), Description: jsii.String("description"), Name: jsii.String("name"), Schema: schema, })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html
func NewCfnModel ¶
func NewCfnModel(scope constructs.Construct, id *string, props *CfnModelProps) CfnModel
type CfnModelProps ¶
type CfnModelProps struct { // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // The content-type for the model. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-contenttype // ContentType *string `field:"optional" json:"contentType" yaml:"contentType"` // The description of the model. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-description // Description *string `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-name // Name *string `field:"optional" json:"name" yaml:"name"` // The schema for the model. // // For `application/json` models, this should be JSON schema draft 4 model. Do not include "\* /" characters in the description of any properties because such "\* /" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html#cfn-apigateway-model-schema // Schema interface{} `field:"optional" json:"schema" yaml:"schema"` }
Properties for defining a `CfnModel`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var schema interface{} cfnModelProps := &CfnModelProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional ContentType: jsii.String("contentType"), Description: jsii.String("description"), Name: jsii.String("name"), Schema: schema, }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-model.html
type CfnRequestValidator ¶
type CfnRequestValidator interface { awscdk.CfnResource awscdk.IInspectable // The ID for the request validator. // // For example: `abc123` . AttrRequestValidatorId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The name of this RequestValidator. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // A Boolean flag to indicate whether to validate a request body according to the configured Model schema. ValidateRequestBody() interface{} SetValidateRequestBody(val interface{}) // A Boolean flag to indicate whether to validate request parameters ( `true` ) or not ( `false` ). ValidateRequestParameters() interface{} SetValidateRequestParameters(val interface{}) // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnRequestValidator := awscdk.Aws_apigateway.NewCfnRequestValidator(this, jsii.String("MyCfnRequestValidator"), &CfnRequestValidatorProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional Name: jsii.String("name"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), })
func NewCfnRequestValidator ¶
func NewCfnRequestValidator(scope constructs.Construct, id *string, props *CfnRequestValidatorProps) CfnRequestValidator
type CfnRequestValidatorProps ¶
type CfnRequestValidatorProps struct { // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // The name of this RequestValidator. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-name // Name *string `field:"optional" json:"name" yaml:"name"` // A Boolean flag to indicate whether to validate a request body according to the configured Model schema. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-validaterequestbody // ValidateRequestBody interface{} `field:"optional" json:"validateRequestBody" yaml:"validateRequestBody"` // A Boolean flag to indicate whether to validate request parameters ( `true` ) or not ( `false` ). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-requestvalidator.html#cfn-apigateway-requestvalidator-validaterequestparameters // ValidateRequestParameters interface{} `field:"optional" json:"validateRequestParameters" yaml:"validateRequestParameters"` }
Properties for defining a `CfnRequestValidator`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnRequestValidatorProps := &CfnRequestValidatorProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional Name: jsii.String("name"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), }
type CfnResource ¶
type CfnResource interface { awscdk.CfnResource awscdk.IInspectable // The ID for the resource. // // For example: `abc123` . AttrResourceId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // The parent resource's identifier. ParentId() *string SetParentId(val *string) // The last path segment for this resource. PathPart() *string SetPathPart(val *string) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::Resource` resource creates a resource in an API.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnResource := awscdk.Aws_apigateway.NewCfnResource(this, jsii.String("MyCfnResource"), &CfnResourceProps{ ParentId: jsii.String("parentId"), PathPart: jsii.String("pathPart"), RestApiId: jsii.String("restApiId"), })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html
func NewCfnResource ¶
func NewCfnResource(scope constructs.Construct, id *string, props *CfnResourceProps) CfnResource
type CfnResourceProps ¶
type CfnResourceProps struct { // The parent resource's identifier. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-parentid // ParentId *string `field:"required" json:"parentId" yaml:"parentId"` // The last path segment for this resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-pathpart // PathPart *string `field:"required" json:"pathPart" yaml:"pathPart"` // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html#cfn-apigateway-resource-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` }
Properties for defining a `CfnResource`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnResourceProps := &CfnResourceProps{ ParentId: jsii.String("parentId"), PathPart: jsii.String("pathPart"), RestApiId: jsii.String("restApiId"), }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-resource.html
type CfnRestApi ¶
type CfnRestApi interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // The source of the API key for metering requests according to a usage plan. ApiKeySourceType() *string SetApiKeySourceType(val *string) // The string identifier of the associated RestApi. AttrRestApiId() *string // The root resource ID for a `RestApi` resource, such as `a0bc123d4e` . AttrRootResourceId() *string // The list of binary media types supported by the RestApi. BinaryMediaTypes() *[]*string SetBinaryMediaTypes(val *[]*string) // An OpenAPI specification that defines a set of RESTful APIs in JSON format. Body() interface{} SetBody(val interface{}) // 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{} SetBodyS3Location(val interface{}) // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // The ID of the RestApi that you want to clone from. CloneFrom() *string SetCloneFrom(val *string) // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The description of the RestApi. Description() *string SetDescription(val *string) // Specifies whether clients can invoke your API by using the default `execute-api` endpoint. DisableExecuteApiEndpoint() interface{} SetDisableExecuteApiEndpoint(val interface{}) // A list of the endpoint types of the API. EndpointConfiguration() interface{} SetEndpointConfiguration(val interface{}) // A query parameter to indicate whether to rollback the API update ( `true` ) or not ( `false` ) when a warning is encountered. FailOnWarnings() interface{} SetFailOnWarnings(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // 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. MinimumCompressionSize() *float64 SetMinimumCompressionSize(val *float64) // This property applies only when you use OpenAPI to define your REST API. Mode() *string SetMode(val *string) // The name of the RestApi. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Custom header parameters as part of the request. Parameters() interface{} SetParameters(val interface{}) // A policy document that contains the permissions for the `RestApi` resource. Policy() interface{} SetPolicy(val interface{}) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The key-value map of strings. TagsRaw() *[]*awscdk.CfnTag SetTagsRaw(val *[]*awscdk.CfnTag) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::RestApi` resource creates a REST API.
For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var body interface{} var policy interface{} cfnRestApi := awscdk.Aws_apigateway.NewCfnRestApi(this, jsii.String("MyCfnRestApi"), &CfnRestApiProps{ ApiKeySourceType: jsii.String("apiKeySourceType"), BinaryMediaTypes: []*string{ jsii.String("binaryMediaTypes"), }, Body: body, BodyS3Location: &S3LocationProperty{ Bucket: jsii.String("bucket"), ETag: jsii.String("eTag"), Key: jsii.String("key"), Version: jsii.String("version"), }, CloneFrom: jsii.String("cloneFrom"), Description: jsii.String("description"), DisableExecuteApiEndpoint: jsii.Boolean(false), EndpointConfiguration: &EndpointConfigurationProperty{ Types: []*string{ jsii.String("types"), }, VpcEndpointIds: []*string{ jsii.String("vpcEndpointIds"), }, }, FailOnWarnings: jsii.Boolean(false), MinimumCompressionSize: jsii.Number(123), Mode: jsii.String("mode"), Name: jsii.String("name"), Parameters: map[string]*string{ "parametersKey": jsii.String("parameters"), }, Policy: policy, Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
func NewCfnRestApi ¶
func NewCfnRestApi(scope constructs.Construct, id *string, props *CfnRestApiProps) CfnRestApi
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 custom authorizer. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-apikeysourcetype // ApiKeySourceType *string `field:"optional" json:"apiKeySourceType" yaml:"apiKeySourceType"` // The list of binary media types supported by the RestApi. // // By default, the RestApi supports only UTF-8-encoded text payloads. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-binarymediatypes // BinaryMediaTypes *[]*string `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body // Body interface{} `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location // BodyS3Location interface{} `field:"optional" json:"bodyS3Location" yaml:"bodyS3Location"` // The ID of the RestApi that you want to clone from. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-clonefrom // CloneFrom *string `field:"optional" json:"cloneFrom" yaml:"cloneFrom"` // The description of the RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description // Description *string `field:"optional" 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 // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint // DisableExecuteApiEndpoint interface{} `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration // EndpointConfiguration interface{} `field:"optional" json:"endpointConfiguration" yaml:"endpointConfiguration"` // A query parameter to indicate whether to rollback the API update ( `true` ) or not ( `false` ) when a warning is encountered. // // The default value is `false` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings // FailOnWarnings interface{} `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize // MinimumCompressionSize *float64 `field:"optional" 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 is merged with the existing API. // // If you don't specify this property, a default value is chosen. For REST APIs created before March 29, 2021, the default is `overwrite` . For REST APIs created after March 29, 2021, 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 the default mode 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode // Mode *string `field:"optional" json:"mode" yaml:"mode"` // The name of the RestApi. // // A name is required if the REST API is not based on an OpenAPI specification. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name // Name *string `field:"optional" json:"name" yaml:"name"` // Custom header parameters as part of the request. // // For example, to exclude DocumentationParts from an imported API, set `ignore=documentation` as a `parameters` value, as in the AWS CLI command of `aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-parameters // Parameters interface{} `field:"optional" 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 `"*"` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-policy // Policy interface{} `field:"optional" json:"policy" yaml:"policy"` // The key-value map of strings. // // The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with `aws:` . The tag value can be up to 256 characters. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-tags // Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnRestApi`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var body interface{} var policy interface{} cfnRestApiProps := &CfnRestApiProps{ ApiKeySourceType: jsii.String("apiKeySourceType"), BinaryMediaTypes: []*string{ jsii.String("binaryMediaTypes"), }, Body: body, BodyS3Location: &S3LocationProperty{ Bucket: jsii.String("bucket"), ETag: jsii.String("eTag"), Key: jsii.String("key"), Version: jsii.String("version"), }, CloneFrom: jsii.String("cloneFrom"), Description: jsii.String("description"), DisableExecuteApiEndpoint: jsii.Boolean(false), EndpointConfiguration: &EndpointConfigurationProperty{ Types: []*string{ jsii.String("types"), }, VpcEndpointIds: []*string{ jsii.String("vpcEndpointIds"), }, }, FailOnWarnings: jsii.Boolean(false), MinimumCompressionSize: jsii.Number(123), Mode: jsii.String("mode"), Name: jsii.String("name"), Parameters: map[string]*string{ "parametersKey": jsii.String("parameters"), }, Policy: policy, Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html
type CfnRestApi_EndpointConfigurationProperty ¶
type CfnRestApi_EndpointConfigurationProperty struct { // A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). // // 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` . For a private API, the endpoint type is `PRIVATE` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types // Types *[]*string `field:"optional" json:"types" yaml:"types"` // A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. // // It is only supported for `PRIVATE` endpoint type. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids // VpcEndpointIds *[]*string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" endpointConfigurationProperty := &EndpointConfigurationProperty{ Types: []*string{ jsii.String("types"), }, VpcEndpointIds: []*string{ jsii.String("vpcEndpointIds"), }, }
type CfnRestApi_S3LocationProperty ¶
type CfnRestApi_S3LocationProperty struct { // The name of the S3 bucket where the OpenAPI file is stored. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket // Bucket *string `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-etag // ETag *string `field:"optional" json:"eTag" yaml:"eTag"` // The file name of the OpenAPI file (Amazon S3 object name). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key // Key *string `field:"optional" json:"key" yaml:"key"` // For versioning-enabled buckets, a specific version of the OpenAPI file. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version // Version *string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" s3LocationProperty := &S3LocationProperty{ Bucket: jsii.String("bucket"), ETag: jsii.String("eTag"), Key: jsii.String("key"), Version: jsii.String("version"), }
type CfnStage ¶
type CfnStage interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // Access log settings, including the access log format and access log destination ARN. AccessLogSetting() interface{} SetAccessLogSetting(val interface{}) // Specifies whether a cache cluster is enabled for the stage. CacheClusterEnabled() interface{} SetCacheClusterEnabled(val interface{}) // The stage's cache capacity in GB. CacheClusterSize() *string SetCacheClusterSize(val *string) // Settings for the canary deployment in this stage. CanarySetting() interface{} SetCanarySetting(val interface{}) // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // The identifier of a client certificate for an API stage. ClientCertificateId() *string SetClientCertificateId(val *string) // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The identifier of the Deployment that the stage points to. DeploymentId() *string SetDeploymentId(val *string) // The stage's description. Description() *string SetDescription(val *string) // The version of the associated API documentation. DocumentationVersion() *string SetDocumentationVersion(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // A map that defines the method settings for a Stage resource. MethodSettings() interface{} SetMethodSettings(val interface{}) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The string identifier of the associated RestApi. RestApiId() *string SetRestApiId(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. StageName() *string SetStageName(val *string) // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The collection of tags. TagsRaw() *[]*awscdk.CfnTag SetTagsRaw(val *[]*awscdk.CfnTag) // Specifies whether active tracing with X-ray is enabled for the Stage. TracingEnabled() interface{} SetTracingEnabled(val interface{}) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // 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. Variables() interface{} SetVariables(val interface{}) // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::Stage` resource creates a stage for a deployment.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnStage := awscdk.Aws_apigateway.NewCfnStage(this, jsii.String("MyCfnStage"), &CfnStageProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional AccessLogSetting: &AccessLogSettingProperty{ DestinationArn: jsii.String("destinationArn"), Format: jsii.String("format"), }, CacheClusterEnabled: jsii.Boolean(false), CacheClusterSize: jsii.String("cacheClusterSize"), CanarySetting: &CanarySettingProperty{ DeploymentId: jsii.String("deploymentId"), PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }, ClientCertificateId: jsii.String("clientCertificateId"), DeploymentId: jsii.String("deploymentId"), Description: jsii.String("description"), DocumentationVersion: jsii.String("documentationVersion"), MethodSettings: []interface{}{ &MethodSettingProperty{ CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), DataTraceEnabled: jsii.Boolean(false), HttpMethod: jsii.String("httpMethod"), LoggingLevel: jsii.String("loggingLevel"), MetricsEnabled: jsii.Boolean(false), ResourcePath: jsii.String("resourcePath"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), }, }, StageName: jsii.String("stageName"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, TracingEnabled: jsii.Boolean(false), Variables: map[string]*string{ "variablesKey": jsii.String("variables"), }, })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html
func NewCfnStage ¶
func NewCfnStage(scope constructs.Construct, id *string, props *CfnStageProps) CfnStage
type CfnStageProps ¶
type CfnStageProps struct { // The string identifier of the associated RestApi. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-restapiid // RestApiId *string `field:"required" json:"restApiId" yaml:"restApiId"` // Access log settings, including the access log format and access log destination ARN. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-accesslogsetting // AccessLogSetting interface{} `field:"optional" json:"accessLogSetting" yaml:"accessLogSetting"` // Specifies whether a cache cluster is enabled for the stage. // // To activate a method-level cache, set `CachingEnabled` to `true` for a method. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled // CacheClusterEnabled interface{} `field:"optional" json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"` // The stage's cache capacity in GB. // // For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html) . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize // CacheClusterSize *string `field:"optional" json:"cacheClusterSize" yaml:"cacheClusterSize"` // Settings for the canary deployment in this stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting // CanarySetting interface{} `field:"optional" json:"canarySetting" yaml:"canarySetting"` // The identifier of a client certificate for an API stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-clientcertificateid // ClientCertificateId *string `field:"optional" json:"clientCertificateId" yaml:"clientCertificateId"` // The identifier of the Deployment that the stage points to. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-deploymentid // DeploymentId *string `field:"optional" json:"deploymentId" yaml:"deploymentId"` // The stage's description. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-description // Description *string `field:"optional" json:"description" yaml:"description"` // The version of the associated API documentation. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-documentationversion // DocumentationVersion *string `field:"optional" json:"documentationVersion" yaml:"documentationVersion"` // A map that defines the method settings for a Stage resource. // // Keys (designated as `/{method_setting_key` below) are method paths defined as `{resource_path}/{http_method}` for an individual method override, or `/\* /\*` for overriding all methods in the stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings // MethodSettings interface{} `field:"optional" json:"methodSettings" yaml:"methodSettings"` // The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. // // Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename // StageName *string `field:"optional" json:"stageName" yaml:"stageName"` // The collection of tags. // // Each tag element is associated with a given resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tags // Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` // Specifies whether active tracing with X-ray is enabled for the Stage. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled // TracingEnabled interface{} `field:"optional" 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-._~:/?#&=,]+` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables // Variables interface{} `field:"optional" json:"variables" yaml:"variables"` }
Properties for defining a `CfnStage`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnStageProps := &CfnStageProps{ RestApiId: jsii.String("restApiId"), // the properties below are optional AccessLogSetting: &AccessLogSettingProperty{ DestinationArn: jsii.String("destinationArn"), Format: jsii.String("format"), }, CacheClusterEnabled: jsii.Boolean(false), CacheClusterSize: jsii.String("cacheClusterSize"), CanarySetting: &CanarySettingProperty{ DeploymentId: jsii.String("deploymentId"), PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }, ClientCertificateId: jsii.String("clientCertificateId"), DeploymentId: jsii.String("deploymentId"), Description: jsii.String("description"), DocumentationVersion: jsii.String("documentationVersion"), MethodSettings: []interface{}{ &MethodSettingProperty{ CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), DataTraceEnabled: jsii.Boolean(false), HttpMethod: jsii.String("httpMethod"), LoggingLevel: jsii.String("loggingLevel"), MetricsEnabled: jsii.Boolean(false), ResourcePath: jsii.String("resourcePath"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), }, }, StageName: jsii.String("stageName"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, TracingEnabled: jsii.Boolean(false), Variables: map[string]*string{ "variablesKey": jsii.String("variables"), }, }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html
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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-destinationarn // DestinationArn *string `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-accesslogsetting.html#cfn-apigateway-stage-accesslogsetting-format // Format *string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" accessLogSettingProperty := &AccessLogSettingProperty{ DestinationArn: jsii.String("destinationArn"), Format: jsii.String("format"), }
type CfnStage_CanarySettingProperty ¶
type CfnStage_CanarySettingProperty struct { // The ID of the canary deployment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-deploymentid // DeploymentId *string `field:"optional" json:"deploymentId" yaml:"deploymentId"` // The percent (0-100) of traffic diverted to a canary deployment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-percenttraffic // PercentTraffic *float64 `field:"optional" 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-stagevariableoverrides // StageVariableOverrides interface{} `field:"optional" json:"stageVariableOverrides" yaml:"stageVariableOverrides"` // A Boolean flag to indicate whether the canary deployment uses the stage cache or not. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-canarysetting.html#cfn-apigateway-stage-canarysetting-usestagecache // UseStageCache interface{} `field:"optional" json:"useStageCache" yaml:"useStageCache"` }
Configuration settings of a canary deployment.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" canarySettingProperty := &CanarySettingProperty{ DeploymentId: jsii.String("deploymentId"), PercentTraffic: jsii.Number(123), StageVariableOverrides: map[string]*string{ "stageVariableOverridesKey": jsii.String("stageVariableOverrides"), }, UseStageCache: jsii.Boolean(false), }
type CfnStage_MethodSettingProperty ¶
type CfnStage_MethodSettingProperty struct { // Specifies whether the cached responses are encrypted. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachedataencrypted // CacheDataEncrypted interface{} `field:"optional" 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: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachettlinseconds // CacheTtlInSeconds *float64 `field:"optional" json:"cacheTtlInSeconds" yaml:"cacheTtlInSeconds"` // Specifies whether responses should be cached and returned for requests. // // A cache cluster must be enabled on the stage for responses to be cached. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-cachingenabled // CachingEnabled interface{} `field:"optional" json:"cachingEnabled" yaml:"cachingEnabled"` // Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. // // This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-datatraceenabled // DataTraceEnabled interface{} `field:"optional" 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` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-httpmethod // HttpMethod *string `field:"optional" json:"httpMethod" yaml:"httpMethod"` // Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. // // Valid values are `OFF` , `ERROR` , and `INFO` . Choose `ERROR` to write only error-level entries to CloudWatch Logs, or choose `INFO` to include all `ERROR` events as well as extra informational events. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-logginglevel // LoggingLevel *string `field:"optional" json:"loggingLevel" yaml:"loggingLevel"` // Specifies whether Amazon CloudWatch metrics are enabled for this method. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-metricsenabled // MetricsEnabled interface{} `field:"optional" 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` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-resourcepath // ResourcePath *string `field:"optional" json:"resourcePath" yaml:"resourcePath"` // Specifies the throttling burst limit. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingburstlimit // ThrottlingBurstLimit *float64 `field:"optional" json:"throttlingBurstLimit" yaml:"throttlingBurstLimit"` // Specifies the throttling rate limit. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-throttlingratelimit // ThrottlingRateLimit *float64 `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" methodSettingProperty := &MethodSettingProperty{ CacheDataEncrypted: jsii.Boolean(false), CacheTtlInSeconds: jsii.Number(123), CachingEnabled: jsii.Boolean(false), DataTraceEnabled: jsii.Boolean(false), HttpMethod: jsii.String("httpMethod"), LoggingLevel: jsii.String("loggingLevel"), MetricsEnabled: jsii.Boolean(false), ResourcePath: jsii.String("resourcePath"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), }
type CfnUsagePlan ¶
type CfnUsagePlan interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // The associated API stages of a usage plan. ApiStages() interface{} SetApiStages(val interface{}) // The ID for the usage plan. // // For example: `abc123` . AttrId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The description of a usage plan. Description() *string SetDescription(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // The target maximum number of permitted requests per a given unit time interval. Quota() interface{} SetQuota(val interface{}) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The collection of tags. TagsRaw() *[]*awscdk.CfnTag SetTagsRaw(val *[]*awscdk.CfnTag) // A map containing method level throttling information for API stage in a usage plan. Throttle() interface{} SetThrottle(val interface{}) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // The name of a usage plan. UsagePlanName() *string SetUsagePlanName(val *string) // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnUsagePlan := awscdk.Aws_apigateway.NewCfnUsagePlan(this, jsii.String("MyCfnUsagePlan"), &CfnUsagePlanProps{ ApiStages: []interface{}{ &ApiStageProperty{ ApiId: jsii.String("apiId"), Stage: jsii.String("stage"), Throttle: map[string]interface{}{ "throttleKey": &ThrottleSettingsProperty{ "burstLimit": jsii.Number(123), "rateLimit": jsii.Number(123), }, }, }, }, Description: jsii.String("description"), Quota: &QuotaSettingsProperty{ Limit: jsii.Number(123), Offset: jsii.Number(123), Period: jsii.String("period"), }, Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, Throttle: &ThrottleSettingsProperty{ BurstLimit: jsii.Number(123), RateLimit: jsii.Number(123), }, UsagePlanName: jsii.String("usagePlanName"), })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html
func NewCfnUsagePlan ¶
func NewCfnUsagePlan(scope constructs.Construct, id *string, props *CfnUsagePlanProps) CfnUsagePlan
type CfnUsagePlanKey ¶
type CfnUsagePlanKey interface { awscdk.CfnResource awscdk.IInspectable // The ID for the usage plan key. // // For example: `abc123` . AttrId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The Id of the UsagePlanKey resource. KeyId() *string SetKeyId(val *string) // The type of a UsagePlanKey resource for a plan customer. KeyType() *string SetKeyType(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // The Id of the UsagePlan resource representing the usage plan containing the UsagePlanKey resource representing a plan customer. UsagePlanId() *string SetUsagePlanId(val *string) // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::ApiGateway::UsagePlanKey` resource associates an API key with a usage plan.
This association determines which users the usage plan is applied to.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnUsagePlanKey := awscdk.Aws_apigateway.NewCfnUsagePlanKey(this, jsii.String("MyCfnUsagePlanKey"), &CfnUsagePlanKeyProps{ KeyId: jsii.String("keyId"), KeyType: jsii.String("keyType"), UsagePlanId: jsii.String("usagePlanId"), })
func NewCfnUsagePlanKey ¶
func NewCfnUsagePlanKey(scope constructs.Construct, id *string, props *CfnUsagePlanKeyProps) CfnUsagePlanKey
type CfnUsagePlanKeyProps ¶
type CfnUsagePlanKeyProps struct { // The Id of the UsagePlanKey resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keyid // KeyId *string `field:"required" json:"keyId" yaml:"keyId"` // The type of a UsagePlanKey resource for a plan customer. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-keytype // KeyType *string `field:"required" json:"keyType" yaml:"keyType"` // The Id of the UsagePlan resource representing the usage plan containing the UsagePlanKey resource representing a plan customer. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html#cfn-apigateway-usageplankey-usageplanid // UsagePlanId *string `field:"required" json:"usagePlanId" yaml:"usagePlanId"` }
Properties for defining a `CfnUsagePlanKey`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnUsagePlanKeyProps := &CfnUsagePlanKeyProps{ KeyId: jsii.String("keyId"), KeyType: jsii.String("keyType"), UsagePlanId: jsii.String("usagePlanId"), }
type CfnUsagePlanProps ¶
type CfnUsagePlanProps struct { // The associated API stages of a usage plan. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-apistages // ApiStages interface{} `field:"optional" json:"apiStages" yaml:"apiStages"` // The description of a usage plan. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description // Description *string `field:"optional" json:"description" yaml:"description"` // The target maximum number of permitted requests per a given unit time interval. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota // Quota interface{} `field:"optional" json:"quota" yaml:"quota"` // The collection of tags. // // Each tag element is associated with a given resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags // Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` // A map containing method level throttling information for API stage in a usage plan. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle // Throttle interface{} `field:"optional" json:"throttle" yaml:"throttle"` // The name of a usage plan. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname // UsagePlanName *string `field:"optional" json:"usagePlanName" yaml:"usagePlanName"` }
Properties for defining a `CfnUsagePlan`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnUsagePlanProps := &CfnUsagePlanProps{ ApiStages: []interface{}{ &ApiStageProperty{ ApiId: jsii.String("apiId"), Stage: jsii.String("stage"), Throttle: map[string]interface{}{ "throttleKey": &ThrottleSettingsProperty{ "burstLimit": jsii.Number(123), "rateLimit": jsii.Number(123), }, }, }, }, Description: jsii.String("description"), Quota: &QuotaSettingsProperty{ Limit: jsii.Number(123), Offset: jsii.Number(123), Period: jsii.String("period"), }, Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, Throttle: &ThrottleSettingsProperty{ BurstLimit: jsii.Number(123), RateLimit: jsii.Number(123), }, UsagePlanName: jsii.String("usagePlanName"), }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html
type CfnUsagePlan_ApiStageProperty ¶
type CfnUsagePlan_ApiStageProperty struct { // API Id of the associated API stage in a usage plan. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-apiid // ApiId *string `field:"optional" json:"apiId" yaml:"apiId"` // API stage name of the associated API stage in a usage plan. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-stage // Stage *string `field:"optional" json:"stage" yaml:"stage"` // Map containing method level throttling information for API stage in a usage plan. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-apistage.html#cfn-apigateway-usageplan-apistage-throttle // Throttle interface{} `field:"optional" json:"throttle" yaml:"throttle"` }
API stage name of the associated API stage in a usage plan.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" apiStageProperty := &ApiStageProperty{ ApiId: jsii.String("apiId"), Stage: jsii.String("stage"), Throttle: map[string]interface{}{ "throttleKey": &ThrottleSettingsProperty{ "burstLimit": jsii.Number(123), "rateLimit": jsii.Number(123), }, }, }
type CfnUsagePlan_QuotaSettingsProperty ¶
type CfnUsagePlan_QuotaSettingsProperty struct { // The target maximum number of requests that can be made in a given time period. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-limit // Limit *float64 `field:"optional" json:"limit" yaml:"limit"` // The number of requests subtracted from the given limit in the initial time period. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-offset // Offset *float64 `field:"optional" json:"offset" yaml:"offset"` // The time period in which the limit applies. // // Valid values are "DAY", "WEEK" or "MONTH". // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-quotasettings.html#cfn-apigateway-usageplan-quotasettings-period // Period *string `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" quotaSettingsProperty := &QuotaSettingsProperty{ Limit: jsii.Number(123), Offset: jsii.Number(123), Period: jsii.String("period"), }
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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html#cfn-apigateway-usageplan-throttlesettings-burstlimit // BurstLimit *float64 `field:"optional" json:"burstLimit" yaml:"burstLimit"` // The API target request rate limit. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-usageplan-throttlesettings.html#cfn-apigateway-usageplan-throttlesettings-ratelimit // RateLimit *float64 `field:"optional" 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.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" throttleSettingsProperty := &ThrottleSettingsProperty{ BurstLimit: jsii.Number(123), RateLimit: jsii.Number(123), }
type CfnVpcLink ¶
type CfnVpcLink interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // The ID for the VPC link. // // For example: `abc123` . AttrVpcLinkId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The description of the VPC link. Description() *string SetDescription(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The name used to label and identify the VPC link. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // An array of arbitrary tags (key-value pairs) to associate with the VPC link. TagsRaw() *[]*awscdk.CfnTag SetTagsRaw(val *[]*awscdk.CfnTag) // The ARN of the network load balancer of the VPC targeted by the VPC link. TargetArns() *[]*string SetTargetArns(val *[]*string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
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/latest/api/API_CreateVpcLink.html) in the `Amazon API Gateway REST API Reference` .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnVpcLink := awscdk.Aws_apigateway.NewCfnVpcLink(this, jsii.String("MyCfnVpcLink"), &CfnVpcLinkProps{ Name: jsii.String("name"), TargetArns: []*string{ jsii.String("targetArns"), }, // the properties below are optional Description: jsii.String("description"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html
func NewCfnVpcLink ¶
func NewCfnVpcLink(scope constructs.Construct, id *string, props *CfnVpcLinkProps) CfnVpcLink
type CfnVpcLinkProps ¶
type CfnVpcLinkProps struct { // The name used to label and identify the VPC link. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-name // Name *string `field:"required" json:"name" yaml:"name"` // The ARN of the 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. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-targetarns // TargetArns *[]*string `field:"required" json:"targetArns" yaml:"targetArns"` // The description of the VPC link. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-description // Description *string `field:"optional" json:"description" yaml:"description"` // An array of arbitrary tags (key-value pairs) to associate with the VPC link. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html#cfn-apigateway-vpclink-tags // Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnVpcLink`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnVpcLinkProps := &CfnVpcLinkProps{ Name: jsii.String("name"), TargetArns: []*string{ jsii.String("targetArns"), }, // the properties below are optional Description: jsii.String("description"), Tags: []cfnTag{ &cfnTag{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-vpclink.html
type CognitoUserPoolsAuthorizer ¶
type CognitoUserPoolsAuthorizer interface { Authorizer IAuthorizer // The authorization type of this authorizer. AuthorizationType() AuthorizationType // The ARN of the authorizer to be used in permission policies, such as IAM and resource-based grants. AuthorizerArn() *string // The id of the authorizer. AuthorizerId() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
Cognito user pools based custom authorizer.
Example:
var books resource userPool := cognito.NewUserPool(this, jsii.String("UserPool")) auth := apigateway.NewCognitoUserPoolsAuthorizer(this, jsii.String("booksAuthorizer"), &CognitoUserPoolsAuthorizerProps{ CognitoUserPools: []iUserPool{ userPool, }, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, AuthorizationType: apigateway.AuthorizationType_COGNITO, })
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 `field:"required" json:"cognitoUserPools" yaml:"cognitoUserPools"` // An optional human friendly name for the authorizer. // // Note that, this is not the primary identifier of the authorizer. // Default: - the unique construct ID. // AuthorizerName *string `field:"optional" 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/latest/api/API_CreateAuthorizer.html#apigw-CreateAuthorizer-request-identitySource // // Default: `IdentitySource.header('Authorization')` // IdentitySource *string `field:"optional" json:"identitySource" yaml:"identitySource"` // How long APIGateway should cache the results. // // Max 1 hour. // Disable caching by setting this to 0. // Default: Duration.minutes(5) // ResultsCacheTtl awscdk.Duration `field:"optional" json:"resultsCacheTtl" yaml:"resultsCacheTtl"` }
Properties for CognitoUserPoolsAuthorizer.
Example:
var books resource userPool := cognito.NewUserPool(this, jsii.String("UserPool")) auth := apigateway.NewCognitoUserPoolsAuthorizer(this, jsii.String("booksAuthorizer"), &CognitoUserPoolsAuthorizerProps{ CognitoUserPools: []iUserPool{ userPool, }, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, AuthorizationType: apigateway.AuthorizationType_COGNITO, })
type ConnectionType ¶
type ConnectionType string
Example:
import elbv2 "github.com/aws/aws-cdk-go/awscdk" vpc := ec2.NewVpc(this, jsii.String("VPC")) nlb := elbv2.NewNetworkLoadBalancer(this, jsii.String("NLB"), &NetworkLoadBalancerProps{ Vpc: Vpc, }) link := apigateway.NewVpcLink(this, jsii.String("link"), &VpcLinkProps{ Targets: []iNetworkLoadBalancer{ nlb, }, }) integration := apigateway.NewIntegration(&IntegrationProps{ Type: apigateway.IntegrationType_HTTP_PROXY, IntegrationHttpMethod: jsii.String("ANY"), Options: &IntegrationOptions{ ConnectionType: apigateway.ConnectionType_VPC_LINK, VpcLink: link, }, })
const ( // For connections through the public routable internet. ConnectionType_INTERNET ConnectionType = "INTERNET" // For private connections between API Gateway and a network load balancer in a VPC. ConnectionType_VPC_LINK ConnectionType = "VPC_LINK" )
type ContentHandling ¶
type ContentHandling string
Example:
var getBookHandler function var getBookIntegration lambdaIntegration getBookIntegration := apigateway.NewLambdaIntegration(getBookHandler, &LambdaIntegrationOptions{ ContentHandling: apigateway.ContentHandling_CONVERT_TO_TEXT, // convert to base64 CredentialsPassthrough: jsii.Boolean(true), })
const ( // Converts a request payload from a base64-encoded string to a binary blob. ContentHandling_CONVERT_TO_BINARY ContentHandling = "CONVERT_TO_BINARY" // Converts a request payload from a binary blob to a base64-encoded string. ContentHandling_CONVERT_TO_TEXT ContentHandling = "CONVERT_TO_TEXT" )
type Cors ¶
type Cors interface { }
Example:
apigateway.NewRestApi(this, jsii.String("api"), &RestApiProps{ DefaultCorsPreflightOptions: &CorsOptions{ AllowOrigins: apigateway.Cors_ALL_ORIGINS(), AllowMethods: apigateway.Cors_ALL_METHODS(), }, })
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 `field:"required" 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 // // Default: false. // AllowCredentials *bool `field:"optional" 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 // // Default: Cors.DEFAULT_HEADERS // AllowHeaders *[]*string `field:"optional" 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 // // Default: Cors.ALL_METHODS // AllowMethods *[]*string `field:"optional" json:"allowMethods" yaml:"allowMethods"` // Sets Access-Control-Max-Age to -1, which means that caching is disabled. // // This option cannot be used with `maxAge`. // Default: - cache is enabled. // DisableCache *bool `field:"optional" 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 // // Default: - only the 6 CORS-safelisted response headers are exposed: // Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, // Pragma. // ExposeHeaders *[]*string `field:"optional" 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 // // Default: - browser-specific (see reference). // MaxAge awscdk.Duration `field:"optional" json:"maxAge" yaml:"maxAge"` // Specifies the response status code returned from the OPTIONS method. // Default: 204. // StatusCode *float64 `field:"optional" json:"statusCode" yaml:"statusCode"` }
Example:
apigateway.NewRestApi(this, jsii.String("api"), &RestApiProps{ DefaultCorsPreflightOptions: &CorsOptions{ AllowOrigins: apigateway.Cors_ALL_ORIGINS(), AllowMethods: apigateway.Cors_ALL_METHODS(), }, })
type Deployment ¶
type Deployment interface { awscdk.Resource Api() IRestApi DeploymentId() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // The stage of the API gateway deployment. StageName() *string // Adds a component to the hash that determines this Deployment resource's logical ID. // // This should be called by constructs of the API Gateway model that want to // invalidate the deployment when their settings change. The component will // be resolve()ed during synthesis so tokens are welcome. AddToLogicalId(data interface{}) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. 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.
Example:
// production stage prodLogGroup := logs.NewLogGroup(this, jsii.String("PrdLogs")) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewLogGroupLogDestination(prodLogGroup), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, }) deployment := apigateway.NewDeployment(this, jsii.String("Deployment"), &DeploymentProps{ Api: Api, }) // development stage devLogGroup := logs.NewLogGroup(this, jsii.String("DevLogs")) apigateway.NewStage(this, jsii.String("dev"), &StageProps{ Deployment: Deployment, AccessLogDestination: apigateway.NewLogGroupLogDestination(devLogGroup), AccessLogFormat: apigateway.AccessLogFormat_*JsonWithStandardFields(&JsonWithStandardFieldProps{ Caller: jsii.Boolean(false), HttpMethod: jsii.Boolean(true), Ip: jsii.Boolean(true), Protocol: jsii.Boolean(true), RequestTime: jsii.Boolean(true), ResourcePath: jsii.Boolean(true), ResponseLength: jsii.Boolean(true), Status: jsii.Boolean(true), User: jsii.Boolean(true), }), })
func NewDeployment ¶
func NewDeployment(scope constructs.Construct, id *string, props *DeploymentProps) Deployment
type DeploymentProps ¶
type DeploymentProps struct { // The Rest API to deploy. Api IRestApi `field:"required" json:"api" yaml:"api"` // A description of the purpose of the API Gateway deployment. // Default: - No description. // Description *string `field:"optional" 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. // Default: false. // RetainDeployments *bool `field:"optional" json:"retainDeployments" yaml:"retainDeployments"` // The name of the stage the API Gateway deployment deploys to. // Default: - No stage name. If the `stageName` property is set but a stage with the // corresponding name does not exist, a new stage resource will be created with the // provided stage name. // StageName *string `field:"optional" json:"stageName" yaml:"stageName"` }
Example:
// production stage prodLogGroup := logs.NewLogGroup(this, jsii.String("PrdLogs")) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewLogGroupLogDestination(prodLogGroup), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, }) deployment := apigateway.NewDeployment(this, jsii.String("Deployment"), &DeploymentProps{ Api: Api, }) // development stage devLogGroup := logs.NewLogGroup(this, jsii.String("DevLogs")) apigateway.NewStage(this, jsii.String("dev"), &StageProps{ Deployment: Deployment, AccessLogDestination: apigateway.NewLogGroupLogDestination(devLogGroup), AccessLogFormat: apigateway.AccessLogFormat_*JsonWithStandardFields(&JsonWithStandardFieldProps{ Caller: jsii.Boolean(false), HttpMethod: jsii.Boolean(true), Ip: jsii.Boolean(true), Protocol: jsii.Boolean(true), RequestTime: jsii.Boolean(true), ResourcePath: jsii.Boolean(true), ResponseLength: jsii.Boolean(true), Status: jsii.Boolean(true), User: jsii.Boolean(true), }), })
type DomainName ¶
type DomainName interface { awscdk.Resource IDomainName // 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 // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Maps this domain to an API endpoint. // // This uses the ApiMapping from ApiGatewayV2 which supports multi-level paths, but // also only supports: // - SecurityPolicy.TLS_1_2 // - EndpointType.REGIONAL AddApiMapping(targetStage IStage, options *ApiMappingOptions) // Maps this domain to an API endpoint. // // This uses the BasePathMapping from ApiGateway v1 which does not support multi-level paths. // // If you need to create a mapping for a multi-level path use `addApiMapping` instead. AddBasePathMapping(targetApi IRestApi, options *BasePathMappingOptions) BasePathMapping // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
Example:
var api restApi domainName := apigateway.DomainName_FromDomainNameAttributes(this, jsii.String("DomainName"), &DomainNameAttributes{ DomainName: jsii.String("domainName"), DomainNameAliasHostedZoneId: jsii.String("domainNameAliasHostedZoneId"), DomainNameAliasTarget: jsii.String("domainNameAliasTarget"), }) apigateway.NewBasePathMapping(this, jsii.String("BasePathMapping"), &BasePathMappingProps{ DomainName: domainName, RestApi: api, })
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 `field:"required" 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 `field:"required" 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 `field:"required" json:"domainNameAliasTarget" yaml:"domainNameAliasTarget"` }
Example:
var api restApi domainName := apigateway.DomainName_FromDomainNameAttributes(this, jsii.String("DomainName"), &DomainNameAttributes{ DomainName: jsii.String("domainName"), DomainNameAliasHostedZoneId: jsii.String("domainNameAliasHostedZoneId"), DomainNameAliasTarget: jsii.String("domainNameAliasTarget"), }) apigateway.NewBasePathMapping(this, jsii.String("BasePathMapping"), &BasePathMappingProps{ DomainName: domainName, RestApi: api, })
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 `field:"required" json:"certificate" yaml:"certificate"` // The custom domain name for your API. // // Uppercase letters are not supported. DomainName *string `field:"required" 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. // Default: - map requests from the domain root (e.g. `example.com`). // BasePath *string `field:"optional" json:"basePath" yaml:"basePath"` // The type of endpoint for this DomainName. // Default: REGIONAL. // EndpointType EndpointType `field:"optional" json:"endpointType" yaml:"endpointType"` // The mutual TLS authentication configuration for a custom domain name. // Default: - mTLS is not configured. // Mtls *MTLSConfig `field:"optional" 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 // // Default: SecurityPolicy.TLS_1_2 // SecurityPolicy SecurityPolicy `field:"optional" json:"securityPolicy" yaml:"securityPolicy"` }
Example:
var acmCertificateForExampleCom interface{} api := apigateway.NewRestApi(this, jsii.String("MyDomain"), &RestApiProps{ DomainName: &DomainNameOptions{ DomainName: jsii.String("example.com"), Certificate: acmCertificateForExampleCom, }, })
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 `field:"required" json:"certificate" yaml:"certificate"` // The custom domain name for your API. // // Uppercase letters are not supported. DomainName *string `field:"required" 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. // Default: - map requests from the domain root (e.g. `example.com`). // BasePath *string `field:"optional" json:"basePath" yaml:"basePath"` // The type of endpoint for this DomainName. // Default: REGIONAL. // EndpointType EndpointType `field:"optional" json:"endpointType" yaml:"endpointType"` // The mutual TLS authentication configuration for a custom domain name. // Default: - mTLS is not configured. // Mtls *MTLSConfig `field:"optional" 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 // // Default: SecurityPolicy.TLS_1_2 // SecurityPolicy SecurityPolicy `field:"optional" 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, use `addBasePathMapping` or `addApiMapping`. // Default: - you will have to call `addBasePathMapping` to map this domain to // API endpoints. // Mapping IRestApi `field:"optional" json:"mapping" yaml:"mapping"` }
Example:
var acmCertificateForExampleCom interface{} var restApi restApi apigateway.NewDomainName(this, jsii.String("custom-domain"), &DomainNameProps{ DomainName: jsii.String("example.com"), Certificate: acmCertificateForExampleCom, Mapping: restApi, BasePath: jsii.String("orders/v1/api"), })
type EndpointConfiguration ¶
type EndpointConfiguration struct { // A list of endpoint types of an API or its custom domain name. // Default: EndpointType.EDGE // Types *[]EndpointType `field:"required" json:"types" yaml:"types"` // A list of VPC Endpoints against which to create Route53 ALIASes. // Default: - no ALIASes are created for the endpoint. // VpcEndpoints *[]awsec2.IVpcEndpoint `field:"optional" 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.
Example:
api := apigateway.NewRestApi(this, jsii.String("api"), &RestApiProps{ EndpointConfiguration: &EndpointConfiguration{ Types: []endpointType{ apigateway.*endpointType_EDGE, }, }, })
type EndpointType ¶
type EndpointType string
Example:
var apiDefinition apiDefinition api := apigateway.NewSpecRestApi(this, jsii.String("ExampleRestApi"), &SpecRestApiProps{ ApiDefinition: ApiDefinition, EndpointTypes: []endpointType{ apigateway.*endpointType_PRIVATE, }, })
const ( // For an edge-optimized API and its custom domain name. EndpointType_EDGE EndpointType = "EDGE" // For a regional API and its custom domain name. EndpointType_REGIONAL EndpointType = "REGIONAL" // For a private API and its custom domain name. EndpointType_PRIVATE EndpointType = "PRIVATE" )
type FirehoseLogDestination ¶ added in v2.109.0
type FirehoseLogDestination interface { IAccessLogDestination // Binds this destination to the Firehose delivery stream. Bind(_stage IStage) *AccessLogDestinationConfig }
Use a Firehose delivery stream as a custom access log destination for API Gateway.
Example:
destinationBucket := s3.NewBucket(this, jsii.String("Bucket")) deliveryStreamRole := iam.NewRole(this, jsii.String("Role"), &RoleProps{ AssumedBy: iam.NewServicePrincipal(jsii.String("firehose.amazonaws.com")), }) stream := firehose.NewCfnDeliveryStream(this, jsii.String("MyStream"), &CfnDeliveryStreamProps{ DeliveryStreamName: jsii.String("amazon-apigateway-delivery-stream"), S3DestinationConfiguration: &S3DestinationConfigurationProperty{ BucketArn: destinationBucket.BucketArn, RoleArn: deliveryStreamRole.RoleArn, }, }) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewFirehoseLogDestination(stream), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, })
func NewFirehoseLogDestination ¶ added in v2.109.0
func NewFirehoseLogDestination(stream awskinesisfirehose.CfnDeliveryStream) FirehoseLogDestination
type GatewayResponse ¶
type GatewayResponse interface { awscdk.Resource IGatewayResponse // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
Configure the response received by clients, produced from the API Gateway backend.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var responseType responseType var restApi restApi gatewayResponse := awscdk.Aws_apigateway.NewGatewayResponse(this, jsii.String("MyGatewayResponse"), &GatewayResponseProps{ RestApi: restApi, Type: responseType, // the properties below are optional ResponseHeaders: map[string]*string{ "responseHeadersKey": jsii.String("responseHeaders"), }, StatusCode: jsii.String("statusCode"), Templates: map[string]*string{ "templatesKey": jsii.String("templates"), }, })
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 `field:"required" json:"type" yaml:"type"` // Custom headers parameters for response. // Default: - no headers. // ResponseHeaders *map[string]*string `field:"optional" json:"responseHeaders" yaml:"responseHeaders"` // Http status code for response. // Default: - standard http status code for the response type. // StatusCode *string `field:"optional" json:"statusCode" yaml:"statusCode"` // Custom templates to get mapped as response. // Default: - Response from api will be returned without applying any transformation. // Templates *map[string]*string `field:"optional" json:"templates" yaml:"templates"` }
Options to add gateway response.
Example:
api := apigateway.NewRestApi(this, jsii.String("books-api")) api.AddGatewayResponse(jsii.String("test-response"), &GatewayResponseOptions{ Type: apigateway.ResponseType_ACCESS_DENIED(), StatusCode: jsii.String("500"), ResponseHeaders: map[string]*string{ // Note that values must be enclosed within a pair of single quotes "Access-Control-Allow-Origin": jsii.String("'test.com'"), "test-key": jsii.String("'test-value'"), }, Templates: map[string]*string{ "application/json": jsii.String("{ \"message\": $context.error.messageString, \"statusCode\": \"488\", \"type\": \"$context.error.responseType\" }"), }, })
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 `field:"required" json:"type" yaml:"type"` // Custom headers parameters for response. // Default: - no headers. // ResponseHeaders *map[string]*string `field:"optional" json:"responseHeaders" yaml:"responseHeaders"` // Http status code for response. // Default: - standard http status code for the response type. // StatusCode *string `field:"optional" json:"statusCode" yaml:"statusCode"` // Custom templates to get mapped as response. // Default: - Response from api will be returned without applying any transformation. // Templates *map[string]*string `field:"optional" json:"templates" yaml:"templates"` // Rest api resource to target. RestApi IRestApi `field:"required" json:"restApi" yaml:"restApi"` }
Properties for a new gateway response.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var responseType responseType var restApi restApi gatewayResponseProps := &GatewayResponseProps{ RestApi: restApi, Type: responseType, // the properties below are optional ResponseHeaders: map[string]*string{ "responseHeadersKey": jsii.String("responseHeaders"), }, StatusCode: jsii.String("statusCode"), Templates: map[string]*string{ "templatesKey": jsii.String("templates"), }, }
type HttpIntegration ¶
type HttpIntegration interface { Integration // Can be overridden by subclasses to allow the integration to interact with the method being integrated, access the REST API object, method ARNs, etc. 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.
Example:
var authFn function var books resource auth := apigateway.NewRequestAuthorizer(this, jsii.String("booksAuthorizer"), &RequestAuthorizerProps{ Handler: authFn, IdentitySources: []*string{ apigateway.IdentitySource_Header(jsii.String("Authorization")), }, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, })
func NewHttpIntegration ¶
func NewHttpIntegration(url *string, props *HttpIntegrationProps) HttpIntegration
type HttpIntegrationProps ¶
type HttpIntegrationProps struct { // HTTP method to use when invoking the backend URL. // Default: GET. // HttpMethod *string `field:"optional" json:"httpMethod" yaml:"httpMethod"` // Integration options, such as request/resopnse mapping, content handling, etc. // Default: defaults based on `IntegrationOptions` defaults. // Options *IntegrationOptions `field:"optional" json:"options" yaml:"options"` // Determines whether to use proxy integration or custom integration. // Default: true. // Proxy *bool `field:"optional" json:"proxy" yaml:"proxy"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var role role var vpcLink vpcLink httpIntegrationProps := &HttpIntegrationProps{ HttpMethod: jsii.String("httpMethod"), Options: &IntegrationOptions{ CacheKeyParameters: []*string{ jsii.String("cacheKeyParameters"), }, CacheNamespace: jsii.String("cacheNamespace"), ConnectionType: awscdk.Aws_apigateway.ConnectionType_INTERNET, ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, CredentialsPassthrough: jsii.Boolean(false), CredentialsRole: role, IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }, }, PassthroughBehavior: awscdk.*Aws_apigateway.PassthroughBehavior_WHEN_NO_MATCH, RequestParameters: map[string]*string{ "requestParametersKey": jsii.String("requestParameters"), }, RequestTemplates: map[string]*string{ "requestTemplatesKey": jsii.String("requestTemplates"), }, Timeout: cdk.Duration_Minutes(jsii.Number(30)), VpcLink: vpcLink, }, Proxy: jsii.Boolean(false), }
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 ¶
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 ¶
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. // Default: "*" returns the execute API ARN for all methods/resources in // this API. // ArnForExecuteApi(method *string, path *string, stage *string) *string // API Gateway stage that points to the latest deployment (if defined). DeploymentStage() Stage 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 name of this API Gateway RestApi. RestApiName() *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 ¶
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 // Add an ApiKey to this Stage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // RestApi to which this stage is associated. RestApi() IRestApi // Name of this stage. StageName() *string }
Represents an APIGateway Stage.
func Stage_FromStageAttributes ¶ added in v2.46.0
func Stage_FromStageAttributes(scope constructs.Construct, id *string, attrs *StageAttributes) IStage
Import a Stage by its attributes.
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 ¶
type IVpcLink interface { awscdk.IResource // Physical ID of the VpcLink resource. VpcLinkId() *string }
Represents an API Gateway VpcLink.
func VpcLink_FromVpcLinkId ¶
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.
Example:
var authFn function var books resource auth := apigateway.NewRequestAuthorizer(this, jsii.String("booksAuthorizer"), &RequestAuthorizerProps{ Handler: authFn, IdentitySources: []*string{ apigateway.IdentitySource_Header(jsii.String("Authorization")), }, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, })
func NewIdentitySource ¶
func NewIdentitySource() IdentitySource
type InlineApiDefinition ¶
type InlineApiDefinition interface { ApiDefinition // Called when the specification is initialized to allow this object to bind to the stack, add resources and have fun. Bind(_scope constructs.Construct) *ApiDefinitionConfig // Called after the CFN RestApi resource has been created to allow the Api Definition to bind to it. // // Specifically it's required to allow assets to add // metadata for tooling like SAM CLI to be able to find their origins. BindAfterCreate(_scope constructs.Construct, _restApi IRestApi) }
OpenAPI specification from an inline JSON object.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var definition interface{} inlineApiDefinition := awscdk.Aws_apigateway.NewInlineApiDefinition(definition)
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
Example:
apigateway.ApiDefinition_FromInline(map[string]interface{}{ "openapi": jsii.String("3.0.2"), "paths": map[string]map[string]map[string]map[string]map[string]map[string]map[string]map[string]*string{ "/pets": map[string]map[string]map[string]map[string]map[string]map[string]map[string]*string{ "get": map[string]map[string]map[string]map[string]map[string]map[string]*string{ "responses": map[string]map[string]map[string]map[string]map[string]*string{ jsii.Number(200): map[string]map[string]map[string]map[string]*string{ "content": map[string]map[string]map[string]*string{ "application/json": map[string]map[string]*string{ "schema": map[string]*string{ "$ref": jsii.String("#/components/schemas/Empty"), }, }, }, }, }, "x-amazon-apigateway-integration": map[string]interface{}{ "responses": map[string]map[string]*string{ "default": map[string]*string{ "statusCode": jsii.String("200"), }, }, "requestTemplates": map[string]*string{ "application/json": jsii.String("{\"statusCode\": 200}"), }, "passthroughBehavior": jsii.String("when_no_match"), "type": jsii.String("mock"), }, }, }, }, "components": map[string]map[string]map[string]*string{ "schemas": map[string]map[string]*string{ "Empty": map[string]*string{ "title": jsii.String("Empty Schema"), "type": jsii.String("object"), }, }, }, })
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
Example:
apigateway.ApiDefinition.fromInline({ openapi: '3.0.2', paths: { '/pets': { get: { 'responses': { 200: { content: { 'application/json': { schema: { $ref: '#/components/schemas/Empty', }, }, }, }, }, 'x-amazon-apigateway-integration': { responses: { default: { statusCode: '200', }, }, requestTemplates: { 'application/json': '{"statusCode": 200}', }, passthroughBehavior: 'when_no_match', type: 'mock', }, }, }, }, components: { schemas: { Empty: { title: 'Empty Schema', type: 'object', }, }, }, });
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
Example:
apigateway.ApiDefinition.fromInline({ openapi: '3.0.2', paths: { '/pets': { get: { 'responses': { 200: { content: { 'application/json': { schema: { $ref: '#/components/schemas/Empty', }, }, }, }, }, 'x-amazon-apigateway-integration': { responses: { default: { statusCode: '200', }, }, requestTemplates: { 'application/json': '{"statusCode": 200}', }, passthroughBehavior: 'when_no_match', type: 'mock', }, }, }, }, components: { schemas: { Empty: { title: 'Empty Schema', type: 'object', }, }, }, });
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
Example:
apigateway.ApiDefinition.fromInline({ openapi: '3.0.2', paths: { '/pets': { get: { 'responses': { 200: { content: { 'application/json': { schema: { $ref: '#/components/schemas/Empty', }, }, }, }, }, 'x-amazon-apigateway-integration': { responses: { default: { statusCode: '200', }, }, requestTemplates: { 'application/json': '{"statusCode": 200}', }, passthroughBehavior: 'when_no_match', type: 'mock', }, }, }, }, components: { schemas: { Empty: { title: 'Empty Schema', type: 'object', }, }, }, });
type Integration ¶
type Integration interface { // Can be overridden by subclasses to allow the integration to interact with the method being integrated, access the REST API object, method ARNs, etc. 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.
Example:
var books resource var iamUser user getBooks := books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ AuthorizationType: apigateway.AuthorizationType_IAM, }) iamUser.AttachInlinePolicy(iam.NewPolicy(this, jsii.String("AllowBooks"), &PolicyProps{ Statements: []policyStatement{ iam.NewPolicyStatement(&PolicyStatementProps{ Actions: []*string{ jsii.String("execute-api:Invoke"), }, Effect: iam.Effect_ALLOW, Resources: []*string{ getBooks.methodArn, }, }), }, }))
func NewIntegration ¶
func NewIntegration(props *IntegrationProps) Integration
type IntegrationConfig ¶
type IntegrationConfig struct { // Specifies an API method integration type. Type IntegrationType `field:"required" 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. // Default: undefined deployments are not triggered for any change to this integration. // DeploymentToken *string `field:"optional" json:"deploymentToken" yaml:"deploymentToken"` // The integration's HTTP method type. // // Required unless you use a MOCK integration. // Default: - no integration method specified. // IntegrationHttpMethod *string `field:"optional" json:"integrationHttpMethod" yaml:"integrationHttpMethod"` // Integration options. // Default: - no integration options. // Options *IntegrationOptions `field:"optional" json:"options" yaml:"options"` // The Uniform Resource Identifier (URI) for the integration. // See: https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#uri // // Default: - no URI. Usually applies to MOCK integration // Uri *string `field:"optional" json:"uri" yaml:"uri"` }
Result of binding an Integration to a Method.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var role role var vpcLink vpcLink integrationConfig := &IntegrationConfig{ Type: awscdk.Aws_apigateway.IntegrationType_AWS, // the properties below are optional DeploymentToken: jsii.String("deploymentToken"), IntegrationHttpMethod: jsii.String("integrationHttpMethod"), Options: &IntegrationOptions{ CacheKeyParameters: []*string{ jsii.String("cacheKeyParameters"), }, CacheNamespace: jsii.String("cacheNamespace"), ConnectionType: awscdk.*Aws_apigateway.ConnectionType_INTERNET, ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, CredentialsPassthrough: jsii.Boolean(false), CredentialsRole: role, IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }, }, PassthroughBehavior: awscdk.*Aws_apigateway.PassthroughBehavior_WHEN_NO_MATCH, RequestParameters: map[string]*string{ "requestParametersKey": jsii.String("requestParameters"), }, RequestTemplates: map[string]*string{ "requestTemplatesKey": jsii.String("requestTemplates"), }, Timeout: cdk.Duration_Minutes(jsii.Number(30)), VpcLink: vpcLink, }, Uri: jsii.String("uri"), }
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 `field:"optional" json:"cacheKeyParameters" yaml:"cacheKeyParameters"` // An API-specific tag group of related cached parameters. CacheNamespace *string `field:"optional" json:"cacheNamespace" yaml:"cacheNamespace"` // The type of network connection to the integration endpoint. // Default: - ConnectionType.VPC_LINK if `vpcLink` property is configured; ConnectionType.Internet otherwise. // ConnectionType ConnectionType `field:"optional" json:"connectionType" yaml:"connectionType"` // Specifies how to handle request payload content type conversions. // Default: none 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 ContentHandling `field:"optional" json:"contentHandling" yaml:"contentHandling"` // Requires that the caller's identity be passed through from the request. // Default: Caller identity is not passed through. // CredentialsPassthrough *bool `field:"optional" json:"credentialsPassthrough" yaml:"credentialsPassthrough"` // An IAM role that API Gateway assumes. // // Mutually exclusive with `credentialsPassThrough`. // Default: A role is not assumed. // CredentialsRole awsiam.IRole `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" json:"requestTemplates" yaml:"requestTemplates"` // The maximum amount of time an integration will run before it returns without a response. // // By default, the value must be between 50 milliseconds and 29 seconds. // The upper bound can be increased for regional and private Rest APIs only, // via a quota increase request for your acccount. // This increase might require a reduction in your account-level throttle quota limit. // // See {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html Amazon API Gateway quotas} for more details. // Default: Duration.seconds(29) // Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // The VpcLink used for the integration. // // Required if connectionType is VPC_LINK. VpcLink IVpcLink `field:"optional" json:"vpcLink" yaml:"vpcLink"` }
Example:
import path "github.com/aws-samples/dummy/path" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" // Against the RestApi endpoint from the stack output, run // `curl -s -o /dev/null -w "%{http_code}" <url>` should return 401 // `curl -s -o /dev/null -w "%{http_code}" -H 'Authorization: deny' <url>?allow=yes` should return 403 // `curl -s -o /dev/null -w "%{http_code}" -H 'Authorization: allow' <url>?allow=yes` should return 200 app := awscdk.NewApp() stack := awscdk.NewStack(app, jsii.String("RequestAuthorizerInteg")) authorizerFn := lambda.NewFunction(stack, jsii.String("MyAuthorizerFunction"), &FunctionProps{ Runtime: lambda.Runtime_NODEJS_LATEST(), Handler: jsii.String("index.handler"), Code: lambda.AssetCode_FromAsset(path.join(__dirname, jsii.String("integ.request-authorizer.handler"))), }) restapi := awscdk.NewRestApi(stack, jsii.String("MyRestApi"), &RestApiProps{ CloudWatchRole: jsii.Boolean(true), }) authorizer := awscdk.NewRequestAuthorizer(stack, jsii.String("MyAuthorizer"), &RequestAuthorizerProps{ Handler: authorizerFn, IdentitySources: []*string{ awscdk.IdentitySource_Header(jsii.String("Authorization")), awscdk.IdentitySource_QueryString(jsii.String("allow")), }, }) secondAuthorizer := awscdk.NewRequestAuthorizer(stack, jsii.String("MySecondAuthorizer"), &RequestAuthorizerProps{ Handler: authorizerFn, IdentitySources: []*string{ awscdk.IdentitySource_*Header(jsii.String("Authorization")), awscdk.IdentitySource_*QueryString(jsii.String("allow")), }, }) restapi.Root.AddMethod(jsii.String("ANY"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, Authorizer: Authorizer, }) restapi.Root.ResourceForPath(jsii.String("auth")).AddMethod(jsii.String("ANY"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []*integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []*methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, Authorizer: secondAuthorizer, })
type IntegrationProps ¶
type IntegrationProps struct { // Specifies an API method integration type. Type IntegrationType `field:"required" json:"type" yaml:"type"` // The integration's HTTP method type. // // Required unless you use a MOCK integration. IntegrationHttpMethod *string `field:"optional" json:"integrationHttpMethod" yaml:"integrationHttpMethod"` // Integration options. Options *IntegrationOptions `field:"optional" 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{} `field:"optional" json:"uri" yaml:"uri"` }
Example:
import elbv2 "github.com/aws/aws-cdk-go/awscdk" vpc := ec2.NewVpc(this, jsii.String("VPC")) nlb := elbv2.NewNetworkLoadBalancer(this, jsii.String("NLB"), &NetworkLoadBalancerProps{ Vpc: Vpc, }) link := apigateway.NewVpcLink(this, jsii.String("link"), &VpcLinkProps{ Targets: []iNetworkLoadBalancer{ nlb, }, }) integration := apigateway.NewIntegration(&IntegrationProps{ Type: apigateway.IntegrationType_HTTP_PROXY, IntegrationHttpMethod: jsii.String("ANY"), Options: &IntegrationOptions{ ConnectionType: apigateway.ConnectionType_VPC_LINK, VpcLink: link, }, })
type IntegrationResponse ¶
type IntegrationResponse struct { // The status code that API Gateway uses to map the integration response to a MethodResponse status code. StatusCode *string `field:"required" json:"statusCode" yaml:"statusCode"` // Specifies how to handle request payload content type conversions. // Default: none the request payload is passed through from the method // request to the integration request without modification. // ContentHandling ContentHandling `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" json:"selectionPattern" yaml:"selectionPattern"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" integrationResponse := &IntegrationResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: awscdk.Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }
type IntegrationType ¶
type IntegrationType string
Example:
import elbv2 "github.com/aws/aws-cdk-go/awscdk" vpc := ec2.NewVpc(this, jsii.String("VPC")) nlb := elbv2.NewNetworkLoadBalancer(this, jsii.String("NLB"), &NetworkLoadBalancerProps{ Vpc: Vpc, }) link := apigateway.NewVpcLink(this, jsii.String("link"), &VpcLinkProps{ Targets: []iNetworkLoadBalancer{ nlb, }, }) integration := apigateway.NewIntegration(&IntegrationProps{ Type: apigateway.IntegrationType_HTTP_PROXY, IntegrationHttpMethod: jsii.String("ANY"), Options: &IntegrationOptions{ ConnectionType: apigateway.ConnectionType_VPC_LINK, VpcLink: link, }, })
const ( // For integrating the API method request with an AWS service action, including the Lambda function-invoking action. // // With the Lambda // function-invoking action, this is referred to as the Lambda custom // integration. With any other AWS service action, this is known as AWS // integration. IntegrationType_AWS IntegrationType = "AWS" // For integrating the API method request with the Lambda function-invoking action with the client request passed through as-is. // // This integration is // also referred to as the Lambda proxy integration. IntegrationType_AWS_PROXY IntegrationType = "AWS_PROXY" // For integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC. // // This integration is also referred to // as the HTTP custom integration. IntegrationType_HTTP IntegrationType = "HTTP" // For integrating the API method request with an HTTP endpoint, including a private HTTP endpoint within a VPC, with the client request passed through as-is. // // This is also referred to as the HTTP proxy integration. IntegrationType_HTTP_PROXY IntegrationType = "HTTP_PROXY" // For integrating the API method request with API Gateway as a "loop-back" endpoint without invoking any backend. IntegrationType_MOCK IntegrationType = "MOCK" )
type JsonSchema ¶
type JsonSchema struct { AdditionalItems *[]*JsonSchema `field:"optional" json:"additionalItems" yaml:"additionalItems"` AdditionalProperties interface{} `field:"optional" json:"additionalProperties" yaml:"additionalProperties"` AllOf *[]*JsonSchema `field:"optional" json:"allOf" yaml:"allOf"` AnyOf *[]*JsonSchema `field:"optional" json:"anyOf" yaml:"anyOf"` Contains interface{} `field:"optional" json:"contains" yaml:"contains"` // The default value if you use an enum. // Default: - not set. // Default interface{} `field:"optional" json:"default" yaml:"default"` Definitions *map[string]*JsonSchema `field:"optional" json:"definitions" yaml:"definitions"` Dependencies *map[string]interface{} `field:"optional" json:"dependencies" yaml:"dependencies"` Description *string `field:"optional" json:"description" yaml:"description"` Enum *[]interface{} `field:"optional" json:"enum" yaml:"enum"` ExclusiveMaximum *bool `field:"optional" json:"exclusiveMaximum" yaml:"exclusiveMaximum"` ExclusiveMinimum *bool `field:"optional" json:"exclusiveMinimum" yaml:"exclusiveMinimum"` Format *string `field:"optional" json:"format" yaml:"format"` Id *string `field:"optional" json:"id" yaml:"id"` Items interface{} `field:"optional" json:"items" yaml:"items"` Maximum *float64 `field:"optional" json:"maximum" yaml:"maximum"` MaxItems *float64 `field:"optional" json:"maxItems" yaml:"maxItems"` MaxLength *float64 `field:"optional" json:"maxLength" yaml:"maxLength"` MaxProperties *float64 `field:"optional" json:"maxProperties" yaml:"maxProperties"` Minimum *float64 `field:"optional" json:"minimum" yaml:"minimum"` MinItems *float64 `field:"optional" json:"minItems" yaml:"minItems"` MinLength *float64 `field:"optional" json:"minLength" yaml:"minLength"` MinProperties *float64 `field:"optional" json:"minProperties" yaml:"minProperties"` MultipleOf *float64 `field:"optional" json:"multipleOf" yaml:"multipleOf"` Not **JsonSchema `field:"optional" json:"not" yaml:"not"` OneOf *[]*JsonSchema `field:"optional" json:"oneOf" yaml:"oneOf"` Pattern *string `field:"optional" json:"pattern" yaml:"pattern"` PatternProperties *map[string]*JsonSchema `field:"optional" json:"patternProperties" yaml:"patternProperties"` Properties *map[string]*JsonSchema `field:"optional" json:"properties" yaml:"properties"` PropertyNames **JsonSchema `field:"optional" json:"propertyNames" yaml:"propertyNames"` Ref *string `field:"optional" json:"ref" yaml:"ref"` Required *[]*string `field:"optional" json:"required" yaml:"required"` Schema JsonSchemaVersion `field:"optional" json:"schema" yaml:"schema"` Title *string `field:"optional" json:"title" yaml:"title"` Type interface{} `field:"optional" json:"type" yaml:"type"` UniqueItems *bool `field:"optional" json:"uniqueItems" yaml:"uniqueItems"` }
Represents a JSON schema definition of the structure of a REST API model.
Copied from npm module jsonschema.
Example:
var api restApi // We define the JSON Schema for the transformed valid response responseModel := api.AddModel(jsii.String("ResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ResponseModel"), Schema: &JsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("pollResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "greeting": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, }) // We define the JSON Schema for the transformed error response errorResponseModel := api.AddModel(jsii.String("ErrorResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ErrorResponseModel"), Schema: &jsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("errorResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]*jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "message": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, })
type JsonSchemaType ¶
type JsonSchemaType string
Example:
var api restApi // We define the JSON Schema for the transformed valid response responseModel := api.AddModel(jsii.String("ResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ResponseModel"), Schema: &JsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("pollResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "greeting": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, }) // We define the JSON Schema for the transformed error response errorResponseModel := api.AddModel(jsii.String("ErrorResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ErrorResponseModel"), Schema: &jsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("errorResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]*jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "message": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, })
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
Example:
var api restApi // We define the JSON Schema for the transformed valid response responseModel := api.AddModel(jsii.String("ResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ResponseModel"), Schema: &JsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("pollResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "greeting": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, }) // We define the JSON Schema for the transformed error response errorResponseModel := api.AddModel(jsii.String("ErrorResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ErrorResponseModel"), Schema: &jsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("errorResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]*jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "message": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, })
const ( // In API Gateway models are defined using the JSON schema draft 4. // See: https://tools.ietf.org/html/draft-zyp-json-schema-04 // 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 `field:"required" json:"caller" yaml:"caller"` // If this flag is enabled, the http method will be output to the log. HttpMethod *bool `field:"required" json:"httpMethod" yaml:"httpMethod"` // If this flag is enabled, the source IP of request will be output to the log. Ip *bool `field:"required" json:"ip" yaml:"ip"` // If this flag is enabled, the request protocol will be output to the log. Protocol *bool `field:"required" 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 `field:"required" json:"requestTime" yaml:"requestTime"` // If this flag is enabled, the path to your resource will be output to the log. ResourcePath *bool `field:"required" json:"resourcePath" yaml:"resourcePath"` // If this flag is enabled, the response payload length will be output to the log. ResponseLength *bool `field:"required" json:"responseLength" yaml:"responseLength"` // If this flag is enabled, the method response status will be output to the log. Status *bool `field:"required" json:"status" yaml:"status"` // If this flag is enabled, the principal identifier of the user will be output to the log. User *bool `field:"required" json:"user" yaml:"user"` }
Properties for controlling items output in JSON standard format.
Example:
// production stage prodLogGroup := logs.NewLogGroup(this, jsii.String("PrdLogs")) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewLogGroupLogDestination(prodLogGroup), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, }) deployment := apigateway.NewDeployment(this, jsii.String("Deployment"), &DeploymentProps{ Api: Api, }) // development stage devLogGroup := logs.NewLogGroup(this, jsii.String("DevLogs")) apigateway.NewStage(this, jsii.String("dev"), &StageProps{ Deployment: Deployment, AccessLogDestination: apigateway.NewLogGroupLogDestination(devLogGroup), AccessLogFormat: apigateway.AccessLogFormat_*JsonWithStandardFields(&JsonWithStandardFieldProps{ Caller: jsii.Boolean(false), HttpMethod: jsii.Boolean(true), Ip: jsii.Boolean(true), Protocol: jsii.Boolean(true), RequestTime: jsii.Boolean(true), ResourcePath: jsii.Boolean(true), ResponseLength: jsii.Boolean(true), Status: jsii.Boolean(true), User: jsii.Boolean(true), }), })
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](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html) // and [output specification](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html). Handler awslambda.IFunction `field:"required" 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'. // Default: - A resource policy is added to the Lambda function allowing apigateway.amazonaws.com to invoke the function. // AssumeRole awsiam.IRole `field:"optional" json:"assumeRole" yaml:"assumeRole"` // An optional human friendly name for the authorizer. // // Note that, this is not the primary identifier of the authorizer. // Default: - the unique construct ID. // AuthorizerName *string `field:"optional" json:"authorizerName" yaml:"authorizerName"` // How long APIGateway should cache the results. // // Max 1 hour. // Disable caching by setting this to 0. // Default: - Duration.minutes(5) // ResultsCacheTtl awscdk.Duration `field:"optional" json:"resultsCacheTtl" yaml:"resultsCacheTtl"` }
Base properties for all lambda authorizers.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var function_ function var role role lambdaAuthorizerProps := &LambdaAuthorizerProps{ Handler: function_, // the properties below are optional AssumeRole: role, AuthorizerName: jsii.String("authorizerName"), ResultsCacheTtl: cdk.Duration_Minutes(jsii.Number(30)), }
type LambdaIntegration ¶
type LambdaIntegration interface { AwsIntegration // Can be overridden by subclasses to allow the integration to interact with the method being integrated, access the REST API object, method ARNs, etc. Bind(method Method) *IntegrationConfig }
Integrates an AWS Lambda function to an API Gateway method.
Example:
var resource resource var handler function resource.AddMethod(jsii.String("GET"), apigateway.NewLambdaIntegration(handler))
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 `field:"optional" json:"cacheKeyParameters" yaml:"cacheKeyParameters"` // An API-specific tag group of related cached parameters. CacheNamespace *string `field:"optional" json:"cacheNamespace" yaml:"cacheNamespace"` // The type of network connection to the integration endpoint. // Default: - ConnectionType.VPC_LINK if `vpcLink` property is configured; ConnectionType.Internet otherwise. // ConnectionType ConnectionType `field:"optional" json:"connectionType" yaml:"connectionType"` // Specifies how to handle request payload content type conversions. // Default: none 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 ContentHandling `field:"optional" json:"contentHandling" yaml:"contentHandling"` // Requires that the caller's identity be passed through from the request. // Default: Caller identity is not passed through. // CredentialsPassthrough *bool `field:"optional" json:"credentialsPassthrough" yaml:"credentialsPassthrough"` // An IAM role that API Gateway assumes. // // Mutually exclusive with `credentialsPassThrough`. // Default: A role is not assumed. // CredentialsRole awsiam.IRole `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" json:"requestTemplates" yaml:"requestTemplates"` // The maximum amount of time an integration will run before it returns without a response. // // By default, the value must be between 50 milliseconds and 29 seconds. // The upper bound can be increased for regional and private Rest APIs only, // via a quota increase request for your acccount. // This increase might require a reduction in your account-level throttle quota limit. // // See {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html Amazon API Gateway quotas} for more details. // Default: Duration.seconds(29) // Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // The VpcLink used for the integration. // // Required if connectionType is VPC_LINK. VpcLink IVpcLink `field:"optional" 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. // Default: true. // AllowTestInvoke *bool `field:"optional" 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 // // Default: true. // Proxy *bool `field:"optional" json:"proxy" yaml:"proxy"` }
Example:
var backend function api := apigateway.NewLambdaRestApi(this, jsii.String("myapi"), &LambdaRestApiProps{ Handler: backend, IntegrationOptions: &LambdaIntegrationOptions{ AllowTestInvoke: jsii.Boolean(false), Timeout: awscdk.Duration_Seconds(jsii.Number(1)), }, })
type LambdaRestApi ¶
type LambdaRestApi interface { RestApi CloudWatchAccount() CfnAccount SetCloudWatchAccount(val CfnAccount) // API Gateway stage that points to the latest deployment (if defined). // // If `deploy` is disabled, you will need to explicitly assign this value in order to // set up integrations. DeploymentStage() Stage SetDeploymentStage(val Stage) // The first domain name mapped to this API, if defined through the `domainName` configuration prop, or added via `addDomainName`. DomainName() DomainName // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // API Gateway deployment that represents the latest changes of the API. // // This resource will be automatically updated every time the REST API model changes. // This will be undefined if `deploy` is false. LatestDeployment() Deployment // The list of methods bound to this RestApi. Methods() *[]Method // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of this API Gateway RestApi. RestApiId() *string // A human friendly name for this Rest API. // // Note that this is different from `restApiId`. RestApiName() *string // The resource ID of the root resource. RestApiRootResourceId() *string // Represents the root resource of this API endpoint ('/'). // // Resources and Methods are added to this resource. Root() IResource // The stack in which this resource is defined. Stack() awscdk.Stack // The deployed root URL of this REST API. Url() *string // Add an ApiKey to the deploymentStage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // Defines an API Gateway domain name and maps it to this API. AddDomainName(id *string, options *DomainNameOptions) DomainName // Adds a new gateway response. AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse // Adds a new model. AddModel(id *string, props *ModelOptions) Model // Adds a new request validator. AddRequestValidator(id *string, props *RequestValidatorOptions) RequestValidator // Adds a usage plan. AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Gets the "execute-api" ARN. ArnForExecuteApi(method *string, path *string, stage *string) *string GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns the given named metric for this API. Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // // Default: sum over 5 minutes. MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // // Default: sum over 5 minutes. MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // // Default: sum over 5 minutes. MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // // Default: sample count over 5 minutes. MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // // Default: average over 5 minutes. MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // // Default: average over 5 minutes. MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // // Default: sum over 5 minutes. MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string // Returns the URL for an HTTP path. // // Fails if `deploymentStage` is not set either by `deploy` or explicitly. 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.
Example:
var backend function api := apigateway.NewLambdaRestApi(this, jsii.String("myapi"), &LambdaRestApiProps{ Handler: backend, Proxy: jsii.Boolean(false), }) items := api.Root.AddResource(jsii.String("items")) items.AddMethod(jsii.String("GET")) // GET /items items.AddMethod(jsii.String("POST")) // POST /items item := items.AddResource(jsii.String("{item}")) item.AddMethod(jsii.String("GET")) // GET /items/{item} // the default integration for methods is "handler", but one can // customize this behavior per method or even a sub path. item.AddMethod(jsii.String("DELETE"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")))
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // Automatically configure an AWS CloudWatch role for API Gateway. // Default: - false if `@aws-cdk/aws-apigateway:disableCloudWatchRole` is enabled, true otherwise. // CloudWatchRole *bool `field:"optional" json:"cloudWatchRole" yaml:"cloudWatchRole"` // The removal policy applied to the AWS CloudWatch role when this resource is removed from the application. // // Requires `cloudWatchRole` to be enabled. // Default: - RemovalPolicy.RETAIN // CloudWatchRoleRemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"cloudWatchRoleRemovalPolicy" yaml:"cloudWatchRoleRemovalPolicy"` // 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. // Default: true. // Deploy *bool `field:"optional" 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. // Default: - Based on defaults of `StageOptions`. // DeployOptions *StageOptions `field:"optional" json:"deployOptions" yaml:"deployOptions"` // A description of the RestApi construct. // Default: - 'Automatically created by the RestApi construct'. // Description *string `field:"optional" json:"description" yaml:"description"` // 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 // // Default: false. // DisableExecuteApiEndpoint *bool `field:"optional" json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"` // Configure a custom domain name and map it to this API. // Default: - no domain name is defined, use `addDomainName` or directly define a `DomainName`. // DomainName *DomainNameOptions `field:"optional" json:"domainName" yaml:"domainName"` // Export name for the CfnOutput containing the API endpoint. // Default: - when no export name is given, output will be created without export. // EndpointExportName *string `field:"optional" json:"endpointExportName" yaml:"endpointExportName"` // A list of the endpoint types of the API. // // Use this property when creating // an API. // Default: EndpointType.EDGE // EndpointTypes *[]EndpointType `field:"optional" json:"endpointTypes" yaml:"endpointTypes"` // Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource. // Default: false. // FailOnWarnings *bool `field:"optional" json:"failOnWarnings" yaml:"failOnWarnings"` // Custom header parameters for the request. // See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html // // Default: - No parameters. // Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"` // A policy document that contains the permissions for this RestApi. // Default: - No policy. // Policy awsiam.PolicyDocument `field:"optional" json:"policy" yaml:"policy"` // A name for the API Gateway RestApi resource. // Default: - ID of the RestApi construct. // RestApiName *string `field:"optional" 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. // Default: false. // RetainDeployments *bool `field:"optional" json:"retainDeployments" yaml:"retainDeployments"` // The source of the API key for metering requests according to a usage plan. // Default: - Metering is disabled. // ApiKeySourceType ApiKeySourceType `field:"optional" 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". // Default: - RestApi supports only UTF-8-encoded text payloads. // BinaryMediaTypes *[]*string `field:"optional" json:"binaryMediaTypes" yaml:"binaryMediaTypes"` // The ID of the API Gateway RestApi resource that you want to clone. // Default: - None. // CloneFrom IRestApi `field:"optional" json:"cloneFrom" yaml:"cloneFrom"` // 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 // // Default: EndpointType.EDGE // EndpointConfiguration *EndpointConfiguration `field:"optional" json:"endpointConfiguration" yaml:"endpointConfiguration"` // A Size(in bytes, kibibytes, mebibytes etc) 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. // Default: - Compression is disabled. // MinCompressionSize awscdk.Size `field:"optional" json:"minCompressionSize" yaml:"minCompressionSize"` // 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. // Default: - Compression is disabled. // // Deprecated: - superseded by `minCompressionSize`. MinimumCompressionSize *float64 `field:"optional" 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 `field:"required" json:"handler" yaml:"handler"` // Specific Lambda integration options. // Default: see defaults defined in `LambdaIntegrationOptions`. // IntegrationOptions *LambdaIntegrationOptions `field:"optional" json:"integrationOptions" yaml:"integrationOptions"` // 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`). // Default: true. // Proxy *bool `field:"optional" json:"proxy" yaml:"proxy"` }
Example:
var backend function api := apigateway.NewLambdaRestApi(this, jsii.String("myapi"), &LambdaRestApiProps{ Handler: backend, Proxy: jsii.Boolean(false), }) items := api.Root.AddResource(jsii.String("items")) items.AddMethod(jsii.String("GET")) // GET /items items.AddMethod(jsii.String("POST")) // POST /items item := items.AddResource(jsii.String("{item}")) item.AddMethod(jsii.String("GET")) // GET /items/{item} // the default integration for methods is "handler", but one can // customize this behavior per method or even a sub path. item.AddMethod(jsii.String("DELETE"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")))
type LogGroupLogDestination ¶
type LogGroupLogDestination interface { IAccessLogDestination // Binds this destination to the CloudWatch Logs. Bind(_stage IStage) *AccessLogDestinationConfig }
Use CloudWatch Logs as a custom access log destination for API Gateway.
Example:
logGroup := logs.NewLogGroup(this, jsii.String("ApiGatewayAccessLogs")) apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewLogGroupLogDestination(logGroup), AccessLogFormat: apigateway.AccessLogFormat_Custom( fmt.Sprintf("%v %v %v\n %v %v", apigateway.AccessLogField_ContextRequestId(), apigateway.AccessLogField_ContextErrorMessage(), apigateway.AccessLogField_ContextErrorMessageString(), apigateway.AccessLogField_ContextAuthorizerError(), apigateway.AccessLogField_ContextAuthorizerIntegrationStatus())), }, })
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 `field:"required" json:"bucket" yaml:"bucket"` // The key in S3 to look at for the trust store. Key *string `field:"required" 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. // Default: - latest version. // Version *string `field:"optional" json:"version" yaml:"version"` }
The mTLS authentication configuration for a custom domain name.
Example:
var acm interface{} apigateway.NewDomainName(this, jsii.String("domain-name"), &DomainNameProps{ DomainName: jsii.String("example.com"), Certificate: acm.certificate_FromCertificateArn(this, jsii.String("cert"), jsii.String("arn:aws:acm:us-east-1:1111111:certificate/11-3336f1-44483d-adc7-9cd375c5169d")), Mtls: &MTLSConfig{ Bucket: s3.NewBucket(this, jsii.String("bucket")), Key: jsii.String("truststore.pem"), Version: jsii.String("version"), }, })
type Method ¶
type Method interface { awscdk.Resource // The API Gateway RestApi associated with this method. Api() IRestApi // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment HttpMethod() *string // Returns an execute-api ARN for this method:. // // arn:aws:execute-api:{region}:{account}:{restApiId}/{stage}/{method}/{path} // // NOTE: {stage} will refer to the `restApi.deploymentStage`, which will // automatically set if auto-deploy is enabled, or can be explicitly assigned. // When not configured, {stage} will be set to '*', as a shorthand for 'all stages'. MethodArn() *string MethodId() *string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string Resource() IResource // The stack in which this resource is defined. Stack() awscdk.Stack // Returns an execute-api ARN for this method's "test-invoke-stage" stage. // // This stage is used by the AWS Console UI when testing the method. TestMethodArn() *string // Add a method response to this method. // // You should only add one method reponse for every status code. The API allows it // for historical reasons, but will add a warning if this happens. If you do, your Method // will nondeterministically use one of the responses, and ignore the rest. AddMethodResponse(methodResponse *MethodResponse) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Grants an IAM principal permission to invoke this method. GrantExecute(grantee awsiam.IGrantable) awsiam.Grant // Returns the given named metric for this API method. Metric(metricName *string, stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // Default: - sum over 5 minutes. // MetricCacheHitCount(stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // Default: - sum over 5 minutes. // MetricCacheMissCount(stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // Default: - sum over 5 minutes. // MetricClientError(stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // Default: - sample count over 5 minutes. // MetricCount(stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // Default: - average over 5 minutes. // MetricIntegrationLatency(stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // Default: - average over 5 minutes. // MetricLatency(stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // Default: - sum over 5 minutes. // MetricServerError(stage IStage, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string }
Example:
var integration lambdaIntegration api := apigateway.NewRestApi(this, jsii.String("hello-api")) v1 := api.Root.AddResource(jsii.String("v1")) echo := v1.AddResource(jsii.String("echo")) echoMethod := echo.AddMethod(jsii.String("GET"), integration, &MethodOptions{ ApiKeyRequired: jsii.Boolean(true), }) plan := api.AddUsagePlan(jsii.String("UsagePlan"), &UsagePlanProps{ Name: jsii.String("Easy"), Throttle: &ThrottleSettings{ RateLimit: jsii.Number(10), BurstLimit: jsii.Number(2), }, }) key := api.AddApiKey(jsii.String("ApiKey")) plan.addApiKey(key)
func NewMethod ¶
func NewMethod(scope constructs.Construct, id *string, props *MethodProps) Method
type MethodDeploymentOptions ¶
type MethodDeploymentOptions struct { // Indicates whether the cached responses are encrypted. // Default: false. // CacheDataEncrypted *bool `field:"optional" 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 // // Default: Duration.minutes(5) // CacheTtl awscdk.Duration `field:"optional" 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. // Default: - Caching is Disabled. // CachingEnabled *bool `field:"optional" 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. // Default: false. // DataTraceEnabled *bool `field:"optional" json:"dataTraceEnabled" yaml:"dataTraceEnabled"` // Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. // Default: - Off. // LoggingLevel MethodLoggingLevel `field:"optional" json:"loggingLevel" yaml:"loggingLevel"` // Specifies whether Amazon CloudWatch metrics are enabled for this method. // Default: false. // MetricsEnabled *bool `field:"optional" 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 // // Default: - No additional restriction. // ThrottlingBurstLimit *float64 `field:"optional" 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 // // Default: - No additional restriction. // ThrottlingRateLimit *float64 `field:"optional" json:"throttlingRateLimit" yaml:"throttlingRateLimit"` }
Example:
api := apigateway.NewRestApi(this, jsii.String("books")) deployment := apigateway.NewDeployment(this, jsii.String("my-deployment"), &DeploymentProps{ Api: Api, }) stage := apigateway.NewStage(this, jsii.String("my-stage"), &StageProps{ Deployment: Deployment, MethodOptions: map[string]methodDeploymentOptions{ "/*/*": &methodDeploymentOptions{ // This special path applies to all resource paths and all HTTP methods "throttlingRateLimit": jsii.Number(100), "throttlingBurstLimit": jsii.Number(200), }, }, })
type MethodLoggingLevel ¶
type MethodLoggingLevel string
Example:
api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ CloudWatchRole: jsii.Boolean(true), DeployOptions: &StageOptions{ LoggingLevel: apigateway.MethodLoggingLevel_INFO, DataTraceEnabled: jsii.Boolean(true), }, })
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. // Default: false. // ApiKeyRequired *bool `field:"optional" 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 // // Default: - no authorization scopes. // AuthorizationScopes *[]*string `field:"optional" 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 `Authorizer` class, such as `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 `Authorizer` // will result in an error. // Default: - open access unless `authorizer` is specified. // AuthorizationType AuthorizationType `field:"optional" 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 `field:"optional" 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 // // Default: None // // This property is not required, but if these are not supplied for a Lambda // proxy integration, the Lambda function must return a value of the correct format, // for the integration response to be correctly mapped to a response to the client. // MethodResponses *[]*MethodResponse `field:"optional" 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 `field:"optional" 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. // // Example: // var api restApi // var userLambda function // // // userModel := api.AddModel(jsii.String("UserModel"), &ModelOptions{ // Schema: &JsonSchema{ // Type: apigateway.JsonSchemaType_OBJECT, // Properties: map[string]jsonSchema{ // "userId": &jsonSchema{ // "type": apigateway.JsonSchemaType_STRING, // }, // "name": &jsonSchema{ // "type": apigateway.JsonSchemaType_STRING, // }, // }, // Required: []*string{ // jsii.String("userId"), // }, // }, // }) // api.Root.AddResource(jsii.String("user")).AddMethod(jsii.String("POST"), // apigateway.NewLambdaIntegration(userLambda), &MethodOptions{ // RequestModels: map[string]iModel{ // "application/json": userModel, // }, // }) // // See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html#setup-method-request-model // RequestModels *map[string]IModel `field:"optional" 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. // Default: None. // RequestParameters *map[string]*bool `field:"optional" 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. // Default: - No default validator. // RequestValidator IRequestValidator `field:"optional" 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. // Default: - No default validator. // RequestValidatorOptions *RequestValidatorOptions `field:"optional" json:"requestValidatorOptions" yaml:"requestValidatorOptions"` }
Example:
var api restApi var userLambda function userModel := api.AddModel(jsii.String("UserModel"), &ModelOptions{ Schema: &JsonSchema{ Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]jsonSchema{ "userId": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "name": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, Required: []*string{ jsii.String("userId"), }, }, }) api.Root.AddResource(jsii.String("user")).AddMethod(jsii.String("POST"), apigateway.NewLambdaIntegration(userLambda), &MethodOptions{ RequestModels: map[string]iModel{ "application/json": userModel, }, })
type MethodProps ¶
type MethodProps struct { // The HTTP method ("GET", "POST", "PUT", ...) that clients use to call this method. HttpMethod *string `field:"required" json:"httpMethod" yaml:"httpMethod"` // The resource this method is associated with. // // For root resource methods, // specify the `RestApi` object. Resource IResource `field:"required" json:"resource" yaml:"resource"` // The backend system that the method calls when it receives a request. // Default: - a new `MockIntegration`. // Integration Integration `field:"optional" json:"integration" yaml:"integration"` // Method options. // Default: - No options. // Options *MethodOptions `field:"optional" json:"options" yaml:"options"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var authorizer authorizer var integration integration var model model var requestValidator requestValidator var resource resource methodProps := &MethodProps{ HttpMethod: jsii.String("httpMethod"), Resource: resource, // the properties below are optional Integration: integration, Options: &MethodOptions{ ApiKeyRequired: jsii.Boolean(false), AuthorizationScopes: []*string{ jsii.String("authorizationScopes"), }, AuthorizationType: awscdk.Aws_apigateway.AuthorizationType_NONE, Authorizer: authorizer, MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]iModel{ "responseModelsKey": model, }, ResponseParameters: map[string]*bool{ "responseParametersKey": jsii.Boolean(false), }, }, }, OperationName: jsii.String("operationName"), RequestModels: map[string]*iModel{ "requestModelsKey": model, }, RequestParameters: map[string]*bool{ "requestParametersKey": jsii.Boolean(false), }, RequestValidator: requestValidator, RequestValidatorOptions: &RequestValidatorOptions{ RequestValidatorName: jsii.String("requestValidatorName"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), }, }, }
type MethodResponse ¶
type MethodResponse struct { // The method response's status code, which you map to an IntegrationResponse. // // Required. StatusCode *string `field:"required" 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. // Default: None. // ResponseModels *map[string]IModel `field:"optional" 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. // Default: None. // ResponseParameters *map[string]*bool `field:"optional" json:"responseParameters" yaml:"responseParameters"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var model model methodResponse := &MethodResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]iModel{ "responseModelsKey": model, }, ResponseParameters: map[string]*bool{ "responseParametersKey": jsii.Boolean(false), }, }
type MockIntegration ¶
type MockIntegration interface { Integration // Can be overridden by subclasses to allow the integration to interact with the method being integrated, access the REST API object, method ARNs, etc. 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.
Example:
import path "github.com/aws-samples/dummy/path" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" // Against the RestApi endpoint from the stack output, run // `curl -s -o /dev/null -w "%{http_code}" <url>` should return 401 // `curl -s -o /dev/null -w "%{http_code}" -H 'Authorization: deny' <url>?allow=yes` should return 403 // `curl -s -o /dev/null -w "%{http_code}" -H 'Authorization: allow' <url>?allow=yes` should return 200 app := awscdk.NewApp() stack := awscdk.NewStack(app, jsii.String("RequestAuthorizerInteg")) authorizerFn := lambda.NewFunction(stack, jsii.String("MyAuthorizerFunction"), &FunctionProps{ Runtime: lambda.Runtime_NODEJS_LATEST(), Handler: jsii.String("index.handler"), Code: lambda.AssetCode_FromAsset(path.join(__dirname, jsii.String("integ.request-authorizer.handler"))), }) restapi := awscdk.NewRestApi(stack, jsii.String("MyRestApi"), &RestApiProps{ CloudWatchRole: jsii.Boolean(true), }) authorizer := awscdk.NewRequestAuthorizer(stack, jsii.String("MyAuthorizer"), &RequestAuthorizerProps{ Handler: authorizerFn, IdentitySources: []*string{ awscdk.IdentitySource_Header(jsii.String("Authorization")), awscdk.IdentitySource_QueryString(jsii.String("allow")), }, }) secondAuthorizer := awscdk.NewRequestAuthorizer(stack, jsii.String("MySecondAuthorizer"), &RequestAuthorizerProps{ Handler: authorizerFn, IdentitySources: []*string{ awscdk.IdentitySource_*Header(jsii.String("Authorization")), awscdk.IdentitySource_*QueryString(jsii.String("allow")), }, }) restapi.Root.AddMethod(jsii.String("ANY"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, Authorizer: Authorizer, }) restapi.Root.ResourceForPath(jsii.String("auth")).AddMethod(jsii.String("ANY"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []*integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []*methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, Authorizer: secondAuthorizer, })
func NewMockIntegration ¶
func NewMockIntegration(options *IntegrationOptions) MockIntegration
type Model ¶
type Model interface { awscdk.Resource IModel // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // Returns the model name, such as 'myModel'. ModelId() *string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
Example:
var api restApi // We define the JSON Schema for the transformed valid response responseModel := api.AddModel(jsii.String("ResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ResponseModel"), Schema: &JsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("pollResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "greeting": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, }) // We define the JSON Schema for the transformed error response errorResponseModel := api.AddModel(jsii.String("ErrorResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ErrorResponseModel"), Schema: &jsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("errorResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]*jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "message": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, })
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 `field:"required" json:"schema" yaml:"schema"` // The content type for the model. // // You can also force a // content type in the request or response model mapping. // Default: 'application/json'. // ContentType *string `field:"optional" json:"contentType" yaml:"contentType"` // A description that identifies this model. // Default: None. // Description *string `field:"optional" 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. // Default: <auto> 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. // ModelName *string `field:"optional" json:"modelName" yaml:"modelName"` }
Example:
var api restApi // We define the JSON Schema for the transformed valid response responseModel := api.AddModel(jsii.String("ResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ResponseModel"), Schema: &JsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("pollResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "greeting": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, }) // We define the JSON Schema for the transformed error response errorResponseModel := api.AddModel(jsii.String("ErrorResponseModel"), &ModelOptions{ ContentType: jsii.String("application/json"), ModelName: jsii.String("ErrorResponseModel"), Schema: &jsonSchema{ Schema: apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("errorResponse"), Type: apigateway.JsonSchemaType_OBJECT, Properties: map[string]*jsonSchema{ "state": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, "message": &jsonSchema{ "type": apigateway.JsonSchemaType_STRING, }, }, }, })
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 `field:"required" json:"schema" yaml:"schema"` // The content type for the model. // // You can also force a // content type in the request or response model mapping. // Default: 'application/json'. // ContentType *string `field:"optional" json:"contentType" yaml:"contentType"` // A description that identifies this model. // Default: None. // Description *string `field:"optional" 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. // Default: <auto> 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. // ModelName *string `field:"optional" 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 `field:"required" json:"restApi" yaml:"restApi"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var default_ interface{} var enum_ interface{} var jsonSchema_ jsonSchema var restApi restApi modelProps := &ModelProps{ RestApi: restApi, Schema: &jsonSchema{ AdditionalItems: []*jsonSchema{ jsonSchema_, }, AdditionalProperties: jsii.Boolean(false), AllOf: []*jsonSchema{ jsonSchema_, }, AnyOf: []*jsonSchema{ jsonSchema_, }, Contains: jsonSchema_, Default: default_, Definitions: map[string]*jsonSchema{ "definitionsKey": jsonSchema_, }, Dependencies: map[string]interface{}{ "dependenciesKey": []interface{}{ jsii.String("dependencies"), }, }, Description: jsii.String("description"), Enum: []interface{}{ enum_, }, ExclusiveMaximum: jsii.Boolean(false), ExclusiveMinimum: jsii.Boolean(false), Format: jsii.String("format"), Id: jsii.String("id"), Items: jsonSchema_, Maximum: jsii.Number(123), MaxItems: jsii.Number(123), MaxLength: jsii.Number(123), MaxProperties: jsii.Number(123), Minimum: jsii.Number(123), MinItems: jsii.Number(123), MinLength: jsii.Number(123), MinProperties: jsii.Number(123), MultipleOf: jsii.Number(123), Not: jsonSchema_, OneOf: []*jsonSchema{ jsonSchema_, }, Pattern: jsii.String("pattern"), PatternProperties: map[string]*jsonSchema{ "patternPropertiesKey": jsonSchema_, }, Properties: map[string]*jsonSchema{ "propertiesKey": jsonSchema_, }, PropertyNames: jsonSchema_, Ref: jsii.String("ref"), Required: []*string{ jsii.String("required"), }, Schema: awscdk.Aws_apigateway.JsonSchemaVersion_DRAFT4, Title: jsii.String("title"), Type: awscdk.*Aws_apigateway.JsonSchemaType_NULL, UniqueItems: jsii.Boolean(false), }, // the properties below are optional ContentType: jsii.String("contentType"), Description: jsii.String("description"), ModelName: jsii.String("modelName"), }
type PassthroughBehavior ¶
type PassthroughBehavior string
Example:
import path "github.com/aws-samples/dummy/path" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" // Against the RestApi endpoint from the stack output, run // `curl -s -o /dev/null -w "%{http_code}" <url>` should return 401 // `curl -s -o /dev/null -w "%{http_code}" -H 'Authorization: deny' <url>?allow=yes` should return 403 // `curl -s -o /dev/null -w "%{http_code}" -H 'Authorization: allow' <url>?allow=yes` should return 200 app := awscdk.NewApp() stack := awscdk.NewStack(app, jsii.String("RequestAuthorizerInteg")) authorizerFn := lambda.NewFunction(stack, jsii.String("MyAuthorizerFunction"), &FunctionProps{ Runtime: lambda.Runtime_NODEJS_LATEST(), Handler: jsii.String("index.handler"), Code: lambda.AssetCode_FromAsset(path.join(__dirname, jsii.String("integ.request-authorizer.handler"))), }) restapi := awscdk.NewRestApi(stack, jsii.String("MyRestApi"), &RestApiProps{ CloudWatchRole: jsii.Boolean(true), }) authorizer := awscdk.NewRequestAuthorizer(stack, jsii.String("MyAuthorizer"), &RequestAuthorizerProps{ Handler: authorizerFn, IdentitySources: []*string{ awscdk.IdentitySource_Header(jsii.String("Authorization")), awscdk.IdentitySource_QueryString(jsii.String("allow")), }, }) secondAuthorizer := awscdk.NewRequestAuthorizer(stack, jsii.String("MySecondAuthorizer"), &RequestAuthorizerProps{ Handler: authorizerFn, IdentitySources: []*string{ awscdk.IdentitySource_*Header(jsii.String("Authorization")), awscdk.IdentitySource_*QueryString(jsii.String("allow")), }, }) restapi.Root.AddMethod(jsii.String("ANY"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, Authorizer: Authorizer, }) restapi.Root.ResourceForPath(jsii.String("auth")).AddMethod(jsii.String("ANY"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []*integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []*methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, Authorizer: secondAuthorizer, })
const ( // Passes the request body for unmapped content types through to the integration back end without transformation. PassthroughBehavior_WHEN_NO_MATCH PassthroughBehavior = "WHEN_NO_MATCH" // Rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. PassthroughBehavior_NEVER PassthroughBehavior = "NEVER" // Allows pass-through when the integration has NO content types mapped to templates. // // However if there is at least one content type defined, // unmapped content types will be rejected with the same 415 response. PassthroughBehavior_WHEN_NO_TEMPLATES PassthroughBehavior = "WHEN_NO_TEMPLATES" )
type Period ¶
type Period string
Time period for which quota settings apply.
Example:
var api restApi key := apigateway.NewRateLimitedApiKey(this, jsii.String("rate-limited-api-key"), &RateLimitedApiKeyProps{ CustomerId: jsii.String("hello-customer"), Stages: []iStage{ api.DeploymentStage, }, Quota: &QuotaSettings{ Limit: jsii.Number(10000), Period: apigateway.Period_MONTH, }, })
type ProxyResource ¶
type ProxyResource interface { Resource // If `props.anyMethod` is `true`, this will be the reference to the 'ANY' method associated with this proxy resource. AnyMethod() Method // 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 environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // The parent of this resource or undefined for the root resource. ParentResource() IResource // The full path of this resource. Path() *string // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of the resource. ResourceId() *string // The stack in which this resource is defined. Stack() awscdk.Stack // 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. AddCorsPreflight(options *CorsOptions) Method // Defines a new method for this resource. AddMethod(httpMethod *string, integration 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. AddResource(pathPart *string, options *ResourceOptions) Resource // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Retrieves a child resource by path part. GetResource(pathPart *string) IResource // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // 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. ResourceForPath(path *string) Resource // Returns a string representation of this construct. ToString() *string }
Defines a {proxy+} greedy resource and an ANY method on a route.
Example:
var resource resource var handler function proxy := resource.AddProxy(&ProxyResourceOptions{ DefaultIntegration: apigateway.NewLambdaIntegration(handler), // "false" will require explicitly adding methods on the `proxy` resource AnyMethod: jsii.Boolean(true), })
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" 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. // Default: true. // AnyMethod *bool `field:"optional" json:"anyMethod" yaml:"anyMethod"` }
Example:
var resource resource var handler function proxy := resource.AddProxy(&ProxyResourceOptions{ DefaultIntegration: apigateway.NewLambdaIntegration(handler), // "false" will require explicitly adding methods on the `proxy` resource AnyMethod: jsii.Boolean(true), })
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" 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. // Default: true. // AnyMethod *bool `field:"optional" json:"anyMethod" yaml:"anyMethod"` // The parent resource of this resource. // // You can either pass another // `Resource` object or a `RestApi` object here. Parent IResource `field:"required" json:"parent" yaml:"parent"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var authorizer authorizer var integration integration var model model var requestValidator requestValidator var resource resource proxyResourceProps := &ProxyResourceProps{ Parent: resource, // the properties below are optional AnyMethod: jsii.Boolean(false), DefaultCorsPreflightOptions: &CorsOptions{ AllowOrigins: []*string{ jsii.String("allowOrigins"), }, // the properties below are optional AllowCredentials: jsii.Boolean(false), AllowHeaders: []*string{ jsii.String("allowHeaders"), }, AllowMethods: []*string{ jsii.String("allowMethods"), }, DisableCache: jsii.Boolean(false), ExposeHeaders: []*string{ jsii.String("exposeHeaders"), }, MaxAge: cdk.Duration_Minutes(jsii.Number(30)), StatusCode: jsii.Number(123), }, DefaultIntegration: integration, DefaultMethodOptions: &MethodOptions{ ApiKeyRequired: jsii.Boolean(false), AuthorizationScopes: []*string{ jsii.String("authorizationScopes"), }, AuthorizationType: awscdk.Aws_apigateway.AuthorizationType_NONE, Authorizer: authorizer, MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]iModel{ "responseModelsKey": model, }, ResponseParameters: map[string]*bool{ "responseParametersKey": jsii.Boolean(false), }, }, }, OperationName: jsii.String("operationName"), RequestModels: map[string]*iModel{ "requestModelsKey": model, }, RequestParameters: map[string]*bool{ "requestParametersKey": jsii.Boolean(false), }, RequestValidator: requestValidator, RequestValidatorOptions: &RequestValidatorOptions{ RequestValidatorName: jsii.String("requestValidatorName"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), }, }, }
type QuotaSettings ¶
type QuotaSettings struct { // The maximum number of requests that users can make within the specified time period. // Default: none. // Limit *float64 `field:"optional" json:"limit" yaml:"limit"` // For the initial time period, the number of requests to subtract from the specified limit. // Default: none. // Offset *float64 `field:"optional" json:"offset" yaml:"offset"` // The time period for which the maximum limit of requests applies. // Default: none. // Period Period `field:"optional" json:"period" yaml:"period"` }
Specifies the maximum number of requests that clients can make to API Gateway APIs.
Example:
var api restApi key := apigateway.NewRateLimitedApiKey(this, jsii.String("rate-limited-api-key"), &RateLimitedApiKeyProps{ CustomerId: jsii.String("hello-customer"), Stages: []iStage{ api.DeploymentStage, }, Quota: &QuotaSettings{ Limit: jsii.Number(10000), Period: apigateway.Period_MONTH, }, })
type RateLimitedApiKey ¶
type RateLimitedApiKey interface { awscdk.Resource IApiKey // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The API key ARN. KeyArn() *string // The API key ID. KeyId() *string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Permits the IAM principal all read operations through this key. GrantRead(grantee awsiam.IGrantable) awsiam.Grant // Permits the IAM principal all read and write operations through this key. GrantReadWrite(grantee awsiam.IGrantable) awsiam.Grant // Permits the IAM principal all write operations through this key. GrantWrite(grantee awsiam.IGrantable) awsiam.Grant // Returns a string representation of this construct. ToString() *string }
An API Gateway ApiKey, for which a rate limiting configuration can be specified.
Example:
var api restApi key := apigateway.NewRateLimitedApiKey(this, jsii.String("rate-limited-api-key"), &RateLimitedApiKeyProps{ CustomerId: jsii.String("hello-customer"), Stages: []iStage{ api.DeploymentStage, }, Quota: &QuotaSettings{ Limit: jsii.Number(10000), Period: apigateway.Period_MONTH, }, })
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // A name for the API key. // // If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the API key name. // Default: automically generated name. // ApiKeyName *string `field:"optional" json:"apiKeyName" yaml:"apiKeyName"` // A description of the purpose of the API key. // Default: none. // Description *string `field:"optional" json:"description" yaml:"description"` // The value of the API key. // // Must be at least 20 characters long. // Default: none. // Value *string `field:"optional" json:"value" yaml:"value"` // An AWS Marketplace customer identifier to use when integrating with the AWS SaaS Marketplace. // Default: none. // CustomerId *string `field:"optional" json:"customerId" yaml:"customerId"` // Indicates whether the API key can be used by clients. // Default: true. // Enabled *bool `field:"optional" json:"enabled" yaml:"enabled"` // Specifies whether the key identifier is distinct from the created API key value. // Default: false. // GenerateDistinctId *bool `field:"optional" json:"generateDistinctId" yaml:"generateDistinctId"` // A list of resources this api key is associated with. // Default: none. // // Deprecated: - use `stages` instead. Resources *[]IRestApi `field:"optional" json:"resources" yaml:"resources"` // A list of Stages this api key is associated with. // Default: - the api key is not associated with any stages. // Stages *[]IStage `field:"optional" json:"stages" yaml:"stages"` // API Stages to be associated with the RateLimitedApiKey. // Default: none. // ApiStages *[]*UsagePlanPerApiStage `field:"optional" json:"apiStages" yaml:"apiStages"` // Number of requests clients can make in a given time period. // Default: none. // Quota *QuotaSettings `field:"optional" json:"quota" yaml:"quota"` // Overall throttle settings for the API. // Default: none. // Throttle *ThrottleSettings `field:"optional" json:"throttle" yaml:"throttle"` }
RateLimitedApiKey properties.
Example:
var api restApi key := apigateway.NewRateLimitedApiKey(this, jsii.String("rate-limited-api-key"), &RateLimitedApiKeyProps{ CustomerId: jsii.String("hello-customer"), Stages: []iStage{ api.DeploymentStage, }, Quota: &QuotaSettings{ Limit: jsii.Number(10000), Period: apigateway.Period_MONTH, }, })
type RequestAuthorizer ¶
type RequestAuthorizer interface { Authorizer IAuthorizer // The authorization type of this authorizer. AuthorizationType() AuthorizationType // The ARN of the authorizer to be used in permission policies, such as IAM and resource-based grants. AuthorizerArn() *string // The id of the authorizer. AuthorizerId() *string AuthorizerProps() *CfnAuthorizerProps // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The Lambda function handler that this authorizer uses. Handler() awslambda.IFunction // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string RestApiId() *string SetRestApiId(val *string) // The IAM role that the API Gateway service assumes while invoking the Lambda function. Role() awsiam.IRole // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a token that resolves to the Rest Api Id at the time of synthesis. // // Throws an error, during token resolution, if no RestApi is attached to this authorizer. LazyRestApiId() *string // Sets up the permissions necessary for the API Gateway service to invoke the Lambda function. SetupPermissions() // Returns a string representation of this construct. 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.
Example:
var authFn function var books resource auth := apigateway.NewRequestAuthorizer(this, jsii.String("booksAuthorizer"), &RequestAuthorizerProps{ Handler: authFn, IdentitySources: []*string{ apigateway.IdentitySource_Header(jsii.String("Authorization")), }, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, })
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](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html) // and [output specification](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html). Handler awslambda.IFunction `field:"required" 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'. // Default: - A resource policy is added to the Lambda function allowing apigateway.amazonaws.com to invoke the function. // AssumeRole awsiam.IRole `field:"optional" json:"assumeRole" yaml:"assumeRole"` // An optional human friendly name for the authorizer. // // Note that, this is not the primary identifier of the authorizer. // Default: - the unique construct ID. // AuthorizerName *string `field:"optional" json:"authorizerName" yaml:"authorizerName"` // How long APIGateway should cache the results. // // Max 1 hour. // Disable caching by setting this to 0. // Default: - Duration.minutes(5) // ResultsCacheTtl awscdk.Duration `field:"optional" 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('Authorization')`. // // 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/latest/api/API_CreateAuthorizer.html#apigw-CreateAuthorizer-request-identitySource // IdentitySources *[]*string `field:"required" json:"identitySources" yaml:"identitySources"` }
Properties for RequestAuthorizer.
Example:
var authFn function var books resource auth := apigateway.NewRequestAuthorizer(this, jsii.String("booksAuthorizer"), &RequestAuthorizerProps{ Handler: authFn, IdentitySources: []*string{ apigateway.IdentitySource_Header(jsii.String("Authorization")), }, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, })
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. // Default: false. // AccountId *bool `field:"optional" 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. // Default: false. // ApiId *bool `field:"optional" 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. // Default: false. // ApiKey *bool `field:"optional" 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. // Default: false. // AuthorizerPrincipalId *bool `field:"optional" 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. // Default: false. // Caller *bool `field:"optional" 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. // Default: false. // CognitoAuthenticationProvider *bool `field:"optional" 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. // Default: false. // CognitoAuthenticationType *bool `field:"optional" 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. // Default: false. // CognitoIdentityId *bool `field:"optional" 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. // Default: false. // CognitoIdentityPoolId *bool `field:"optional" 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. // Default: false. // HttpMethod *bool `field:"optional" json:"httpMethod" yaml:"httpMethod"` // Represents the information of $context.requestId. // // Whether the ID for the request should be included in the request context. // Default: false. // RequestId *bool `field:"optional" 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. // Default: false. // ResourceId *bool `field:"optional" json:"resourceId" yaml:"resourceId"` // Represents the information of $context.resourcePath. // // Whether the path to the resource should be included in the request context. // Default: false. // ResourcePath *bool `field:"optional" 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. // Default: false. // SourceIp *bool `field:"optional" 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. // Default: false. // Stage *bool `field:"optional" 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. // Default: false. // User *bool `field:"optional" 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. // Default: false. // UserAgent *bool `field:"optional" 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. // Default: false. // UserArn *bool `field:"optional" json:"userArn" yaml:"userArn"` }
Configure what must be included in the `requestContext`.
More details can be found at mapping templates documentation.
Example:
apigateway.NewStepFunctionsRestApi(this, jsii.String("StepFunctionsRestApi"), &StepFunctionsRestApiProps{ StateMachine: machine, Headers: jsii.Boolean(true), Path: jsii.Boolean(false), Querystring: jsii.Boolean(false), Authorizer: jsii.Boolean(false), RequestContext: &RequestContext{ Caller: jsii.Boolean(true), User: jsii.Boolean(true), }, })
type RequestValidator ¶
type RequestValidator interface { awscdk.Resource IRequestValidator // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // ID of the request validator, such as abc123. RequestValidatorId() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var restApi restApi requestValidator := awscdk.Aws_apigateway.NewRequestValidator(this, jsii.String("MyRequestValidator"), &RequestValidatorProps{ RestApi: restApi, // the properties below are optional RequestValidatorName: jsii.String("requestValidatorName"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), })
func NewRequestValidator ¶
func NewRequestValidator(scope constructs.Construct, id *string, props *RequestValidatorProps) RequestValidator
type RequestValidatorOptions ¶
type RequestValidatorOptions struct { // The name of this request validator. // Default: None. // RequestValidatorName *string `field:"optional" json:"requestValidatorName" yaml:"requestValidatorName"` // Indicates whether to validate the request body according to the configured schema for the targeted API and method. // Default: false. // ValidateRequestBody *bool `field:"optional" json:"validateRequestBody" yaml:"validateRequestBody"` // Indicates whether to validate request parameters. // Default: false. // ValidateRequestParameters *bool `field:"optional" json:"validateRequestParameters" yaml:"validateRequestParameters"` }
Example:
var integration lambdaIntegration var resource resource var responseModel model var errorResponseModel model resource.AddMethod(jsii.String("GET"), integration, &MethodOptions{ // We can mark the parameters as required RequestParameters: map[string]*bool{ "method.request.querystring.who": jsii.Boolean(true), }, // we can set request validator options like below RequestValidatorOptions: &RequestValidatorOptions{ RequestValidatorName: jsii.String("test-validator"), ValidateRequestBody: jsii.Boolean(true), ValidateRequestParameters: jsii.Boolean(false), }, MethodResponses: []methodResponse{ &methodResponse{ // Successful response from the integration StatusCode: jsii.String("200"), // Define what parameters are allowed or not ResponseParameters: map[string]*bool{ "method.response.header.Content-Type": jsii.Boolean(true), "method.response.header.Access-Control-Allow-Origin": jsii.Boolean(true), "method.response.header.Access-Control-Allow-Credentials": jsii.Boolean(true), }, // Validate the schema on the response ResponseModels: map[string]iModel{ "application/json": responseModel, }, }, &methodResponse{ // Same thing for the error responses StatusCode: jsii.String("400"), ResponseParameters: map[string]*bool{ "method.response.header.Content-Type": jsii.Boolean(true), "method.response.header.Access-Control-Allow-Origin": jsii.Boolean(true), "method.response.header.Access-Control-Allow-Credentials": jsii.Boolean(true), }, ResponseModels: map[string]*iModel{ "application/json": errorResponseModel, }, }, }, })
type RequestValidatorProps ¶
type RequestValidatorProps struct { // The name of this request validator. // Default: None. // RequestValidatorName *string `field:"optional" json:"requestValidatorName" yaml:"requestValidatorName"` // Indicates whether to validate the request body according to the configured schema for the targeted API and method. // Default: false. // ValidateRequestBody *bool `field:"optional" json:"validateRequestBody" yaml:"validateRequestBody"` // Indicates whether to validate request parameters. // Default: false. // ValidateRequestParameters *bool `field:"optional" 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 `field:"required" json:"restApi" yaml:"restApi"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var restApi restApi requestValidatorProps := &RequestValidatorProps{ RestApi: restApi, // the properties below are optional RequestValidatorName: jsii.String("requestValidatorName"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), }
type Resource ¶
type Resource interface { ResourceBase // 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 environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // The parent of this resource or undefined for the root resource. ParentResource() IResource // The full path of this resource. Path() *string // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of the resource. ResourceId() *string // The stack in which this resource is defined. Stack() awscdk.Stack // 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. AddCorsPreflight(options *CorsOptions) Method // Defines a new method for this resource. AddMethod(httpMethod *string, integration 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. AddResource(pathPart *string, options *ResourceOptions) Resource // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Retrieves a child resource by path part. GetResource(pathPart *string) IResource // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // 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. ResourceForPath(path *string) Resource // Returns a string representation of this construct. ToString() *string }
Example:
var booksBackend lambdaIntegration api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DefaultIntegration: booksBackend, }) books := api.Root.AddResource(jsii.String("books")) books.AddMethod(jsii.String("GET")) // integrated with `booksBackend` books.AddMethod(jsii.String("POST")) // integrated with `booksBackend` book := books.AddResource(jsii.String("{book_id}")) book.AddMethod(jsii.String("GET"))
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 `field:"required" json:"path" yaml:"path"` // The ID of the resource. ResourceId *string `field:"required" json:"resourceId" yaml:"resourceId"` // The rest API that this resource is part of. RestApi IRestApi `field:"required" json:"restApi" yaml:"restApi"` }
Attributes that can be specified when importing a Resource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var restApi restApi resourceAttributes := &ResourceAttributes{ Path: jsii.String("path"), ResourceId: jsii.String("resourceId"), RestApi: restApi, }
type ResourceBase ¶
type ResourceBase interface { awscdk.Resource IResource // 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 environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // The parent of this resource or undefined for the root resource. ParentResource() IResource // The full path of this resource. Path() *string // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of the resource. ResourceId() *string // The stack in which this resource is defined. Stack() awscdk.Stack // 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. AddCorsPreflight(options *CorsOptions) Method // Defines a new method for this resource. AddMethod(httpMethod *string, integration 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. AddResource(pathPart *string, options *ResourceOptions) Resource // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Retrieves a child resource by path part. GetResource(pathPart *string) IResource // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // 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. ResourceForPath(path *string) Resource // Returns a string representation of this construct. 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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` }
Example:
var resource resource subtree := resource.AddResource(jsii.String("subtree"), &ResourceOptions{ DefaultCorsPreflightOptions: &CorsOptions{ AllowOrigins: []*string{ jsii.String("https://amazon.com"), }, }, })
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // The parent resource of this resource. // // You can either pass another // `Resource` object or a `RestApi` object here. Parent IResource `field:"required" json:"parent" yaml:"parent"` // A path name for the resource. PathPart *string `field:"required" json:"pathPart" yaml:"pathPart"` }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var authorizer authorizer var integration integration var model model var requestValidator requestValidator var resource resource resourceProps := &ResourceProps{ Parent: resource, PathPart: jsii.String("pathPart"), // the properties below are optional DefaultCorsPreflightOptions: &CorsOptions{ AllowOrigins: []*string{ jsii.String("allowOrigins"), }, // the properties below are optional AllowCredentials: jsii.Boolean(false), AllowHeaders: []*string{ jsii.String("allowHeaders"), }, AllowMethods: []*string{ jsii.String("allowMethods"), }, DisableCache: jsii.Boolean(false), ExposeHeaders: []*string{ jsii.String("exposeHeaders"), }, MaxAge: cdk.Duration_Minutes(jsii.Number(30)), StatusCode: jsii.Number(123), }, DefaultIntegration: integration, DefaultMethodOptions: &MethodOptions{ ApiKeyRequired: jsii.Boolean(false), AuthorizationScopes: []*string{ jsii.String("authorizationScopes"), }, AuthorizationType: awscdk.Aws_apigateway.AuthorizationType_NONE, Authorizer: authorizer, MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ResponseModels: map[string]iModel{ "responseModelsKey": model, }, ResponseParameters: map[string]*bool{ "responseParametersKey": jsii.Boolean(false), }, }, }, OperationName: jsii.String("operationName"), RequestModels: map[string]*iModel{ "requestModelsKey": model, }, RequestParameters: map[string]*bool{ "requestParametersKey": jsii.Boolean(false), }, RequestValidator: requestValidator, RequestValidatorOptions: &RequestValidatorOptions{ RequestValidatorName: jsii.String("requestValidatorName"), ValidateRequestBody: jsii.Boolean(false), ValidateRequestParameters: jsii.Boolean(false), }, }, }
type ResponseType ¶
type ResponseType interface { // Valid value of response type. ResponseType() *string }
Supported types of gateway responses.
Example:
api := apigateway.NewRestApi(this, jsii.String("books-api")) api.AddGatewayResponse(jsii.String("test-response"), &GatewayResponseOptions{ Type: apigateway.ResponseType_ACCESS_DENIED(), StatusCode: jsii.String("500"), ResponseHeaders: map[string]*string{ // Note that values must be enclosed within a pair of single quotes "Access-Control-Allow-Origin": jsii.String("'test.com'"), "test-key": jsii.String("'test-value'"), }, Templates: map[string]*string{ "application/json": jsii.String("{ \"message\": $context.error.messageString, \"statusCode\": \"488\", \"type\": \"$context.error.responseType\" }"), }, })
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) // API Gateway stage that points to the latest deployment (if defined). // // If `deploy` is disabled, you will need to explicitly assign this value in order to // set up integrations. DeploymentStage() Stage SetDeploymentStage(val Stage) // The first domain name mapped to this API, if defined through the `domainName` configuration prop, or added via `addDomainName`. DomainName() DomainName // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // API Gateway deployment that represents the latest changes of the API. // // This resource will be automatically updated every time the REST API model changes. // This will be undefined if `deploy` is false. LatestDeployment() Deployment // The list of methods bound to this RestApi. Methods() *[]Method // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of this API Gateway RestApi. RestApiId() *string // A human friendly name for this Rest API. // // Note that this is different from `restApiId`. RestApiName() *string // The resource ID of the root resource. RestApiRootResourceId() *string // Represents the root resource of this API endpoint ('/'). // // Resources and Methods are added to this resource. Root() IResource // The stack in which this resource is defined. Stack() awscdk.Stack // The deployed root URL of this REST API. Url() *string // Add an ApiKey to the deploymentStage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // Defines an API Gateway domain name and maps it to this API. AddDomainName(id *string, options *DomainNameOptions) DomainName // Adds a new gateway response. AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse // Adds a new model. AddModel(id *string, props *ModelOptions) Model // Adds a new request validator. AddRequestValidator(id *string, props *RequestValidatorOptions) RequestValidator // Adds a usage plan. AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Gets the "execute-api" ARN. ArnForExecuteApi(method *string, path *string, stage *string) *string GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns the given named metric for this API. Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // // Default: sum over 5 minutes. MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // // Default: sum over 5 minutes. MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // // Default: sum over 5 minutes. MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // // Default: sample count over 5 minutes. MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // // Default: average over 5 minutes. MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // // Default: average over 5 minutes. MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // // Default: sum over 5 minutes. MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string // Returns the URL for an HTTP path. // // Fails if `deploymentStage` is not set either by `deploy` or explicitly. 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.
Example:
stateMachine := stepfunctions.NewStateMachine(this, jsii.String("MyStateMachine"), &StateMachineProps{ StateMachineType: stepfunctions.StateMachineType_EXPRESS, Definition: stepfunctions.Chain_Start(stepfunctions.NewPass(this, jsii.String("Pass"))), }) api := apigateway.NewRestApi(this, jsii.String("Api"), &RestApiProps{ RestApiName: jsii.String("MyApi"), }) api.Root.AddMethod(jsii.String("GET"), apigateway.StepFunctionsIntegration_StartExecution(stateMachine))
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 `field:"required" json:"restApiId" yaml:"restApiId"` // The resource ID of the root resource. RootResourceId *string `field:"required" json:"rootResourceId" yaml:"rootResourceId"` // The name of the API Gateway RestApi. // Default: - ID of the RestApi construct. // RestApiName *string `field:"optional" json:"restApiName" yaml:"restApiName"` }
Attributes that can be specified when importing a RestApi.
Example:
import "github.com/aws/constructs-go/constructs" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" /** * This file showcases how to split up a RestApi's Resources and Methods across nested stacks. * * The root stack 'RootStack' first defines a RestApi. * Two nested stacks BooksStack and PetsStack, create corresponding Resources '/books' and '/pets'. * They are then deployed to a 'prod' Stage via a third nested stack - DeployStack. * * To verify this worked, go to the APIGateway */ type rootStack struct { stack } func newRootStack(scope construct) *rootStack { this := &rootStack{} newStack_Override(this, scope, jsii.String("integ-restapi-import-RootStack")) restApi := awscdk.NewRestApi(this, jsii.String("RestApi"), &RestApiProps{ CloudWatchRole: jsii.Boolean(true), Deploy: jsii.Boolean(false), }) restApi.Root.AddMethod(jsii.String("ANY")) petsStack := NewPetsStack(this, &resourceNestedStackProps{ restApiId: restApi.RestApiId, rootResourceId: restApi.RestApiRootResourceId, }) booksStack := NewBooksStack(this, &resourceNestedStackProps{ restApiId: restApi.*RestApiId, rootResourceId: restApi.*RestApiRootResourceId, }) NewDeployStack(this, &deployStackProps{ restApiId: restApi.*RestApiId, methods: petsStack.methods.concat(booksStack.methods), }) awscdk.NewCfnOutput(this, jsii.String("PetsURL"), &CfnOutputProps{ Value: fmt.Sprintf("https://%v.execute-api.%v.amazonaws.com/prod/pets", restApi.*RestApiId, this.Region), }) awscdk.NewCfnOutput(this, jsii.String("BooksURL"), &CfnOutputProps{ Value: fmt.Sprintf("https://%v.execute-api.%v.amazonaws.com/prod/books", restApi.*RestApiId, this.*Region), }) return this } type resourceNestedStackProps struct { nestedStackProps restApiId *string rootResourceId *string } type petsStack struct { nestedStack methods []method } func newPetsStack(scope construct, props resourceNestedStackProps) *petsStack { this := &petsStack{} newNestedStack_Override(this, scope, jsii.String("integ-restapi-import-PetsStack"), props) api := awscdk.RestApi_FromRestApiAttributes(this, jsii.String("RestApi"), &RestApiAttributes{ RestApiId: props.restApiId, RootResourceId: props.rootResourceId, }) method := api.Root.AddResource(jsii.String("pets")).AddMethod(jsii.String("GET"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, }) this.methods.push(method) return this } type booksStack struct { nestedStack methods []*method } func newBooksStack(scope construct, props resourceNestedStackProps) *booksStack { this := &booksStack{} newNestedStack_Override(this, scope, jsii.String("integ-restapi-import-BooksStack"), props) api := awscdk.RestApi_FromRestApiAttributes(this, jsii.String("RestApi"), &RestApiAttributes{ RestApiId: props.restApiId, RootResourceId: props.rootResourceId, }) method := api.Root.AddResource(jsii.String("books")).AddMethod(jsii.String("GET"), awscdk.NewMockIntegration(&IntegrationOptions{ IntegrationResponses: []*integrationResponse{ &integrationResponse{ StatusCode: jsii.String("200"), }, }, PassthroughBehavior: awscdk.PassthroughBehavior_NEVER, RequestTemplates: map[string]*string{ "application/json": jsii.String("{ \"statusCode\": 200 }"), }, }), &MethodOptions{ MethodResponses: []*methodResponse{ &methodResponse{ StatusCode: jsii.String("200"), }, }, }) this.methods.push(method) return this } type deployStackProps struct { nestedStackProps restApiId *string methods []*method } type deployStack struct { nestedStack } func newDeployStack(scope construct, props deployStackProps) *deployStack { this := &deployStack{} newNestedStack_Override(this, scope, jsii.String("integ-restapi-import-DeployStack"), props) deployment := awscdk.NewDeployment(this, jsii.String("Deployment"), &DeploymentProps{ Api: awscdk.RestApi_FromRestApiId(this, jsii.String("RestApi"), props.restApiId), }) if *props.methods { for _, method := range *props.methods { deployment.Node.AddDependency(method) } } awscdk.NewStage(this, jsii.String("Stage"), &StageProps{ Deployment: Deployment, }) return this } NewRootStack(awscdk.NewApp())
type RestApiBase ¶
type RestApiBase interface { awscdk.Resource IRestApi CloudWatchAccount() CfnAccount SetCloudWatchAccount(val CfnAccount) // API Gateway stage that points to the latest deployment (if defined). // // If `deploy` is disabled, you will need to explicitly assign this value in order to // set up integrations. DeploymentStage() Stage SetDeploymentStage(val Stage) // The first domain name mapped to this API, if defined through the `domainName` configuration prop, or added via `addDomainName`. DomainName() DomainName // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // API Gateway deployment that represents the latest changes of the API. // // This resource will be automatically updated every time the REST API model changes. // This will be undefined if `deploy` is false. LatestDeployment() Deployment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of this API Gateway RestApi. RestApiId() *string // A human friendly name for this Rest API. // // Note that this is different from `restApiId`. RestApiName() *string // The resource ID of the root resource. RestApiRootResourceId() *string // Represents the root resource of this API endpoint ('/'). // // Resources and Methods are added to this resource. Root() IResource // The stack in which this resource is defined. Stack() awscdk.Stack // The deployed root URL of this REST API. Url() *string // Add an ApiKey to the deploymentStage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // Defines an API Gateway domain name and maps it to this API. AddDomainName(id *string, options *DomainNameOptions) DomainName // Adds a new gateway response. AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse // Adds a usage plan. AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Gets the "execute-api" ARN. ArnForExecuteApi(method *string, path *string, stage *string) *string GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns the given named metric for this API. Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // // Default: sum over 5 minutes. MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // // Default: sum over 5 minutes. MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // // Default: sum over 5 minutes. MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // // Default: sample count over 5 minutes. MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // // Default: average over 5 minutes. MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // // Default: average over 5 minutes. MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // // Default: sum over 5 minutes. MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string // Returns the URL for an HTTP path. // // Fails if `deploymentStage` is not set either by `deploy` or explicitly. UrlForPath(path *string) *string }
Base implementation that are common to various implementations of IRestApi.
Example:
var api restApi cloudfront.NewDistribution(this, jsii.String("Distribution"), &DistributionProps{ DefaultBehavior: &BehaviorOptions{ Origin: origins.NewRestApiOrigin(api), }, })
type RestApiBaseProps ¶
type RestApiBaseProps struct { // Automatically configure an AWS CloudWatch role for API Gateway. // Default: - false if `@aws-cdk/aws-apigateway:disableCloudWatchRole` is enabled, true otherwise. // CloudWatchRole *bool `field:"optional" json:"cloudWatchRole" yaml:"cloudWatchRole"` // The removal policy applied to the AWS CloudWatch role when this resource is removed from the application. // // Requires `cloudWatchRole` to be enabled. // Default: - RemovalPolicy.RETAIN // CloudWatchRoleRemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"cloudWatchRoleRemovalPolicy" yaml:"cloudWatchRoleRemovalPolicy"` // 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. // Default: true. // Deploy *bool `field:"optional" 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. // Default: - Based on defaults of `StageOptions`. // DeployOptions *StageOptions `field:"optional" json:"deployOptions" yaml:"deployOptions"` // A description of the RestApi construct. // Default: - 'Automatically created by the RestApi construct'. // Description *string `field:"optional" json:"description" yaml:"description"` // 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 // // Default: false. // DisableExecuteApiEndpoint *bool `field:"optional" json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"` // Configure a custom domain name and map it to this API. // Default: - no domain name is defined, use `addDomainName` or directly define a `DomainName`. // DomainName *DomainNameOptions `field:"optional" json:"domainName" yaml:"domainName"` // Export name for the CfnOutput containing the API endpoint. // Default: - when no export name is given, output will be created without export. // EndpointExportName *string `field:"optional" json:"endpointExportName" yaml:"endpointExportName"` // A list of the endpoint types of the API. // // Use this property when creating // an API. // Default: EndpointType.EDGE // EndpointTypes *[]EndpointType `field:"optional" json:"endpointTypes" yaml:"endpointTypes"` // Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource. // Default: false. // FailOnWarnings *bool `field:"optional" json:"failOnWarnings" yaml:"failOnWarnings"` // Custom header parameters for the request. // See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html // // Default: - No parameters. // Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"` // A policy document that contains the permissions for this RestApi. // Default: - No policy. // Policy awsiam.PolicyDocument `field:"optional" json:"policy" yaml:"policy"` // A name for the API Gateway RestApi resource. // Default: - ID of the RestApi construct. // RestApiName *string `field:"optional" 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. // Default: false. // RetainDeployments *bool `field:"optional" json:"retainDeployments" yaml:"retainDeployments"` }
Represents the props that all Rest APIs share.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var accessLogDestination iAccessLogDestination var accessLogFormat accessLogFormat var bucket bucket var certificate certificate var policyDocument policyDocument restApiBaseProps := &RestApiBaseProps{ CloudWatchRole: jsii.Boolean(false), CloudWatchRoleRemovalPolicy: cdk.RemovalPolicy_DESTROY, Deploy: jsii.Boolean(false), DeployOptions: &StageOptions{ AccessLogDestination: accessLogDestination, AccessLogFormat: accessLogFormat, CacheClusterEnabled: jsii.Boolean(false), CacheClusterSize: jsii.String("cacheClusterSize"), CacheDataEncrypted: jsii.Boolean(false), CacheTtl: cdk.Duration_Minutes(jsii.Number(30)), CachingEnabled: jsii.Boolean(false), ClientCertificateId: jsii.String("clientCertificateId"), DataTraceEnabled: jsii.Boolean(false), Description: jsii.String("description"), DocumentationVersion: jsii.String("documentationVersion"), LoggingLevel: awscdk.Aws_apigateway.MethodLoggingLevel_OFF, MethodOptions: map[string]methodDeploymentOptions{ "methodOptionsKey": &methodDeploymentOptions{ "cacheDataEncrypted": jsii.Boolean(false), "cacheTtl": cdk.Duration_*Minutes(jsii.Number(30)), "cachingEnabled": jsii.Boolean(false), "dataTraceEnabled": jsii.Boolean(false), "loggingLevel": awscdk.*Aws_apigateway.MethodLoggingLevel_OFF, "metricsEnabled": jsii.Boolean(false), "throttlingBurstLimit": jsii.Number(123), "throttlingRateLimit": jsii.Number(123), }, }, MetricsEnabled: jsii.Boolean(false), StageName: jsii.String("stageName"), ThrottlingBurstLimit: jsii.Number(123), ThrottlingRateLimit: jsii.Number(123), TracingEnabled: jsii.Boolean(false), Variables: map[string]*string{ "variablesKey": jsii.String("variables"), }, }, Description: jsii.String("description"), DisableExecuteApiEndpoint: jsii.Boolean(false), DomainName: &DomainNameOptions{ Certificate: certificate, DomainName: jsii.String("domainName"), // the properties below are optional BasePath: jsii.String("basePath"), EndpointType: awscdk.*Aws_apigateway.EndpointType_EDGE, Mtls: &MTLSConfig{ Bucket: bucket, Key: jsii.String("key"), // the properties below are optional Version: jsii.String("version"), }, SecurityPolicy: awscdk.*Aws_apigateway.SecurityPolicy_TLS_1_0, }, EndpointExportName: jsii.String("endpointExportName"), EndpointTypes: []endpointType{ awscdk.*Aws_apigateway.*endpointType_EDGE, }, FailOnWarnings: jsii.Boolean(false), Parameters: map[string]*string{ "parametersKey": jsii.String("parameters"), }, Policy: policyDocument, RestApiName: jsii.String("restApiName"), RetainDeployments: jsii.Boolean(false), }
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // Automatically configure an AWS CloudWatch role for API Gateway. // Default: - false if `@aws-cdk/aws-apigateway:disableCloudWatchRole` is enabled, true otherwise. // CloudWatchRole *bool `field:"optional" json:"cloudWatchRole" yaml:"cloudWatchRole"` // The removal policy applied to the AWS CloudWatch role when this resource is removed from the application. // // Requires `cloudWatchRole` to be enabled. // Default: - RemovalPolicy.RETAIN // CloudWatchRoleRemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"cloudWatchRoleRemovalPolicy" yaml:"cloudWatchRoleRemovalPolicy"` // 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. // Default: true. // Deploy *bool `field:"optional" 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. // Default: - Based on defaults of `StageOptions`. // DeployOptions *StageOptions `field:"optional" json:"deployOptions" yaml:"deployOptions"` // A description of the RestApi construct. // Default: - 'Automatically created by the RestApi construct'. // Description *string `field:"optional" json:"description" yaml:"description"` // 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 // // Default: false. // DisableExecuteApiEndpoint *bool `field:"optional" json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"` // Configure a custom domain name and map it to this API. // Default: - no domain name is defined, use `addDomainName` or directly define a `DomainName`. // DomainName *DomainNameOptions `field:"optional" json:"domainName" yaml:"domainName"` // Export name for the CfnOutput containing the API endpoint. // Default: - when no export name is given, output will be created without export. // EndpointExportName *string `field:"optional" json:"endpointExportName" yaml:"endpointExportName"` // A list of the endpoint types of the API. // // Use this property when creating // an API. // Default: EndpointType.EDGE // EndpointTypes *[]EndpointType `field:"optional" json:"endpointTypes" yaml:"endpointTypes"` // Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource. // Default: false. // FailOnWarnings *bool `field:"optional" json:"failOnWarnings" yaml:"failOnWarnings"` // Custom header parameters for the request. // See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html // // Default: - No parameters. // Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"` // A policy document that contains the permissions for this RestApi. // Default: - No policy. // Policy awsiam.PolicyDocument `field:"optional" json:"policy" yaml:"policy"` // A name for the API Gateway RestApi resource. // Default: - ID of the RestApi construct. // RestApiName *string `field:"optional" 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. // Default: false. // RetainDeployments *bool `field:"optional" json:"retainDeployments" yaml:"retainDeployments"` // The source of the API key for metering requests according to a usage plan. // Default: - Metering is disabled. // ApiKeySourceType ApiKeySourceType `field:"optional" 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". // Default: - RestApi supports only UTF-8-encoded text payloads. // BinaryMediaTypes *[]*string `field:"optional" json:"binaryMediaTypes" yaml:"binaryMediaTypes"` // The ID of the API Gateway RestApi resource that you want to clone. // Default: - None. // CloneFrom IRestApi `field:"optional" json:"cloneFrom" yaml:"cloneFrom"` // 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 // // Default: EndpointType.EDGE // EndpointConfiguration *EndpointConfiguration `field:"optional" json:"endpointConfiguration" yaml:"endpointConfiguration"` // A Size(in bytes, kibibytes, mebibytes etc) 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. // Default: - Compression is disabled. // MinCompressionSize awscdk.Size `field:"optional" json:"minCompressionSize" yaml:"minCompressionSize"` // 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. // Default: - Compression is disabled. // // Deprecated: - superseded by `minCompressionSize`. MinimumCompressionSize *float64 `field:"optional" json:"minimumCompressionSize" yaml:"minimumCompressionSize"` }
Props to create a new instance of RestApi.
Example:
destinationBucket := s3.NewBucket(this, jsii.String("Bucket")) deliveryStreamRole := iam.NewRole(this, jsii.String("Role"), &RoleProps{ AssumedBy: iam.NewServicePrincipal(jsii.String("firehose.amazonaws.com")), }) stream := firehose.NewCfnDeliveryStream(this, jsii.String("MyStream"), &CfnDeliveryStreamProps{ DeliveryStreamName: jsii.String("amazon-apigateway-delivery-stream"), S3DestinationConfiguration: &S3DestinationConfigurationProperty{ BucketArn: destinationBucket.BucketArn, RoleArn: deliveryStreamRole.RoleArn, }, }) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewFirehoseLogDestination(stream), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, })
type S3ApiDefinition ¶
type S3ApiDefinition interface { ApiDefinition // Called when the specification is initialized to allow this object to bind to the stack, add resources and have fun. Bind(_scope constructs.Construct) *ApiDefinitionConfig // Called after the CFN RestApi resource has been created to allow the Api Definition to bind to it. // // Specifically it's required to allow assets to add // metadata for tooling like SAM CLI to be able to find their origins. BindAfterCreate(_scope constructs.Construct, _restApi IRestApi) }
OpenAPI specification from an S3 archive.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var bucket bucket s3ApiDefinition := awscdk.Aws_apigateway.NewS3ApiDefinition(bucket, jsii.String("key"), jsii.String("objectVersion"))
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 SagemakerIntegration ¶ added in v2.94.0
type SagemakerIntegration interface { AwsIntegration // Can be overridden by subclasses to allow the integration to interact with the method being integrated, access the REST API object, method ARNs, etc. Bind(method Method) *IntegrationConfig }
Integrates an AWS Sagemaker Endpoint to an API Gateway method.
Example:
var resource resource var endpoint iEndpoint resource.AddMethod(jsii.String("POST"), apigateway.NewSagemakerIntegration(endpoint))
func NewSagemakerIntegration ¶ added in v2.94.0
func NewSagemakerIntegration(endpoint awssagemaker.IEndpoint, options *SagemakerIntegrationOptions) SagemakerIntegration
type SagemakerIntegrationOptions ¶ added in v2.94.0
type SagemakerIntegrationOptions 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 `field:"optional" json:"cacheKeyParameters" yaml:"cacheKeyParameters"` // An API-specific tag group of related cached parameters. CacheNamespace *string `field:"optional" json:"cacheNamespace" yaml:"cacheNamespace"` // The type of network connection to the integration endpoint. // Default: - ConnectionType.VPC_LINK if `vpcLink` property is configured; ConnectionType.Internet otherwise. // ConnectionType ConnectionType `field:"optional" json:"connectionType" yaml:"connectionType"` // Specifies how to handle request payload content type conversions. // Default: none 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 ContentHandling `field:"optional" json:"contentHandling" yaml:"contentHandling"` // Requires that the caller's identity be passed through from the request. // Default: Caller identity is not passed through. // CredentialsPassthrough *bool `field:"optional" json:"credentialsPassthrough" yaml:"credentialsPassthrough"` // An IAM role that API Gateway assumes. // // Mutually exclusive with `credentialsPassThrough`. // Default: A role is not assumed. // CredentialsRole awsiam.IRole `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" json:"requestTemplates" yaml:"requestTemplates"` // The maximum amount of time an integration will run before it returns without a response. // // By default, the value must be between 50 milliseconds and 29 seconds. // The upper bound can be increased for regional and private Rest APIs only, // via a quota increase request for your acccount. // This increase might require a reduction in your account-level throttle quota limit. // // See {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html Amazon API Gateway quotas} for more details. // Default: Duration.seconds(29) // Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // The VpcLink used for the integration. // // Required if connectionType is VPC_LINK. VpcLink IVpcLink `field:"optional" json:"vpcLink" yaml:"vpcLink"` }
Options for SageMakerIntegration.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var role role var vpcLink vpcLink sagemakerIntegrationOptions := &SagemakerIntegrationOptions{ CacheKeyParameters: []*string{ jsii.String("cacheKeyParameters"), }, CacheNamespace: jsii.String("cacheNamespace"), ConnectionType: awscdk.Aws_apigateway.ConnectionType_INTERNET, ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, CredentialsPassthrough: jsii.Boolean(false), CredentialsRole: role, IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }, }, PassthroughBehavior: awscdk.*Aws_apigateway.PassthroughBehavior_WHEN_NO_MATCH, RequestParameters: map[string]*string{ "requestParametersKey": jsii.String("requestParameters"), }, RequestTemplates: map[string]*string{ "requestTemplatesKey": jsii.String("requestTemplates"), }, Timeout: cdk.Duration_Minutes(jsii.Number(30)), VpcLink: vpcLink, }
type SecurityPolicy ¶
type SecurityPolicy string
The minimum version of the SSL protocol that you want API Gateway to use for HTTPS connections.
Example:
var acmCertificateForExampleCom interface{} apigateway.NewDomainName(this, jsii.String("custom-domain"), &DomainNameProps{ DomainName: jsii.String("example.com"), Certificate: acmCertificateForExampleCom, EndpointType: apigateway.EndpointType_EDGE, // default is REGIONAL SecurityPolicy: apigateway.SecurityPolicy_TLS_1_2, })
const ( // Cipher suite TLS 1.0. SecurityPolicy_TLS_1_0 SecurityPolicy = "TLS_1_0" // Cipher suite TLS 1.2. SecurityPolicy_TLS_1_2 SecurityPolicy = "TLS_1_2" )
type SpecRestApi ¶
type SpecRestApi interface { RestApiBase CloudWatchAccount() CfnAccount SetCloudWatchAccount(val CfnAccount) // API Gateway stage that points to the latest deployment (if defined). // // If `deploy` is disabled, you will need to explicitly assign this value in order to // set up integrations. DeploymentStage() Stage SetDeploymentStage(val Stage) // The first domain name mapped to this API, if defined through the `domainName` configuration prop, or added via `addDomainName`. DomainName() DomainName // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // API Gateway deployment that represents the latest changes of the API. // // This resource will be automatically updated every time the REST API model changes. // This will be undefined if `deploy` is false. LatestDeployment() Deployment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of this API Gateway RestApi. RestApiId() *string // A human friendly name for this Rest API. // // Note that this is different from `restApiId`. RestApiName() *string // The resource ID of the root resource. RestApiRootResourceId() *string // Represents the root resource of this API endpoint ('/'). // // Resources and Methods are added to this resource. Root() IResource // The stack in which this resource is defined. Stack() awscdk.Stack // The deployed root URL of this REST API. Url() *string // Add an ApiKey to the deploymentStage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // Defines an API Gateway domain name and maps it to this API. AddDomainName(id *string, options *DomainNameOptions) DomainName // Adds a new gateway response. AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse // Adds a usage plan. AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Gets the "execute-api" ARN. ArnForExecuteApi(method *string, path *string, stage *string) *string GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns the given named metric for this API. Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // // Default: sum over 5 minutes. MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // // Default: sum over 5 minutes. MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // // Default: sum over 5 minutes. MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // // Default: sample count over 5 minutes. MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // // Default: average over 5 minutes. MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // // Default: average over 5 minutes. MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // // Default: sum over 5 minutes. MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string // Returns the URL for an HTTP path. // // Fails if `deploymentStage` is not set either by `deploy` or explicitly. UrlForPath(path *string) *string }
Represents a REST API in Amazon API Gateway, created with an OpenAPI specification.
Some properties normally accessible on.
Example:
var integration integration api := apigateway.NewSpecRestApi(this, jsii.String("books-api"), &SpecRestApiProps{ ApiDefinition: apigateway.ApiDefinition_FromAsset(jsii.String("path-to-file.json")), }) booksResource := api.Root.AddResource(jsii.String("books")) booksResource.AddMethod(jsii.String("GET"), integration)
See: `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.
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. // Default: - false if `@aws-cdk/aws-apigateway:disableCloudWatchRole` is enabled, true otherwise. // CloudWatchRole *bool `field:"optional" json:"cloudWatchRole" yaml:"cloudWatchRole"` // The removal policy applied to the AWS CloudWatch role when this resource is removed from the application. // // Requires `cloudWatchRole` to be enabled. // Default: - RemovalPolicy.RETAIN // CloudWatchRoleRemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"cloudWatchRoleRemovalPolicy" yaml:"cloudWatchRoleRemovalPolicy"` // 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. // Default: true. // Deploy *bool `field:"optional" 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. // Default: - Based on defaults of `StageOptions`. // DeployOptions *StageOptions `field:"optional" json:"deployOptions" yaml:"deployOptions"` // A description of the RestApi construct. // Default: - 'Automatically created by the RestApi construct'. // Description *string `field:"optional" json:"description" yaml:"description"` // 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 // // Default: false. // DisableExecuteApiEndpoint *bool `field:"optional" json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"` // Configure a custom domain name and map it to this API. // Default: - no domain name is defined, use `addDomainName` or directly define a `DomainName`. // DomainName *DomainNameOptions `field:"optional" json:"domainName" yaml:"domainName"` // Export name for the CfnOutput containing the API endpoint. // Default: - when no export name is given, output will be created without export. // EndpointExportName *string `field:"optional" json:"endpointExportName" yaml:"endpointExportName"` // A list of the endpoint types of the API. // // Use this property when creating // an API. // Default: EndpointType.EDGE // EndpointTypes *[]EndpointType `field:"optional" json:"endpointTypes" yaml:"endpointTypes"` // Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource. // Default: false. // FailOnWarnings *bool `field:"optional" json:"failOnWarnings" yaml:"failOnWarnings"` // Custom header parameters for the request. // See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html // // Default: - No parameters. // Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"` // A policy document that contains the permissions for this RestApi. // Default: - No policy. // Policy awsiam.PolicyDocument `field:"optional" json:"policy" yaml:"policy"` // A name for the API Gateway RestApi resource. // Default: - ID of the RestApi construct. // RestApiName *string `field:"optional" 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. // Default: false. // RetainDeployments *bool `field:"optional" 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 `field:"required" json:"apiDefinition" yaml:"apiDefinition"` // A Size(in bytes, kibibytes, mebibytes etc) 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. // Default: - Compression is disabled. // MinCompressionSize awscdk.Size `field:"optional" json:"minCompressionSize" yaml:"minCompressionSize"` }
Props to instantiate a new SpecRestApi.
Example:
var integration integration api := apigateway.NewSpecRestApi(this, jsii.String("books-api"), &SpecRestApiProps{ ApiDefinition: apigateway.ApiDefinition_FromAsset(jsii.String("path-to-file.json")), }) booksResource := api.Root.AddResource(jsii.String("books")) booksResource.AddMethod(jsii.String("GET"), integration)
type Stage ¶
type Stage interface { StageBase // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // RestApi to which this stage is associated. RestApi() IRestApi // The stack in which this resource is defined. Stack() awscdk.Stack // Returns the resource ARN for this stage:. // // arn:aws:apigateway:{region}::/restapis/{restApiId}/stages/{stageName} // // Note that this is separate from the execute-api ARN for methods and resources // within this stage. StageArn() *string // Name of this stage. StageName() *string // Add an ApiKey to this stage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns the given named metric for this stage. Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // Default: - sum over 5 minutes. // MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // Default: - sum over 5 minutes. // MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // Default: - sum over 5 minutes. // MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // Default: - sample count over 5 minutes. // MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // Default: - average over 5 minutes. // MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // Default: - average over 5 minutes. // MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // Default: - sum over 5 minutes. // MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string // Returns the invoke URL for a certain path. UrlForPath(path *string) *string }
Example:
// production stage prodLogGroup := logs.NewLogGroup(this, jsii.String("PrdLogs")) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewLogGroupLogDestination(prodLogGroup), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, }) deployment := apigateway.NewDeployment(this, jsii.String("Deployment"), &DeploymentProps{ Api: Api, }) // development stage devLogGroup := logs.NewLogGroup(this, jsii.String("DevLogs")) apigateway.NewStage(this, jsii.String("dev"), &StageProps{ Deployment: Deployment, AccessLogDestination: apigateway.NewLogGroupLogDestination(devLogGroup), AccessLogFormat: apigateway.AccessLogFormat_*JsonWithStandardFields(&JsonWithStandardFieldProps{ Caller: jsii.Boolean(false), HttpMethod: jsii.Boolean(true), Ip: jsii.Boolean(true), Protocol: jsii.Boolean(true), RequestTime: jsii.Boolean(true), ResourcePath: jsii.Boolean(true), ResponseLength: jsii.Boolean(true), Status: jsii.Boolean(true), User: jsii.Boolean(true), }), })
func NewStage ¶
func NewStage(scope constructs.Construct, id *string, props *StageProps) Stage
type StageAttributes ¶ added in v2.46.0
type StageAttributes struct { // The RestApi that the stage belongs to. RestApi IRestApi `field:"required" json:"restApi" yaml:"restApi"` // The name of the stage. StageName *string `field:"required" json:"stageName" yaml:"stageName"` }
The attributes of an imported Stage.
Example:
var restApi iRestApi importedStage := apigateway.Stage_FromStageAttributes(this, jsii.String("imported-stage"), &StageAttributes{ StageName: jsii.String("myStageName"), RestApi: RestApi, }) importedStage.AddApiKey(jsii.String("MyApiKey"))
type StageBase ¶ added in v2.46.0
type StageBase interface { awscdk.Resource IStage // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // RestApi to which this stage is associated. RestApi() IRestApi // The stack in which this resource is defined. Stack() awscdk.Stack // Returns the resource ARN for this stage:. // // arn:aws:apigateway:{region}::/restapis/{restApiId}/stages/{stageName} // // Note that this is separate from the execute-api ARN for methods and resources // within this stage. StageArn() *string // Name of this stage. StageName() *string // Add an ApiKey to this stage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns the given named metric for this stage. Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // Default: - sum over 5 minutes. // MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // Default: - sum over 5 minutes. // MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // Default: - sum over 5 minutes. // MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // Default: - sample count over 5 minutes. // MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // Default: - average over 5 minutes. // MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // Default: - average over 5 minutes. // MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // Default: - sum over 5 minutes. // MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string // Returns the invoke URL for a certain path. UrlForPath(path *string) *string }
Base class for an ApiGateway Stage.
type StageOptions ¶
type StageOptions struct { // Indicates whether the cached responses are encrypted. // Default: false. // CacheDataEncrypted *bool `field:"optional" 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 // // Default: Duration.minutes(5) // CacheTtl awscdk.Duration `field:"optional" 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. // Default: - Caching is Disabled. // CachingEnabled *bool `field:"optional" 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. // Default: false. // DataTraceEnabled *bool `field:"optional" json:"dataTraceEnabled" yaml:"dataTraceEnabled"` // Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. // Default: - Off. // LoggingLevel MethodLoggingLevel `field:"optional" json:"loggingLevel" yaml:"loggingLevel"` // Specifies whether Amazon CloudWatch metrics are enabled for this method. // Default: false. // MetricsEnabled *bool `field:"optional" 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 // // Default: - No additional restriction. // ThrottlingBurstLimit *float64 `field:"optional" 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 // // Default: - No additional restriction. // ThrottlingRateLimit *float64 `field:"optional" json:"throttlingRateLimit" yaml:"throttlingRateLimit"` // The CloudWatch Logs log group or Firehose delivery stream where to write access logs. // Default: - No destination. // AccessLogDestination IAccessLogDestination `field:"optional" json:"accessLogDestination" yaml:"accessLogDestination"` // A single line format of access logs of data, as specified by selected $content variables. // // The format must include either `AccessLogFormat.contextRequestId()` // or `AccessLogFormat.contextExtendedRequestId()`. // See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference // // Default: - Common Log Format. // AccessLogFormat AccessLogFormat `field:"optional" json:"accessLogFormat" yaml:"accessLogFormat"` // Indicates whether cache clustering is enabled for the stage. // Default: - Disabled for the stage. // CacheClusterEnabled *bool `field:"optional" json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"` // The stage's cache cluster size. // Default: 0.5 // CacheClusterSize *string `field:"optional" json:"cacheClusterSize" yaml:"cacheClusterSize"` // The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage. // Default: - None. // ClientCertificateId *string `field:"optional" json:"clientCertificateId" yaml:"clientCertificateId"` // A description of the purpose of the stage. // Default: - No description. // Description *string `field:"optional" json:"description" yaml:"description"` // The version identifier of the API documentation snapshot. // Default: - No documentation version. // DocumentationVersion *string `field:"optional" json:"documentationVersion" yaml:"documentationVersion"` // Method deployment options for specific resources/methods. // // These will // override common options defined in `StageOptions#methodOptions`. // Default: - Common options will be used. // MethodOptions *map[string]*MethodDeploymentOptions `field:"optional" 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). // Default: - "prod". // StageName *string `field:"optional" json:"stageName" yaml:"stageName"` // Specifies whether Amazon X-Ray tracing is enabled for this method. // Default: false. // TracingEnabled *bool `field:"optional" 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-._~:/?#&=,]+. // Default: - No stage variables. // Variables *map[string]*string `field:"optional" json:"variables" yaml:"variables"` }
Example:
logGroup := logs.NewLogGroup(this, jsii.String("ApiGatewayAccessLogs")) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewLogGroupLogDestination(logGroup), AccessLogFormat: apigateway.AccessLogFormat_Clf(), }, })
type StageProps ¶
type StageProps struct { // Indicates whether the cached responses are encrypted. // Default: false. // CacheDataEncrypted *bool `field:"optional" 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 // // Default: Duration.minutes(5) // CacheTtl awscdk.Duration `field:"optional" 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. // Default: - Caching is Disabled. // CachingEnabled *bool `field:"optional" 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. // Default: false. // DataTraceEnabled *bool `field:"optional" json:"dataTraceEnabled" yaml:"dataTraceEnabled"` // Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs. // Default: - Off. // LoggingLevel MethodLoggingLevel `field:"optional" json:"loggingLevel" yaml:"loggingLevel"` // Specifies whether Amazon CloudWatch metrics are enabled for this method. // Default: false. // MetricsEnabled *bool `field:"optional" 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 // // Default: - No additional restriction. // ThrottlingBurstLimit *float64 `field:"optional" 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 // // Default: - No additional restriction. // ThrottlingRateLimit *float64 `field:"optional" json:"throttlingRateLimit" yaml:"throttlingRateLimit"` // The CloudWatch Logs log group or Firehose delivery stream where to write access logs. // Default: - No destination. // AccessLogDestination IAccessLogDestination `field:"optional" json:"accessLogDestination" yaml:"accessLogDestination"` // A single line format of access logs of data, as specified by selected $content variables. // // The format must include either `AccessLogFormat.contextRequestId()` // or `AccessLogFormat.contextExtendedRequestId()`. // See: https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference // // Default: - Common Log Format. // AccessLogFormat AccessLogFormat `field:"optional" json:"accessLogFormat" yaml:"accessLogFormat"` // Indicates whether cache clustering is enabled for the stage. // Default: - Disabled for the stage. // CacheClusterEnabled *bool `field:"optional" json:"cacheClusterEnabled" yaml:"cacheClusterEnabled"` // The stage's cache cluster size. // Default: 0.5 // CacheClusterSize *string `field:"optional" json:"cacheClusterSize" yaml:"cacheClusterSize"` // The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage. // Default: - None. // ClientCertificateId *string `field:"optional" json:"clientCertificateId" yaml:"clientCertificateId"` // A description of the purpose of the stage. // Default: - No description. // Description *string `field:"optional" json:"description" yaml:"description"` // The version identifier of the API documentation snapshot. // Default: - No documentation version. // DocumentationVersion *string `field:"optional" json:"documentationVersion" yaml:"documentationVersion"` // Method deployment options for specific resources/methods. // // These will // override common options defined in `StageOptions#methodOptions`. // Default: - Common options will be used. // MethodOptions *map[string]*MethodDeploymentOptions `field:"optional" 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). // Default: - "prod". // StageName *string `field:"optional" json:"stageName" yaml:"stageName"` // Specifies whether Amazon X-Ray tracing is enabled for this method. // Default: false. // TracingEnabled *bool `field:"optional" 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-._~:/?#&=,]+. // Default: - No stage variables. // Variables *map[string]*string `field:"optional" json:"variables" yaml:"variables"` // The deployment that this stage points to [disable-awslint:ref-via-interface]. Deployment Deployment `field:"required" json:"deployment" yaml:"deployment"` }
Example:
// production stage prodLogGroup := logs.NewLogGroup(this, jsii.String("PrdLogs")) api := apigateway.NewRestApi(this, jsii.String("books"), &RestApiProps{ DeployOptions: &StageOptions{ AccessLogDestination: apigateway.NewLogGroupLogDestination(prodLogGroup), AccessLogFormat: apigateway.AccessLogFormat_JsonWithStandardFields(), }, }) deployment := apigateway.NewDeployment(this, jsii.String("Deployment"), &DeploymentProps{ Api: Api, }) // development stage devLogGroup := logs.NewLogGroup(this, jsii.String("DevLogs")) apigateway.NewStage(this, jsii.String("dev"), &StageProps{ Deployment: Deployment, AccessLogDestination: apigateway.NewLogGroupLogDestination(devLogGroup), AccessLogFormat: apigateway.AccessLogFormat_*JsonWithStandardFields(&JsonWithStandardFieldProps{ Caller: jsii.Boolean(false), HttpMethod: jsii.Boolean(true), Ip: jsii.Boolean(true), Protocol: jsii.Boolean(true), RequestTime: jsii.Boolean(true), ResourcePath: jsii.Boolean(true), ResponseLength: jsii.Boolean(true), Status: jsii.Boolean(true), User: jsii.Boolean(true), }), })
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 `field:"optional" json:"cacheKeyParameters" yaml:"cacheKeyParameters"` // An API-specific tag group of related cached parameters. CacheNamespace *string `field:"optional" json:"cacheNamespace" yaml:"cacheNamespace"` // The type of network connection to the integration endpoint. // Default: - ConnectionType.VPC_LINK if `vpcLink` property is configured; ConnectionType.Internet otherwise. // ConnectionType ConnectionType `field:"optional" json:"connectionType" yaml:"connectionType"` // Specifies how to handle request payload content type conversions. // Default: none 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 ContentHandling `field:"optional" json:"contentHandling" yaml:"contentHandling"` // Requires that the caller's identity be passed through from the request. // Default: Caller identity is not passed through. // CredentialsPassthrough *bool `field:"optional" json:"credentialsPassthrough" yaml:"credentialsPassthrough"` // An IAM role that API Gateway assumes. // // Mutually exclusive with `credentialsPassThrough`. // Default: A role is not assumed. // CredentialsRole awsiam.IRole `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" 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 `field:"optional" json:"requestTemplates" yaml:"requestTemplates"` // The maximum amount of time an integration will run before it returns without a response. // // By default, the value must be between 50 milliseconds and 29 seconds. // The upper bound can be increased for regional and private Rest APIs only, // via a quota increase request for your acccount. // This increase might require a reduction in your account-level throttle quota limit. // // See {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html Amazon API Gateway quotas} for more details. // Default: Duration.seconds(29) // Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // The VpcLink used for the integration. // // Required if connectionType is VPC_LINK. VpcLink IVpcLink `field:"optional" json:"vpcLink" yaml:"vpcLink"` // If the whole authorizer object, including custom context values should be in the execution input. // // The execution input will include a new key `authorizer`: // // { // "body": {}, // "authorizer": { // "key": "value" // } // }. // Default: false. // Authorizer *bool `field:"optional" json:"authorizer" yaml:"authorizer"` // 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" // } // }. // Default: false. // Headers *bool `field:"optional" 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" // } // }. // Default: true. // Path *bool `field:"optional" 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" // } // }. // Default: true. // Querystring *bool `field:"optional" 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" // } // }. // Default: - all parameters within request context will be set as false. // RequestContext *RequestContext `field:"optional" json:"requestContext" yaml:"requestContext"` // Whether to add default response models with 200, 400, and 500 status codes to the method. // Default: true. // UseDefaultMethodResponses *bool `field:"optional" json:"useDefaultMethodResponses" yaml:"useDefaultMethodResponses"` }
Options when configuring Step Functions synchronous integration with Rest API.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var role role var vpcLink vpcLink stepFunctionsExecutionIntegrationOptions := &StepFunctionsExecutionIntegrationOptions{ Authorizer: jsii.Boolean(false), CacheKeyParameters: []*string{ jsii.String("cacheKeyParameters"), }, CacheNamespace: jsii.String("cacheNamespace"), ConnectionType: awscdk.Aws_apigateway.ConnectionType_INTERNET, ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, CredentialsPassthrough: jsii.Boolean(false), CredentialsRole: role, Headers: jsii.Boolean(false), IntegrationResponses: []integrationResponse{ &integrationResponse{ StatusCode: jsii.String("statusCode"), // the properties below are optional ContentHandling: awscdk.*Aws_apigateway.ContentHandling_CONVERT_TO_BINARY, ResponseParameters: map[string]*string{ "responseParametersKey": jsii.String("responseParameters"), }, ResponseTemplates: map[string]*string{ "responseTemplatesKey": jsii.String("responseTemplates"), }, SelectionPattern: jsii.String("selectionPattern"), }, }, PassthroughBehavior: awscdk.*Aws_apigateway.PassthroughBehavior_WHEN_NO_MATCH, Path: jsii.Boolean(false), Querystring: jsii.Boolean(false), RequestContext: &RequestContext{ AccountId: jsii.Boolean(false), ApiId: jsii.Boolean(false), ApiKey: jsii.Boolean(false), AuthorizerPrincipalId: jsii.Boolean(false), Caller: jsii.Boolean(false), CognitoAuthenticationProvider: jsii.Boolean(false), CognitoAuthenticationType: jsii.Boolean(false), CognitoIdentityId: jsii.Boolean(false), CognitoIdentityPoolId: jsii.Boolean(false), HttpMethod: jsii.Boolean(false), RequestId: jsii.Boolean(false), ResourceId: jsii.Boolean(false), ResourcePath: jsii.Boolean(false), SourceIp: jsii.Boolean(false), Stage: jsii.Boolean(false), User: jsii.Boolean(false), UserAgent: jsii.Boolean(false), UserArn: jsii.Boolean(false), }, RequestParameters: map[string]*string{ "requestParametersKey": jsii.String("requestParameters"), }, RequestTemplates: map[string]*string{ "requestTemplatesKey": jsii.String("requestTemplates"), }, Timeout: cdk.Duration_Minutes(jsii.Number(30)), UseDefaultMethodResponses: jsii.Boolean(false), VpcLink: vpcLink, }
type StepFunctionsIntegration ¶ added in v2.1.0
type StepFunctionsIntegration interface { }
Options to integrate with various StepFunction API.
Example:
stateMachine := stepfunctions.NewStateMachine(this, jsii.String("MyStateMachine"), &StateMachineProps{ StateMachineType: stepfunctions.StateMachineType_EXPRESS, Definition: stepfunctions.Chain_Start(stepfunctions.NewPass(this, jsii.String("Pass"))), }) api := apigateway.NewRestApi(this, jsii.String("Api"), &RestApiProps{ RestApiName: jsii.String("MyApi"), }) api.Root.AddMethod(jsii.String("GET"), apigateway.StepFunctionsIntegration_StartExecution(stateMachine))
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) // API Gateway stage that points to the latest deployment (if defined). // // If `deploy` is disabled, you will need to explicitly assign this value in order to // set up integrations. DeploymentStage() Stage SetDeploymentStage(val Stage) // The first domain name mapped to this API, if defined through the `domainName` configuration prop, or added via `addDomainName`. DomainName() DomainName // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // API Gateway deployment that represents the latest changes of the API. // // This resource will be automatically updated every time the REST API model changes. // This will be undefined if `deploy` is false. LatestDeployment() Deployment // The list of methods bound to this RestApi. Methods() *[]Method // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The ID of this API Gateway RestApi. RestApiId() *string // A human friendly name for this Rest API. // // Note that this is different from `restApiId`. RestApiName() *string // The resource ID of the root resource. RestApiRootResourceId() *string // Represents the root resource of this API endpoint ('/'). // // Resources and Methods are added to this resource. Root() IResource // The stack in which this resource is defined. Stack() awscdk.Stack // The deployed root URL of this REST API. Url() *string // Add an ApiKey to the deploymentStage. AddApiKey(id *string, options *ApiKeyOptions) IApiKey // Defines an API Gateway domain name and maps it to this API. AddDomainName(id *string, options *DomainNameOptions) DomainName // Adds a new gateway response. AddGatewayResponse(id *string, options *GatewayResponseOptions) GatewayResponse // Adds a new model. AddModel(id *string, props *ModelOptions) Model // Adds a new request validator. AddRequestValidator(id *string, props *RequestValidatorOptions) RequestValidator // Adds a usage plan. AddUsagePlan(id *string, props *UsagePlanProps) UsagePlan // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Gets the "execute-api" ARN. ArnForExecuteApi(method *string, path *string, stage *string) *string GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns the given named metric for this API. Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the API cache in a given period. // // Default: sum over 5 minutes. MetricCacheHitCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of requests served from the backend in a given period, when API caching is enabled. // // Default: sum over 5 minutes. MetricCacheMissCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of client-side errors captured in a given period. // // Default: sum over 5 minutes. MetricClientError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the total number API requests in a given period. // // Default: sample count over 5 minutes. MetricCount(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the time between when API Gateway relays a request to the backend and when it receives a response from the backend. // // Default: average over 5 minutes. MetricIntegrationLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The time between when API Gateway receives a request from a client and when it returns a response to the client. // // The latency includes the integration latency and other API Gateway overhead. // // Default: average over 5 minutes. MetricLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of server-side errors captured in a given period. // // Default: sum over 5 minutes. MetricServerError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string // Returns the URL for an HTTP path. // // Fails if `deploymentStage` is not set either by `deploy` or explicitly. UrlForPath(path *string) *string }
Defines an API Gateway REST API with a Synchrounous Express State Machine as a proxy integration.
Example:
var machine iStateMachine apigateway.NewStepFunctionsRestApi(this, jsii.String("StepFunctionsRestApi"), &StepFunctionsRestApiProps{ StateMachine: machine, UseDefaultMethodResponses: jsii.Boolean(false), })
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`. // Default: - CORS is disabled. // DefaultCorsPreflightOptions *CorsOptions `field:"optional" json:"defaultCorsPreflightOptions" yaml:"defaultCorsPreflightOptions"` // An integration to use as a default for all methods created within this API unless an integration is specified. // Default: - Inherited from parent. // DefaultIntegration Integration `field:"optional" json:"defaultIntegration" yaml:"defaultIntegration"` // Method options to use as a default for all methods created within this API unless custom options are specified. // Default: - Inherited from parent. // DefaultMethodOptions *MethodOptions `field:"optional" json:"defaultMethodOptions" yaml:"defaultMethodOptions"` // Automatically configure an AWS CloudWatch role for API Gateway. // Default: - false if `@aws-cdk/aws-apigateway:disableCloudWatchRole` is enabled, true otherwise. // CloudWatchRole *bool `field:"optional" json:"cloudWatchRole" yaml:"cloudWatchRole"` // The removal policy applied to the AWS CloudWatch role when this resource is removed from the application. // // Requires `cloudWatchRole` to be enabled. // Default: - RemovalPolicy.RETAIN // CloudWatchRoleRemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"cloudWatchRoleRemovalPolicy" yaml:"cloudWatchRoleRemovalPolicy"` // 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. // Default: true. // Deploy *bool `field:"optional" 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. // Default: - Based on defaults of `StageOptions`. // DeployOptions *StageOptions `field:"optional" json:"deployOptions" yaml:"deployOptions"` // A description of the RestApi construct. // Default: - 'Automatically created by the RestApi construct'. // Description *string `field:"optional" json:"description" yaml:"description"` // 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 // // Default: false. // DisableExecuteApiEndpoint *bool `field:"optional" json:"disableExecuteApiEndpoint" yaml:"disableExecuteApiEndpoint"` // Configure a custom domain name and map it to this API. // Default: - no domain name is defined, use `addDomainName` or directly define a `DomainName`. // DomainName *DomainNameOptions `field:"optional" json:"domainName" yaml:"domainName"` // Export name for the CfnOutput containing the API endpoint. // Default: - when no export name is given, output will be created without export. // EndpointExportName *string `field:"optional" json:"endpointExportName" yaml:"endpointExportName"` // A list of the endpoint types of the API. // // Use this property when creating // an API. // Default: EndpointType.EDGE // EndpointTypes *[]EndpointType `field:"optional" json:"endpointTypes" yaml:"endpointTypes"` // Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource. // Default: false. // FailOnWarnings *bool `field:"optional" json:"failOnWarnings" yaml:"failOnWarnings"` // Custom header parameters for the request. // See: https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html // // Default: - No parameters. // Parameters *map[string]*string `field:"optional" json:"parameters" yaml:"parameters"` // A policy document that contains the permissions for this RestApi. // Default: - No policy. // Policy awsiam.PolicyDocument `field:"optional" json:"policy" yaml:"policy"` // A name for the API Gateway RestApi resource. // Default: - ID of the RestApi construct. // RestApiName *string `field:"optional" 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. // Default: false. // RetainDeployments *bool `field:"optional" json:"retainDeployments" yaml:"retainDeployments"` // The source of the API key for metering requests according to a usage plan. // Default: - Metering is disabled. // ApiKeySourceType ApiKeySourceType `field:"optional" 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". // Default: - RestApi supports only UTF-8-encoded text payloads. // BinaryMediaTypes *[]*string `field:"optional" json:"binaryMediaTypes" yaml:"binaryMediaTypes"` // The ID of the API Gateway RestApi resource that you want to clone. // Default: - None. // CloneFrom IRestApi `field:"optional" json:"cloneFrom" yaml:"cloneFrom"` // 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 // // Default: EndpointType.EDGE // EndpointConfiguration *EndpointConfiguration `field:"optional" json:"endpointConfiguration" yaml:"endpointConfiguration"` // A Size(in bytes, kibibytes, mebibytes etc) 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. // Default: - Compression is disabled. // MinCompressionSize awscdk.Size `field:"optional" json:"minCompressionSize" yaml:"minCompressionSize"` // 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. // Default: - Compression is disabled. // // Deprecated: - superseded by `minCompressionSize`. MinimumCompressionSize *float64 `field:"optional" 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 `field:"required" json:"stateMachine" yaml:"stateMachine"` // If the whole authorizer object, including custom context values should be in the execution input. // // The execution input will include a new key `authorizer`: // // { // "body": {}, // "authorizer": { // "key": "value" // } // }. // Default: false. // Authorizer *bool `field:"optional" json:"authorizer" yaml:"authorizer"` // 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" // } // }. // Default: false. // Headers *bool `field:"optional" 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" // } // }. // Default: true. // Path *bool `field:"optional" 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" // } // }. // Default: true. // Querystring *bool `field:"optional" 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" // } // }. // Default: - all parameters within request context will be set as false. // RequestContext *RequestContext `field:"optional" json:"requestContext" yaml:"requestContext"` // An IAM role that API Gateway will assume to start the execution of the state machine. // Default: - a new role is created. // Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // Whether to add default response models with 200, 400, and 500 status codes to the method. // Default: true. // UseDefaultMethodResponses *bool `field:"optional" json:"useDefaultMethodResponses" yaml:"useDefaultMethodResponses"` }
Properties for StepFunctionsRestApi.
Example:
var machine iStateMachine apigateway.NewStepFunctionsRestApi(this, jsii.String("StepFunctionsRestApi"), &StepFunctionsRestApiProps{ StateMachine: machine, UseDefaultMethodResponses: jsii.Boolean(false), })
type ThrottleSettings ¶
type ThrottleSettings struct { // The maximum API request rate limit over a time ranging from one to a few seconds. // Default: none. // BurstLimit *float64 `field:"optional" json:"burstLimit" yaml:"burstLimit"` // The API request steady-state rate limit (average requests per second over an extended period of time). // Default: none. // RateLimit *float64 `field:"optional" json:"rateLimit" yaml:"rateLimit"` }
Container for defining throttling parameters to API stages or methods.
Example:
var integration lambdaIntegration api := apigateway.NewRestApi(this, jsii.String("hello-api")) v1 := api.Root.AddResource(jsii.String("v1")) echo := v1.AddResource(jsii.String("echo")) echoMethod := echo.AddMethod(jsii.String("GET"), integration, &MethodOptions{ ApiKeyRequired: jsii.Boolean(true), }) plan := api.AddUsagePlan(jsii.String("UsagePlan"), &UsagePlanProps{ Name: jsii.String("Easy"), Throttle: &ThrottleSettings{ RateLimit: jsii.Number(10), BurstLimit: jsii.Number(2), }, }) key := api.AddApiKey(jsii.String("ApiKey")) plan.addApiKey(key)
type ThrottlingPerMethod ¶
type ThrottlingPerMethod struct { // [disable-awslint:ref-via-interface] The method for which you specify the throttling settings. // Default: none. // Method Method `field:"required" json:"method" yaml:"method"` // Specifies the overall request rate (average requests per second) and burst capacity. // Default: none. // Throttle *ThrottleSettings `field:"required" json:"throttle" yaml:"throttle"` }
Represents per-method throttling for a resource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var method method throttlingPerMethod := &ThrottlingPerMethod{ Method: method, Throttle: &ThrottleSettings{ BurstLimit: jsii.Number(123), RateLimit: jsii.Number(123), }, }
type TokenAuthorizer ¶
type TokenAuthorizer interface { Authorizer IAuthorizer // The authorization type of this authorizer. AuthorizationType() AuthorizationType // The ARN of the authorizer to be used in permission policies, such as IAM and resource-based grants. AuthorizerArn() *string // The id of the authorizer. AuthorizerId() *string AuthorizerProps() *CfnAuthorizerProps // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The Lambda function handler that this authorizer uses. Handler() awslambda.IFunction // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string RestApiId() *string SetRestApiId(val *string) // The IAM role that the API Gateway service assumes while invoking the Lambda function. Role() awsiam.IRole // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a token that resolves to the Rest Api Id at the time of synthesis. // // Throws an error, during token resolution, if no RestApi is attached to this authorizer. LazyRestApiId() *string // Sets up the permissions necessary for the API Gateway service to invoke the Lambda function. SetupPermissions() // Returns a string representation of this construct. 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.
Example:
var authFn function var books resource auth := apigateway.NewTokenAuthorizer(this, jsii.String("booksAuthorizer"), &TokenAuthorizerProps{ Handler: authFn, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, })
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](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-input.html) // and [output specification](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-lambda-authorizer-output.html). Handler awslambda.IFunction `field:"required" 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'. // Default: - A resource policy is added to the Lambda function allowing apigateway.amazonaws.com to invoke the function. // AssumeRole awsiam.IRole `field:"optional" json:"assumeRole" yaml:"assumeRole"` // An optional human friendly name for the authorizer. // // Note that, this is not the primary identifier of the authorizer. // Default: - the unique construct ID. // AuthorizerName *string `field:"optional" json:"authorizerName" yaml:"authorizerName"` // How long APIGateway should cache the results. // // Max 1 hour. // Disable caching by setting this to 0. // Default: - Duration.minutes(5) // ResultsCacheTtl awscdk.Duration `field:"optional" 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/latest/api/API_CreateAuthorizer.html#apigw-CreateAuthorizer-request-identitySource // // Default: `IdentitySource.header('Authorization')` // IdentitySource *string `field:"optional" 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. // Default: - no regex filter will be applied. // ValidationRegex *string `field:"optional" json:"validationRegex" yaml:"validationRegex"` }
Properties for TokenAuthorizer.
Example:
var authFn function var books resource auth := apigateway.NewTokenAuthorizer(this, jsii.String("booksAuthorizer"), &TokenAuthorizerProps{ Handler: authFn, }) books.AddMethod(jsii.String("GET"), apigateway.NewHttpIntegration(jsii.String("http://amazon.com")), &MethodOptions{ Authorizer: auth, })
type UsagePlan ¶
type UsagePlan interface { awscdk.Resource IUsagePlan // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Id of the usage plan. UsagePlanId() *string // Adds an ApiKey. AddApiKey(apiKey IApiKey, options *AddApiKeyOptions) // Adds an apiStage. AddApiStage(apiStage *UsagePlanPerApiStage) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
Example:
var integration lambdaIntegration api := apigateway.NewRestApi(this, jsii.String("hello-api")) v1 := api.Root.AddResource(jsii.String("v1")) echo := v1.AddResource(jsii.String("echo")) echoMethod := echo.AddMethod(jsii.String("GET"), integration, &MethodOptions{ ApiKeyRequired: jsii.Boolean(true), }) plan := api.AddUsagePlan(jsii.String("UsagePlan"), &UsagePlanProps{ Name: jsii.String("Easy"), Throttle: &ThrottleSettings{ RateLimit: jsii.Number(10), BurstLimit: jsii.Number(2), }, }) key := api.AddApiKey(jsii.String("ApiKey")) plan.addApiKey(key)
func NewUsagePlan ¶
func NewUsagePlan(scope constructs.Construct, id *string, props *UsagePlanProps) UsagePlan
type UsagePlanPerApiStage ¶
type UsagePlanPerApiStage struct { // Default: none. // Api IRestApi `field:"optional" json:"api" yaml:"api"` // [disable-awslint:ref-via-interface]. // Default: none. // Stage Stage `field:"optional" json:"stage" yaml:"stage"` // Default: none. // Throttle *[]*ThrottlingPerMethod `field:"optional" json:"throttle" yaml:"throttle"` }
Represents the API stages that a usage plan applies to.
Example:
var plan usagePlan var api restApi var echoMethod method plan.AddApiStage(&UsagePlanPerApiStage{ Stage: api.DeploymentStage, Throttle: []throttlingPerMethod{ &throttlingPerMethod{ Method: echoMethod, Throttle: &ThrottleSettings{ RateLimit: jsii.Number(10), BurstLimit: jsii.Number(2), }, }, }, })
type UsagePlanProps ¶
type UsagePlanProps struct { // API Stages to be associated with the usage plan. // Default: none. // ApiStages *[]*UsagePlanPerApiStage `field:"optional" json:"apiStages" yaml:"apiStages"` // Represents usage plan purpose. // Default: none. // Description *string `field:"optional" json:"description" yaml:"description"` // Name for this usage plan. // Default: none. // Name *string `field:"optional" json:"name" yaml:"name"` // Number of requests clients can make in a given time period. // Default: none. // Quota *QuotaSettings `field:"optional" json:"quota" yaml:"quota"` // Overall throttle settings for the API. // Default: none. // Throttle *ThrottleSettings `field:"optional" json:"throttle" yaml:"throttle"` }
Example:
var integration lambdaIntegration api := apigateway.NewRestApi(this, jsii.String("hello-api")) v1 := api.Root.AddResource(jsii.String("v1")) echo := v1.AddResource(jsii.String("echo")) echoMethod := echo.AddMethod(jsii.String("GET"), integration, &MethodOptions{ ApiKeyRequired: jsii.Boolean(true), }) plan := api.AddUsagePlan(jsii.String("UsagePlan"), &UsagePlanProps{ Name: jsii.String("Easy"), Throttle: &ThrottleSettings{ RateLimit: jsii.Number(10), BurstLimit: jsii.Number(2), }, }) key := api.AddApiKey(jsii.String("ApiKey")) plan.addApiKey(key)
type VpcLink ¶
type VpcLink interface { awscdk.Resource IVpcLink // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Physical ID of the VpcLink resource. VpcLinkId() *string AddTargets(targets ...awselasticloadbalancingv2.INetworkLoadBalancer) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. 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).
Example:
import elbv2 "github.com/aws/aws-cdk-go/awscdk" vpc := ec2.NewVpc(this, jsii.String("VPC")) nlb := elbv2.NewNetworkLoadBalancer(this, jsii.String("NLB"), &NetworkLoadBalancerProps{ Vpc: Vpc, }) link := apigateway.NewVpcLink(this, jsii.String("link"), &VpcLinkProps{ Targets: []iNetworkLoadBalancer{ nlb, }, }) integration := apigateway.NewIntegration(&IntegrationProps{ Type: apigateway.IntegrationType_HTTP_PROXY, IntegrationHttpMethod: jsii.String("ANY"), Options: &IntegrationOptions{ ConnectionType: apigateway.ConnectionType_VPC_LINK, VpcLink: link, }, })
func NewVpcLink ¶
func NewVpcLink(scope constructs.Construct, id *string, props *VpcLinkProps) VpcLink
type VpcLinkProps ¶
type VpcLinkProps struct { // The description of the VPC link. // Default: no description. // Description *string `field:"optional" 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. // Default: - no targets. Use `addTargets` to add targets // Targets *[]awselasticloadbalancingv2.INetworkLoadBalancer `field:"optional" json:"targets" yaml:"targets"` // The name used to label and identify the VPC link. // Default: - automatically generated name. // VpcLinkName *string `field:"optional" json:"vpcLinkName" yaml:"vpcLinkName"` }
Properties for a VpcLink.
Example:
import elbv2 "github.com/aws/aws-cdk-go/awscdk" vpc := ec2.NewVpc(this, jsii.String("VPC")) nlb := elbv2.NewNetworkLoadBalancer(this, jsii.String("NLB"), &NetworkLoadBalancerProps{ Vpc: Vpc, }) link := apigateway.NewVpcLink(this, jsii.String("link"), &VpcLinkProps{ Targets: []iNetworkLoadBalancer{ nlb, }, }) integration := apigateway.NewIntegration(&IntegrationProps{ Type: apigateway.IntegrationType_HTTP_PROXY, IntegrationHttpMethod: jsii.String("ANY"), Options: &IntegrationOptions{ ConnectionType: apigateway.ConnectionType_VPC_LINK, VpcLink: link, }, })
Source Files ¶
- AccessLogDestinationConfig.go
- AccessLogField.go
- AccessLogField__checks.go
- AccessLogFormat.go
- AccessLogFormat__checks.go
- AddApiKeyOptions.go
- ApiDefinition.go
- ApiDefinitionConfig.go
- ApiDefinitionS3Location.go
- ApiDefinition__checks.go
- ApiKey.go
- ApiKeyOptions.go
- ApiKeyProps.go
- ApiKeySourceType.go
- ApiKey__checks.go
- ApiMappingOptions.go
- AssetApiDefinition.go
- AssetApiDefinition__checks.go
- AuthorizationType.go
- Authorizer.go
- Authorizer__checks.go
- AwsIntegration.go
- AwsIntegrationProps.go
- AwsIntegration__checks.go
- BasePathMapping.go
- BasePathMappingOptions.go
- BasePathMappingProps.go
- BasePathMapping__checks.go
- CfnAccount.go
- CfnAccountProps.go
- CfnAccount__checks.go
- CfnApiKey.go
- CfnApiKeyProps.go
- CfnApiKey_StageKeyProperty.go
- CfnApiKey__checks.go
- CfnAuthorizer.go
- CfnAuthorizerProps.go
- CfnAuthorizer__checks.go
- CfnBasePathMapping.go
- CfnBasePathMappingProps.go
- CfnBasePathMapping__checks.go
- CfnClientCertificate.go
- CfnClientCertificateProps.go
- CfnClientCertificate__checks.go
- CfnDeployment.go
- CfnDeploymentProps.go
- CfnDeployment_AccessLogSettingProperty.go
- CfnDeployment_CanarySettingProperty.go
- CfnDeployment_DeploymentCanarySettingsProperty.go
- CfnDeployment_MethodSettingProperty.go
- CfnDeployment_StageDescriptionProperty.go
- CfnDeployment__checks.go
- CfnDocumentationPart.go
- CfnDocumentationPartProps.go
- CfnDocumentationPart_LocationProperty.go
- CfnDocumentationPart__checks.go
- CfnDocumentationVersion.go
- CfnDocumentationVersionProps.go
- CfnDocumentationVersion__checks.go
- CfnDomainName.go
- CfnDomainNameProps.go
- CfnDomainName_EndpointConfigurationProperty.go
- CfnDomainName_MutualTlsAuthenticationProperty.go
- CfnDomainName__checks.go
- CfnGatewayResponse.go
- CfnGatewayResponseProps.go
- CfnGatewayResponse__checks.go
- CfnMethod.go
- CfnMethodProps.go
- CfnMethod_IntegrationProperty.go
- CfnMethod_IntegrationResponseProperty.go
- CfnMethod_MethodResponseProperty.go
- CfnMethod__checks.go
- CfnModel.go
- CfnModelProps.go
- CfnModel__checks.go
- CfnRequestValidator.go
- CfnRequestValidatorProps.go
- CfnRequestValidator__checks.go
- CfnResource.go
- CfnResourceProps.go
- CfnResource__checks.go
- CfnRestApi.go
- CfnRestApiProps.go
- CfnRestApi_EndpointConfigurationProperty.go
- CfnRestApi_S3LocationProperty.go
- CfnRestApi__checks.go
- CfnStage.go
- CfnStageProps.go
- CfnStage_AccessLogSettingProperty.go
- CfnStage_CanarySettingProperty.go
- CfnStage_MethodSettingProperty.go
- CfnStage__checks.go
- CfnUsagePlan.go
- CfnUsagePlanKey.go
- CfnUsagePlanKeyProps.go
- CfnUsagePlanKey__checks.go
- CfnUsagePlanProps.go
- CfnUsagePlan_ApiStageProperty.go
- CfnUsagePlan_QuotaSettingsProperty.go
- CfnUsagePlan_ThrottleSettingsProperty.go
- CfnUsagePlan__checks.go
- CfnVpcLink.go
- CfnVpcLinkProps.go
- CfnVpcLink__checks.go
- CognitoUserPoolsAuthorizer.go
- CognitoUserPoolsAuthorizerProps.go
- CognitoUserPoolsAuthorizer__checks.go
- ConnectionType.go
- ContentHandling.go
- Cors.go
- CorsOptions.go
- Deployment.go
- DeploymentProps.go
- Deployment__checks.go
- DomainName.go
- DomainNameAttributes.go
- DomainNameOptions.go
- DomainNameProps.go
- DomainName__checks.go
- EndpointConfiguration.go
- EndpointType.go
- FirehoseLogDestination.go
- FirehoseLogDestination__checks.go
- GatewayResponse.go
- GatewayResponseOptions.go
- GatewayResponseProps.go
- GatewayResponse__checks.go
- HttpIntegration.go
- HttpIntegrationProps.go
- HttpIntegration__checks.go
- IAccessLogDestination.go
- IAccessLogDestination__checks.go
- IApiKey.go
- IAuthorizer.go
- IDomainName.go
- IGatewayResponse.go
- IModel.go
- IRequestValidator.go
- IResource.go
- IResource__checks.go
- IRestApi.go
- IRestApi__checks.go
- IStage.go
- IStage__checks.go
- IUsagePlan.go
- IUsagePlan__checks.go
- IVpcLink.go
- IdentitySource.go
- IdentitySource__checks.go
- InlineApiDefinition.go
- InlineApiDefinition__checks.go
- Integration.go
- IntegrationConfig.go
- IntegrationOptions.go
- IntegrationProps.go
- IntegrationResponse.go
- IntegrationType.go
- Integration__checks.go
- JsonSchema.go
- JsonSchemaType.go
- JsonSchemaVersion.go
- JsonWithStandardFieldProps.go
- LambdaAuthorizerProps.go
- LambdaIntegration.go
- LambdaIntegrationOptions.go
- LambdaIntegration__checks.go
- LambdaRestApi.go
- LambdaRestApiProps.go
- LambdaRestApi__checks.go
- LogGroupLogDestination.go
- LogGroupLogDestination__checks.go
- MTLSConfig.go
- Method.go
- MethodDeploymentOptions.go
- MethodLoggingLevel.go
- MethodOptions.go
- MethodProps.go
- MethodResponse.go
- Method__checks.go
- MockIntegration.go
- MockIntegration__checks.go
- Model.go
- ModelOptions.go
- ModelProps.go
- Model__checks.go
- PassthroughBehavior.go
- Period.go
- ProxyResource.go
- ProxyResourceOptions.go
- ProxyResourceProps.go
- ProxyResource__checks.go
- QuotaSettings.go
- RateLimitedApiKey.go
- RateLimitedApiKeyProps.go
- RateLimitedApiKey__checks.go
- RequestAuthorizer.go
- RequestAuthorizerProps.go
- RequestAuthorizer__checks.go
- RequestContext.go
- RequestValidator.go
- RequestValidatorOptions.go
- RequestValidatorProps.go
- RequestValidator__checks.go
- Resource.go
- ResourceAttributes.go
- ResourceBase.go
- ResourceBase__checks.go
- ResourceOptions.go
- ResourceProps.go
- Resource__checks.go
- ResponseType.go
- ResponseType__checks.go
- RestApi.go
- RestApiAttributes.go
- RestApiBase.go
- RestApiBaseProps.go
- RestApiBase__checks.go
- RestApiProps.go
- RestApi__checks.go
- S3ApiDefinition.go
- S3ApiDefinition__checks.go
- SagemakerIntegration.go
- SagemakerIntegrationOptions.go
- SagemakerIntegration__checks.go
- SecurityPolicy.go
- SpecRestApi.go
- SpecRestApiProps.go
- SpecRestApi__checks.go
- Stage.go
- StageAttributes.go
- StageBase.go
- StageBase__checks.go
- StageOptions.go
- StageProps.go
- Stage__checks.go
- StepFunctionsExecutionIntegrationOptions.go
- StepFunctionsIntegration.go
- StepFunctionsIntegration__checks.go
- StepFunctionsRestApi.go
- StepFunctionsRestApiProps.go
- StepFunctionsRestApi__checks.go
- ThrottleSettings.go
- ThrottlingPerMethod.go
- TokenAuthorizer.go
- TokenAuthorizerProps.go
- TokenAuthorizer__checks.go
- UsagePlan.go
- UsagePlanPerApiStage.go
- UsagePlanProps.go
- UsagePlan__checks.go
- VpcLink.go
- VpcLinkProps.go
- VpcLink__checks.go
- main.go