Documentation ¶
Index ¶
- func CfnGatewayRoute_CFN_RESOURCE_TYPE_NAME() *string
- func CfnGatewayRoute_IsCfnElement(x interface{}) *bool
- func CfnGatewayRoute_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnGatewayRoute_IsConstruct(x interface{}) *bool
- func CfnMesh_CFN_RESOURCE_TYPE_NAME() *string
- func CfnMesh_IsCfnElement(x interface{}) *bool
- func CfnMesh_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnMesh_IsConstruct(x interface{}) *bool
- func CfnRoute_CFN_RESOURCE_TYPE_NAME() *string
- func CfnRoute_IsCfnElement(x interface{}) *bool
- func CfnRoute_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnRoute_IsConstruct(x interface{}) *bool
- func CfnVirtualGateway_CFN_RESOURCE_TYPE_NAME() *string
- func CfnVirtualGateway_IsCfnElement(x interface{}) *bool
- func CfnVirtualGateway_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnVirtualGateway_IsConstruct(x interface{}) *bool
- func CfnVirtualNode_CFN_RESOURCE_TYPE_NAME() *string
- func CfnVirtualNode_IsCfnElement(x interface{}) *bool
- func CfnVirtualNode_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnVirtualNode_IsConstruct(x interface{}) *bool
- func CfnVirtualRouter_CFN_RESOURCE_TYPE_NAME() *string
- func CfnVirtualRouter_IsCfnElement(x interface{}) *bool
- func CfnVirtualRouter_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnVirtualRouter_IsConstruct(x interface{}) *bool
- func CfnVirtualService_CFN_RESOURCE_TYPE_NAME() *string
- func CfnVirtualService_IsCfnElement(x interface{}) *bool
- func CfnVirtualService_IsCfnResource(construct constructs.IConstruct) *bool
- func CfnVirtualService_IsConstruct(x interface{}) *bool
- func GatewayRoute_IsConstruct(x interface{}) *bool
- func GatewayRoute_IsOwnedResource(construct constructs.IConstruct) *bool
- func GatewayRoute_IsResource(construct constructs.IConstruct) *bool
- func Mesh_IsConstruct(x interface{}) *bool
- func Mesh_IsOwnedResource(construct constructs.IConstruct) *bool
- func Mesh_IsResource(construct constructs.IConstruct) *bool
- func NewAccessLog_Override(a AccessLog)
- func NewBackend_Override(b Backend)
- func NewCfnGatewayRoute_Override(c CfnGatewayRoute, scope constructs.Construct, id *string, ...)
- func NewCfnMesh_Override(c CfnMesh, scope constructs.Construct, id *string, props *CfnMeshProps)
- func NewCfnRoute_Override(c CfnRoute, scope constructs.Construct, id *string, props *CfnRouteProps)
- func NewCfnVirtualGateway_Override(c CfnVirtualGateway, scope constructs.Construct, id *string, ...)
- func NewCfnVirtualNode_Override(c CfnVirtualNode, scope constructs.Construct, id *string, ...)
- func NewCfnVirtualRouter_Override(c CfnVirtualRouter, scope constructs.Construct, id *string, ...)
- func NewCfnVirtualService_Override(c CfnVirtualService, scope constructs.Construct, id *string, ...)
- func NewGatewayRouteHostnameMatch_Override(g GatewayRouteHostnameMatch)
- func NewGatewayRouteSpec_Override(g GatewayRouteSpec)
- func NewGatewayRoute_Override(g GatewayRoute, scope constructs.Construct, id *string, ...)
- func NewHeaderMatch_Override(h HeaderMatch)
- func NewHealthCheck_Override(h HealthCheck)
- func NewHttpGatewayRoutePathMatch_Override(h HttpGatewayRoutePathMatch)
- func NewHttpRoutePathMatch_Override(h HttpRoutePathMatch)
- func NewMesh_Override(m Mesh, scope constructs.Construct, id *string, props *MeshProps)
- func NewMutualTlsCertificate_Override(m MutualTlsCertificate)
- func NewMutualTlsValidationTrust_Override(m MutualTlsValidationTrust)
- func NewQueryParameterMatch_Override(q QueryParameterMatch)
- func NewRouteSpec_Override(r RouteSpec)
- func NewRoute_Override(r Route, scope constructs.Construct, id *string, props *RouteProps)
- func NewServiceDiscovery_Override(s ServiceDiscovery)
- func NewSubjectAlternativeNames_Override(s SubjectAlternativeNames)
- func NewTlsCertificate_Override(t TlsCertificate)
- func NewTlsValidationTrust_Override(t TlsValidationTrust)
- func NewVirtualGatewayListener_Override(v VirtualGatewayListener)
- func NewVirtualGateway_Override(v VirtualGateway, scope constructs.Construct, id *string, ...)
- func NewVirtualNodeListener_Override(v VirtualNodeListener)
- func NewVirtualNode_Override(v VirtualNode, scope constructs.Construct, id *string, props *VirtualNodeProps)
- func NewVirtualRouterListener_Override(v VirtualRouterListener)
- func NewVirtualRouter_Override(v VirtualRouter, scope constructs.Construct, id *string, ...)
- func NewVirtualServiceProvider_Override(v VirtualServiceProvider)
- func NewVirtualService_Override(v VirtualService, scope constructs.Construct, id *string, ...)
- func Route_IsConstruct(x interface{}) *bool
- func Route_IsOwnedResource(construct constructs.IConstruct) *bool
- func Route_IsResource(construct constructs.IConstruct) *bool
- func VirtualGateway_IsConstruct(x interface{}) *bool
- func VirtualGateway_IsOwnedResource(construct constructs.IConstruct) *bool
- func VirtualGateway_IsResource(construct constructs.IConstruct) *bool
- func VirtualNode_IsConstruct(x interface{}) *bool
- func VirtualNode_IsOwnedResource(construct constructs.IConstruct) *bool
- func VirtualNode_IsResource(construct constructs.IConstruct) *bool
- func VirtualRouter_IsConstruct(x interface{}) *bool
- func VirtualRouter_IsOwnedResource(construct constructs.IConstruct) *bool
- func VirtualRouter_IsResource(construct constructs.IConstruct) *bool
- func VirtualService_IsConstruct(x interface{}) *bool
- func VirtualService_IsOwnedResource(construct constructs.IConstruct) *bool
- func VirtualService_IsResource(construct constructs.IConstruct) *bool
- type AccessLog
- type AccessLogConfig
- type Backend
- type BackendConfig
- type BackendDefaults
- type CfnGatewayRoute
- type CfnGatewayRouteProps
- type CfnGatewayRoute_GatewayRouteHostnameMatchProperty
- type CfnGatewayRoute_GatewayRouteHostnameRewriteProperty
- type CfnGatewayRoute_GatewayRouteMetadataMatchProperty
- type CfnGatewayRoute_GatewayRouteRangeMatchProperty
- type CfnGatewayRoute_GatewayRouteSpecProperty
- type CfnGatewayRoute_GatewayRouteTargetProperty
- type CfnGatewayRoute_GatewayRouteVirtualServiceProperty
- type CfnGatewayRoute_GrpcGatewayRouteActionProperty
- type CfnGatewayRoute_GrpcGatewayRouteMatchProperty
- type CfnGatewayRoute_GrpcGatewayRouteMetadataProperty
- type CfnGatewayRoute_GrpcGatewayRouteProperty
- type CfnGatewayRoute_GrpcGatewayRouteRewriteProperty
- type CfnGatewayRoute_HttpGatewayRouteActionProperty
- type CfnGatewayRoute_HttpGatewayRouteHeaderMatchProperty
- type CfnGatewayRoute_HttpGatewayRouteHeaderProperty
- type CfnGatewayRoute_HttpGatewayRouteMatchProperty
- type CfnGatewayRoute_HttpGatewayRoutePathRewriteProperty
- type CfnGatewayRoute_HttpGatewayRoutePrefixRewriteProperty
- type CfnGatewayRoute_HttpGatewayRouteProperty
- type CfnGatewayRoute_HttpGatewayRouteRewriteProperty
- type CfnGatewayRoute_HttpPathMatchProperty
- type CfnGatewayRoute_HttpQueryParameterMatchProperty
- type CfnGatewayRoute_QueryParameterProperty
- type CfnMesh
- type CfnMeshProps
- type CfnMesh_EgressFilterProperty
- type CfnMesh_MeshServiceDiscoveryProperty
- type CfnMesh_MeshSpecProperty
- type CfnRoute
- type CfnRouteProps
- type CfnRoute_DurationProperty
- type CfnRoute_GrpcRetryPolicyProperty
- type CfnRoute_GrpcRouteActionProperty
- type CfnRoute_GrpcRouteMatchProperty
- type CfnRoute_GrpcRouteMetadataMatchMethodProperty
- type CfnRoute_GrpcRouteMetadataProperty
- type CfnRoute_GrpcRouteProperty
- type CfnRoute_GrpcTimeoutProperty
- type CfnRoute_HeaderMatchMethodProperty
- type CfnRoute_HttpPathMatchProperty
- type CfnRoute_HttpQueryParameterMatchProperty
- type CfnRoute_HttpRetryPolicyProperty
- type CfnRoute_HttpRouteActionProperty
- type CfnRoute_HttpRouteHeaderProperty
- type CfnRoute_HttpRouteMatchProperty
- type CfnRoute_HttpRouteProperty
- type CfnRoute_HttpTimeoutProperty
- type CfnRoute_MatchRangeProperty
- type CfnRoute_QueryParameterProperty
- type CfnRoute_RouteSpecProperty
- type CfnRoute_TcpRouteActionProperty
- type CfnRoute_TcpRouteProperty
- type CfnRoute_TcpTimeoutProperty
- type CfnRoute_WeightedTargetProperty
- type CfnVirtualGateway
- type CfnVirtualGatewayProps
- type CfnVirtualGateway_SubjectAlternativeNameMatchersProperty
- type CfnVirtualGateway_SubjectAlternativeNamesProperty
- type CfnVirtualGateway_VirtualGatewayAccessLogProperty
- type CfnVirtualGateway_VirtualGatewayBackendDefaultsProperty
- type CfnVirtualGateway_VirtualGatewayClientPolicyProperty
- type CfnVirtualGateway_VirtualGatewayClientPolicyTlsProperty
- type CfnVirtualGateway_VirtualGatewayClientTlsCertificateProperty
- type CfnVirtualGateway_VirtualGatewayConnectionPoolProperty
- type CfnVirtualGateway_VirtualGatewayFileAccessLogProperty
- type CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolProperty
- type CfnVirtualGateway_VirtualGatewayHealthCheckPolicyProperty
- type CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolProperty
- type CfnVirtualGateway_VirtualGatewayHttpConnectionPoolProperty
- type CfnVirtualGateway_VirtualGatewayListenerProperty
- type CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificateProperty
- type CfnVirtualGateway_VirtualGatewayListenerTlsCertificateProperty
- type CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificateProperty
- type CfnVirtualGateway_VirtualGatewayListenerTlsProperty
- type CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificateProperty
- type CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextProperty
- type CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustProperty
- type CfnVirtualGateway_VirtualGatewayLoggingProperty
- type CfnVirtualGateway_VirtualGatewayPortMappingProperty
- type CfnVirtualGateway_VirtualGatewaySpecProperty
- type CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustProperty
- type CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustProperty
- type CfnVirtualGateway_VirtualGatewayTlsValidationContextProperty
- type CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustProperty
- type CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustProperty
- type CfnVirtualNode
- type CfnVirtualNodeProps
- type CfnVirtualNode_AccessLogProperty
- type CfnVirtualNode_AwsCloudMapInstanceAttributeProperty
- type CfnVirtualNode_AwsCloudMapServiceDiscoveryProperty
- type CfnVirtualNode_BackendDefaultsProperty
- type CfnVirtualNode_BackendProperty
- type CfnVirtualNode_ClientPolicyProperty
- type CfnVirtualNode_ClientPolicyTlsProperty
- type CfnVirtualNode_ClientTlsCertificateProperty
- type CfnVirtualNode_DnsServiceDiscoveryProperty
- type CfnVirtualNode_DurationProperty
- type CfnVirtualNode_FileAccessLogProperty
- type CfnVirtualNode_GrpcTimeoutProperty
- type CfnVirtualNode_HealthCheckProperty
- type CfnVirtualNode_HttpTimeoutProperty
- type CfnVirtualNode_ListenerProperty
- type CfnVirtualNode_ListenerTimeoutProperty
- type CfnVirtualNode_ListenerTlsAcmCertificateProperty
- type CfnVirtualNode_ListenerTlsCertificateProperty
- type CfnVirtualNode_ListenerTlsFileCertificateProperty
- type CfnVirtualNode_ListenerTlsProperty
- type CfnVirtualNode_ListenerTlsSdsCertificateProperty
- type CfnVirtualNode_ListenerTlsValidationContextProperty
- type CfnVirtualNode_ListenerTlsValidationContextTrustProperty
- type CfnVirtualNode_LoggingProperty
- type CfnVirtualNode_OutlierDetectionProperty
- type CfnVirtualNode_PortMappingProperty
- type CfnVirtualNode_ServiceDiscoveryProperty
- type CfnVirtualNode_SubjectAlternativeNameMatchersProperty
- type CfnVirtualNode_SubjectAlternativeNamesProperty
- type CfnVirtualNode_TcpTimeoutProperty
- type CfnVirtualNode_TlsValidationContextAcmTrustProperty
- type CfnVirtualNode_TlsValidationContextFileTrustProperty
- type CfnVirtualNode_TlsValidationContextProperty
- type CfnVirtualNode_TlsValidationContextSdsTrustProperty
- type CfnVirtualNode_TlsValidationContextTrustProperty
- type CfnVirtualNode_VirtualNodeConnectionPoolProperty
- type CfnVirtualNode_VirtualNodeGrpcConnectionPoolProperty
- type CfnVirtualNode_VirtualNodeHttp2ConnectionPoolProperty
- type CfnVirtualNode_VirtualNodeHttpConnectionPoolProperty
- type CfnVirtualNode_VirtualNodeSpecProperty
- type CfnVirtualNode_VirtualNodeTcpConnectionPoolProperty
- type CfnVirtualNode_VirtualServiceBackendProperty
- type CfnVirtualRouter
- type CfnVirtualRouterProps
- type CfnVirtualRouter_PortMappingProperty
- type CfnVirtualRouter_VirtualRouterListenerProperty
- type CfnVirtualRouter_VirtualRouterSpecProperty
- type CfnVirtualService
- type CfnVirtualServiceProps
- type CfnVirtualService_VirtualNodeServiceProviderProperty
- type CfnVirtualService_VirtualRouterServiceProviderProperty
- type CfnVirtualService_VirtualServiceProviderProperty
- type CfnVirtualService_VirtualServiceSpecProperty
- type CommonGatewayRouteSpecOptions
- type DnsResponseType
- type GatewayRoute
- type GatewayRouteAttributes
- type GatewayRouteBaseProps
- type GatewayRouteHostnameMatch
- type GatewayRouteHostnameMatchConfig
- type GatewayRouteProps
- type GatewayRouteSpec
- type GatewayRouteSpecConfig
- type GrpcConnectionPool
- type GrpcGatewayListenerOptions
- type GrpcGatewayRouteMatch
- type GrpcGatewayRouteSpecOptions
- type GrpcHealthCheckOptions
- type GrpcRetryEvent
- type GrpcRetryPolicy
- type GrpcRouteMatch
- type GrpcRouteSpecOptions
- type GrpcTimeout
- type GrpcVirtualNodeListenerOptions
- type HeaderMatch
- func HeaderMatch_ValueDoesNotEndWith(headerName *string, suffix *string) HeaderMatch
- func HeaderMatch_ValueDoesNotMatchRegex(headerName *string, regex *string) HeaderMatch
- func HeaderMatch_ValueDoesNotStartWith(headerName *string, prefix *string) HeaderMatch
- func HeaderMatch_ValueEndsWith(headerName *string, suffix *string) HeaderMatch
- func HeaderMatch_ValueIs(headerName *string, headerValue *string) HeaderMatch
- func HeaderMatch_ValueIsNot(headerName *string, headerValue *string) HeaderMatch
- func HeaderMatch_ValueMatchesRegex(headerName *string, regex *string) HeaderMatch
- func HeaderMatch_ValueStartsWith(headerName *string, prefix *string) HeaderMatch
- func HeaderMatch_ValuesIsInRange(headerName *string, start *float64, end *float64) HeaderMatch
- func HeaderMatch_ValuesIsNotInRange(headerName *string, start *float64, end *float64) HeaderMatch
- type HeaderMatchConfig
- type HealthCheck
- type HealthCheckBindOptions
- type HealthCheckConfig
- type Http2ConnectionPool
- type Http2GatewayListenerOptions
- type Http2VirtualNodeListenerOptions
- type HttpConnectionPool
- type HttpGatewayListenerOptions
- type HttpGatewayRouteMatch
- type HttpGatewayRoutePathMatch
- type HttpGatewayRoutePathMatchConfig
- type HttpGatewayRouteSpecOptions
- type HttpHealthCheckOptions
- type HttpRetryEvent
- type HttpRetryPolicy
- type HttpRouteMatch
- type HttpRouteMethod
- type HttpRoutePathMatch
- type HttpRoutePathMatchConfig
- type HttpRouteProtocol
- type HttpRouteSpecOptions
- type HttpTimeout
- type HttpVirtualNodeListenerOptions
- type IGatewayRoute
- type IMesh
- type IRoute
- type IVirtualGateway
- type IVirtualNode
- type IVirtualRouter
- type IVirtualService
- type IpPreference
- type ListenerTlsOptions
- type Mesh
- type MeshFilterType
- type MeshProps
- type MeshServiceDiscovery
- type MutualTlsCertificate
- func MutualTlsCertificate_File(certificateChainPath *string, privateKeyPath *string) MutualTlsCertificate
- func MutualTlsCertificate_Sds(secretName *string) MutualTlsCertificate
- func TlsCertificate_File(certificateChainPath *string, privateKeyPath *string) MutualTlsCertificate
- func TlsCertificate_Sds(secretName *string) MutualTlsCertificate
- type MutualTlsValidation
- type MutualTlsValidationTrust
- func MutualTlsValidationTrust_File(certificateChain *string) MutualTlsValidationTrust
- func MutualTlsValidationTrust_Sds(secretName *string) MutualTlsValidationTrust
- func TlsValidationTrust_File(certificateChain *string) MutualTlsValidationTrust
- func TlsValidationTrust_Sds(secretName *string) MutualTlsValidationTrust
- type OutlierDetection
- type QueryParameterMatch
- type QueryParameterMatchConfig
- type Route
- type RouteAttributes
- type RouteBaseProps
- type RouteProps
- type RouteSpec
- type RouteSpecConfig
- type RouteSpecOptionsBase
- type ServiceDiscovery
- type ServiceDiscoveryConfig
- type SubjectAlternativeNames
- type SubjectAlternativeNamesMatcherConfig
- type TcpConnectionPool
- type TcpHealthCheckOptions
- type TcpRetryEvent
- type TcpRouteSpecOptions
- type TcpTimeout
- type TcpVirtualNodeListenerOptions
- type TlsCertificate
- type TlsCertificateConfig
- type TlsClientPolicy
- type TlsMode
- type TlsValidation
- type TlsValidationTrust
- type TlsValidationTrustConfig
- type VirtualGateway
- type VirtualGatewayAttributes
- type VirtualGatewayBaseProps
- type VirtualGatewayListener
- type VirtualGatewayListenerConfig
- type VirtualGatewayProps
- type VirtualNode
- type VirtualNodeAttributes
- type VirtualNodeBaseProps
- type VirtualNodeListener
- func VirtualNodeListener_Grpc(props *GrpcVirtualNodeListenerOptions) VirtualNodeListener
- func VirtualNodeListener_Http(props *HttpVirtualNodeListenerOptions) VirtualNodeListener
- func VirtualNodeListener_Http2(props *Http2VirtualNodeListenerOptions) VirtualNodeListener
- func VirtualNodeListener_Tcp(props *TcpVirtualNodeListenerOptions) VirtualNodeListener
- type VirtualNodeListenerConfig
- type VirtualNodeProps
- type VirtualRouter
- type VirtualRouterAttributes
- type VirtualRouterBaseProps
- type VirtualRouterListener
- type VirtualRouterListenerConfig
- type VirtualRouterProps
- type VirtualService
- type VirtualServiceAttributes
- type VirtualServiceBackendOptions
- type VirtualServiceProps
- type VirtualServiceProvider
- type VirtualServiceProviderConfig
- type WeightedTarget
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CfnGatewayRoute_CFN_RESOURCE_TYPE_NAME ¶
func CfnGatewayRoute_CFN_RESOURCE_TYPE_NAME() *string
func CfnGatewayRoute_IsCfnElement ¶
func CfnGatewayRoute_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 CfnGatewayRoute_IsCfnResource ¶
func CfnGatewayRoute_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource.
func CfnGatewayRoute_IsConstruct ¶
func CfnGatewayRoute_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 CfnMesh_CFN_RESOURCE_TYPE_NAME ¶
func CfnMesh_CFN_RESOURCE_TYPE_NAME() *string
func CfnMesh_IsCfnElement ¶
func CfnMesh_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 CfnMesh_IsCfnResource ¶
func CfnMesh_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource.
func CfnMesh_IsConstruct ¶
func CfnMesh_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 CfnRoute_CFN_RESOURCE_TYPE_NAME ¶
func CfnRoute_CFN_RESOURCE_TYPE_NAME() *string
func CfnRoute_IsCfnElement ¶
func CfnRoute_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 CfnRoute_IsCfnResource ¶
func CfnRoute_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource.
func CfnRoute_IsConstruct ¶
func CfnRoute_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 CfnVirtualGateway_CFN_RESOURCE_TYPE_NAME ¶
func CfnVirtualGateway_CFN_RESOURCE_TYPE_NAME() *string
func CfnVirtualGateway_IsCfnElement ¶
func CfnVirtualGateway_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 CfnVirtualGateway_IsCfnResource ¶
func CfnVirtualGateway_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource.
func CfnVirtualGateway_IsConstruct ¶
func CfnVirtualGateway_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 CfnVirtualNode_CFN_RESOURCE_TYPE_NAME ¶
func CfnVirtualNode_CFN_RESOURCE_TYPE_NAME() *string
func CfnVirtualNode_IsCfnElement ¶
func CfnVirtualNode_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 CfnVirtualNode_IsCfnResource ¶
func CfnVirtualNode_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource.
func CfnVirtualNode_IsConstruct ¶
func CfnVirtualNode_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 CfnVirtualRouter_CFN_RESOURCE_TYPE_NAME ¶
func CfnVirtualRouter_CFN_RESOURCE_TYPE_NAME() *string
func CfnVirtualRouter_IsCfnElement ¶
func CfnVirtualRouter_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 CfnVirtualRouter_IsCfnResource ¶
func CfnVirtualRouter_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource.
func CfnVirtualRouter_IsConstruct ¶
func CfnVirtualRouter_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 CfnVirtualService_CFN_RESOURCE_TYPE_NAME ¶
func CfnVirtualService_CFN_RESOURCE_TYPE_NAME() *string
func CfnVirtualService_IsCfnElement ¶
func CfnVirtualService_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 CfnVirtualService_IsCfnResource ¶
func CfnVirtualService_IsCfnResource(construct constructs.IConstruct) *bool
Check whether the given construct is a CfnResource.
func CfnVirtualService_IsConstruct ¶
func CfnVirtualService_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 GatewayRoute_IsConstruct ¶
func GatewayRoute_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 GatewayRoute_IsOwnedResource ¶ added in v2.32.0
func GatewayRoute_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func GatewayRoute_IsResource ¶
func GatewayRoute_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func Mesh_IsConstruct ¶
func Mesh_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 Mesh_IsOwnedResource ¶ added in v2.32.0
func Mesh_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func Mesh_IsResource ¶
func Mesh_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func NewAccessLog_Override ¶
func NewAccessLog_Override(a AccessLog)
func NewBackend_Override ¶
func NewBackend_Override(b Backend)
func NewCfnGatewayRoute_Override ¶
func NewCfnGatewayRoute_Override(c CfnGatewayRoute, scope constructs.Construct, id *string, props *CfnGatewayRouteProps)
Create a new `AWS::AppMesh::GatewayRoute`.
func NewCfnMesh_Override ¶
func NewCfnMesh_Override(c CfnMesh, scope constructs.Construct, id *string, props *CfnMeshProps)
Create a new `AWS::AppMesh::Mesh`.
func NewCfnRoute_Override ¶
func NewCfnRoute_Override(c CfnRoute, scope constructs.Construct, id *string, props *CfnRouteProps)
Create a new `AWS::AppMesh::Route`.
func NewCfnVirtualGateway_Override ¶
func NewCfnVirtualGateway_Override(c CfnVirtualGateway, scope constructs.Construct, id *string, props *CfnVirtualGatewayProps)
Create a new `AWS::AppMesh::VirtualGateway`.
func NewCfnVirtualNode_Override ¶
func NewCfnVirtualNode_Override(c CfnVirtualNode, scope constructs.Construct, id *string, props *CfnVirtualNodeProps)
Create a new `AWS::AppMesh::VirtualNode`.
func NewCfnVirtualRouter_Override ¶
func NewCfnVirtualRouter_Override(c CfnVirtualRouter, scope constructs.Construct, id *string, props *CfnVirtualRouterProps)
Create a new `AWS::AppMesh::VirtualRouter`.
func NewCfnVirtualService_Override ¶
func NewCfnVirtualService_Override(c CfnVirtualService, scope constructs.Construct, id *string, props *CfnVirtualServiceProps)
Create a new `AWS::AppMesh::VirtualService`.
func NewGatewayRouteHostnameMatch_Override ¶
func NewGatewayRouteHostnameMatch_Override(g GatewayRouteHostnameMatch)
func NewGatewayRouteSpec_Override ¶
func NewGatewayRouteSpec_Override(g GatewayRouteSpec)
func NewGatewayRoute_Override ¶
func NewGatewayRoute_Override(g GatewayRoute, scope constructs.Construct, id *string, props *GatewayRouteProps)
func NewHeaderMatch_Override ¶
func NewHeaderMatch_Override(h HeaderMatch)
func NewHealthCheck_Override ¶
func NewHealthCheck_Override(h HealthCheck)
func NewHttpGatewayRoutePathMatch_Override ¶
func NewHttpGatewayRoutePathMatch_Override(h HttpGatewayRoutePathMatch)
func NewHttpRoutePathMatch_Override ¶
func NewHttpRoutePathMatch_Override(h HttpRoutePathMatch)
func NewMesh_Override ¶
func NewMutualTlsCertificate_Override ¶
func NewMutualTlsCertificate_Override(m MutualTlsCertificate)
func NewMutualTlsValidationTrust_Override ¶
func NewMutualTlsValidationTrust_Override(m MutualTlsValidationTrust)
func NewQueryParameterMatch_Override ¶
func NewQueryParameterMatch_Override(q QueryParameterMatch)
func NewRouteSpec_Override ¶
func NewRouteSpec_Override(r RouteSpec)
func NewRoute_Override ¶
func NewRoute_Override(r Route, scope constructs.Construct, id *string, props *RouteProps)
func NewServiceDiscovery_Override ¶
func NewServiceDiscovery_Override(s ServiceDiscovery)
func NewSubjectAlternativeNames_Override ¶
func NewSubjectAlternativeNames_Override(s SubjectAlternativeNames)
func NewTlsCertificate_Override ¶
func NewTlsCertificate_Override(t TlsCertificate)
func NewTlsValidationTrust_Override ¶
func NewTlsValidationTrust_Override(t TlsValidationTrust)
func NewVirtualGatewayListener_Override ¶
func NewVirtualGatewayListener_Override(v VirtualGatewayListener)
func NewVirtualGateway_Override ¶
func NewVirtualGateway_Override(v VirtualGateway, scope constructs.Construct, id *string, props *VirtualGatewayProps)
func NewVirtualNodeListener_Override ¶
func NewVirtualNodeListener_Override(v VirtualNodeListener)
func NewVirtualNode_Override ¶
func NewVirtualNode_Override(v VirtualNode, scope constructs.Construct, id *string, props *VirtualNodeProps)
func NewVirtualRouterListener_Override ¶
func NewVirtualRouterListener_Override(v VirtualRouterListener)
func NewVirtualRouter_Override ¶
func NewVirtualRouter_Override(v VirtualRouter, scope constructs.Construct, id *string, props *VirtualRouterProps)
func NewVirtualServiceProvider_Override ¶
func NewVirtualServiceProvider_Override(v VirtualServiceProvider)
func NewVirtualService_Override ¶
func NewVirtualService_Override(v VirtualService, scope constructs.Construct, id *string, props *VirtualServiceProps)
func Route_IsConstruct ¶
func Route_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 Route_IsOwnedResource ¶ added in v2.32.0
func Route_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func Route_IsResource ¶
func Route_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func VirtualGateway_IsConstruct ¶
func VirtualGateway_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 VirtualGateway_IsOwnedResource ¶ added in v2.32.0
func VirtualGateway_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func VirtualGateway_IsResource ¶
func VirtualGateway_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func VirtualNode_IsConstruct ¶
func VirtualNode_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 VirtualNode_IsOwnedResource ¶ added in v2.32.0
func VirtualNode_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func VirtualNode_IsResource ¶
func VirtualNode_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func VirtualRouter_IsConstruct ¶
func VirtualRouter_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 VirtualRouter_IsOwnedResource ¶ added in v2.32.0
func VirtualRouter_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func VirtualRouter_IsResource ¶
func VirtualRouter_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func VirtualService_IsConstruct ¶
func VirtualService_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 VirtualService_IsOwnedResource ¶ added in v2.32.0
func VirtualService_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func VirtualService_IsResource ¶
func VirtualService_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
Types ¶
type AccessLog ¶
type AccessLog interface { // Called when the AccessLog type is initialized. // // Can be used to enforce // mutual exclusivity with future properties. Bind(scope constructs.Construct) *AccessLogConfig }
Configuration for Envoy Access logs for mesh endpoints.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8081), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), // minimum path: jsii.String("/health-check-path"), timeout: cdk.*duration.seconds(jsii.Number(2)), // minimum unhealthyThreshold: jsii.Number(2), }), }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), })
func AccessLog_FromFilePath ¶
Path to a file to write access logs to.
type AccessLogConfig ¶
type AccessLogConfig struct { // VirtualGateway CFN configuration for Access Logging. VirtualGatewayAccessLog *CfnVirtualGateway_VirtualGatewayAccessLogProperty `field:"optional" json:"virtualGatewayAccessLog" yaml:"virtualGatewayAccessLog"` // VirtualNode CFN configuration for Access Logging. VirtualNodeAccessLog *CfnVirtualNode_AccessLogProperty `field:"optional" json:"virtualNodeAccessLog" yaml:"virtualNodeAccessLog"` }
All Properties for Envoy Access logs for mesh endpoints.
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" accessLogConfig := &accessLogConfig{ virtualGatewayAccessLog: &virtualGatewayAccessLogProperty{ file: &virtualGatewayFileAccessLogProperty{ path: jsii.String("path"), }, }, virtualNodeAccessLog: &accessLogProperty{ file: &fileAccessLogProperty{ path: jsii.String("path"), }, }, }
type Backend ¶
type Backend interface { // Return backend config. Bind(_scope constructs.Construct) *BackendConfig }
Contains static factory methods to create backends.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh var router virtualRouter var service service node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8080), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), path: jsii.String("/ping"), timeout: cdk.*duration.seconds(jsii.Number(2)), unhealthyThreshold: jsii.Number(2), }), timeout: &httpTimeout{ idle: cdk.*duration.seconds(jsii.Number(5)), }, }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), }) virtualService := appmesh.NewVirtualService(this, jsii.String("service-1"), &virtualServiceProps{ virtualServiceProvider: appmesh.virtualServiceProvider.virtualRouter(router), virtualServiceName: jsii.String("service1.domain.local"), }) node.addBackend(appmesh.backend.virtualService(virtualService))
func Backend_VirtualService ¶
func Backend_VirtualService(virtualService IVirtualService, props *VirtualServiceBackendOptions) Backend
Construct a Virtual Service backend.
type BackendConfig ¶
type BackendConfig struct { // Config for a Virtual Service backend. VirtualServiceBackend *CfnVirtualNode_BackendProperty `field:"required" json:"virtualServiceBackend" yaml:"virtualServiceBackend"` }
Properties for a 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" backendConfig := &backendConfig{ virtualServiceBackend: &backendProperty{ virtualService: &virtualServiceBackendProperty{ virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, }, }
type BackendDefaults ¶
type BackendDefaults struct { // TLS properties for Client policy for backend defaults. TlsClientPolicy *TlsClientPolicy `field:"optional" json:"tlsClientPolicy" yaml:"tlsClientPolicy"` }
Represents the properties needed to define backend defaults.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh var service service node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8080), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), path: jsii.String("/ping"), timeout: cdk.*duration.seconds(jsii.Number(2)), unhealthyThreshold: jsii.Number(2), }), timeout: &httpTimeout{ idle: cdk.*duration.seconds(jsii.Number(5)), }, }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("/keys/local_cert_chain.pem")), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), }) cdk.tags.of(node).add(jsii.String("Environment"), jsii.String("Dev"))
type CfnGatewayRoute ¶
type CfnGatewayRoute interface { awscdk.CfnResource awscdk.IInspectable // The full Amazon Resource Name (ARN) for the gateway route. AttrArn() *string // The name of the gateway route. AttrGatewayRouteName() *string // The name of the service mesh that the gateway route resides in. AttrMeshName() *string // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrMeshOwner() *string // The IAM account ID of the resource owner. // // If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrResourceOwner() *string // The unique identifier for the gateway route. AttrUid() *string // The name of the virtual gateway that the gateway route is associated with. AttrVirtualGatewayName() *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 name of the gateway route. GatewayRouteName() *string SetGatewayRouteName(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 service mesh that the resource resides in. MeshName() *string SetMeshName(val *string) // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner() *string SetMeshOwner(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 specifications of the gateway route. Spec() interface{} SetSpec(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Optional metadata that you can apply to the gateway route to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags() awscdk.TagManager // 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 virtual gateway that the gateway route is associated with. VirtualGatewayName() *string SetVirtualGatewayName(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. 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) 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) // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} // 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{}) }
A CloudFormation `AWS::AppMesh::GatewayRoute`.
Creates a gateway route.
A gateway route is attached to a virtual gateway and routes traffic to an existing virtual service. If a route matches a request, it can distribute traffic to a target virtual service.
For more information about gateway routes, see [Gateway routes](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html) .
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" cfnGatewayRoute := awscdk.Aws_appmesh.NewCfnGatewayRoute(this, jsii.String("MyCfnGatewayRoute"), &cfnGatewayRouteProps{ meshName: jsii.String("meshName"), spec: &gatewayRouteSpecProperty{ grpcRoute: &grpcGatewayRouteProperty{ action: &grpcGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &grpcGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, }, }, match: &grpcGatewayRouteMatchProperty{ hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, metadata: []interface{}{ &grpcGatewayRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, serviceName: jsii.String("serviceName"), }, }, http2Route: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, httpRoute: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, priority: jsii.Number(123), }, virtualGatewayName: jsii.String("virtualGatewayName"), // the properties below are optional gatewayRouteName: jsii.String("gatewayRouteName"), meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, })
func NewCfnGatewayRoute ¶
func NewCfnGatewayRoute(scope constructs.Construct, id *string, props *CfnGatewayRouteProps) CfnGatewayRoute
Create a new `AWS::AppMesh::GatewayRoute`.
type CfnGatewayRouteProps ¶
type CfnGatewayRouteProps struct { // The name of the service mesh that the resource resides in. MeshName *string `field:"required" json:"meshName" yaml:"meshName"` // The specifications of the gateway route. Spec interface{} `field:"required" json:"spec" yaml:"spec"` // The virtual gateway that the gateway route is associated with. VirtualGatewayName *string `field:"required" json:"virtualGatewayName" yaml:"virtualGatewayName"` // The name of the gateway route. GatewayRouteName *string `field:"optional" json:"gatewayRouteName" yaml:"gatewayRouteName"` // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner *string `field:"optional" json:"meshOwner" yaml:"meshOwner"` // Optional metadata that you can apply to the gateway route to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnGatewayRoute`.
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" cfnGatewayRouteProps := &cfnGatewayRouteProps{ meshName: jsii.String("meshName"), spec: &gatewayRouteSpecProperty{ grpcRoute: &grpcGatewayRouteProperty{ action: &grpcGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &grpcGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, }, }, match: &grpcGatewayRouteMatchProperty{ hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, metadata: []interface{}{ &grpcGatewayRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, serviceName: jsii.String("serviceName"), }, }, http2Route: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, httpRoute: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, priority: jsii.Number(123), }, virtualGatewayName: jsii.String("virtualGatewayName"), // the properties below are optional gatewayRouteName: jsii.String("gatewayRouteName"), meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, }
type CfnGatewayRoute_GatewayRouteHostnameMatchProperty ¶
type CfnGatewayRoute_GatewayRouteHostnameMatchProperty struct { // The exact host name to match on. Exact *string `field:"optional" json:"exact" yaml:"exact"` // The specified ending characters of the host name to match on. Suffix *string `field:"optional" json:"suffix" yaml:"suffix"` }
An object representing the gateway route host name to match.
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" gatewayRouteHostnameMatchProperty := &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }
type CfnGatewayRoute_GatewayRouteHostnameRewriteProperty ¶
type CfnGatewayRoute_GatewayRouteHostnameRewriteProperty struct { // The default target host name to write to. DefaultTargetHostname *string `field:"optional" json:"defaultTargetHostname" yaml:"defaultTargetHostname"` }
An object representing the gateway route host name to rewrite.
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" gatewayRouteHostnameRewriteProperty := &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }
type CfnGatewayRoute_GatewayRouteMetadataMatchProperty ¶
type CfnGatewayRoute_GatewayRouteMetadataMatchProperty struct { // The exact method header to be matched on. Exact *string `field:"optional" json:"exact" yaml:"exact"` // The specified beginning characters of the method header to be matched on. Prefix *string `field:"optional" json:"prefix" yaml:"prefix"` // An object that represents the range of values to match on. Range interface{} `field:"optional" json:"range" yaml:"range"` // The regex used to match the method header. Regex *string `field:"optional" json:"regex" yaml:"regex"` // The specified ending characters of the method header to match on. Suffix *string `field:"optional" json:"suffix" yaml:"suffix"` }
An object representing the method header to be matched.
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" gatewayRouteMetadataMatchProperty := &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }
type CfnGatewayRoute_GatewayRouteRangeMatchProperty ¶
type CfnGatewayRoute_GatewayRouteRangeMatchProperty struct { // The end of the range. End *float64 `field:"required" json:"end" yaml:"end"` // The start of the range. Start *float64 `field:"required" json:"start" yaml:"start"` }
An object that represents the range of values to match on.
The first character of the range is included in the range, though the last character is not. For example, if the range specified were 1-100, only values 1-99 would be matched.
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" gatewayRouteRangeMatchProperty := &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }
type CfnGatewayRoute_GatewayRouteSpecProperty ¶
type CfnGatewayRoute_GatewayRouteSpecProperty struct { // An object that represents the specification of a gRPC gateway route. GrpcRoute interface{} `field:"optional" json:"grpcRoute" yaml:"grpcRoute"` // An object that represents the specification of an HTTP/2 gateway route. Http2Route interface{} `field:"optional" json:"http2Route" yaml:"http2Route"` // An object that represents the specification of an HTTP gateway route. HttpRoute interface{} `field:"optional" json:"httpRoute" yaml:"httpRoute"` // The ordering of the gateway routes spec. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` }
An object that represents a gateway route specification.
Specify one gateway route 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" gatewayRouteSpecProperty := &gatewayRouteSpecProperty{ grpcRoute: &grpcGatewayRouteProperty{ action: &grpcGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &grpcGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, }, }, match: &grpcGatewayRouteMatchProperty{ hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, metadata: []interface{}{ &grpcGatewayRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, serviceName: jsii.String("serviceName"), }, }, http2Route: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, httpRoute: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, priority: jsii.Number(123), }
type CfnGatewayRoute_GatewayRouteTargetProperty ¶
type CfnGatewayRoute_GatewayRouteTargetProperty struct {
// An object that represents a virtual service gateway route target.
VirtualService interface{} `field:"required" json:"virtualService" yaml:"virtualService"`
}
An object that represents a gateway route target.
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" gatewayRouteTargetProperty := &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }
type CfnGatewayRoute_GatewayRouteVirtualServiceProperty ¶
type CfnGatewayRoute_GatewayRouteVirtualServiceProperty struct { // The name of the virtual service that traffic is routed to. VirtualServiceName *string `field:"required" json:"virtualServiceName" yaml:"virtualServiceName"` }
An object that represents the virtual service that traffic is routed 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" gatewayRouteVirtualServiceProperty := &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }
type CfnGatewayRoute_GrpcGatewayRouteActionProperty ¶
type CfnGatewayRoute_GrpcGatewayRouteActionProperty struct { // An object that represents the target that traffic is routed to when a request matches the gateway route. Target interface{} `field:"required" json:"target" yaml:"target"` // The gateway route action to rewrite. Rewrite interface{} `field:"optional" json:"rewrite" yaml:"rewrite"` }
An object that represents the action to take if a match is determined.
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" grpcGatewayRouteActionProperty := &grpcGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &grpcGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, }, }
type CfnGatewayRoute_GrpcGatewayRouteMatchProperty ¶
type CfnGatewayRoute_GrpcGatewayRouteMatchProperty struct { // The gateway route host name to be matched on. Hostname interface{} `field:"optional" json:"hostname" yaml:"hostname"` // The gateway route metadata to be matched on. Metadata interface{} `field:"optional" json:"metadata" yaml:"metadata"` // The fully qualified domain name for the service to match from the request. ServiceName *string `field:"optional" json:"serviceName" yaml:"serviceName"` }
An object that represents the criteria for determining a request match.
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" grpcGatewayRouteMatchProperty := &grpcGatewayRouteMatchProperty{ hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, metadata: []interface{}{ &grpcGatewayRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, serviceName: jsii.String("serviceName"), }
type CfnGatewayRoute_GrpcGatewayRouteMetadataProperty ¶
type CfnGatewayRoute_GrpcGatewayRouteMetadataProperty struct { // A name for the gateway route metadata. Name *string `field:"required" json:"name" yaml:"name"` // Specify `True` to match anything except the match criteria. // // The default value is `False` . Invert interface{} `field:"optional" json:"invert" yaml:"invert"` // The criteria for determining a metadata match. Match interface{} `field:"optional" json:"match" yaml:"match"` }
An object representing the metadata of the gateway route.
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" grpcGatewayRouteMetadataProperty := &grpcGatewayRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }
type CfnGatewayRoute_GrpcGatewayRouteProperty ¶
type CfnGatewayRoute_GrpcGatewayRouteProperty struct { // An object that represents the action to take if a match is determined. Action interface{} `field:"required" json:"action" yaml:"action"` // An object that represents the criteria for determining a request match. Match interface{} `field:"required" json:"match" yaml:"match"` }
An object that represents a gRPC gateway route.
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" grpcGatewayRouteProperty := &grpcGatewayRouteProperty{ action: &grpcGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &grpcGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, }, }, match: &grpcGatewayRouteMatchProperty{ hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, metadata: []interface{}{ &grpcGatewayRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, serviceName: jsii.String("serviceName"), }, }
type CfnGatewayRoute_GrpcGatewayRouteRewriteProperty ¶
type CfnGatewayRoute_GrpcGatewayRouteRewriteProperty struct {
// The host name of the gateway route to rewrite.
Hostname interface{} `field:"optional" json:"hostname" yaml:"hostname"`
}
An object that represents the gateway route to rewrite.
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" grpcGatewayRouteRewriteProperty := &grpcGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, }
type CfnGatewayRoute_HttpGatewayRouteActionProperty ¶
type CfnGatewayRoute_HttpGatewayRouteActionProperty struct { // An object that represents the target that traffic is routed to when a request matches the gateway route. Target interface{} `field:"required" json:"target" yaml:"target"` // The gateway route action to rewrite. Rewrite interface{} `field:"optional" json:"rewrite" yaml:"rewrite"` }
An object that represents the action to take if a match is determined.
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" httpGatewayRouteActionProperty := &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }
type CfnGatewayRoute_HttpGatewayRouteHeaderMatchProperty ¶
type CfnGatewayRoute_HttpGatewayRouteHeaderMatchProperty struct { // The value sent by the client must match the specified value exactly. Exact *string `field:"optional" json:"exact" yaml:"exact"` // The value sent by the client must begin with the specified characters. Prefix *string `field:"optional" json:"prefix" yaml:"prefix"` // An object that represents the range of values to match on. Range interface{} `field:"optional" json:"range" yaml:"range"` // The value sent by the client must include the specified characters. Regex *string `field:"optional" json:"regex" yaml:"regex"` // The value sent by the client must end with the specified characters. Suffix *string `field:"optional" json:"suffix" yaml:"suffix"` }
An object that represents the method and value to match with the header value sent in a request.
Specify one match 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" httpGatewayRouteHeaderMatchProperty := &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }
type CfnGatewayRoute_HttpGatewayRouteHeaderProperty ¶
type CfnGatewayRoute_HttpGatewayRouteHeaderProperty struct { // A name for the HTTP header in the gateway route that will be matched on. Name *string `field:"required" json:"name" yaml:"name"` // Specify `True` to match anything except the match criteria. // // The default value is `False` . Invert interface{} `field:"optional" json:"invert" yaml:"invert"` // An object that represents the method and value to match with the header value sent in a request. // // Specify one match method. Match interface{} `field:"optional" json:"match" yaml:"match"` }
An object that represents the HTTP header in the gateway route.
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" httpGatewayRouteHeaderProperty := &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }
type CfnGatewayRoute_HttpGatewayRouteMatchProperty ¶
type CfnGatewayRoute_HttpGatewayRouteMatchProperty struct { // The client request headers to match on. Headers interface{} `field:"optional" json:"headers" yaml:"headers"` // The host name to match on. Hostname interface{} `field:"optional" json:"hostname" yaml:"hostname"` // The method to match on. Method *string `field:"optional" json:"method" yaml:"method"` // The path to match on. Path interface{} `field:"optional" json:"path" yaml:"path"` // Specifies the path to match requests with. // // This parameter must always start with `/` , which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics` , your prefix should be `/metrics` . Prefix *string `field:"optional" json:"prefix" yaml:"prefix"` // The query parameter to match on. QueryParameters interface{} `field:"optional" json:"queryParameters" yaml:"queryParameters"` }
An object that represents the criteria for determining a request match.
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" httpGatewayRouteMatchProperty := &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }
type CfnGatewayRoute_HttpGatewayRoutePathRewriteProperty ¶
type CfnGatewayRoute_HttpGatewayRoutePathRewriteProperty struct { // The exact path to rewrite. Exact *string `field:"optional" json:"exact" yaml:"exact"` }
An object that represents the path to rewrite.
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" httpGatewayRoutePathRewriteProperty := &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }
type CfnGatewayRoute_HttpGatewayRoutePrefixRewriteProperty ¶
type CfnGatewayRoute_HttpGatewayRoutePrefixRewriteProperty struct { // The default prefix used to replace the incoming route prefix when rewritten. DefaultPrefix *string `field:"optional" json:"defaultPrefix" yaml:"defaultPrefix"` // The value used to replace the incoming route prefix when rewritten. Value *string `field:"optional" json:"value" yaml:"value"` }
An object representing the beginning characters of the route to rewrite.
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" httpGatewayRoutePrefixRewriteProperty := &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }
type CfnGatewayRoute_HttpGatewayRouteProperty ¶
type CfnGatewayRoute_HttpGatewayRouteProperty struct { // An object that represents the action to take if a match is determined. Action interface{} `field:"required" json:"action" yaml:"action"` // An object that represents the criteria for determining a request match. Match interface{} `field:"required" json:"match" yaml:"match"` }
An object that represents an HTTP gateway route.
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" httpGatewayRouteProperty := &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }
type CfnGatewayRoute_HttpGatewayRouteRewriteProperty ¶
type CfnGatewayRoute_HttpGatewayRouteRewriteProperty struct { // The host name to rewrite. Hostname interface{} `field:"optional" json:"hostname" yaml:"hostname"` // The path to rewrite. Path interface{} `field:"optional" json:"path" yaml:"path"` // The specified beginning characters to rewrite. Prefix interface{} `field:"optional" json:"prefix" yaml:"prefix"` }
An object representing the gateway route to rewrite.
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" httpGatewayRouteRewriteProperty := &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }
type CfnGatewayRoute_HttpPathMatchProperty ¶
type CfnGatewayRoute_HttpPathMatchProperty struct { // The exact path to match on. Exact *string `field:"optional" json:"exact" yaml:"exact"` // The regex used to match the path. Regex *string `field:"optional" json:"regex" yaml:"regex"` }
An object representing the path to match in the 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" httpPathMatchProperty := &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }
type CfnGatewayRoute_HttpQueryParameterMatchProperty ¶
type CfnGatewayRoute_HttpQueryParameterMatchProperty struct { // The exact query parameter to match on. Exact *string `field:"optional" json:"exact" yaml:"exact"` }
An object representing the query parameter to match.
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" httpQueryParameterMatchProperty := &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }
type CfnGatewayRoute_QueryParameterProperty ¶
type CfnGatewayRoute_QueryParameterProperty struct { // A name for the query parameter that will be matched on. Name *string `field:"required" json:"name" yaml:"name"` // The query parameter to match on. Match interface{} `field:"optional" json:"match" yaml:"match"` }
An object that represents the query parameter in the 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" queryParameterProperty := &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }
type CfnMesh ¶
type CfnMesh interface { awscdk.CfnResource awscdk.IInspectable // The full Amazon Resource Name (ARN) for the mesh. AttrArn() *string // The name of the service mesh. AttrMeshName() *string // The IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrMeshOwner() *string // The IAM account ID of the resource owner. // // If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrResourceOwner() *string // The unique identifier for the mesh. AttrUid() *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 to use for the service mesh. MeshName() *string SetMeshName(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 service mesh specification to apply. Spec() interface{} SetSpec(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Optional metadata that you can apply to the service mesh to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags() awscdk.TagManager // 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. 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) 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) // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} // 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{}) }
A CloudFormation `AWS::AppMesh::Mesh`.
Creates a service mesh.
A service mesh is a logical boundary for network traffic between services that are represented by resources within the mesh. After you create your service mesh, you can create virtual services, virtual nodes, virtual routers, and routes to distribute traffic between the applications in your mesh.
For more information about service meshes, see [Service meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/meshes.html) .
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" cfnMesh := awscdk.Aws_appmesh.NewCfnMesh(this, jsii.String("MyCfnMesh"), &cfnMeshProps{ meshName: jsii.String("meshName"), spec: &meshSpecProperty{ egressFilter: &egressFilterProperty{ type: jsii.String("type"), }, serviceDiscovery: &meshServiceDiscoveryProperty{ ipPreference: jsii.String("ipPreference"), }, }, tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, })
func NewCfnMesh ¶
func NewCfnMesh(scope constructs.Construct, id *string, props *CfnMeshProps) CfnMesh
Create a new `AWS::AppMesh::Mesh`.
type CfnMeshProps ¶
type CfnMeshProps struct { // The name to use for the service mesh. MeshName *string `field:"optional" json:"meshName" yaml:"meshName"` // The service mesh specification to apply. Spec interface{} `field:"optional" json:"spec" yaml:"spec"` // Optional metadata that you can apply to the service mesh to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnMesh`.
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" cfnMeshProps := &cfnMeshProps{ meshName: jsii.String("meshName"), spec: &meshSpecProperty{ egressFilter: &egressFilterProperty{ type: jsii.String("type"), }, serviceDiscovery: &meshServiceDiscoveryProperty{ ipPreference: jsii.String("ipPreference"), }, }, tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, }
type CfnMesh_EgressFilterProperty ¶
type CfnMesh_EgressFilterProperty struct { // The egress filter type. // // By default, the type is `DROP_ALL` , which allows egress only from virtual nodes to other defined resources in the service mesh (and any traffic to `*.amazonaws.com` for AWS API calls). You can set the egress filter type to `ALLOW_ALL` to allow egress to any endpoint inside or outside of the service mesh. Type *string `field:"required" json:"type" yaml:"type"` }
An object that represents the egress filter rules for a service mesh.
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" egressFilterProperty := &egressFilterProperty{ type: jsii.String("type"), }
type CfnMesh_MeshServiceDiscoveryProperty ¶ added in v2.15.0
type CfnMesh_MeshServiceDiscoveryProperty struct { // The IP version to use to control traffic within the mesh. IpPreference *string `field:"optional" json:"ipPreference" yaml:"ipPreference"` }
An object that represents the service discovery information for a service mesh.
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" meshServiceDiscoveryProperty := &meshServiceDiscoveryProperty{ ipPreference: jsii.String("ipPreference"), }
type CfnMesh_MeshSpecProperty ¶
type CfnMesh_MeshSpecProperty struct { // The egress filter rules for the service mesh. EgressFilter interface{} `field:"optional" json:"egressFilter" yaml:"egressFilter"` // An object that represents the service discovery information for a service mesh. ServiceDiscovery interface{} `field:"optional" json:"serviceDiscovery" yaml:"serviceDiscovery"` }
An object that represents the specification of a service mesh.
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" meshSpecProperty := &meshSpecProperty{ egressFilter: &egressFilterProperty{ type: jsii.String("type"), }, serviceDiscovery: &meshServiceDiscoveryProperty{ ipPreference: jsii.String("ipPreference"), }, }
type CfnRoute ¶
type CfnRoute interface { awscdk.CfnResource awscdk.IInspectable // The full Amazon Resource Name (ARN) for the route. AttrArn() *string // The name of the service mesh that the route resides in. AttrMeshName() *string // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrMeshOwner() *string // The AWS IAM account ID of the resource owner. // // If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrResourceOwner() *string // The name of the route. AttrRouteName() *string // The unique identifier for the route. AttrUid() *string // The name of the virtual router that the route is associated with. AttrVirtualRouterName() *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 the service mesh to create the route in. MeshName() *string SetMeshName(val *string) // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner() *string SetMeshOwner(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 name to use for the route. RouteName() *string SetRouteName(val *string) // The route specification to apply. Spec() interface{} SetSpec(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Optional metadata that you can apply to the route to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags() awscdk.TagManager // 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 the virtual router in which to create the route. // // If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource. VirtualRouterName() *string SetVirtualRouterName(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. 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) 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) // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} // 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{}) }
A CloudFormation `AWS::AppMesh::Route`.
Creates a route that is associated with a virtual router.
You can route several different protocols and define a retry policy for a route. Traffic can be routed to one or more virtual nodes.
For more information about routes, see [Routes](https://docs.aws.amazon.com/app-mesh/latest/userguide/routes.html) .
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" cfnRoute := awscdk.Aws_appmesh.NewCfnRoute(this, jsii.String("MyCfnRoute"), &cfnRouteProps{ meshName: jsii.String("meshName"), spec: &routeSpecProperty{ grpcRoute: &grpcRouteProperty{ action: &grpcRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &grpcRouteMatchProperty{ metadata: []interface{}{ &grpcRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, methodName: jsii.String("methodName"), serviceName: jsii.String("serviceName"), }, // the properties below are optional retryPolicy: &grpcRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional grpcRetryEvents: []*string{ jsii.String("grpcRetryEvents"), }, httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, http2Route: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, httpRoute: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, priority: jsii.Number(123), tcpRoute: &tcpRouteProperty{ action: &tcpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, // the properties below are optional timeout: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, }, virtualRouterName: jsii.String("virtualRouterName"), // the properties below are optional meshOwner: jsii.String("meshOwner"), routeName: jsii.String("routeName"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, })
func NewCfnRoute ¶
func NewCfnRoute(scope constructs.Construct, id *string, props *CfnRouteProps) CfnRoute
Create a new `AWS::AppMesh::Route`.
type CfnRouteProps ¶
type CfnRouteProps struct { // The name of the service mesh to create the route in. MeshName *string `field:"required" json:"meshName" yaml:"meshName"` // The route specification to apply. Spec interface{} `field:"required" json:"spec" yaml:"spec"` // The name of the virtual router in which to create the route. // // If the virtual router is in a shared mesh, then you must be the owner of the virtual router resource. VirtualRouterName *string `field:"required" json:"virtualRouterName" yaml:"virtualRouterName"` // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner *string `field:"optional" json:"meshOwner" yaml:"meshOwner"` // The name to use for the route. RouteName *string `field:"optional" json:"routeName" yaml:"routeName"` // Optional metadata that you can apply to the route to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnRoute`.
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" cfnRouteProps := &cfnRouteProps{ meshName: jsii.String("meshName"), spec: &routeSpecProperty{ grpcRoute: &grpcRouteProperty{ action: &grpcRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &grpcRouteMatchProperty{ metadata: []interface{}{ &grpcRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, methodName: jsii.String("methodName"), serviceName: jsii.String("serviceName"), }, // the properties below are optional retryPolicy: &grpcRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional grpcRetryEvents: []*string{ jsii.String("grpcRetryEvents"), }, httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, http2Route: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, httpRoute: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, priority: jsii.Number(123), tcpRoute: &tcpRouteProperty{ action: &tcpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, // the properties below are optional timeout: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, }, virtualRouterName: jsii.String("virtualRouterName"), // the properties below are optional meshOwner: jsii.String("meshOwner"), routeName: jsii.String("routeName"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, }
type CfnRoute_DurationProperty ¶
type CfnRoute_DurationProperty struct { // A unit of time. Unit *string `field:"required" json:"unit" yaml:"unit"` // A number of time units. Value *float64 `field:"required" json:"value" yaml:"value"` }
An object that represents a duration of time.
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" durationProperty := &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }
type CfnRoute_GrpcRetryPolicyProperty ¶
type CfnRoute_GrpcRetryPolicyProperty struct { // The maximum number of retry attempts. MaxRetries *float64 `field:"required" json:"maxRetries" yaml:"maxRetries"` // The timeout for each retry attempt. PerRetryTimeout interface{} `field:"required" json:"perRetryTimeout" yaml:"perRetryTimeout"` // Specify at least one of the valid values. GrpcRetryEvents *[]*string `field:"optional" json:"grpcRetryEvents" yaml:"grpcRetryEvents"` // Specify at least one of the following values. // // - *server-error* – HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511 // - *gateway-error* – HTTP status codes 502, 503, and 504 // - *client-error* – HTTP status code 409 // - *stream-error* – Retry on refused stream. HttpRetryEvents *[]*string `field:"optional" json:"httpRetryEvents" yaml:"httpRetryEvents"` // Specify a valid value. // // The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable. TcpRetryEvents *[]*string `field:"optional" json:"tcpRetryEvents" yaml:"tcpRetryEvents"` }
An object that represents a retry policy.
Specify at least one value for at least one of the types of `RetryEvents` , a value for `maxRetries` , and a value for `perRetryTimeout` . Both `server-error` and `gateway-error` under `httpRetryEvents` include the Envoy `reset` policy. For more information on the `reset` policy, see the [Envoy documentation](https://docs.aws.amazon.com/https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on) .
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" grpcRetryPolicyProperty := &grpcRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional grpcRetryEvents: []*string{ jsii.String("grpcRetryEvents"), }, httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }
type CfnRoute_GrpcRouteActionProperty ¶
type CfnRoute_GrpcRouteActionProperty struct {
// An object that represents the targets that traffic is routed to when a request matches the route.
WeightedTargets interface{} `field:"required" json:"weightedTargets" yaml:"weightedTargets"`
}
An object that represents the action to take if a match is determined.
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" grpcRouteActionProperty := &grpcRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }
type CfnRoute_GrpcRouteMatchProperty ¶
type CfnRoute_GrpcRouteMatchProperty struct { // An object that represents the data to match from the request. Metadata interface{} `field:"optional" json:"metadata" yaml:"metadata"` // The method name to match from the request. // // If you specify a name, you must also specify a `serviceName` . MethodName *string `field:"optional" json:"methodName" yaml:"methodName"` // The fully qualified domain name for the service to match from the request. ServiceName *string `field:"optional" json:"serviceName" yaml:"serviceName"` }
An object that represents the criteria for determining a request match.
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" grpcRouteMatchProperty := &grpcRouteMatchProperty{ metadata: []interface{}{ &grpcRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, methodName: jsii.String("methodName"), serviceName: jsii.String("serviceName"), }
type CfnRoute_GrpcRouteMetadataMatchMethodProperty ¶
type CfnRoute_GrpcRouteMetadataMatchMethodProperty struct { // The value sent by the client must match the specified value exactly. Exact *string `field:"optional" json:"exact" yaml:"exact"` // The value sent by the client must begin with the specified characters. Prefix *string `field:"optional" json:"prefix" yaml:"prefix"` // An object that represents the range of values to match on. Range interface{} `field:"optional" json:"range" yaml:"range"` // The value sent by the client must include the specified characters. Regex *string `field:"optional" json:"regex" yaml:"regex"` // The value sent by the client must end with the specified characters. Suffix *string `field:"optional" json:"suffix" yaml:"suffix"` }
An object that represents the match method.
Specify one of the match values.
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" grpcRouteMetadataMatchMethodProperty := &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }
type CfnRoute_GrpcRouteMetadataProperty ¶
type CfnRoute_GrpcRouteMetadataProperty struct { // The name of the route. Name *string `field:"required" json:"name" yaml:"name"` // Specify `True` to match anything except the match criteria. // // The default value is `False` . Invert interface{} `field:"optional" json:"invert" yaml:"invert"` // An object that represents the data to match from the request. Match interface{} `field:"optional" json:"match" yaml:"match"` }
An object that represents the match metadata for the route.
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" grpcRouteMetadataProperty := &grpcRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }
type CfnRoute_GrpcRouteProperty ¶
type CfnRoute_GrpcRouteProperty struct { // An object that represents the action to take if a match is determined. Action interface{} `field:"required" json:"action" yaml:"action"` // An object that represents the criteria for determining a request match. Match interface{} `field:"required" json:"match" yaml:"match"` // An object that represents a retry policy. RetryPolicy interface{} `field:"optional" json:"retryPolicy" yaml:"retryPolicy"` // An object that represents types of timeouts. Timeout interface{} `field:"optional" json:"timeout" yaml:"timeout"` }
An object that represents a gRPC route 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" grpcRouteProperty := &grpcRouteProperty{ action: &grpcRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &grpcRouteMatchProperty{ metadata: []interface{}{ &grpcRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, methodName: jsii.String("methodName"), serviceName: jsii.String("serviceName"), }, // the properties below are optional retryPolicy: &grpcRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional grpcRetryEvents: []*string{ jsii.String("grpcRetryEvents"), }, httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }
type CfnRoute_GrpcTimeoutProperty ¶
type CfnRoute_GrpcTimeoutProperty struct { // An object that represents an idle timeout. // // An idle timeout bounds the amount of time that a connection may be idle. The default value is none. Idle interface{} `field:"optional" json:"idle" yaml:"idle"` // An object that represents a per request timeout. // // The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route. PerRequest interface{} `field:"optional" json:"perRequest" yaml:"perRequest"` }
An object that represents types of timeouts.
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" grpcTimeoutProperty := &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }
type CfnRoute_HeaderMatchMethodProperty ¶
type CfnRoute_HeaderMatchMethodProperty struct { // The value sent by the client must match the specified value exactly. Exact *string `field:"optional" json:"exact" yaml:"exact"` // The value sent by the client must begin with the specified characters. Prefix *string `field:"optional" json:"prefix" yaml:"prefix"` // An object that represents the range of values to match on. Range interface{} `field:"optional" json:"range" yaml:"range"` // The value sent by the client must include the specified characters. Regex *string `field:"optional" json:"regex" yaml:"regex"` // The value sent by the client must end with the specified characters. Suffix *string `field:"optional" json:"suffix" yaml:"suffix"` }
An object that represents the method and value to match with the header value sent in a request.
Specify one match 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" headerMatchMethodProperty := &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }
type CfnRoute_HttpPathMatchProperty ¶
type CfnRoute_HttpPathMatchProperty struct { // The exact path to match on. Exact *string `field:"optional" json:"exact" yaml:"exact"` // The regex used to match the path. Regex *string `field:"optional" json:"regex" yaml:"regex"` }
An object representing the path to match in the 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" httpPathMatchProperty := &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }
type CfnRoute_HttpQueryParameterMatchProperty ¶
type CfnRoute_HttpQueryParameterMatchProperty struct { // The exact query parameter to match on. Exact *string `field:"optional" json:"exact" yaml:"exact"` }
An object representing the query parameter to match.
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" httpQueryParameterMatchProperty := &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }
type CfnRoute_HttpRetryPolicyProperty ¶
type CfnRoute_HttpRetryPolicyProperty struct { // The maximum number of retry attempts. MaxRetries *float64 `field:"required" json:"maxRetries" yaml:"maxRetries"` // The timeout for each retry attempt. PerRetryTimeout interface{} `field:"required" json:"perRetryTimeout" yaml:"perRetryTimeout"` // Specify at least one of the following values. // // - *server-error* – HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511 // - *gateway-error* – HTTP status codes 502, 503, and 504 // - *client-error* – HTTP status code 409 // - *stream-error* – Retry on refused stream. HttpRetryEvents *[]*string `field:"optional" json:"httpRetryEvents" yaml:"httpRetryEvents"` // Specify a valid value. // // The event occurs before any processing of a request has started and is encountered when the upstream is temporarily or permanently unavailable. TcpRetryEvents *[]*string `field:"optional" json:"tcpRetryEvents" yaml:"tcpRetryEvents"` }
An object that represents a retry policy.
Specify at least one value for at least one of the types of `RetryEvents` , a value for `maxRetries` , and a value for `perRetryTimeout` . Both `server-error` and `gateway-error` under `httpRetryEvents` include the Envoy `reset` policy. For more information on the `reset` policy, see the [Envoy documentation](https://docs.aws.amazon.com/https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on) .
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" httpRetryPolicyProperty := &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }
type CfnRoute_HttpRouteActionProperty ¶
type CfnRoute_HttpRouteActionProperty struct {
// An object that represents the targets that traffic is routed to when a request matches the route.
WeightedTargets interface{} `field:"required" json:"weightedTargets" yaml:"weightedTargets"`
}
An object that represents the action to take if a match is determined.
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" httpRouteActionProperty := &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }
type CfnRoute_HttpRouteHeaderProperty ¶
type CfnRoute_HttpRouteHeaderProperty struct { // A name for the HTTP header in the client request that will be matched on. Name *string `field:"required" json:"name" yaml:"name"` // Specify `True` to match anything except the match criteria. // // The default value is `False` . Invert interface{} `field:"optional" json:"invert" yaml:"invert"` // The `HeaderMatchMethod` object. Match interface{} `field:"optional" json:"match" yaml:"match"` }
An object that represents the HTTP header in the 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" httpRouteHeaderProperty := &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }
type CfnRoute_HttpRouteMatchProperty ¶
type CfnRoute_HttpRouteMatchProperty struct { // The client request headers to match on. Headers interface{} `field:"optional" json:"headers" yaml:"headers"` // The client request method to match on. // // Specify only one. Method *string `field:"optional" json:"method" yaml:"method"` // The client request path to match on. Path interface{} `field:"optional" json:"path" yaml:"path"` // Specifies the path to match requests with. // // This parameter must always start with `/` , which by itself matches all requests to the virtual service name. You can also match for path-based routing of requests. For example, if your virtual service name is `my-service.local` and you want the route to match requests to `my-service.local/metrics` , your prefix should be `/metrics` . Prefix *string `field:"optional" json:"prefix" yaml:"prefix"` // The client request query parameters to match on. QueryParameters interface{} `field:"optional" json:"queryParameters" yaml:"queryParameters"` // The client request scheme to match on. // // Specify only one. Applicable only for HTTP2 routes. Scheme *string `field:"optional" json:"scheme" yaml:"scheme"` }
An object that represents the requirements for a route to match HTTP requests for a virtual router.
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" httpRouteMatchProperty := &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }
type CfnRoute_HttpRouteProperty ¶
type CfnRoute_HttpRouteProperty struct { // An object that represents the action to take if a match is determined. Action interface{} `field:"required" json:"action" yaml:"action"` // An object that represents the criteria for determining a request match. Match interface{} `field:"required" json:"match" yaml:"match"` // An object that represents a retry policy. RetryPolicy interface{} `field:"optional" json:"retryPolicy" yaml:"retryPolicy"` // An object that represents types of timeouts. Timeout interface{} `field:"optional" json:"timeout" yaml:"timeout"` }
An object that represents an HTTP or HTTP/2 route 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" httpRouteProperty := &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }
type CfnRoute_HttpTimeoutProperty ¶
type CfnRoute_HttpTimeoutProperty struct { // An object that represents an idle timeout. // // An idle timeout bounds the amount of time that a connection may be idle. The default value is none. Idle interface{} `field:"optional" json:"idle" yaml:"idle"` // An object that represents a per request timeout. // // The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route. PerRequest interface{} `field:"optional" json:"perRequest" yaml:"perRequest"` }
An object that represents types of timeouts.
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" httpTimeoutProperty := &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }
type CfnRoute_MatchRangeProperty ¶
type CfnRoute_MatchRangeProperty struct { // The end of the range. End *float64 `field:"required" json:"end" yaml:"end"` // The start of the range. Start *float64 `field:"required" json:"start" yaml:"start"` }
An object that represents the range of values to match on.
The first character of the range is included in the range, though the last character is not. For example, if the range specified were 1-100, only values 1-99 would be matched.
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" matchRangeProperty := &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }
type CfnRoute_QueryParameterProperty ¶
type CfnRoute_QueryParameterProperty struct { // A name for the query parameter that will be matched on. Name *string `field:"required" json:"name" yaml:"name"` // The query parameter to match on. Match interface{} `field:"optional" json:"match" yaml:"match"` }
An object that represents the query parameter in the 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" queryParameterProperty := &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }
type CfnRoute_RouteSpecProperty ¶
type CfnRoute_RouteSpecProperty struct { // An object that represents the specification of a gRPC route. GrpcRoute interface{} `field:"optional" json:"grpcRoute" yaml:"grpcRoute"` // An object that represents the specification of an HTTP/2 route. Http2Route interface{} `field:"optional" json:"http2Route" yaml:"http2Route"` // An object that represents the specification of an HTTP route. HttpRoute interface{} `field:"optional" json:"httpRoute" yaml:"httpRoute"` // The priority for the route. // // Routes are matched based on the specified value, where 0 is the highest priority. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` // An object that represents the specification of a TCP route. TcpRoute interface{} `field:"optional" json:"tcpRoute" yaml:"tcpRoute"` }
An object that represents a route specification.
Specify one route 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" routeSpecProperty := &routeSpecProperty{ grpcRoute: &grpcRouteProperty{ action: &grpcRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &grpcRouteMatchProperty{ metadata: []interface{}{ &grpcRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, methodName: jsii.String("methodName"), serviceName: jsii.String("serviceName"), }, // the properties below are optional retryPolicy: &grpcRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional grpcRetryEvents: []*string{ jsii.String("grpcRetryEvents"), }, httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, http2Route: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, httpRoute: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, priority: jsii.Number(123), tcpRoute: &tcpRouteProperty{ action: &tcpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, // the properties below are optional timeout: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, }
type CfnRoute_TcpRouteActionProperty ¶
type CfnRoute_TcpRouteActionProperty struct {
// An object that represents the targets that traffic is routed to when a request matches the route.
WeightedTargets interface{} `field:"required" json:"weightedTargets" yaml:"weightedTargets"`
}
An object that represents the action to take if a match is determined.
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" tcpRouteActionProperty := &tcpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }
type CfnRoute_TcpRouteProperty ¶
type CfnRoute_TcpRouteProperty struct { // The action to take if a match is determined. Action interface{} `field:"required" json:"action" yaml:"action"` // An object that represents types of timeouts. Timeout interface{} `field:"optional" json:"timeout" yaml:"timeout"` }
An object that represents a TCP route 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" tcpRouteProperty := &tcpRouteProperty{ action: &tcpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, // the properties below are optional timeout: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }
type CfnRoute_TcpTimeoutProperty ¶
type CfnRoute_TcpTimeoutProperty struct { // An object that represents an idle timeout. // // An idle timeout bounds the amount of time that a connection may be idle. The default value is none. Idle interface{} `field:"optional" json:"idle" yaml:"idle"` }
An object that represents types of timeouts.
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" tcpTimeoutProperty := &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }
type CfnRoute_WeightedTargetProperty ¶
type CfnRoute_WeightedTargetProperty struct { // The virtual node to associate with the weighted target. VirtualNode *string `field:"required" json:"virtualNode" yaml:"virtualNode"` // The relative weight of the weighted target. Weight *float64 `field:"required" json:"weight" yaml:"weight"` }
An object that represents a target and its relative weight.
Traffic is distributed across targets according to their relative weight. For example, a weighted target with a relative weight of 50 receives five times as much traffic as one with a relative weight of 10. The total weight for all targets combined must be less than or equal to 100.
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" weightedTargetProperty := &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }
type CfnVirtualGateway ¶
type CfnVirtualGateway interface { awscdk.CfnResource awscdk.IInspectable // The full Amazon Resource Name (ARN) for the virtual gateway. AttrArn() *string // The name of the service mesh that the virtual gateway resides in. AttrMeshName() *string // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrMeshOwner() *string // The AWS IAM account ID of the resource owner. // // If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrResourceOwner() *string // The unique identifier for the virtual gateway. AttrUid() *string // The name of the virtual gateway. AttrVirtualGatewayName() *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 the service mesh that the virtual gateway resides in. MeshName() *string SetMeshName(val *string) // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner() *string SetMeshOwner(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 specifications of the virtual gateway. Spec() interface{} SetSpec(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Optional metadata that you can apply to the virtual gateway to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags() awscdk.TagManager // 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 the virtual gateway. VirtualGatewayName() *string SetVirtualGatewayName(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. 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) 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) // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} // 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{}) }
A CloudFormation `AWS::AppMesh::VirtualGateway`.
Creates a virtual gateway.
A virtual gateway allows resources outside your mesh to communicate to resources that are inside your mesh. The virtual gateway represents an Envoy proxy running in an Amazon ECS task, in a Kubernetes service, or on an Amazon EC2 instance. Unlike a virtual node, which represents an Envoy running with an application, a virtual gateway represents Envoy deployed by itself.
For more information about virtual gateways, see [Virtual gateways](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html) .
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" cfnVirtualGateway := awscdk.Aws_appmesh.NewCfnVirtualGateway(this, jsii.String("MyCfnVirtualGateway"), &cfnVirtualGatewayProps{ meshName: jsii.String("meshName"), spec: &virtualGatewaySpecProperty{ listeners: []interface{}{ &virtualGatewayListenerProperty{ portMapping: &virtualGatewayPortMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualGatewayConnectionPoolProperty{ grpc: &virtualGatewayGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualGatewayHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualGatewayHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, }, healthCheck: &virtualGatewayHealthCheckPolicyProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, tls: &virtualGatewayListenerTlsProperty{ certificate: &virtualGatewayListenerTlsCertificateProperty{ acm: &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &virtualGatewayListenerTlsValidationContextProperty{ trust: &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }, // the properties below are optional backendDefaults: &virtualGatewayBackendDefaultsProperty{ clientPolicy: &virtualGatewayClientPolicyProperty{ tls: &virtualGatewayClientPolicyTlsProperty{ validation: &virtualGatewayTlsValidationContextProperty{ trust: &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &virtualGatewayClientTlsCertificateProperty{ file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, logging: &virtualGatewayLoggingProperty{ accessLog: &virtualGatewayAccessLogProperty{ file: &virtualGatewayFileAccessLogProperty{ path: jsii.String("path"), }, }, }, }, // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, virtualGatewayName: jsii.String("virtualGatewayName"), })
func NewCfnVirtualGateway ¶
func NewCfnVirtualGateway(scope constructs.Construct, id *string, props *CfnVirtualGatewayProps) CfnVirtualGateway
Create a new `AWS::AppMesh::VirtualGateway`.
type CfnVirtualGatewayProps ¶
type CfnVirtualGatewayProps struct { // The name of the service mesh that the virtual gateway resides in. MeshName *string `field:"required" json:"meshName" yaml:"meshName"` // The specifications of the virtual gateway. Spec interface{} `field:"required" json:"spec" yaml:"spec"` // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner *string `field:"optional" json:"meshOwner" yaml:"meshOwner"` // Optional metadata that you can apply to the virtual gateway to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` // The name of the virtual gateway. VirtualGatewayName *string `field:"optional" json:"virtualGatewayName" yaml:"virtualGatewayName"` }
Properties for defining a `CfnVirtualGateway`.
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" cfnVirtualGatewayProps := &cfnVirtualGatewayProps{ meshName: jsii.String("meshName"), spec: &virtualGatewaySpecProperty{ listeners: []interface{}{ &virtualGatewayListenerProperty{ portMapping: &virtualGatewayPortMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualGatewayConnectionPoolProperty{ grpc: &virtualGatewayGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualGatewayHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualGatewayHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, }, healthCheck: &virtualGatewayHealthCheckPolicyProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, tls: &virtualGatewayListenerTlsProperty{ certificate: &virtualGatewayListenerTlsCertificateProperty{ acm: &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &virtualGatewayListenerTlsValidationContextProperty{ trust: &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }, // the properties below are optional backendDefaults: &virtualGatewayBackendDefaultsProperty{ clientPolicy: &virtualGatewayClientPolicyProperty{ tls: &virtualGatewayClientPolicyTlsProperty{ validation: &virtualGatewayTlsValidationContextProperty{ trust: &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &virtualGatewayClientTlsCertificateProperty{ file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, logging: &virtualGatewayLoggingProperty{ accessLog: &virtualGatewayAccessLogProperty{ file: &virtualGatewayFileAccessLogProperty{ path: jsii.String("path"), }, }, }, }, // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, virtualGatewayName: jsii.String("virtualGatewayName"), }
type CfnVirtualGateway_SubjectAlternativeNameMatchersProperty ¶
type CfnVirtualGateway_SubjectAlternativeNameMatchersProperty struct { // The values sent must match the specified values exactly. Exact *[]*string `field:"optional" json:"exact" yaml:"exact"` }
An object that represents the methods by which a subject alternative name on a peer Transport Layer Security (TLS) certificate can be matched.
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" subjectAlternativeNameMatchersProperty := &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }
type CfnVirtualGateway_SubjectAlternativeNamesProperty ¶
type CfnVirtualGateway_SubjectAlternativeNamesProperty struct {
// An object that represents the criteria for determining a SANs match.
Match interface{} `field:"required" json:"match" yaml:"match"`
}
An object that represents the subject alternative names secured by the certificate.
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" subjectAlternativeNamesProperty := &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }
type CfnVirtualGateway_VirtualGatewayAccessLogProperty ¶
type CfnVirtualGateway_VirtualGatewayAccessLogProperty struct {
// The file object to send virtual gateway access logs to.
File interface{} `field:"optional" json:"file" yaml:"file"`
}
The access log configuration for a virtual gateway.
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" virtualGatewayAccessLogProperty := &virtualGatewayAccessLogProperty{ file: &virtualGatewayFileAccessLogProperty{ path: jsii.String("path"), }, }
type CfnVirtualGateway_VirtualGatewayBackendDefaultsProperty ¶
type CfnVirtualGateway_VirtualGatewayBackendDefaultsProperty struct {
// A reference to an object that represents a client policy.
ClientPolicy interface{} `field:"optional" json:"clientPolicy" yaml:"clientPolicy"`
}
An object that represents the default properties for a 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" virtualGatewayBackendDefaultsProperty := &virtualGatewayBackendDefaultsProperty{ clientPolicy: &virtualGatewayClientPolicyProperty{ tls: &virtualGatewayClientPolicyTlsProperty{ validation: &virtualGatewayTlsValidationContextProperty{ trust: &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &virtualGatewayClientTlsCertificateProperty{ file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }
type CfnVirtualGateway_VirtualGatewayClientPolicyProperty ¶
type CfnVirtualGateway_VirtualGatewayClientPolicyProperty struct {
// A reference to an object that represents a Transport Layer Security (TLS) client policy.
Tls interface{} `field:"optional" json:"tls" yaml:"tls"`
}
An object that represents a client policy.
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" virtualGatewayClientPolicyProperty := &virtualGatewayClientPolicyProperty{ tls: &virtualGatewayClientPolicyTlsProperty{ validation: &virtualGatewayTlsValidationContextProperty{ trust: &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &virtualGatewayClientTlsCertificateProperty{ file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }
type CfnVirtualGateway_VirtualGatewayClientPolicyTlsProperty ¶
type CfnVirtualGateway_VirtualGatewayClientPolicyTlsProperty struct { // A reference to an object that represents a Transport Layer Security (TLS) validation context. Validation interface{} `field:"required" json:"validation" yaml:"validation"` // A reference to an object that represents a virtual gateway's client's Transport Layer Security (TLS) certificate. Certificate interface{} `field:"optional" json:"certificate" yaml:"certificate"` // Whether the policy is enforced. // // The default is `True` , if a value isn't specified. Enforce interface{} `field:"optional" json:"enforce" yaml:"enforce"` // One or more ports that the policy is enforced for. Ports interface{} `field:"optional" json:"ports" yaml:"ports"` }
An object that represents a Transport Layer Security (TLS) client policy.
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" virtualGatewayClientPolicyTlsProperty := &virtualGatewayClientPolicyTlsProperty{ validation: &virtualGatewayTlsValidationContextProperty{ trust: &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &virtualGatewayClientTlsCertificateProperty{ file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }
type CfnVirtualGateway_VirtualGatewayClientTlsCertificateProperty ¶
type CfnVirtualGateway_VirtualGatewayClientTlsCertificateProperty struct { // An object that represents a local file certificate. // // The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see [Transport Layer Security (TLS)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html) . File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a virtual gateway's client's Secret Discovery Service certificate. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents the virtual gateway's client's Transport Layer Security (TLS) certificate.
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" virtualGatewayClientTlsCertificateProperty := &virtualGatewayClientTlsCertificateProperty{ file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualGateway_VirtualGatewayConnectionPoolProperty ¶
type CfnVirtualGateway_VirtualGatewayConnectionPoolProperty struct { // An object that represents a type of connection pool. Grpc interface{} `field:"optional" json:"grpc" yaml:"grpc"` // An object that represents a type of connection pool. Http interface{} `field:"optional" json:"http" yaml:"http"` // An object that represents a type of connection pool. Http2 interface{} `field:"optional" json:"http2" yaml:"http2"` }
An object that represents the type of virtual gateway connection pool.
Only one protocol is used at a time and should be the same protocol as the one chosen under port mapping.
If not present the default value for `maxPendingRequests` is `2147483647` .
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" virtualGatewayConnectionPoolProperty := &virtualGatewayConnectionPoolProperty{ grpc: &virtualGatewayGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualGatewayHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualGatewayHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, }
type CfnVirtualGateway_VirtualGatewayFileAccessLogProperty ¶
type CfnVirtualGateway_VirtualGatewayFileAccessLogProperty struct { // The file path to write access logs to. // // You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs` , to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk. Path *string `field:"required" json:"path" yaml:"path"` }
An object that represents an access log 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" virtualGatewayFileAccessLogProperty := &virtualGatewayFileAccessLogProperty{ path: jsii.String("path"), }
type CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolProperty ¶
type CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolProperty struct { // Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. MaxRequests *float64 `field:"required" json:"maxRequests" yaml:"maxRequests"` }
An object that represents a type of connection pool.
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" virtualGatewayGrpcConnectionPoolProperty := &virtualGatewayGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }
type CfnVirtualGateway_VirtualGatewayHealthCheckPolicyProperty ¶
type CfnVirtualGateway_VirtualGatewayHealthCheckPolicyProperty struct { // The number of consecutive successful health checks that must occur before declaring the listener healthy. HealthyThreshold *float64 `field:"required" json:"healthyThreshold" yaml:"healthyThreshold"` // The time period in milliseconds between each health check execution. IntervalMillis *float64 `field:"required" json:"intervalMillis" yaml:"intervalMillis"` // The protocol for the health check request. // // If you specify `grpc` , then your service must conform to the [GRPC Health Checking Protocol](https://docs.aws.amazon.com/https://github.com/grpc/grpc/blob/master/doc/health-checking.md) . Protocol *string `field:"required" json:"protocol" yaml:"protocol"` // The amount of time to wait when receiving a response from the health check, in milliseconds. TimeoutMillis *float64 `field:"required" json:"timeoutMillis" yaml:"timeoutMillis"` // The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. UnhealthyThreshold *float64 `field:"required" json:"unhealthyThreshold" yaml:"unhealthyThreshold"` // The destination path for the health check request. // // This value is only used if the specified protocol is HTTP or HTTP/2. For any other protocol, this value is ignored. Path *string `field:"optional" json:"path" yaml:"path"` // The destination port for the health check request. // // This port must match the port defined in the `PortMapping` for the listener. Port *float64 `field:"optional" json:"port" yaml:"port"` }
An object that represents the health check policy for a virtual gateway's listener.
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" virtualGatewayHealthCheckPolicyProperty := &virtualGatewayHealthCheckPolicyProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }
type CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolProperty ¶
type CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolProperty struct { // Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. MaxRequests *float64 `field:"required" json:"maxRequests" yaml:"maxRequests"` }
An object that represents a type of connection pool.
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" virtualGatewayHttp2ConnectionPoolProperty := &virtualGatewayHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }
type CfnVirtualGateway_VirtualGatewayHttpConnectionPoolProperty ¶
type CfnVirtualGateway_VirtualGatewayHttpConnectionPoolProperty struct { // Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. MaxConnections *float64 `field:"required" json:"maxConnections" yaml:"maxConnections"` // Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster. MaxPendingRequests *float64 `field:"optional" json:"maxPendingRequests" yaml:"maxPendingRequests"` }
An object that represents a type of connection pool.
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" virtualGatewayHttpConnectionPoolProperty := &virtualGatewayHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }
type CfnVirtualGateway_VirtualGatewayListenerProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerProperty struct { // The port mapping information for the listener. PortMapping interface{} `field:"required" json:"portMapping" yaml:"portMapping"` // The connection pool information for the listener. ConnectionPool interface{} `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck interface{} `field:"optional" json:"healthCheck" yaml:"healthCheck"` // A reference to an object that represents the Transport Layer Security (TLS) properties for the listener. Tls interface{} `field:"optional" json:"tls" yaml:"tls"` }
An object that represents a listener for a virtual gateway.
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" virtualGatewayListenerProperty := &virtualGatewayListenerProperty{ portMapping: &virtualGatewayPortMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualGatewayConnectionPoolProperty{ grpc: &virtualGatewayGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualGatewayHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualGatewayHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, }, healthCheck: &virtualGatewayHealthCheckPolicyProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, tls: &virtualGatewayListenerTlsProperty{ certificate: &virtualGatewayListenerTlsCertificateProperty{ acm: &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &virtualGatewayListenerTlsValidationContextProperty{ trust: &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }
type CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificateProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificateProperty struct { // The Amazon Resource Name (ARN) for the certificate. // // The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see [Transport Layer Security (TLS)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites) . CertificateArn *string `field:"required" json:"certificateArn" yaml:"certificateArn"` }
An object that represents an AWS Certificate Manager certificate.
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" virtualGatewayListenerTlsAcmCertificateProperty := &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }
type CfnVirtualGateway_VirtualGatewayListenerTlsCertificateProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerTlsCertificateProperty struct { // A reference to an object that represents an AWS Certificate Manager certificate. Acm interface{} `field:"optional" json:"acm" yaml:"acm"` // A reference to an object that represents a local file certificate. File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a virtual gateway's listener's Secret Discovery Service certificate. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents a listener's Transport Layer Security (TLS) certificate.
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" virtualGatewayListenerTlsCertificateProperty := &virtualGatewayListenerTlsCertificateProperty{ acm: &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificateProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificateProperty struct { // The certificate chain for the certificate. CertificateChain *string `field:"required" json:"certificateChain" yaml:"certificateChain"` // The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. PrivateKey *string `field:"required" json:"privateKey" yaml:"privateKey"` }
An object that represents a local file certificate.
The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see [Transport Layer Security (TLS)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites) .
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" virtualGatewayListenerTlsFileCertificateProperty := &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }
type CfnVirtualGateway_VirtualGatewayListenerTlsProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerTlsProperty struct { // An object that represents a Transport Layer Security (TLS) certificate. Certificate interface{} `field:"required" json:"certificate" yaml:"certificate"` // Specify one of the following modes. // // - ** STRICT – Listener only accepts connections with TLS enabled. // - ** PERMISSIVE – Listener accepts connections with or without TLS enabled. // - ** DISABLED – Listener only accepts connections without TLS. Mode *string `field:"required" json:"mode" yaml:"mode"` // A reference to an object that represents a virtual gateway's listener's Transport Layer Security (TLS) validation context. Validation interface{} `field:"optional" json:"validation" yaml:"validation"` }
An object that represents the Transport Layer Security (TLS) properties for a listener.
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" virtualGatewayListenerTlsProperty := &virtualGatewayListenerTlsProperty{ certificate: &virtualGatewayListenerTlsCertificateProperty{ acm: &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &virtualGatewayListenerTlsValidationContextProperty{ trust: &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }
type CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificateProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificateProperty struct { // A reference to an object that represents the name of the secret secret requested from the Secret Discovery Service provider representing Transport Layer Security (TLS) materials like a certificate or certificate chain. SecretName *string `field:"required" json:"secretName" yaml:"secretName"` }
An object that represents the virtual gateway's listener's Secret Discovery Service certificate.The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App Mesh [TLS documentation](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html) for more info.
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" virtualGatewayListenerTlsSdsCertificateProperty := &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }
type CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextProperty struct { // A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. Trust interface{} `field:"required" json:"trust" yaml:"trust"` // A reference to an object that represents the SANs for a virtual gateway listener's Transport Layer Security (TLS) validation context. SubjectAlternativeNames interface{} `field:"optional" json:"subjectAlternativeNames" yaml:"subjectAlternativeNames"` }
An object that represents a virtual gateway's listener's Transport Layer Security (TLS) validation context.
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" virtualGatewayListenerTlsValidationContextProperty := &virtualGatewayListenerTlsValidationContextProperty{ trust: &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }
type CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustProperty ¶
type CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustProperty struct { // An object that represents a Transport Layer Security (TLS) validation context trust for a local file. File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a virtual gateway's listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents a virtual gateway's listener's Transport Layer Security (TLS) validation context trust.
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" virtualGatewayListenerTlsValidationContextTrustProperty := &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualGateway_VirtualGatewayLoggingProperty ¶
type CfnVirtualGateway_VirtualGatewayLoggingProperty struct {
// The access log configuration.
AccessLog interface{} `field:"optional" json:"accessLog" yaml:"accessLog"`
}
An object that represents logging information.
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" virtualGatewayLoggingProperty := &virtualGatewayLoggingProperty{ accessLog: &virtualGatewayAccessLogProperty{ file: &virtualGatewayFileAccessLogProperty{ path: jsii.String("path"), }, }, }
type CfnVirtualGateway_VirtualGatewayPortMappingProperty ¶
type CfnVirtualGateway_VirtualGatewayPortMappingProperty struct { // The port used for the port mapping. // // Specify one protocol. Port *float64 `field:"required" json:"port" yaml:"port"` // The protocol used for the port mapping. Protocol *string `field:"required" json:"protocol" yaml:"protocol"` }
An object that represents a port mapping.
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" virtualGatewayPortMappingProperty := &virtualGatewayPortMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }
type CfnVirtualGateway_VirtualGatewaySpecProperty ¶
type CfnVirtualGateway_VirtualGatewaySpecProperty struct { // The listeners that the mesh endpoint is expected to receive inbound traffic from. // // You can specify one listener. Listeners interface{} `field:"required" json:"listeners" yaml:"listeners"` // A reference to an object that represents the defaults for backends. BackendDefaults interface{} `field:"optional" json:"backendDefaults" yaml:"backendDefaults"` // An object that represents logging information. Logging interface{} `field:"optional" json:"logging" yaml:"logging"` }
An object that represents the specification of a service mesh 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" virtualGatewaySpecProperty := &virtualGatewaySpecProperty{ listeners: []interface{}{ &virtualGatewayListenerProperty{ portMapping: &virtualGatewayPortMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualGatewayConnectionPoolProperty{ grpc: &virtualGatewayGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualGatewayHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualGatewayHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, }, healthCheck: &virtualGatewayHealthCheckPolicyProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, tls: &virtualGatewayListenerTlsProperty{ certificate: &virtualGatewayListenerTlsCertificateProperty{ acm: &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &virtualGatewayListenerTlsValidationContextProperty{ trust: &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }, // the properties below are optional backendDefaults: &virtualGatewayBackendDefaultsProperty{ clientPolicy: &virtualGatewayClientPolicyProperty{ tls: &virtualGatewayClientPolicyTlsProperty{ validation: &virtualGatewayTlsValidationContextProperty{ trust: &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &virtualGatewayClientTlsCertificateProperty{ file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, logging: &virtualGatewayLoggingProperty{ accessLog: &virtualGatewayAccessLogProperty{ file: &virtualGatewayFileAccessLogProperty{ path: jsii.String("path"), }, }, }, }
type CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustProperty ¶
type CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustProperty struct { // One or more ACM Amazon Resource Name (ARN)s. CertificateAuthorityArns *[]*string `field:"required" json:"certificateAuthorityArns" yaml:"certificateAuthorityArns"` }
An object that represents a Transport Layer Security (TLS) validation context trust for an AWS Certificate Manager certificate.
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" virtualGatewayTlsValidationContextAcmTrustProperty := &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }
type CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustProperty ¶
type CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustProperty struct { // The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on. CertificateChain *string `field:"required" json:"certificateChain" yaml:"certificateChain"` }
An object that represents a Transport Layer Security (TLS) validation context trust for a local 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" virtualGatewayTlsValidationContextFileTrustProperty := &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }
type CfnVirtualGateway_VirtualGatewayTlsValidationContextProperty ¶
type CfnVirtualGateway_VirtualGatewayTlsValidationContextProperty struct { // A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. Trust interface{} `field:"required" json:"trust" yaml:"trust"` // A reference to an object that represents the SANs for a virtual gateway's listener's Transport Layer Security (TLS) validation context. SubjectAlternativeNames interface{} `field:"optional" json:"subjectAlternativeNames" yaml:"subjectAlternativeNames"` }
An object that represents a Transport Layer Security (TLS) validation context.
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" virtualGatewayTlsValidationContextProperty := &virtualGatewayTlsValidationContextProperty{ trust: &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }
type CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustProperty ¶
type CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustProperty struct { // A reference to an object that represents the name of the secret for a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. SecretName *string `field:"required" json:"secretName" yaml:"secretName"` }
An object that represents a virtual gateway's listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust.
The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App Mesh [TLS documentation](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html) for more info.
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" virtualGatewayTlsValidationContextSdsTrustProperty := &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }
type CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustProperty ¶
type CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustProperty struct { // A reference to an object that represents a Transport Layer Security (TLS) validation context trust for an AWS Certificate Manager certificate. Acm interface{} `field:"optional" json:"acm" yaml:"acm"` // An object that represents a Transport Layer Security (TLS) validation context trust for a local file. File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a virtual gateway's Transport Layer Security (TLS) Secret Discovery Service validation context trust. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents a Transport Layer Security (TLS) validation context trust.
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" virtualGatewayTlsValidationContextTrustProperty := &virtualGatewayTlsValidationContextTrustProperty{ acm: &virtualGatewayTlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualNode ¶
type CfnVirtualNode interface { awscdk.CfnResource awscdk.IInspectable // The full Amazon Resource Name (ARN) for the virtual node. AttrArn() *string // The name of the service mesh that the virtual node resides in. AttrMeshName() *string // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrMeshOwner() *string // The AWS IAM account ID of the resource owner. // // If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrResourceOwner() *string // The unique identifier for the virtual node. AttrUid() *string // The name of the virtual node. AttrVirtualNodeName() *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 the service mesh to create the virtual node in. MeshName() *string SetMeshName(val *string) // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner() *string SetMeshOwner(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 virtual node specification to apply. Spec() interface{} SetSpec(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Optional metadata that you can apply to the virtual node to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags() awscdk.TagManager // 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 to use for the virtual node. VirtualNodeName() *string SetVirtualNodeName(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. 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) 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) // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} // 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{}) }
A CloudFormation `AWS::AppMesh::VirtualNode`.
Creates a virtual node within a service mesh.
A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS service or a Kubernetes deployment. When you create a virtual node, you can specify the service discovery information for your task group, and whether the proxy running in a task group will communicate with other proxies using Transport Layer Security (TLS).
You define a `listener` for any inbound traffic that your virtual node expects. Any virtual service that your virtual node expects to communicate to is specified as a `backend` .
The response metadata for your new virtual node contains the `arn` that is associated with the virtual node. Set this value to the full ARN; for example, `arn:aws:appmesh:us-west-2:123456789012:myMesh/default/virtualNode/myApp` ) as the `APPMESH_RESOURCE_ARN` environment variable for your task group's Envoy proxy container in your task definition or pod spec. This is then mapped to the `node.id` and `node.cluster` Envoy parameters.
> By default, App Mesh uses the name of the resource you specified in `APPMESH_RESOURCE_ARN` when Envoy is referring to itself in metrics and traces. You can override this behavior by setting the `APPMESH_RESOURCE_CLUSTER` environment variable with your own name.
For more information about virtual nodes, see [Virtual nodes](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html) . You must be using `1.15.0` or later of the Envoy image when setting these variables. For more information about App Mesh Envoy variables, see [Envoy image](https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html) in the AWS App Mesh User 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" cfnVirtualNode := awscdk.Aws_appmesh.NewCfnVirtualNode(this, jsii.String("MyCfnVirtualNode"), &cfnVirtualNodeProps{ meshName: jsii.String("meshName"), spec: &virtualNodeSpecProperty{ backendDefaults: &backendDefaultsProperty{ clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, backends: []interface{}{ &backendProperty{ virtualService: &virtualServiceBackendProperty{ virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, }, }, listeners: []interface{}{ &listenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualNodeConnectionPoolProperty{ grpc: &virtualNodeGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualNodeHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualNodeHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, tcp: &virtualNodeTcpConnectionPoolProperty{ maxConnections: jsii.Number(123), }, }, healthCheck: &healthCheckProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, outlierDetection: &outlierDetectionProperty{ baseEjectionDuration: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, interval: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }, timeout: &listenerTimeoutProperty{ grpc: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http2: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, tcp: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, tls: &listenerTlsProperty{ certificate: &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &listenerTlsValidationContextProperty{ trust: &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }, logging: &loggingProperty{ accessLog: &accessLogProperty{ file: &fileAccessLogProperty{ path: jsii.String("path"), }, }, }, serviceDiscovery: &serviceDiscoveryProperty{ awsCloudMap: &awsCloudMapServiceDiscoveryProperty{ namespaceName: jsii.String("namespaceName"), serviceName: jsii.String("serviceName"), // the properties below are optional attributes: []interface{}{ &awsCloudMapInstanceAttributeProperty{ key: jsii.String("key"), value: jsii.String("value"), }, }, ipPreference: jsii.String("ipPreference"), }, dns: &dnsServiceDiscoveryProperty{ hostname: jsii.String("hostname"), // the properties below are optional ipPreference: jsii.String("ipPreference"), responseType: jsii.String("responseType"), }, }, }, // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, virtualNodeName: jsii.String("virtualNodeName"), })
func NewCfnVirtualNode ¶
func NewCfnVirtualNode(scope constructs.Construct, id *string, props *CfnVirtualNodeProps) CfnVirtualNode
Create a new `AWS::AppMesh::VirtualNode`.
type CfnVirtualNodeProps ¶
type CfnVirtualNodeProps struct { // The name of the service mesh to create the virtual node in. MeshName *string `field:"required" json:"meshName" yaml:"meshName"` // The virtual node specification to apply. Spec interface{} `field:"required" json:"spec" yaml:"spec"` // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner *string `field:"optional" json:"meshOwner" yaml:"meshOwner"` // Optional metadata that you can apply to the virtual node to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` // The name to use for the virtual node. VirtualNodeName *string `field:"optional" json:"virtualNodeName" yaml:"virtualNodeName"` }
Properties for defining a `CfnVirtualNode`.
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" cfnVirtualNodeProps := &cfnVirtualNodeProps{ meshName: jsii.String("meshName"), spec: &virtualNodeSpecProperty{ backendDefaults: &backendDefaultsProperty{ clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, backends: []interface{}{ &backendProperty{ virtualService: &virtualServiceBackendProperty{ virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, }, }, listeners: []interface{}{ &listenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualNodeConnectionPoolProperty{ grpc: &virtualNodeGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualNodeHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualNodeHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, tcp: &virtualNodeTcpConnectionPoolProperty{ maxConnections: jsii.Number(123), }, }, healthCheck: &healthCheckProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, outlierDetection: &outlierDetectionProperty{ baseEjectionDuration: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, interval: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }, timeout: &listenerTimeoutProperty{ grpc: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http2: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, tcp: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, tls: &listenerTlsProperty{ certificate: &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &listenerTlsValidationContextProperty{ trust: &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }, logging: &loggingProperty{ accessLog: &accessLogProperty{ file: &fileAccessLogProperty{ path: jsii.String("path"), }, }, }, serviceDiscovery: &serviceDiscoveryProperty{ awsCloudMap: &awsCloudMapServiceDiscoveryProperty{ namespaceName: jsii.String("namespaceName"), serviceName: jsii.String("serviceName"), // the properties below are optional attributes: []interface{}{ &awsCloudMapInstanceAttributeProperty{ key: jsii.String("key"), value: jsii.String("value"), }, }, ipPreference: jsii.String("ipPreference"), }, dns: &dnsServiceDiscoveryProperty{ hostname: jsii.String("hostname"), // the properties below are optional ipPreference: jsii.String("ipPreference"), responseType: jsii.String("responseType"), }, }, }, // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, virtualNodeName: jsii.String("virtualNodeName"), }
type CfnVirtualNode_AccessLogProperty ¶
type CfnVirtualNode_AccessLogProperty struct {
// The file object to send virtual node access logs to.
File interface{} `field:"optional" json:"file" yaml:"file"`
}
An object that represents the access logging information for a virtual node.
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" accessLogProperty := &accessLogProperty{ file: &fileAccessLogProperty{ path: jsii.String("path"), }, }
type CfnVirtualNode_AwsCloudMapInstanceAttributeProperty ¶
type CfnVirtualNode_AwsCloudMapInstanceAttributeProperty struct { // The name of an AWS Cloud Map service instance attribute key. // // Any AWS Cloud Map service instance that contains the specified key and value is returned. Key *string `field:"required" json:"key" yaml:"key"` // The value of an AWS Cloud Map service instance attribute key. // // Any AWS Cloud Map service instance that contains the specified key and value is returned. Value *string `field:"required" json:"value" yaml:"value"` }
An object that represents the AWS Cloud Map attribute information for your virtual node.
> AWS Cloud Map is not available in the eu-south-1 Region.
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" awsCloudMapInstanceAttributeProperty := &awsCloudMapInstanceAttributeProperty{ key: jsii.String("key"), value: jsii.String("value"), }
type CfnVirtualNode_AwsCloudMapServiceDiscoveryProperty ¶
type CfnVirtualNode_AwsCloudMapServiceDiscoveryProperty struct { // The name of the AWS Cloud Map namespace to use. NamespaceName *string `field:"required" json:"namespaceName" yaml:"namespaceName"` // The name of the AWS Cloud Map service to use. ServiceName *string `field:"required" json:"serviceName" yaml:"serviceName"` // A string map that contains attributes with values that you can use to filter instances by any custom attribute that you specified when you registered the instance. // // Only instances that match all of the specified key/value pairs will be returned. Attributes interface{} `field:"optional" json:"attributes" yaml:"attributes"` // The preferred IP version that this virtual node uses. // // Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node. IpPreference *string `field:"optional" json:"ipPreference" yaml:"ipPreference"` }
An object that represents the AWS Cloud Map service discovery information for your virtual node.
> AWS Cloud Map is not available in the eu-south-1 Region.
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" awsCloudMapServiceDiscoveryProperty := &awsCloudMapServiceDiscoveryProperty{ namespaceName: jsii.String("namespaceName"), serviceName: jsii.String("serviceName"), // the properties below are optional attributes: []interface{}{ &awsCloudMapInstanceAttributeProperty{ key: jsii.String("key"), value: jsii.String("value"), }, }, ipPreference: jsii.String("ipPreference"), }
type CfnVirtualNode_BackendDefaultsProperty ¶
type CfnVirtualNode_BackendDefaultsProperty struct {
// A reference to an object that represents a client policy.
ClientPolicy interface{} `field:"optional" json:"clientPolicy" yaml:"clientPolicy"`
}
An object that represents the default properties for a 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" backendDefaultsProperty := &backendDefaultsProperty{ clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }
type CfnVirtualNode_BackendProperty ¶
type CfnVirtualNode_BackendProperty struct {
// Specifies a virtual service to use as a backend.
VirtualService interface{} `field:"optional" json:"virtualService" yaml:"virtualService"`
}
An object that represents the backends that a virtual node is expected to send outbound traffic 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" backendProperty := &backendProperty{ virtualService: &virtualServiceBackendProperty{ virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, }
type CfnVirtualNode_ClientPolicyProperty ¶
type CfnVirtualNode_ClientPolicyProperty struct {
// A reference to an object that represents a Transport Layer Security (TLS) client policy.
Tls interface{} `field:"optional" json:"tls" yaml:"tls"`
}
An object that represents a client policy.
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" clientPolicyProperty := &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }
type CfnVirtualNode_ClientPolicyTlsProperty ¶
type CfnVirtualNode_ClientPolicyTlsProperty struct { // A reference to an object that represents a TLS validation context. Validation interface{} `field:"required" json:"validation" yaml:"validation"` // A reference to an object that represents a client's TLS certificate. Certificate interface{} `field:"optional" json:"certificate" yaml:"certificate"` // Whether the policy is enforced. // // The default is `True` , if a value isn't specified. Enforce interface{} `field:"optional" json:"enforce" yaml:"enforce"` // One or more ports that the policy is enforced for. Ports interface{} `field:"optional" json:"ports" yaml:"ports"` }
A reference to an object that represents a Transport Layer Security (TLS) client policy.
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" clientPolicyTlsProperty := &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }
type CfnVirtualNode_ClientTlsCertificateProperty ¶
type CfnVirtualNode_ClientTlsCertificateProperty struct { // An object that represents a local file certificate. // // The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see [Transport Layer Security (TLS)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html) . File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a client's TLS Secret Discovery Service certificate. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents the client's certificate.
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" clientTlsCertificateProperty := &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualNode_DnsServiceDiscoveryProperty ¶
type CfnVirtualNode_DnsServiceDiscoveryProperty struct { // Specifies the DNS service discovery hostname for the virtual node. Hostname *string `field:"required" json:"hostname" yaml:"hostname"` // The preferred IP version that this virtual node uses. // // Setting the IP preference on the virtual node only overrides the IP preference set for the mesh on this specific node. IpPreference *string `field:"optional" json:"ipPreference" yaml:"ipPreference"` // Specifies the DNS response type for the virtual node. ResponseType *string `field:"optional" json:"responseType" yaml:"responseType"` }
An object that represents the DNS service discovery information for your virtual node.
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" dnsServiceDiscoveryProperty := &dnsServiceDiscoveryProperty{ hostname: jsii.String("hostname"), // the properties below are optional ipPreference: jsii.String("ipPreference"), responseType: jsii.String("responseType"), }
type CfnVirtualNode_DurationProperty ¶
type CfnVirtualNode_DurationProperty struct { // A unit of time. Unit *string `field:"required" json:"unit" yaml:"unit"` // A number of time units. Value *float64 `field:"required" json:"value" yaml:"value"` }
An object that represents a duration of time.
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" durationProperty := &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }
type CfnVirtualNode_FileAccessLogProperty ¶
type CfnVirtualNode_FileAccessLogProperty struct { // The file path to write access logs to. // // You can use `/dev/stdout` to send access logs to standard out and configure your Envoy container to use a log driver, such as `awslogs` , to export the access logs to a log storage service such as Amazon CloudWatch Logs. You can also specify a path in the Envoy container's file system to write the files to disk. // // > The Envoy process must have write permissions to the path that you specify here. Otherwise, Envoy fails to bootstrap properly. Path *string `field:"required" json:"path" yaml:"path"` }
An object that represents an access log 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" fileAccessLogProperty := &fileAccessLogProperty{ path: jsii.String("path"), }
type CfnVirtualNode_GrpcTimeoutProperty ¶
type CfnVirtualNode_GrpcTimeoutProperty struct { // An object that represents an idle timeout. // // An idle timeout bounds the amount of time that a connection may be idle. The default value is none. Idle interface{} `field:"optional" json:"idle" yaml:"idle"` // An object that represents a per request timeout. // // The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route. PerRequest interface{} `field:"optional" json:"perRequest" yaml:"perRequest"` }
An object that represents types of timeouts.
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" grpcTimeoutProperty := &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }
type CfnVirtualNode_HealthCheckProperty ¶
type CfnVirtualNode_HealthCheckProperty struct { // The number of consecutive successful health checks that must occur before declaring listener healthy. HealthyThreshold *float64 `field:"required" json:"healthyThreshold" yaml:"healthyThreshold"` // The time period in milliseconds between each health check execution. IntervalMillis *float64 `field:"required" json:"intervalMillis" yaml:"intervalMillis"` // The protocol for the health check request. // // If you specify `grpc` , then your service must conform to the [GRPC Health Checking Protocol](https://docs.aws.amazon.com/https://github.com/grpc/grpc/blob/master/doc/health-checking.md) . Protocol *string `field:"required" json:"protocol" yaml:"protocol"` // The amount of time to wait when receiving a response from the health check, in milliseconds. TimeoutMillis *float64 `field:"required" json:"timeoutMillis" yaml:"timeoutMillis"` // The number of consecutive failed health checks that must occur before declaring a virtual node unhealthy. UnhealthyThreshold *float64 `field:"required" json:"unhealthyThreshold" yaml:"unhealthyThreshold"` // The destination path for the health check request. // // This value is only used if the specified protocol is HTTP or HTTP/2. For any other protocol, this value is ignored. Path *string `field:"optional" json:"path" yaml:"path"` // The destination port for the health check request. // // This port must match the port defined in the `PortMapping` for the listener. Port *float64 `field:"optional" json:"port" yaml:"port"` }
An object that represents the health check policy for a virtual node's listener.
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" healthCheckProperty := &healthCheckProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }
type CfnVirtualNode_HttpTimeoutProperty ¶
type CfnVirtualNode_HttpTimeoutProperty struct { // An object that represents an idle timeout. // // An idle timeout bounds the amount of time that a connection may be idle. The default value is none. Idle interface{} `field:"optional" json:"idle" yaml:"idle"` // An object that represents a per request timeout. // // The default value is 15 seconds. If you set a higher timeout, then make sure that the higher value is set for each App Mesh resource in a conversation. For example, if a virtual node backend uses a virtual router provider to route to another virtual node, then the timeout should be greater than 15 seconds for the source and destination virtual node and the route. PerRequest interface{} `field:"optional" json:"perRequest" yaml:"perRequest"` }
An object that represents types of timeouts.
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" httpTimeoutProperty := &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }
type CfnVirtualNode_ListenerProperty ¶
type CfnVirtualNode_ListenerProperty struct { // The port mapping information for the listener. PortMapping interface{} `field:"required" json:"portMapping" yaml:"portMapping"` // The connection pool information for the listener. ConnectionPool interface{} `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck interface{} `field:"optional" json:"healthCheck" yaml:"healthCheck"` // The outlier detection information for the listener. OutlierDetection interface{} `field:"optional" json:"outlierDetection" yaml:"outlierDetection"` // An object that represents timeouts for different protocols. Timeout interface{} `field:"optional" json:"timeout" yaml:"timeout"` // A reference to an object that represents the Transport Layer Security (TLS) properties for a listener. Tls interface{} `field:"optional" json:"tls" yaml:"tls"` }
An object that represents a listener for a virtual node.
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" listenerProperty := &listenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualNodeConnectionPoolProperty{ grpc: &virtualNodeGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualNodeHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualNodeHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, tcp: &virtualNodeTcpConnectionPoolProperty{ maxConnections: jsii.Number(123), }, }, healthCheck: &healthCheckProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, outlierDetection: &outlierDetectionProperty{ baseEjectionDuration: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, interval: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }, timeout: &listenerTimeoutProperty{ grpc: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http2: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, tcp: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, tls: &listenerTlsProperty{ certificate: &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &listenerTlsValidationContextProperty{ trust: &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }
type CfnVirtualNode_ListenerTimeoutProperty ¶
type CfnVirtualNode_ListenerTimeoutProperty struct { // An object that represents types of timeouts. Grpc interface{} `field:"optional" json:"grpc" yaml:"grpc"` // An object that represents types of timeouts. Http interface{} `field:"optional" json:"http" yaml:"http"` // An object that represents types of timeouts. Http2 interface{} `field:"optional" json:"http2" yaml:"http2"` // An object that represents types of timeouts. Tcp interface{} `field:"optional" json:"tcp" yaml:"tcp"` }
An object that represents timeouts for different protocols.
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" listenerTimeoutProperty := &listenerTimeoutProperty{ grpc: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http2: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, tcp: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }
type CfnVirtualNode_ListenerTlsAcmCertificateProperty ¶
type CfnVirtualNode_ListenerTlsAcmCertificateProperty struct { // The Amazon Resource Name (ARN) for the certificate. // // The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see [Transport Layer Security (TLS)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites) . CertificateArn *string `field:"required" json:"certificateArn" yaml:"certificateArn"` }
An object that represents an AWS Certificate Manager certificate.
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" listenerTlsAcmCertificateProperty := &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }
type CfnVirtualNode_ListenerTlsCertificateProperty ¶
type CfnVirtualNode_ListenerTlsCertificateProperty struct { // A reference to an object that represents an AWS Certificate Manager certificate. Acm interface{} `field:"optional" json:"acm" yaml:"acm"` // A reference to an object that represents a local file certificate. File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a listener's Secret Discovery Service certificate. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents a listener's Transport Layer Security (TLS) certificate.
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" listenerTlsCertificateProperty := &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualNode_ListenerTlsFileCertificateProperty ¶
type CfnVirtualNode_ListenerTlsFileCertificateProperty struct { // The certificate chain for the certificate. CertificateChain *string `field:"required" json:"certificateChain" yaml:"certificateChain"` // The private key for a certificate stored on the file system of the virtual node that the proxy is running on. PrivateKey *string `field:"required" json:"privateKey" yaml:"privateKey"` }
An object that represents a local file certificate.
The certificate must meet specific requirements and you must have proxy authorization enabled. For more information, see [Transport Layer Security (TLS)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites) .
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" listenerTlsFileCertificateProperty := &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }
type CfnVirtualNode_ListenerTlsProperty ¶
type CfnVirtualNode_ListenerTlsProperty struct { // A reference to an object that represents a listener's Transport Layer Security (TLS) certificate. Certificate interface{} `field:"required" json:"certificate" yaml:"certificate"` // Specify one of the following modes. // // - ** STRICT – Listener only accepts connections with TLS enabled. // - ** PERMISSIVE – Listener accepts connections with or without TLS enabled. // - ** DISABLED – Listener only accepts connections without TLS. Mode *string `field:"required" json:"mode" yaml:"mode"` // A reference to an object that represents a listener's Transport Layer Security (TLS) validation context. Validation interface{} `field:"optional" json:"validation" yaml:"validation"` }
An object that represents the Transport Layer Security (TLS) properties for a listener.
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" listenerTlsProperty := &listenerTlsProperty{ certificate: &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &listenerTlsValidationContextProperty{ trust: &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }
type CfnVirtualNode_ListenerTlsSdsCertificateProperty ¶
type CfnVirtualNode_ListenerTlsSdsCertificateProperty struct { // A reference to an object that represents the name of the secret requested from the Secret Discovery Service provider representing Transport Layer Security (TLS) materials like a certificate or certificate chain. SecretName *string `field:"required" json:"secretName" yaml:"secretName"` }
An object that represents the listener's Secret Discovery Service certificate.
The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App Mesh [TLS documentation](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html) for more info.
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" listenerTlsSdsCertificateProperty := &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }
type CfnVirtualNode_ListenerTlsValidationContextProperty ¶
type CfnVirtualNode_ListenerTlsValidationContextProperty struct { // A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. Trust interface{} `field:"required" json:"trust" yaml:"trust"` // A reference to an object that represents the SANs for a listener's Transport Layer Security (TLS) validation context. SubjectAlternativeNames interface{} `field:"optional" json:"subjectAlternativeNames" yaml:"subjectAlternativeNames"` }
An object that represents a listener's Transport Layer Security (TLS) validation context.
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" listenerTlsValidationContextProperty := &listenerTlsValidationContextProperty{ trust: &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }
type CfnVirtualNode_ListenerTlsValidationContextTrustProperty ¶
type CfnVirtualNode_ListenerTlsValidationContextTrustProperty struct { // An object that represents a Transport Layer Security (TLS) validation context trust for a local file. File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a listener's Transport Layer Security (TLS) Secret Discovery Service validation context trust. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents a listener's Transport Layer Security (TLS) validation context trust.
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" listenerTlsValidationContextTrustProperty := &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualNode_LoggingProperty ¶
type CfnVirtualNode_LoggingProperty struct {
// The access log configuration for a virtual node.
AccessLog interface{} `field:"optional" json:"accessLog" yaml:"accessLog"`
}
An object that represents the logging information for a virtual node.
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" loggingProperty := &loggingProperty{ accessLog: &accessLogProperty{ file: &fileAccessLogProperty{ path: jsii.String("path"), }, }, }
type CfnVirtualNode_OutlierDetectionProperty ¶
type CfnVirtualNode_OutlierDetectionProperty struct { // The base amount of time for which a host is ejected. BaseEjectionDuration interface{} `field:"required" json:"baseEjectionDuration" yaml:"baseEjectionDuration"` // The time interval between ejection sweep analysis. Interval interface{} `field:"required" json:"interval" yaml:"interval"` // Maximum percentage of hosts in load balancing pool for upstream service that can be ejected. // // Will eject at least one host regardless of the value. MaxEjectionPercent *float64 `field:"required" json:"maxEjectionPercent" yaml:"maxEjectionPercent"` // Number of consecutive `5xx` errors required for ejection. MaxServerErrors *float64 `field:"required" json:"maxServerErrors" yaml:"maxServerErrors"` }
An object that represents the outlier detection for a virtual node's listener.
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" outlierDetectionProperty := &outlierDetectionProperty{ baseEjectionDuration: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, interval: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }
type CfnVirtualNode_PortMappingProperty ¶
type CfnVirtualNode_PortMappingProperty struct { // The port used for the port mapping. Port *float64 `field:"required" json:"port" yaml:"port"` // The protocol used for the port mapping. // // Specify `http` , `http2` , `grpc` , or `tcp` . Protocol *string `field:"required" json:"protocol" yaml:"protocol"` }
An object representing a virtual node or virtual router listener port mapping.
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" portMappingProperty := &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }
type CfnVirtualNode_ServiceDiscoveryProperty ¶
type CfnVirtualNode_ServiceDiscoveryProperty struct { // Specifies any AWS Cloud Map information for the virtual node. AwsCloudMap interface{} `field:"optional" json:"awsCloudMap" yaml:"awsCloudMap"` // Specifies the DNS information for the virtual node. Dns interface{} `field:"optional" json:"dns" yaml:"dns"` }
An object that represents the service discovery information for a virtual node.
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" serviceDiscoveryProperty := &serviceDiscoveryProperty{ awsCloudMap: &awsCloudMapServiceDiscoveryProperty{ namespaceName: jsii.String("namespaceName"), serviceName: jsii.String("serviceName"), // the properties below are optional attributes: []interface{}{ &awsCloudMapInstanceAttributeProperty{ key: jsii.String("key"), value: jsii.String("value"), }, }, ipPreference: jsii.String("ipPreference"), }, dns: &dnsServiceDiscoveryProperty{ hostname: jsii.String("hostname"), // the properties below are optional ipPreference: jsii.String("ipPreference"), responseType: jsii.String("responseType"), }, }
type CfnVirtualNode_SubjectAlternativeNameMatchersProperty ¶
type CfnVirtualNode_SubjectAlternativeNameMatchersProperty struct { // The values sent must match the specified values exactly. Exact *[]*string `field:"optional" json:"exact" yaml:"exact"` }
An object that represents the methods by which a subject alternative name on a peer Transport Layer Security (TLS) certificate can be matched.
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" subjectAlternativeNameMatchersProperty := &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }
type CfnVirtualNode_SubjectAlternativeNamesProperty ¶
type CfnVirtualNode_SubjectAlternativeNamesProperty struct {
// An object that represents the criteria for determining a SANs match.
Match interface{} `field:"required" json:"match" yaml:"match"`
}
An object that represents the subject alternative names secured by the certificate.
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" subjectAlternativeNamesProperty := &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }
type CfnVirtualNode_TcpTimeoutProperty ¶
type CfnVirtualNode_TcpTimeoutProperty struct { // An object that represents an idle timeout. // // An idle timeout bounds the amount of time that a connection may be idle. The default value is none. Idle interface{} `field:"optional" json:"idle" yaml:"idle"` }
An object that represents types of timeouts.
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" tcpTimeoutProperty := &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }
type CfnVirtualNode_TlsValidationContextAcmTrustProperty ¶
type CfnVirtualNode_TlsValidationContextAcmTrustProperty struct { // One or more ACM Amazon Resource Name (ARN)s. CertificateAuthorityArns *[]*string `field:"required" json:"certificateAuthorityArns" yaml:"certificateAuthorityArns"` }
An object that represents a Transport Layer Security (TLS) validation context trust for an AWS Certificate Manager certificate.
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" tlsValidationContextAcmTrustProperty := &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }
type CfnVirtualNode_TlsValidationContextFileTrustProperty ¶
type CfnVirtualNode_TlsValidationContextFileTrustProperty struct { // The certificate trust chain for a certificate stored on the file system of the virtual node that the proxy is running on. CertificateChain *string `field:"required" json:"certificateChain" yaml:"certificateChain"` }
An object that represents a Transport Layer Security (TLS) validation context trust for a local 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" tlsValidationContextFileTrustProperty := &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }
type CfnVirtualNode_TlsValidationContextProperty ¶
type CfnVirtualNode_TlsValidationContextProperty struct { // A reference to where to retrieve the trust chain when validating a peer’s Transport Layer Security (TLS) certificate. Trust interface{} `field:"required" json:"trust" yaml:"trust"` // A reference to an object that represents the SANs for a Transport Layer Security (TLS) validation context. SubjectAlternativeNames interface{} `field:"optional" json:"subjectAlternativeNames" yaml:"subjectAlternativeNames"` }
An object that represents how the proxy will validate its peer during Transport Layer Security (TLS) negotiation.
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" tlsValidationContextProperty := &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }
type CfnVirtualNode_TlsValidationContextSdsTrustProperty ¶
type CfnVirtualNode_TlsValidationContextSdsTrustProperty struct { // A reference to an object that represents the name of the secret for a Transport Layer Security (TLS) Secret Discovery Service validation context trust. SecretName *string `field:"required" json:"secretName" yaml:"secretName"` }
An object that represents a Transport Layer Security (TLS) Secret Discovery Service validation context trust.
The proxy must be configured with a local SDS provider via a Unix Domain Socket. See App Mesh [TLS documentation](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html) for more info.
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" tlsValidationContextSdsTrustProperty := &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }
type CfnVirtualNode_TlsValidationContextTrustProperty ¶
type CfnVirtualNode_TlsValidationContextTrustProperty struct { // A reference to an object that represents a Transport Layer Security (TLS) validation context trust for an AWS Certificate Manager certificate. Acm interface{} `field:"optional" json:"acm" yaml:"acm"` // An object that represents a Transport Layer Security (TLS) validation context trust for a local file. File interface{} `field:"optional" json:"file" yaml:"file"` // A reference to an object that represents a Transport Layer Security (TLS) Secret Discovery Service validation context trust. Sds interface{} `field:"optional" json:"sds" yaml:"sds"` }
An object that represents a Transport Layer Security (TLS) validation context trust.
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" tlsValidationContextTrustProperty := &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }
type CfnVirtualNode_VirtualNodeConnectionPoolProperty ¶
type CfnVirtualNode_VirtualNodeConnectionPoolProperty struct { // An object that represents a type of connection pool. Grpc interface{} `field:"optional" json:"grpc" yaml:"grpc"` // An object that represents a type of connection pool. Http interface{} `field:"optional" json:"http" yaml:"http"` // An object that represents a type of connection pool. Http2 interface{} `field:"optional" json:"http2" yaml:"http2"` // An object that represents a type of connection pool. Tcp interface{} `field:"optional" json:"tcp" yaml:"tcp"` }
An object that represents the type of virtual node connection pool.
Only one protocol is used at a time and should be the same protocol as the one chosen under port mapping.
If not present the default value for `maxPendingRequests` is `2147483647` .
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" virtualNodeConnectionPoolProperty := &virtualNodeConnectionPoolProperty{ grpc: &virtualNodeGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualNodeHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualNodeHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, tcp: &virtualNodeTcpConnectionPoolProperty{ maxConnections: jsii.Number(123), }, }
type CfnVirtualNode_VirtualNodeGrpcConnectionPoolProperty ¶
type CfnVirtualNode_VirtualNodeGrpcConnectionPoolProperty struct { // Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. MaxRequests *float64 `field:"required" json:"maxRequests" yaml:"maxRequests"` }
An object that represents a type of connection pool.
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" virtualNodeGrpcConnectionPoolProperty := &virtualNodeGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }
type CfnVirtualNode_VirtualNodeHttp2ConnectionPoolProperty ¶
type CfnVirtualNode_VirtualNodeHttp2ConnectionPoolProperty struct { // Maximum number of inflight requests Envoy can concurrently support across hosts in upstream cluster. MaxRequests *float64 `field:"required" json:"maxRequests" yaml:"maxRequests"` }
An object that represents a type of connection pool.
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" virtualNodeHttp2ConnectionPoolProperty := &virtualNodeHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }
type CfnVirtualNode_VirtualNodeHttpConnectionPoolProperty ¶
type CfnVirtualNode_VirtualNodeHttpConnectionPoolProperty struct { // Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. MaxConnections *float64 `field:"required" json:"maxConnections" yaml:"maxConnections"` // Number of overflowing requests after `max_connections` Envoy will queue to upstream cluster. MaxPendingRequests *float64 `field:"optional" json:"maxPendingRequests" yaml:"maxPendingRequests"` }
An object that represents a type of connection pool.
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" virtualNodeHttpConnectionPoolProperty := &virtualNodeHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }
type CfnVirtualNode_VirtualNodeSpecProperty ¶
type CfnVirtualNode_VirtualNodeSpecProperty struct { // A reference to an object that represents the defaults for backends. BackendDefaults interface{} `field:"optional" json:"backendDefaults" yaml:"backendDefaults"` // The backends that the virtual node is expected to send outbound traffic to. Backends interface{} `field:"optional" json:"backends" yaml:"backends"` // The listener that the virtual node is expected to receive inbound traffic from. // // You can specify one listener. Listeners interface{} `field:"optional" json:"listeners" yaml:"listeners"` // The inbound and outbound access logging information for the virtual node. Logging interface{} `field:"optional" json:"logging" yaml:"logging"` // The service discovery information for the virtual node. // // If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a `listener` , then you must specify service discovery information. ServiceDiscovery interface{} `field:"optional" json:"serviceDiscovery" yaml:"serviceDiscovery"` }
An object that represents the specification of a virtual node.
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" virtualNodeSpecProperty := &virtualNodeSpecProperty{ backendDefaults: &backendDefaultsProperty{ clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, backends: []interface{}{ &backendProperty{ virtualService: &virtualServiceBackendProperty{ virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }, }, }, listeners: []interface{}{ &listenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualNodeConnectionPoolProperty{ grpc: &virtualNodeGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualNodeHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualNodeHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, tcp: &virtualNodeTcpConnectionPoolProperty{ maxConnections: jsii.Number(123), }, }, healthCheck: &healthCheckProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, outlierDetection: &outlierDetectionProperty{ baseEjectionDuration: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, interval: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }, timeout: &listenerTimeoutProperty{ grpc: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http2: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, tcp: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, tls: &listenerTlsProperty{ certificate: &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &listenerTlsValidationContextProperty{ trust: &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }, logging: &loggingProperty{ accessLog: &accessLogProperty{ file: &fileAccessLogProperty{ path: jsii.String("path"), }, }, }, serviceDiscovery: &serviceDiscoveryProperty{ awsCloudMap: &awsCloudMapServiceDiscoveryProperty{ namespaceName: jsii.String("namespaceName"), serviceName: jsii.String("serviceName"), // the properties below are optional attributes: []interface{}{ &awsCloudMapInstanceAttributeProperty{ key: jsii.String("key"), value: jsii.String("value"), }, }, ipPreference: jsii.String("ipPreference"), }, dns: &dnsServiceDiscoveryProperty{ hostname: jsii.String("hostname"), // the properties below are optional ipPreference: jsii.String("ipPreference"), responseType: jsii.String("responseType"), }, }, }
type CfnVirtualNode_VirtualNodeTcpConnectionPoolProperty ¶
type CfnVirtualNode_VirtualNodeTcpConnectionPoolProperty struct { // Maximum number of outbound TCP connections Envoy can establish concurrently with all hosts in upstream cluster. MaxConnections *float64 `field:"required" json:"maxConnections" yaml:"maxConnections"` }
An object that represents a type of connection pool.
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" virtualNodeTcpConnectionPoolProperty := &virtualNodeTcpConnectionPoolProperty{ maxConnections: jsii.Number(123), }
type CfnVirtualNode_VirtualServiceBackendProperty ¶
type CfnVirtualNode_VirtualServiceBackendProperty struct { // The name of the virtual service that is acting as a virtual node backend. VirtualServiceName *string `field:"required" json:"virtualServiceName" yaml:"virtualServiceName"` // A reference to an object that represents the client policy for a backend. ClientPolicy interface{} `field:"optional" json:"clientPolicy" yaml:"clientPolicy"` }
An object that represents a virtual service backend for a virtual node.
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" virtualServiceBackendProperty := &virtualServiceBackendProperty{ virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional clientPolicy: &clientPolicyProperty{ tls: &clientPolicyTlsProperty{ validation: &tlsValidationContextProperty{ trust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, // the properties below are optional certificate: &clientTlsCertificateProperty{ file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, enforce: jsii.Boolean(false), ports: []interface{}{ jsii.Number(123), }, }, }, }
type CfnVirtualRouter ¶
type CfnVirtualRouter interface { awscdk.CfnResource awscdk.IInspectable // The full Amazon Resource Name (ARN) for the virtual router. AttrArn() *string // The name of the service mesh that the virtual router resides in. AttrMeshName() *string // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrMeshOwner() *string // The AWS IAM account ID of the resource owner. // // If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrResourceOwner() *string // The unique identifier for the virtual router. AttrUid() *string // The name of the virtual router. AttrVirtualRouterName() *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 the service mesh to create the virtual router in. MeshName() *string SetMeshName(val *string) // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner() *string SetMeshOwner(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 virtual router specification to apply. Spec() interface{} SetSpec(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Optional metadata that you can apply to the virtual router to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags() awscdk.TagManager // 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 to use for the virtual router. VirtualRouterName() *string SetVirtualRouterName(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. 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) 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) // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} // 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{}) }
A CloudFormation `AWS::AppMesh::VirtualRouter`.
Creates a virtual router within a service mesh.
Specify a `listener` for any inbound traffic that your virtual router receives. Create a virtual router for each protocol and port that you need to route. Virtual routers handle traffic for one or more virtual services within your mesh. After you create your virtual router, create and associate routes for your virtual router that direct incoming requests to different virtual nodes.
For more information about virtual routers, see [Virtual routers](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_routers.html) .
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" cfnVirtualRouter := awscdk.Aws_appmesh.NewCfnVirtualRouter(this, jsii.String("MyCfnVirtualRouter"), &cfnVirtualRouterProps{ meshName: jsii.String("meshName"), spec: &virtualRouterSpecProperty{ listeners: []interface{}{ &virtualRouterListenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, }, }, }, // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, virtualRouterName: jsii.String("virtualRouterName"), })
func NewCfnVirtualRouter ¶
func NewCfnVirtualRouter(scope constructs.Construct, id *string, props *CfnVirtualRouterProps) CfnVirtualRouter
Create a new `AWS::AppMesh::VirtualRouter`.
type CfnVirtualRouterProps ¶
type CfnVirtualRouterProps struct { // The name of the service mesh to create the virtual router in. MeshName *string `field:"required" json:"meshName" yaml:"meshName"` // The virtual router specification to apply. Spec interface{} `field:"required" json:"spec" yaml:"spec"` // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner *string `field:"optional" json:"meshOwner" yaml:"meshOwner"` // Optional metadata that you can apply to the virtual router to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` // The name to use for the virtual router. VirtualRouterName *string `field:"optional" json:"virtualRouterName" yaml:"virtualRouterName"` }
Properties for defining a `CfnVirtualRouter`.
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" cfnVirtualRouterProps := &cfnVirtualRouterProps{ meshName: jsii.String("meshName"), spec: &virtualRouterSpecProperty{ listeners: []interface{}{ &virtualRouterListenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, }, }, }, // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, virtualRouterName: jsii.String("virtualRouterName"), }
type CfnVirtualRouter_PortMappingProperty ¶
type CfnVirtualRouter_PortMappingProperty struct { // The port used for the port mapping. Port *float64 `field:"required" json:"port" yaml:"port"` // The protocol used for the port mapping. // // Specify one protocol. Protocol *string `field:"required" json:"protocol" yaml:"protocol"` }
An object representing a virtual router listener port mapping.
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" portMappingProperty := &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }
type CfnVirtualRouter_VirtualRouterListenerProperty ¶
type CfnVirtualRouter_VirtualRouterListenerProperty struct {
// The port mapping information for the listener.
PortMapping interface{} `field:"required" json:"portMapping" yaml:"portMapping"`
}
An object that represents a virtual router listener.
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" virtualRouterListenerProperty := &virtualRouterListenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, }
type CfnVirtualRouter_VirtualRouterSpecProperty ¶
type CfnVirtualRouter_VirtualRouterSpecProperty struct { // The listeners that the virtual router is expected to receive inbound traffic from. // // You can specify one listener. Listeners interface{} `field:"required" json:"listeners" yaml:"listeners"` }
An object that represents the specification of a virtual router.
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" virtualRouterSpecProperty := &virtualRouterSpecProperty{ listeners: []interface{}{ &virtualRouterListenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, }, }, }
type CfnVirtualService ¶
type CfnVirtualService interface { awscdk.CfnResource awscdk.IInspectable // The full Amazon Resource Name (ARN) for the virtual service. AttrArn() *string // The name of the service mesh that the virtual service resides in. AttrMeshName() *string // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrMeshOwner() *string // The AWS IAM account ID of the resource owner. // // If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see [Working with Shared Meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . AttrResourceOwner() *string // The unique identifier for the virtual service. AttrUid() *string // The name of the virtual service. AttrVirtualServiceName() *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 the service mesh to create the virtual service in. MeshName() *string SetMeshName(val *string) // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner() *string SetMeshOwner(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 virtual service specification to apply. Spec() interface{} SetSpec(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Optional metadata that you can apply to the virtual service to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags() awscdk.TagManager // 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 to use for the virtual service. VirtualServiceName() *string SetVirtualServiceName(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. 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) 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) // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) RenderProperties(props *map[string]interface{}) *map[string]interface{} // 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{}) }
A CloudFormation `AWS::AppMesh::VirtualService`.
Creates a virtual service within a service mesh.
A virtual service is an abstraction of a real service that is provided by a virtual node directly or indirectly by means of a virtual router. Dependent services call your virtual service by its `virtualServiceName` , and those requests are routed to the virtual node or virtual router that is specified as the provider for the virtual service.
For more information about virtual services, see [Virtual services](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html) .
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" cfnVirtualService := awscdk.Aws_appmesh.NewCfnVirtualService(this, jsii.String("MyCfnVirtualService"), &cfnVirtualServiceProps{ meshName: jsii.String("meshName"), spec: &virtualServiceSpecProperty{ provider: &virtualServiceProviderProperty{ virtualNode: &virtualNodeServiceProviderProperty{ virtualNodeName: jsii.String("virtualNodeName"), }, virtualRouter: &virtualRouterServiceProviderProperty{ virtualRouterName: jsii.String("virtualRouterName"), }, }, }, virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, })
func NewCfnVirtualService ¶
func NewCfnVirtualService(scope constructs.Construct, id *string, props *CfnVirtualServiceProps) CfnVirtualService
Create a new `AWS::AppMesh::VirtualService`.
type CfnVirtualServiceProps ¶
type CfnVirtualServiceProps struct { // The name of the service mesh to create the virtual service in. MeshName *string `field:"required" json:"meshName" yaml:"meshName"` // The virtual service specification to apply. Spec interface{} `field:"required" json:"spec" yaml:"spec"` // The name to use for the virtual service. VirtualServiceName *string `field:"required" json:"virtualServiceName" yaml:"virtualServiceName"` // The AWS IAM account ID of the service mesh owner. // // If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see [Working with shared meshes](https://docs.aws.amazon.com/app-mesh/latest/userguide/sharing.html) . MeshOwner *string `field:"optional" json:"meshOwner" yaml:"meshOwner"` // Optional metadata that you can apply to the virtual service to assist with categorization and organization. // // Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters. Tags *[]*awscdk.CfnTag `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnVirtualService`.
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" cfnVirtualServiceProps := &cfnVirtualServiceProps{ meshName: jsii.String("meshName"), spec: &virtualServiceSpecProperty{ provider: &virtualServiceProviderProperty{ virtualNode: &virtualNodeServiceProviderProperty{ virtualNodeName: jsii.String("virtualNodeName"), }, virtualRouter: &virtualRouterServiceProviderProperty{ virtualRouterName: jsii.String("virtualRouterName"), }, }, }, virtualServiceName: jsii.String("virtualServiceName"), // the properties below are optional meshOwner: jsii.String("meshOwner"), tags: []cfnTag{ &cfnTag{ key: jsii.String("key"), value: jsii.String("value"), }, }, }
type CfnVirtualService_VirtualNodeServiceProviderProperty ¶
type CfnVirtualService_VirtualNodeServiceProviderProperty struct { // The name of the virtual node that is acting as a service provider. VirtualNodeName *string `field:"required" json:"virtualNodeName" yaml:"virtualNodeName"` }
An object that represents a virtual node service provider.
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" virtualNodeServiceProviderProperty := &virtualNodeServiceProviderProperty{ virtualNodeName: jsii.String("virtualNodeName"), }
type CfnVirtualService_VirtualRouterServiceProviderProperty ¶
type CfnVirtualService_VirtualRouterServiceProviderProperty struct { // The name of the virtual router that is acting as a service provider. VirtualRouterName *string `field:"required" json:"virtualRouterName" yaml:"virtualRouterName"` }
An object that represents a virtual node service provider.
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" virtualRouterServiceProviderProperty := &virtualRouterServiceProviderProperty{ virtualRouterName: jsii.String("virtualRouterName"), }
type CfnVirtualService_VirtualServiceProviderProperty ¶
type CfnVirtualService_VirtualServiceProviderProperty struct { // The virtual node associated with a virtual service. VirtualNode interface{} `field:"optional" json:"virtualNode" yaml:"virtualNode"` // The virtual router associated with a virtual service. VirtualRouter interface{} `field:"optional" json:"virtualRouter" yaml:"virtualRouter"` }
An object that represents the provider for a virtual service.
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" virtualServiceProviderProperty := &virtualServiceProviderProperty{ virtualNode: &virtualNodeServiceProviderProperty{ virtualNodeName: jsii.String("virtualNodeName"), }, virtualRouter: &virtualRouterServiceProviderProperty{ virtualRouterName: jsii.String("virtualRouterName"), }, }
type CfnVirtualService_VirtualServiceSpecProperty ¶
type CfnVirtualService_VirtualServiceSpecProperty struct { // The App Mesh object that is acting as the provider for a virtual service. // // You can specify a single virtual node or virtual router. Provider interface{} `field:"optional" json:"provider" yaml:"provider"` }
An object that represents the specification of a virtual service.
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" virtualServiceSpecProperty := &virtualServiceSpecProperty{ provider: &virtualServiceProviderProperty{ virtualNode: &virtualNodeServiceProviderProperty{ virtualNodeName: jsii.String("virtualNodeName"), }, virtualRouter: &virtualRouterServiceProviderProperty{ virtualRouterName: jsii.String("virtualRouterName"), }, }, }
type CommonGatewayRouteSpecOptions ¶ added in v2.2.0
type CommonGatewayRouteSpecOptions struct { // The priority for the gateway route. // // When a Virtual Gateway has multiple gateway routes, gateway route match // is performed in the order of specified value, where 0 is the highest priority, // and first matched gateway route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` }
Base options for all gateway route specs.
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" commonGatewayRouteSpecOptions := &commonGatewayRouteSpecOptions{ priority: jsii.Number(123), }
type DnsResponseType ¶
type DnsResponseType string
Enum of DNS service discovery response type.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with a gRPC listener with a connection pool set var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, // DNS service discovery can optionally specify the DNS response type as either LOAD_BALANCER or ENDPOINTS. // LOAD_BALANCER means that the DNS resolver returns a loadbalanced set of endpoints, // whereas ENDPOINTS means that the DNS resolver is returning all the endpoints. // By default, the response type is assumed to be LOAD_BALANCER serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node"), appmesh.dnsResponseType_ENDPOINTS), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(80), connectionPool: &httpConnectionPool{ maxConnections: jsii.Number(100), maxPendingRequests: jsii.Number(10), }, }), }, }) // A Virtual Gateway with a gRPC listener with a connection pool set gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), connectionPool: &grpcConnectionPool{ maxRequests: jsii.Number(10), }, }), }, virtualGatewayName: jsii.String("gateway"), })
const ( // DNS resolver returns a loadbalanced set of endpoints and the traffic would be sent to the given endpoints. // // It would not drain existing connections to other endpoints that are not part of this list. DnsResponseType_LOAD_BALANCER DnsResponseType = "LOAD_BALANCER" // DNS resolver is returning all the endpoints. // // This also means that if an endpoint is missing, it would drain the current connections to the missing endpoint. DnsResponseType_ENDPOINTS DnsResponseType = "ENDPOINTS" )
type GatewayRoute ¶
type GatewayRoute interface { awscdk.Resource IGatewayRoute // 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 Amazon Resource Name (ARN) for the GatewayRoute. GatewayRouteArn() *string // The name of the GatewayRoute. GatewayRouteName() *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 // The VirtualGateway this GatewayRoute is a part of. VirtualGateway() IVirtualGateway // 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 }
GatewayRoute represents a new or existing gateway route attached to a VirtualGateway and Mesh.
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 gatewayRouteSpec gatewayRouteSpec var virtualGateway virtualGateway gatewayRoute := awscdk.Aws_appmesh.NewGatewayRoute(this, jsii.String("MyGatewayRoute"), &gatewayRouteProps{ routeSpec: gatewayRouteSpec, virtualGateway: virtualGateway, // the properties below are optional gatewayRouteName: jsii.String("gatewayRouteName"), })
See: https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html
func NewGatewayRoute ¶
func NewGatewayRoute(scope constructs.Construct, id *string, props *GatewayRouteProps) GatewayRoute
type GatewayRouteAttributes ¶
type GatewayRouteAttributes struct { // The name of the GatewayRoute. GatewayRouteName *string `field:"required" json:"gatewayRouteName" yaml:"gatewayRouteName"` // The VirtualGateway this GatewayRoute is associated with. VirtualGateway IVirtualGateway `field:"required" json:"virtualGateway" yaml:"virtualGateway"` }
Interface with properties necessary to import a reusable GatewayRoute.
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 virtualGateway virtualGateway gatewayRouteAttributes := &gatewayRouteAttributes{ gatewayRouteName: jsii.String("gatewayRouteName"), virtualGateway: virtualGateway, }
type GatewayRouteBaseProps ¶
type GatewayRouteBaseProps struct { // What protocol the route uses. RouteSpec GatewayRouteSpec `field:"required" json:"routeSpec" yaml:"routeSpec"` // The name of the GatewayRoute. GatewayRouteName *string `field:"optional" json:"gatewayRouteName" yaml:"gatewayRouteName"` }
Basic configuration properties for a GatewayRoute.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-grpc"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.grpc(&grpcGatewayRouteSpecOptions{ routeTarget: virtualService, match: &grpcGatewayRouteMatch{ hostname: appmesh.gatewayRouteHostnameMatch.exactly(jsii.String("example.com")), // This disables the default rewrite to virtual service name and retain original request. rewriteRequestHostname: jsii.Boolean(false), }, }), })
type GatewayRouteHostnameMatch ¶
type GatewayRouteHostnameMatch interface { // Returns the gateway route host name match configuration. Bind(scope constructs.Construct) *GatewayRouteHostnameMatchConfig }
Used to generate host name matching methods.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-grpc"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.grpc(&grpcGatewayRouteSpecOptions{ routeTarget: virtualService, match: &grpcGatewayRouteMatch{ hostname: appmesh.gatewayRouteHostnameMatch.endsWith(jsii.String(".example.com")), }, }), })
func GatewayRouteHostnameMatch_EndsWith ¶
func GatewayRouteHostnameMatch_EndsWith(suffix *string) GatewayRouteHostnameMatch
The value of the host name with the given name must end with the specified characters.
func GatewayRouteHostnameMatch_Exactly ¶
func GatewayRouteHostnameMatch_Exactly(name *string) GatewayRouteHostnameMatch
The value of the host name must match the specified value exactly.
type GatewayRouteHostnameMatchConfig ¶
type GatewayRouteHostnameMatchConfig struct { // GatewayRoute CFN configuration for host name match. HostnameMatch *CfnGatewayRoute_GatewayRouteHostnameMatchProperty `field:"required" json:"hostnameMatch" yaml:"hostnameMatch"` }
Configuration for gateway route host name match.
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" gatewayRouteHostnameMatchConfig := &gatewayRouteHostnameMatchConfig{ hostnameMatch: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, }
type GatewayRouteProps ¶
type GatewayRouteProps struct { // What protocol the route uses. RouteSpec GatewayRouteSpec `field:"required" json:"routeSpec" yaml:"routeSpec"` // The name of the GatewayRoute. GatewayRouteName *string `field:"optional" json:"gatewayRouteName" yaml:"gatewayRouteName"` // The VirtualGateway this GatewayRoute is associated with. VirtualGateway IVirtualGateway `field:"required" json:"virtualGateway" yaml:"virtualGateway"` }
Properties to define a new GatewayRoute.
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 gatewayRouteSpec gatewayRouteSpec var virtualGateway virtualGateway gatewayRouteProps := &gatewayRouteProps{ routeSpec: gatewayRouteSpec, virtualGateway: virtualGateway, // the properties below are optional gatewayRouteName: jsii.String("gatewayRouteName"), }
type GatewayRouteSpec ¶
type GatewayRouteSpec interface { // Called when the GatewayRouteSpec type is initialized. // // Can be used to enforce // mutual exclusivity with future properties. Bind(scope constructs.Construct) *GatewayRouteSpecConfig }
Used to generate specs with different protocols for a GatewayRoute.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-grpc"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.grpc(&grpcGatewayRouteSpecOptions{ routeTarget: virtualService, match: &grpcGatewayRouteMatch{ hostname: appmesh.gatewayRouteHostnameMatch.exactly(jsii.String("example.com")), // This disables the default rewrite to virtual service name and retain original request. rewriteRequestHostname: jsii.Boolean(false), }, }), })
func GatewayRouteSpec_Grpc ¶
func GatewayRouteSpec_Grpc(options *GrpcGatewayRouteSpecOptions) GatewayRouteSpec
Creates an gRPC Based GatewayRoute.
func GatewayRouteSpec_Http ¶
func GatewayRouteSpec_Http(options *HttpGatewayRouteSpecOptions) GatewayRouteSpec
Creates an HTTP Based GatewayRoute.
func GatewayRouteSpec_Http2 ¶
func GatewayRouteSpec_Http2(options *HttpGatewayRouteSpecOptions) GatewayRouteSpec
Creates an HTTP2 Based GatewayRoute.
type GatewayRouteSpecConfig ¶
type GatewayRouteSpecConfig struct { // The spec for a grpc gateway route. GrpcSpecConfig *CfnGatewayRoute_GrpcGatewayRouteProperty `field:"optional" json:"grpcSpecConfig" yaml:"grpcSpecConfig"` // The spec for an http2 gateway route. Http2SpecConfig *CfnGatewayRoute_HttpGatewayRouteProperty `field:"optional" json:"http2SpecConfig" yaml:"http2SpecConfig"` // The spec for an http gateway route. HttpSpecConfig *CfnGatewayRoute_HttpGatewayRouteProperty `field:"optional" json:"httpSpecConfig" yaml:"httpSpecConfig"` // The priority for the gateway route. // // When a Virtual Gateway has multiple gateway routes, gateway route match // is performed in the order of specified value, where 0 is the highest priority, // and first matched gateway route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` }
All Properties for GatewayRoute Specs.
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" gatewayRouteSpecConfig := &gatewayRouteSpecConfig{ grpcSpecConfig: &grpcGatewayRouteProperty{ action: &grpcGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &grpcGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, }, }, match: &grpcGatewayRouteMatchProperty{ hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, metadata: []interface{}{ &grpcGatewayRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &gatewayRouteMetadataMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, serviceName: jsii.String("serviceName"), }, }, http2SpecConfig: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, httpSpecConfig: &httpGatewayRouteProperty{ action: &httpGatewayRouteActionProperty{ target: &gatewayRouteTargetProperty{ virtualService: &gatewayRouteVirtualServiceProperty{ virtualServiceName: jsii.String("virtualServiceName"), }, }, // the properties below are optional rewrite: &httpGatewayRouteRewriteProperty{ hostname: &gatewayRouteHostnameRewriteProperty{ defaultTargetHostname: jsii.String("defaultTargetHostname"), }, path: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, prefix: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, }, }, match: &httpGatewayRouteMatchProperty{ headers: []interface{}{ &httpGatewayRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &httpGatewayRouteHeaderMatchProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &gatewayRouteRangeMatchProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, hostname: &gatewayRouteHostnameMatchProperty{ exact: jsii.String("exact"), suffix: jsii.String("suffix"), }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, }, }, priority: jsii.Number(123), }
type GrpcConnectionPool ¶
type GrpcConnectionPool struct { // The maximum requests in the pool. MaxRequests *float64 `field:"required" json:"maxRequests" yaml:"maxRequests"` }
Connection pool properties for gRPC listeners.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with a gRPC listener with a connection pool set var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, // DNS service discovery can optionally specify the DNS response type as either LOAD_BALANCER or ENDPOINTS. // LOAD_BALANCER means that the DNS resolver returns a loadbalanced set of endpoints, // whereas ENDPOINTS means that the DNS resolver is returning all the endpoints. // By default, the response type is assumed to be LOAD_BALANCER serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node"), appmesh.dnsResponseType_ENDPOINTS), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(80), connectionPool: &httpConnectionPool{ maxConnections: jsii.Number(100), maxPendingRequests: jsii.Number(10), }, }), }, }) // A Virtual Gateway with a gRPC listener with a connection pool set gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), connectionPool: &grpcConnectionPool{ maxRequests: jsii.Number(10), }, }), }, virtualGatewayName: jsii.String("gateway"), })
type GrpcGatewayListenerOptions ¶
type GrpcGatewayListenerOptions struct { // Connection pool for http listeners. ConnectionPool *GrpcConnectionPool `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck HealthCheck `field:"optional" json:"healthCheck" yaml:"healthCheck"` // Port to listen for connections on. Port *float64 `field:"optional" json:"port" yaml:"port"` // Represents the configuration for enabling TLS on a listener. Tls *ListenerTlsOptions `field:"optional" json:"tls" yaml:"tls"` }
Represents the properties needed to define GRPC Listeners for a VirtualGateway.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with listener TLS from an ACM provided certificate var cert certificate var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.acm(cert), }, }), }, }) // A Virtual Gateway with listener TLS from a customer provided file certificate gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), }, }), }, virtualGatewayName: jsii.String("gateway"), }) // A Virtual Gateway with listener TLS from a SDS provided certificate gateway2 := appmesh.NewVirtualGateway(this, jsii.String("gateway2"), &virtualGatewayProps{ mesh: mesh, listeners: []*virtualGatewayListener{ appmesh.*virtualGatewayListener.http2(&http2GatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.sds(jsii.String("secrete_certificate")), }, }), }, virtualGatewayName: jsii.String("gateway2"), })
type GrpcGatewayRouteMatch ¶
type GrpcGatewayRouteMatch struct { // Create host name based gRPC gateway route match. Hostname GatewayRouteHostnameMatch `field:"optional" json:"hostname" yaml:"hostname"` // Create metadata based gRPC gateway route match. // // All specified metadata must match for the route to match. Metadata *[]HeaderMatch `field:"optional" json:"metadata" yaml:"metadata"` // When `true`, rewrites the original request received at the Virtual Gateway to the destination Virtual Service name. // // When `false`, retains the original hostname from the request. RewriteRequestHostname *bool `field:"optional" json:"rewriteRequestHostname" yaml:"rewriteRequestHostname"` // Create service name based gRPC gateway route match. ServiceName *string `field:"optional" json:"serviceName" yaml:"serviceName"` }
The criterion for determining a request match for this GatewayRoute.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-grpc"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.grpc(&grpcGatewayRouteSpecOptions{ routeTarget: virtualService, match: &grpcGatewayRouteMatch{ hostname: appmesh.gatewayRouteHostnameMatch.endsWith(jsii.String(".example.com")), }, }), })
type GrpcGatewayRouteSpecOptions ¶
type GrpcGatewayRouteSpecOptions struct { // The priority for the gateway route. // // When a Virtual Gateway has multiple gateway routes, gateway route match // is performed in the order of specified value, where 0 is the highest priority, // and first matched gateway route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` // The criterion for determining a request match for this GatewayRoute. Match *GrpcGatewayRouteMatch `field:"required" json:"match" yaml:"match"` // The VirtualService this GatewayRoute directs traffic to. RouteTarget IVirtualService `field:"required" json:"routeTarget" yaml:"routeTarget"` }
Properties specific for a gRPC GatewayRoute.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-grpc"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.grpc(&grpcGatewayRouteSpecOptions{ routeTarget: virtualService, match: &grpcGatewayRouteMatch{ hostname: appmesh.gatewayRouteHostnameMatch.endsWith(jsii.String(".example.com")), }, }), })
type GrpcHealthCheckOptions ¶
type GrpcHealthCheckOptions struct { // The number of consecutive successful health checks that must occur before declaring listener healthy. HealthyThreshold *float64 `field:"optional" json:"healthyThreshold" yaml:"healthyThreshold"` // The time period between each health check execution. Interval awscdk.Duration `field:"optional" json:"interval" yaml:"interval"` // The amount of time to wait when receiving a response from the health check. Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // The number of consecutive failed health checks that must occur before declaring a listener unhealthy. UnhealthyThreshold *float64 `field:"optional" json:"unhealthyThreshold" yaml:"unhealthyThreshold"` }
Properties used to define GRPC Based healthchecks.
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" grpcHealthCheckOptions := &grpcHealthCheckOptions{ healthyThreshold: jsii.Number(123), interval: cdk.duration.minutes(jsii.Number(30)), timeout: cdk.*duration.minutes(jsii.Number(30)), unhealthyThreshold: jsii.Number(123), }
type GrpcRetryEvent ¶
type GrpcRetryEvent string
gRPC events.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-grpc-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.grpc(&grpcRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &grpcRouteMatch{ serviceName: jsii.String("servicename"), }, retryPolicy: &grpcRetryPolicy{ tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry if gRPC responds that the request was cancelled, a resource // was exhausted, or if the service is unavailable grpcRetryEvents: []grpcRetryEvent{ appmesh.*grpcRetryEvent_CANCELLED, appmesh.*grpcRetryEvent_RESOURCE_EXHAUSTED, appmesh.*grpcRetryEvent_UNAVAILABLE, }, retryAttempts: jsii.Number(5), retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
const ( // Request was cancelled. // See: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // GrpcRetryEvent_CANCELLED GrpcRetryEvent = "CANCELLED" // The deadline was exceeded. // See: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // GrpcRetryEvent_DEADLINE_EXCEEDED GrpcRetryEvent = "DEADLINE_EXCEEDED" // Internal error. // See: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // GrpcRetryEvent_INTERNAL_ERROR GrpcRetryEvent = "INTERNAL_ERROR" // A resource was exhausted. // See: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // GrpcRetryEvent_RESOURCE_EXHAUSTED GrpcRetryEvent = "RESOURCE_EXHAUSTED" // The service is unavailable. // See: https://grpc.github.io/grpc/core/md_doc_statuscodes.html // GrpcRetryEvent_UNAVAILABLE GrpcRetryEvent = "UNAVAILABLE" )
type GrpcRetryPolicy ¶
type GrpcRetryPolicy struct { // The maximum number of retry attempts. RetryAttempts *float64 `field:"required" json:"retryAttempts" yaml:"retryAttempts"` // The timeout for each retry attempt. RetryTimeout awscdk.Duration `field:"required" json:"retryTimeout" yaml:"retryTimeout"` // Specify HTTP events on which to retry. // // You must specify at least one value // for at least one types of retry events. HttpRetryEvents *[]HttpRetryEvent `field:"optional" json:"httpRetryEvents" yaml:"httpRetryEvents"` // TCP events on which to retry. // // The event occurs before any processing of a // request has started and is encountered when the upstream is temporarily or // permanently unavailable. You must specify at least one value for at least // one types of retry events. TcpRetryEvents *[]TcpRetryEvent `field:"optional" json:"tcpRetryEvents" yaml:"tcpRetryEvents"` // gRPC events on which to retry. // // You must specify at least one value // for at least one types of retry events. GrpcRetryEvents *[]GrpcRetryEvent `field:"optional" json:"grpcRetryEvents" yaml:"grpcRetryEvents"` }
gRPC retry policy.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-grpc-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.grpc(&grpcRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &grpcRouteMatch{ serviceName: jsii.String("servicename"), }, retryPolicy: &grpcRetryPolicy{ tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry if gRPC responds that the request was cancelled, a resource // was exhausted, or if the service is unavailable grpcRetryEvents: []grpcRetryEvent{ appmesh.*grpcRetryEvent_CANCELLED, appmesh.*grpcRetryEvent_RESOURCE_EXHAUSTED, appmesh.*grpcRetryEvent_UNAVAILABLE, }, retryAttempts: jsii.Number(5), retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
type GrpcRouteMatch ¶
type GrpcRouteMatch struct { // Create metadata based gRPC route match. // // All specified metadata must match for the route to match. Metadata *[]HeaderMatch `field:"optional" json:"metadata" yaml:"metadata"` // The method name to match from the request. // // If the method name is specified, service name must be also provided. MethodName *string `field:"optional" json:"methodName" yaml:"methodName"` // Create service name based gRPC route match. ServiceName *string `field:"optional" json:"serviceName" yaml:"serviceName"` }
The criterion for determining a request match for this Route.
At least one match type must be selected.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http"), &routeBaseProps{ routeSpec: appmesh.routeSpec.grpc(&grpcRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &grpcRouteMatch{ serviceName: jsii.String("my-service.default.svc.cluster.local"), }, timeout: &grpcTimeout{ idle: cdk.duration.seconds(jsii.Number(2)), perRequest: cdk.*duration.seconds(jsii.Number(1)), }, }), })
type GrpcRouteSpecOptions ¶
type GrpcRouteSpecOptions struct { // The priority for the route. // // When a Virtual Router has multiple routes, route match is performed in the // order of specified value, where 0 is the highest priority, and first matched route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` // The criterion for determining a request match for this Route. Match *GrpcRouteMatch `field:"required" json:"match" yaml:"match"` // List of targets that traffic is routed to when a request matches the route. WeightedTargets *[]*WeightedTarget `field:"required" json:"weightedTargets" yaml:"weightedTargets"` // The retry policy. RetryPolicy *GrpcRetryPolicy `field:"optional" json:"retryPolicy" yaml:"retryPolicy"` // An object that represents a grpc timeout. Timeout *GrpcTimeout `field:"optional" json:"timeout" yaml:"timeout"` }
Properties specific for a GRPC Based Routes.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http"), &routeBaseProps{ routeSpec: appmesh.routeSpec.grpc(&grpcRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &grpcRouteMatch{ serviceName: jsii.String("my-service.default.svc.cluster.local"), }, timeout: &grpcTimeout{ idle: cdk.duration.seconds(jsii.Number(2)), perRequest: cdk.*duration.seconds(jsii.Number(1)), }, }), })
type GrpcTimeout ¶
type GrpcTimeout struct { // Represents an idle timeout. // // The amount of time that a connection may be idle. Idle awscdk.Duration `field:"optional" json:"idle" yaml:"idle"` // Represents per request timeout. PerRequest awscdk.Duration `field:"optional" json:"perRequest" yaml:"perRequest"` }
Represents timeouts for GRPC protocols.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http"), &routeBaseProps{ routeSpec: appmesh.routeSpec.grpc(&grpcRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &grpcRouteMatch{ serviceName: jsii.String("my-service.default.svc.cluster.local"), }, timeout: &grpcTimeout{ idle: cdk.duration.seconds(jsii.Number(2)), perRequest: cdk.*duration.seconds(jsii.Number(1)), }, }), })
type GrpcVirtualNodeListenerOptions ¶
type GrpcVirtualNodeListenerOptions struct { // Connection pool for http listeners. ConnectionPool *GrpcConnectionPool `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck HealthCheck `field:"optional" json:"healthCheck" yaml:"healthCheck"` // Represents the configuration for enabling outlier detection. OutlierDetection *OutlierDetection `field:"optional" json:"outlierDetection" yaml:"outlierDetection"` // Port to listen for connections on. Port *float64 `field:"optional" json:"port" yaml:"port"` // Timeout for GRPC protocol. Timeout *GrpcTimeout `field:"optional" json:"timeout" yaml:"timeout"` // Represents the configuration for enabling TLS on a listener. Tls *ListenerTlsOptions `field:"optional" json:"tls" yaml:"tls"` }
Represent the GRPC Node Listener prorperty.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with listener TLS from an ACM provided certificate var cert certificate var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.acm(cert), }, }), }, }) // A Virtual Gateway with listener TLS from a customer provided file certificate gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), }, }), }, virtualGatewayName: jsii.String("gateway"), }) // A Virtual Gateway with listener TLS from a SDS provided certificate gateway2 := appmesh.NewVirtualGateway(this, jsii.String("gateway2"), &virtualGatewayProps{ mesh: mesh, listeners: []*virtualGatewayListener{ appmesh.*virtualGatewayListener.http2(&http2GatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.sds(jsii.String("secrete_certificate")), }, }), }, virtualGatewayName: jsii.String("gateway2"), })
type HeaderMatch ¶
type HeaderMatch interface { // Returns the header match configuration. Bind(scope constructs.Construct) *HeaderMatchConfig }
Used to generate header matching methods.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &httpRouteMatch{ path: appmesh.httpRoutePathMatch.exactly(jsii.String("/exact")), method: appmesh.httpRouteMethod_POST, protocol: appmesh.httpRouteProtocol_HTTPS, headers: []headerMatch{ appmesh.*headerMatch.valueIs(jsii.String("Content-Type"), jsii.String("application/json")), appmesh.*headerMatch.valueIsNot(jsii.String("Content-Type"), jsii.String("application/json")), }, queryParameters: []queryParameterMatch{ appmesh.*queryParameterMatch.valueIs(jsii.String("query-field"), jsii.String("value")), }, }, }), })
func HeaderMatch_ValueDoesNotEndWith ¶
func HeaderMatch_ValueDoesNotEndWith(headerName *string, suffix *string) HeaderMatch
The value of the header with the given name in the request must not end with the specified characters.
func HeaderMatch_ValueDoesNotMatchRegex ¶
func HeaderMatch_ValueDoesNotMatchRegex(headerName *string, regex *string) HeaderMatch
The value of the header with the given name in the request must not include the specified characters.
func HeaderMatch_ValueDoesNotStartWith ¶
func HeaderMatch_ValueDoesNotStartWith(headerName *string, prefix *string) HeaderMatch
The value of the header with the given name in the request must not start with the specified characters.
func HeaderMatch_ValueEndsWith ¶
func HeaderMatch_ValueEndsWith(headerName *string, suffix *string) HeaderMatch
The value of the header with the given name in the request must end with the specified characters.
func HeaderMatch_ValueIs ¶
func HeaderMatch_ValueIs(headerName *string, headerValue *string) HeaderMatch
The value of the header with the given name in the request must match the specified value exactly.
func HeaderMatch_ValueIsNot ¶
func HeaderMatch_ValueIsNot(headerName *string, headerValue *string) HeaderMatch
The value of the header with the given name in the request must not match the specified value exactly.
func HeaderMatch_ValueMatchesRegex ¶
func HeaderMatch_ValueMatchesRegex(headerName *string, regex *string) HeaderMatch
The value of the header with the given name in the request must include the specified characters.
func HeaderMatch_ValueStartsWith ¶
func HeaderMatch_ValueStartsWith(headerName *string, prefix *string) HeaderMatch
The value of the header with the given name in the request must start with the specified characters.
func HeaderMatch_ValuesIsInRange ¶
func HeaderMatch_ValuesIsInRange(headerName *string, start *float64, end *float64) HeaderMatch
The value of the header with the given name in the request must be in a range of values.
func HeaderMatch_ValuesIsNotInRange ¶
func HeaderMatch_ValuesIsNotInRange(headerName *string, start *float64, end *float64) HeaderMatch
The value of the header with the given name in the request must not be in a range of values.
type HeaderMatchConfig ¶
type HeaderMatchConfig struct { // Route CFN configuration for the route header match. HeaderMatch *CfnRoute_HttpRouteHeaderProperty `field:"required" json:"headerMatch" yaml:"headerMatch"` }
Configuration for `HeaderMatch`.
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" headerMatchConfig := &headerMatchConfig{ headerMatch: &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }
type HealthCheck ¶
type HealthCheck interface { // Called when the AccessLog type is initialized. // // Can be used to enforce // mutual exclusivity with future properties. Bind(scope constructs.Construct, options *HealthCheckBindOptions) *HealthCheckConfig }
Contains static factory methods for creating health checks for different protocols.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8081), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), // minimum path: jsii.String("/health-check-path"), timeout: cdk.*duration.seconds(jsii.Number(2)), // minimum unhealthyThreshold: jsii.Number(2), }), }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), })
func HealthCheck_Grpc ¶
func HealthCheck_Grpc(options *GrpcHealthCheckOptions) HealthCheck
Construct a GRPC health check.
func HealthCheck_Http ¶
func HealthCheck_Http(options *HttpHealthCheckOptions) HealthCheck
Construct a HTTP health check.
func HealthCheck_Http2 ¶
func HealthCheck_Http2(options *HttpHealthCheckOptions) HealthCheck
Construct a HTTP2 health check.
func HealthCheck_Tcp ¶
func HealthCheck_Tcp(options *TcpHealthCheckOptions) HealthCheck
Construct a TCP health check.
type HealthCheckBindOptions ¶
type HealthCheckBindOptions struct { // Port for Health Check interface. DefaultPort *float64 `field:"optional" json:"defaultPort" yaml:"defaultPort"` }
Options used for creating the Health Check 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" healthCheckBindOptions := &healthCheckBindOptions{ defaultPort: jsii.Number(123), }
type HealthCheckConfig ¶
type HealthCheckConfig struct { // VirtualGateway CFN configuration for Health Checks. VirtualGatewayHealthCheck *CfnVirtualGateway_VirtualGatewayHealthCheckPolicyProperty `field:"optional" json:"virtualGatewayHealthCheck" yaml:"virtualGatewayHealthCheck"` // VirtualNode CFN configuration for Health Checks. VirtualNodeHealthCheck *CfnVirtualNode_HealthCheckProperty `field:"optional" json:"virtualNodeHealthCheck" yaml:"virtualNodeHealthCheck"` }
All Properties for Health Checks for mesh endpoints.
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" healthCheckConfig := &healthCheckConfig{ virtualGatewayHealthCheck: &virtualGatewayHealthCheckPolicyProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, virtualNodeHealthCheck: &healthCheckProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, }
type Http2ConnectionPool ¶
type Http2ConnectionPool struct { // The maximum requests in the pool. MaxRequests *float64 `field:"required" json:"maxRequests" yaml:"maxRequests"` }
Connection pool properties for HTTP2 listeners.
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" http2ConnectionPool := &http2ConnectionPool{ maxRequests: jsii.Number(123), }
type Http2GatewayListenerOptions ¶
type Http2GatewayListenerOptions struct { // Connection pool for http listeners. ConnectionPool *Http2ConnectionPool `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck HealthCheck `field:"optional" json:"healthCheck" yaml:"healthCheck"` // Port to listen for connections on. Port *float64 `field:"optional" json:"port" yaml:"port"` // Represents the configuration for enabling TLS on a listener. Tls *ListenerTlsOptions `field:"optional" json:"tls" yaml:"tls"` }
Represents the properties needed to define HTTP2 Listeners for a VirtualGateway.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with listener TLS from an ACM provided certificate var cert certificate var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.acm(cert), }, }), }, }) // A Virtual Gateway with listener TLS from a customer provided file certificate gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), }, }), }, virtualGatewayName: jsii.String("gateway"), }) // A Virtual Gateway with listener TLS from a SDS provided certificate gateway2 := appmesh.NewVirtualGateway(this, jsii.String("gateway2"), &virtualGatewayProps{ mesh: mesh, listeners: []*virtualGatewayListener{ appmesh.*virtualGatewayListener.http2(&http2GatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.sds(jsii.String("secrete_certificate")), }, }), }, virtualGatewayName: jsii.String("gateway2"), })
type Http2VirtualNodeListenerOptions ¶
type Http2VirtualNodeListenerOptions struct { // Connection pool for http2 listeners. ConnectionPool *Http2ConnectionPool `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck HealthCheck `field:"optional" json:"healthCheck" yaml:"healthCheck"` // Represents the configuration for enabling outlier detection. OutlierDetection *OutlierDetection `field:"optional" json:"outlierDetection" yaml:"outlierDetection"` // Port to listen for connections on. Port *float64 `field:"optional" json:"port" yaml:"port"` // Timeout for HTTP protocol. Timeout *HttpTimeout `field:"optional" json:"timeout" yaml:"timeout"` // Represents the configuration for enabling TLS on a listener. Tls *ListenerTlsOptions `field:"optional" json:"tls" yaml:"tls"` }
Represent the HTTP2 Node Listener prorperty.
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 healthCheck healthCheck var mutualTlsValidationTrust mutualTlsValidationTrust var subjectAlternativeNames subjectAlternativeNames var tlsCertificate tlsCertificate http2VirtualNodeListenerOptions := &http2VirtualNodeListenerOptions{ connectionPool: &http2ConnectionPool{ maxRequests: jsii.Number(123), }, healthCheck: healthCheck, outlierDetection: &outlierDetection{ baseEjectionDuration: cdk.duration.minutes(jsii.Number(30)), interval: cdk.*duration.minutes(jsii.Number(30)), maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }, port: jsii.Number(123), timeout: &httpTimeout{ idle: cdk.*duration.minutes(jsii.Number(30)), perRequest: cdk.*duration.minutes(jsii.Number(30)), }, tls: &listenerTlsOptions{ certificate: tlsCertificate, mode: awscdk.Aws_appmesh.tlsMode_STRICT, // the properties below are optional mutualTlsValidation: &mutualTlsValidation{ trust: mutualTlsValidationTrust, // the properties below are optional subjectAlternativeNames: subjectAlternativeNames, }, }, }
type HttpConnectionPool ¶
type HttpConnectionPool struct { // The maximum connections in the pool. MaxConnections *float64 `field:"required" json:"maxConnections" yaml:"maxConnections"` // The maximum pending requests in the pool. MaxPendingRequests *float64 `field:"required" json:"maxPendingRequests" yaml:"maxPendingRequests"` }
Connection pool properties for HTTP listeners.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with a gRPC listener with a connection pool set var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, // DNS service discovery can optionally specify the DNS response type as either LOAD_BALANCER or ENDPOINTS. // LOAD_BALANCER means that the DNS resolver returns a loadbalanced set of endpoints, // whereas ENDPOINTS means that the DNS resolver is returning all the endpoints. // By default, the response type is assumed to be LOAD_BALANCER serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node"), appmesh.dnsResponseType_ENDPOINTS), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(80), connectionPool: &httpConnectionPool{ maxConnections: jsii.Number(100), maxPendingRequests: jsii.Number(10), }, }), }, }) // A Virtual Gateway with a gRPC listener with a connection pool set gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), connectionPool: &grpcConnectionPool{ maxRequests: jsii.Number(10), }, }), }, virtualGatewayName: jsii.String("gateway"), })
type HttpGatewayListenerOptions ¶
type HttpGatewayListenerOptions struct { // Connection pool for http listeners. ConnectionPool *HttpConnectionPool `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck HealthCheck `field:"optional" json:"healthCheck" yaml:"healthCheck"` // Port to listen for connections on. Port *float64 `field:"optional" json:"port" yaml:"port"` // Represents the configuration for enabling TLS on a listener. Tls *ListenerTlsOptions `field:"optional" json:"tls" yaml:"tls"` }
Represents the properties needed to define HTTP Listeners for a VirtualGateway.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh certificateAuthorityArn := "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012" gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.http(&httpGatewayListenerOptions{ port: jsii.Number(443), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ interval: cdk.duration.seconds(jsii.Number(10)), }), }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ ports: []*f64{ jsii.Number(8080), jsii.Number(8081), }, validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.acm([]iCertificateAuthority{ acmpca.certificateAuthority.fromCertificateAuthorityArn(this, jsii.String("certificate"), certificateAuthorityArn), }), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), virtualGatewayName: jsii.String("virtualGateway"), })
type HttpGatewayRouteMatch ¶
type HttpGatewayRouteMatch struct { // Specifies the client request headers to match on. // // All specified headers // must match for the gateway route to match. Headers *[]HeaderMatch `field:"optional" json:"headers" yaml:"headers"` // The gateway route host name to be matched on. Hostname GatewayRouteHostnameMatch `field:"optional" json:"hostname" yaml:"hostname"` // The method to match on. Method HttpRouteMethod `field:"optional" json:"method" yaml:"method"` // Specify how to match requests based on the 'path' part of their URL. Path HttpGatewayRoutePathMatch `field:"optional" json:"path" yaml:"path"` // The query parameters to match on. // // All specified query parameters must match for the route to match. QueryParameters *[]QueryParameterMatch `field:"optional" json:"queryParameters" yaml:"queryParameters"` // When `true`, rewrites the original request received at the Virtual Gateway to the destination Virtual Service name. // // When `false`, retains the original hostname from the request. RewriteRequestHostname *bool `field:"optional" json:"rewriteRequestHostname" yaml:"rewriteRequestHostname"` }
The criterion for determining a request match for this GatewayRoute.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-http-2"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.http(&httpGatewayRouteSpecOptions{ routeTarget: virtualService, match: &httpGatewayRouteMatch{ // This rewrites the path from '/test' to '/rewrittenPath'. path: appmesh.httpGatewayRoutePathMatch.exactly(jsii.String("/test"), jsii.String("/rewrittenPath")), }, }), })
type HttpGatewayRoutePathMatch ¶
type HttpGatewayRoutePathMatch interface { // Returns the gateway route path match configuration. Bind(scope constructs.Construct) *HttpGatewayRoutePathMatchConfig }
Defines HTTP gateway route matching based on the URL path of the request.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-http-2"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.http(&httpGatewayRouteSpecOptions{ routeTarget: virtualService, match: &httpGatewayRouteMatch{ // This rewrites the path from '/test' to '/rewrittenPath'. path: appmesh.httpGatewayRoutePathMatch.exactly(jsii.String("/test"), jsii.String("/rewrittenPath")), }, }), })
func HttpGatewayRoutePathMatch_Exactly ¶
func HttpGatewayRoutePathMatch_Exactly(path *string, rewriteTo *string) HttpGatewayRoutePathMatch
The value of the path must match the specified value exactly.
The provided `path` must start with the '/' character.
func HttpGatewayRoutePathMatch_Regex ¶
func HttpGatewayRoutePathMatch_Regex(regex *string, rewriteTo *string) HttpGatewayRoutePathMatch
The value of the path must match the specified regex.
func HttpGatewayRoutePathMatch_StartsWith ¶
func HttpGatewayRoutePathMatch_StartsWith(prefix *string, rewriteTo *string) HttpGatewayRoutePathMatch
The value of the path must match the specified prefix.
type HttpGatewayRoutePathMatchConfig ¶
type HttpGatewayRoutePathMatchConfig struct { // Gateway route configuration for matching on the prefix of the URL path of the request. PrefixPathMatch *string `field:"optional" json:"prefixPathMatch" yaml:"prefixPathMatch"` // Gateway route configuration for rewriting the prefix of the URL path of the request. PrefixPathRewrite *CfnGatewayRoute_HttpGatewayRoutePrefixRewriteProperty `field:"optional" json:"prefixPathRewrite" yaml:"prefixPathRewrite"` // Gateway route configuration for matching on the complete URL path of the request. WholePathMatch *CfnGatewayRoute_HttpPathMatchProperty `field:"optional" json:"wholePathMatch" yaml:"wholePathMatch"` // Gateway route configuration for rewriting the complete URL path of the request.. WholePathRewrite *CfnGatewayRoute_HttpGatewayRoutePathRewriteProperty `field:"optional" json:"wholePathRewrite" yaml:"wholePathRewrite"` }
The type returned from the `bind()` method in {@link HttpGatewayRoutePathMatch}.
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" httpGatewayRoutePathMatchConfig := &httpGatewayRoutePathMatchConfig{ prefixPathMatch: jsii.String("prefixPathMatch"), prefixPathRewrite: &httpGatewayRoutePrefixRewriteProperty{ defaultPrefix: jsii.String("defaultPrefix"), value: jsii.String("value"), }, wholePathMatch: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, wholePathRewrite: &httpGatewayRoutePathRewriteProperty{ exact: jsii.String("exact"), }, }
type HttpGatewayRouteSpecOptions ¶
type HttpGatewayRouteSpecOptions struct { // The priority for the gateway route. // // When a Virtual Gateway has multiple gateway routes, gateway route match // is performed in the order of specified value, where 0 is the highest priority, // and first matched gateway route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` // The VirtualService this GatewayRoute directs traffic to. RouteTarget IVirtualService `field:"required" json:"routeTarget" yaml:"routeTarget"` // The criterion for determining a request match for this GatewayRoute. // // When path match is defined, this may optionally determine the path rewrite configuration. Match *HttpGatewayRouteMatch `field:"optional" json:"match" yaml:"match"` }
Properties specific for HTTP Based GatewayRoutes.
Example:
// Example automatically generated from non-compiling source. May contain errors. var gateway virtualGateway var virtualService virtualService gateway.addGatewayRoute(jsii.String("gateway-route-http-2"), &gatewayRouteBaseProps{ routeSpec: appmesh.gatewayRouteSpec.http(&httpGatewayRouteSpecOptions{ routeTarget: virtualService, match: &httpGatewayRouteMatch{ // This rewrites the path from '/test' to '/rewrittenPath'. path: appmesh.httpGatewayRoutePathMatch.exactly(jsii.String("/test"), jsii.String("/rewrittenPath")), }, }), })
type HttpHealthCheckOptions ¶
type HttpHealthCheckOptions struct { // The number of consecutive successful health checks that must occur before declaring listener healthy. HealthyThreshold *float64 `field:"optional" json:"healthyThreshold" yaml:"healthyThreshold"` // The time period between each health check execution. Interval awscdk.Duration `field:"optional" json:"interval" yaml:"interval"` // The destination path for the health check request. Path *string `field:"optional" json:"path" yaml:"path"` // The amount of time to wait when receiving a response from the health check. Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // The number of consecutive failed health checks that must occur before declaring a listener unhealthy. UnhealthyThreshold *float64 `field:"optional" json:"unhealthyThreshold" yaml:"unhealthyThreshold"` }
Properties used to define HTTP Based healthchecks.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8081), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), // minimum path: jsii.String("/health-check-path"), timeout: cdk.*duration.seconds(jsii.Number(2)), // minimum unhealthyThreshold: jsii.Number(2), }), }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), })
type HttpRetryEvent ¶
type HttpRetryEvent string
HTTP events on which to retry.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, retryPolicy: &httpRetryPolicy{ // Retry if the connection failed tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, // Retry if HTTP responds with a gateway error (502, 503, 504) httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry five times retryAttempts: jsii.Number(5), // Use a 1 second timeout per retry retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
const ( // HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511. HttpRetryEvent_SERVER_ERROR HttpRetryEvent = "SERVER_ERROR" // HTTP status codes 502, 503, and 504. HttpRetryEvent_GATEWAY_ERROR HttpRetryEvent = "GATEWAY_ERROR" // HTTP status code 409. HttpRetryEvent_CLIENT_ERROR HttpRetryEvent = "CLIENT_ERROR" // Retry on refused stream. HttpRetryEvent_STREAM_ERROR HttpRetryEvent = "STREAM_ERROR" )
type HttpRetryPolicy ¶
type HttpRetryPolicy struct { // The maximum number of retry attempts. RetryAttempts *float64 `field:"required" json:"retryAttempts" yaml:"retryAttempts"` // The timeout for each retry attempt. RetryTimeout awscdk.Duration `field:"required" json:"retryTimeout" yaml:"retryTimeout"` // Specify HTTP events on which to retry. // // You must specify at least one value // for at least one types of retry events. HttpRetryEvents *[]HttpRetryEvent `field:"optional" json:"httpRetryEvents" yaml:"httpRetryEvents"` // TCP events on which to retry. // // The event occurs before any processing of a // request has started and is encountered when the upstream is temporarily or // permanently unavailable. You must specify at least one value for at least // one types of retry events. TcpRetryEvents *[]TcpRetryEvent `field:"optional" json:"tcpRetryEvents" yaml:"tcpRetryEvents"` }
HTTP retry policy.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, retryPolicy: &httpRetryPolicy{ // Retry if the connection failed tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, // Retry if HTTP responds with a gateway error (502, 503, 504) httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry five times retryAttempts: jsii.Number(5), // Use a 1 second timeout per retry retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
type HttpRouteMatch ¶
type HttpRouteMatch struct { // Specifies the client request headers to match on. // // All specified headers // must match for the route to match. Headers *[]HeaderMatch `field:"optional" json:"headers" yaml:"headers"` // The HTTP client request method to match on. Method HttpRouteMethod `field:"optional" json:"method" yaml:"method"` // Specifies how is the request matched based on the path part of its URL. Path HttpRoutePathMatch `field:"optional" json:"path" yaml:"path"` // The client request protocol to match on. // // Applicable only for HTTP2 routes. Protocol HttpRouteProtocol `field:"optional" json:"protocol" yaml:"protocol"` // The query parameters to match on. // // All specified query parameters must match for the route to match. QueryParameters *[]QueryParameterMatch `field:"optional" json:"queryParameters" yaml:"queryParameters"` }
The criterion for determining a request match for this Route.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, weight: jsii.Number(50), }, &weightedTarget{ virtualNode: node, weight: jsii.Number(50), }, }, match: &httpRouteMatch{ path: appmesh.httpRoutePathMatch.startsWith(jsii.String("/path-to-app")), }, }), })
type HttpRouteMethod ¶
type HttpRouteMethod string
Supported values for matching routes based on the HTTP request method.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &httpRouteMatch{ path: appmesh.httpRoutePathMatch.exactly(jsii.String("/exact")), method: appmesh.httpRouteMethod_POST, protocol: appmesh.httpRouteProtocol_HTTPS, headers: []headerMatch{ appmesh.*headerMatch.valueIs(jsii.String("Content-Type"), jsii.String("application/json")), appmesh.*headerMatch.valueIsNot(jsii.String("Content-Type"), jsii.String("application/json")), }, queryParameters: []queryParameterMatch{ appmesh.*queryParameterMatch.valueIs(jsii.String("query-field"), jsii.String("value")), }, }, }), })
const ( // GET request. HttpRouteMethod_GET HttpRouteMethod = "GET" // HEAD request. HttpRouteMethod_HEAD HttpRouteMethod = "HEAD" // POST request. HttpRouteMethod_POST HttpRouteMethod = "POST" // PUT request. HttpRouteMethod_PUT HttpRouteMethod = "PUT" // DELETE request. HttpRouteMethod_DELETE HttpRouteMethod = "DELETE" // CONNECT request. HttpRouteMethod_CONNECT HttpRouteMethod = "CONNECT" // OPTIONS request. HttpRouteMethod_OPTIONS HttpRouteMethod = "OPTIONS" // TRACE request. HttpRouteMethod_TRACE HttpRouteMethod = "TRACE" // PATCH request. HttpRouteMethod_PATCH HttpRouteMethod = "PATCH" )
type HttpRoutePathMatch ¶
type HttpRoutePathMatch interface { // Returns the route path match configuration. Bind(scope constructs.Construct) *HttpRoutePathMatchConfig }
Defines HTTP route matching based on the URL path of the request.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, weight: jsii.Number(50), }, &weightedTarget{ virtualNode: node, weight: jsii.Number(50), }, }, match: &httpRouteMatch{ path: appmesh.httpRoutePathMatch.startsWith(jsii.String("/path-to-app")), }, }), })
func HttpRoutePathMatch_Exactly ¶
func HttpRoutePathMatch_Exactly(path *string) HttpRoutePathMatch
The value of the path must match the specified value exactly.
The provided `path` must start with the '/' character.
func HttpRoutePathMatch_Regex ¶
func HttpRoutePathMatch_Regex(regex *string) HttpRoutePathMatch
The value of the path must match the specified regex.
func HttpRoutePathMatch_StartsWith ¶
func HttpRoutePathMatch_StartsWith(prefix *string) HttpRoutePathMatch
The value of the path must match the specified prefix.
type HttpRoutePathMatchConfig ¶
type HttpRoutePathMatchConfig struct { // Route configuration for matching on the prefix of the URL path of the request. PrefixPathMatch *string `field:"optional" json:"prefixPathMatch" yaml:"prefixPathMatch"` // Route configuration for matching on the complete URL path of the request. WholePathMatch *CfnRoute_HttpPathMatchProperty `field:"optional" json:"wholePathMatch" yaml:"wholePathMatch"` }
The type returned from the `bind()` method in {@link HttpRoutePathMatch}.
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" httpRoutePathMatchConfig := &httpRoutePathMatchConfig{ prefixPathMatch: jsii.String("prefixPathMatch"), wholePathMatch: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, }
type HttpRouteProtocol ¶
type HttpRouteProtocol string
Supported :scheme options for HTTP2.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &httpRouteMatch{ path: appmesh.httpRoutePathMatch.exactly(jsii.String("/exact")), method: appmesh.httpRouteMethod_POST, protocol: appmesh.httpRouteProtocol_HTTPS, headers: []headerMatch{ appmesh.*headerMatch.valueIs(jsii.String("Content-Type"), jsii.String("application/json")), appmesh.*headerMatch.valueIsNot(jsii.String("Content-Type"), jsii.String("application/json")), }, queryParameters: []queryParameterMatch{ appmesh.*queryParameterMatch.valueIs(jsii.String("query-field"), jsii.String("value")), }, }, }), })
const ( // Match HTTP requests. HttpRouteProtocol_HTTP HttpRouteProtocol = "HTTP" // Match HTTPS requests. HttpRouteProtocol_HTTPS HttpRouteProtocol = "HTTPS" )
type HttpRouteSpecOptions ¶
type HttpRouteSpecOptions struct { // The priority for the route. // // When a Virtual Router has multiple routes, route match is performed in the // order of specified value, where 0 is the highest priority, and first matched route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` // List of targets that traffic is routed to when a request matches the route. WeightedTargets *[]*WeightedTarget `field:"required" json:"weightedTargets" yaml:"weightedTargets"` // The criterion for determining a request match for this Route. Match *HttpRouteMatch `field:"optional" json:"match" yaml:"match"` // The retry policy. RetryPolicy *HttpRetryPolicy `field:"optional" json:"retryPolicy" yaml:"retryPolicy"` // An object that represents a http timeout. Timeout *HttpTimeout `field:"optional" json:"timeout" yaml:"timeout"` }
Properties specific for HTTP Based Routes.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, retryPolicy: &httpRetryPolicy{ // Retry if the connection failed tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, // Retry if HTTP responds with a gateway error (502, 503, 504) httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry five times retryAttempts: jsii.Number(5), // Use a 1 second timeout per retry retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
type HttpTimeout ¶
type HttpTimeout struct { // Represents an idle timeout. // // The amount of time that a connection may be idle. Idle awscdk.Duration `field:"optional" json:"idle" yaml:"idle"` // Represents per request timeout. PerRequest awscdk.Duration `field:"optional" json:"perRequest" yaml:"perRequest"` }
Represents timeouts for HTTP protocols.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh var service service node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8080), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), path: jsii.String("/ping"), timeout: cdk.*duration.seconds(jsii.Number(2)), unhealthyThreshold: jsii.Number(2), }), timeout: &httpTimeout{ idle: cdk.*duration.seconds(jsii.Number(5)), }, }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("/keys/local_cert_chain.pem")), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), }) cdk.tags.of(node).add(jsii.String("Environment"), jsii.String("Dev"))
type HttpVirtualNodeListenerOptions ¶
type HttpVirtualNodeListenerOptions struct { // Connection pool for http listeners. ConnectionPool *HttpConnectionPool `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck HealthCheck `field:"optional" json:"healthCheck" yaml:"healthCheck"` // Represents the configuration for enabling outlier detection. OutlierDetection *OutlierDetection `field:"optional" json:"outlierDetection" yaml:"outlierDetection"` // Port to listen for connections on. Port *float64 `field:"optional" json:"port" yaml:"port"` // Timeout for HTTP protocol. Timeout *HttpTimeout `field:"optional" json:"timeout" yaml:"timeout"` // Represents the configuration for enabling TLS on a listener. Tls *ListenerTlsOptions `field:"optional" json:"tls" yaml:"tls"` }
Represent the HTTP Node Listener prorperty.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8081), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), // minimum path: jsii.String("/health-check-path"), timeout: cdk.*duration.seconds(jsii.Number(2)), // minimum unhealthyThreshold: jsii.Number(2), }), }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), })
type IGatewayRoute ¶
type IGatewayRoute interface { awscdk.IResource // The Amazon Resource Name (ARN) for the GatewayRoute. GatewayRouteArn() *string // The name of the GatewayRoute. GatewayRouteName() *string // The VirtualGateway the GatewayRoute belongs to. VirtualGateway() IVirtualGateway }
Interface for which all GatewayRoute based classes MUST implement.
func GatewayRoute_FromGatewayRouteArn ¶
func GatewayRoute_FromGatewayRouteArn(scope constructs.Construct, id *string, gatewayRouteArn *string) IGatewayRoute
Import an existing GatewayRoute given an ARN.
func GatewayRoute_FromGatewayRouteAttributes ¶
func GatewayRoute_FromGatewayRouteAttributes(scope constructs.Construct, id *string, attrs *GatewayRouteAttributes) IGatewayRoute
Import an existing GatewayRoute given attributes.
type IMesh ¶
type IMesh interface { awscdk.IResource // Creates a new VirtualGateway in this Mesh. // // Note that the Gateway is created in the same Stack that this Mesh belongs to, // which might be different than the current stack. AddVirtualGateway(id *string, props *VirtualGatewayBaseProps) VirtualGateway // Creates a new VirtualNode in this Mesh. // // Note that the Node is created in the same Stack that this Mesh belongs to, // which might be different than the current stack. AddVirtualNode(id *string, props *VirtualNodeBaseProps) VirtualNode // Creates a new VirtualRouter in this Mesh. // // Note that the Router is created in the same Stack that this Mesh belongs to, // which might be different than the current stack. AddVirtualRouter(id *string, props *VirtualRouterBaseProps) VirtualRouter // The Amazon Resource Name (ARN) of the AppMesh mesh. MeshArn() *string // The name of the AppMesh mesh. MeshName() *string }
Interface which all Mesh based classes MUST implement.
func Mesh_FromMeshArn ¶
Import an existing mesh by arn.
func Mesh_FromMeshName ¶
Import an existing mesh by name.
type IRoute ¶
type IRoute interface { awscdk.IResource // The Amazon Resource Name (ARN) for the route. RouteArn() *string // The name of the route. RouteName() *string // The VirtualRouter the Route belongs to. VirtualRouter() IVirtualRouter }
Interface for which all Route based classes MUST implement.
func Route_FromRouteArn ¶
Import an existing Route given an ARN.
func Route_FromRouteAttributes ¶
func Route_FromRouteAttributes(scope constructs.Construct, id *string, attrs *RouteAttributes) IRoute
Import an existing Route given attributes.
type IVirtualGateway ¶
type IVirtualGateway interface { awscdk.IResource // Utility method to add a new GatewayRoute to the VirtualGateway. AddGatewayRoute(id *string, route *GatewayRouteBaseProps) GatewayRoute // Grants the given entity `appmesh:StreamAggregatedResources`. GrantStreamAggregatedResources(identity awsiam.IGrantable) awsiam.Grant // The Mesh which the VirtualGateway belongs to. Mesh() IMesh // The Amazon Resource Name (ARN) for the VirtualGateway. VirtualGatewayArn() *string // Name of the VirtualGateway. VirtualGatewayName() *string }
Interface which all Virtual Gateway based classes must implement.
func VirtualGateway_FromVirtualGatewayArn ¶
func VirtualGateway_FromVirtualGatewayArn(scope constructs.Construct, id *string, virtualGatewayArn *string) IVirtualGateway
Import an existing VirtualGateway given an ARN.
func VirtualGateway_FromVirtualGatewayAttributes ¶
func VirtualGateway_FromVirtualGatewayAttributes(scope constructs.Construct, id *string, attrs *VirtualGatewayAttributes) IVirtualGateway
Import an existing VirtualGateway given its attributes.
type IVirtualNode ¶
type IVirtualNode interface { awscdk.IResource // Grants the given entity `appmesh:StreamAggregatedResources`. GrantStreamAggregatedResources(identity awsiam.IGrantable) awsiam.Grant // The Mesh which the VirtualNode belongs to. Mesh() IMesh // The Amazon Resource Name belonging to the VirtualNode. // // Set this value as the APPMESH_VIRTUAL_NODE_NAME environment variable for // your task group's Envoy proxy container in your task definition or pod // spec. VirtualNodeArn() *string // The name of the VirtualNode. VirtualNodeName() *string }
Interface which all VirtualNode based classes must implement.
func VirtualNode_FromVirtualNodeArn ¶
func VirtualNode_FromVirtualNodeArn(scope constructs.Construct, id *string, virtualNodeArn *string) IVirtualNode
Import an existing VirtualNode given an ARN.
func VirtualNode_FromVirtualNodeAttributes ¶
func VirtualNode_FromVirtualNodeAttributes(scope constructs.Construct, id *string, attrs *VirtualNodeAttributes) IVirtualNode
Import an existing VirtualNode given its name.
type IVirtualRouter ¶
type IVirtualRouter interface { awscdk.IResource // Add a single route to the router. AddRoute(id *string, props *RouteBaseProps) Route // The Mesh which the VirtualRouter belongs to. Mesh() IMesh // The Amazon Resource Name (ARN) for the VirtualRouter. VirtualRouterArn() *string // The name of the VirtualRouter. VirtualRouterName() *string }
Interface which all VirtualRouter based classes MUST implement.
func VirtualRouter_FromVirtualRouterArn ¶
func VirtualRouter_FromVirtualRouterArn(scope constructs.Construct, id *string, virtualRouterArn *string) IVirtualRouter
Import an existing VirtualRouter given an ARN.
func VirtualRouter_FromVirtualRouterAttributes ¶
func VirtualRouter_FromVirtualRouterAttributes(scope constructs.Construct, id *string, attrs *VirtualRouterAttributes) IVirtualRouter
Import an existing VirtualRouter given attributes.
type IVirtualService ¶
type IVirtualService interface { awscdk.IResource // The Mesh which the VirtualService belongs to. Mesh() IMesh // The Amazon Resource Name (ARN) for the virtual service. VirtualServiceArn() *string // The name of the VirtualService. VirtualServiceName() *string }
Represents the interface which all VirtualService based classes MUST implement.
func VirtualService_FromVirtualServiceArn ¶
func VirtualService_FromVirtualServiceArn(scope constructs.Construct, id *string, virtualServiceArn *string) IVirtualService
Import an existing VirtualService given an ARN.
func VirtualService_FromVirtualServiceAttributes ¶
func VirtualService_FromVirtualServiceAttributes(scope constructs.Construct, id *string, attrs *VirtualServiceAttributes) IVirtualService
Import an existing VirtualService given its attributes.
type IpPreference ¶ added in v2.30.0
type IpPreference string
Enum of supported IP preferences.
Used to dictate the IP version for mesh wide and virtual node service discovery. Also used to specify the IP version that a sidecar Envoy uses when sending traffic to a local application.
Example:
// Example automatically generated from non-compiling source. May contain errors. mesh := appmesh.NewMesh(this, jsii.String("AppMesh"), &meshProps{ meshName: jsii.String("myAwsMesh"), serviceDiscovery: &meshServiceDiscovery{ ipPreference: appmesh.ipPreference_IPV4_ONLY, }, })
const ( // Use IPv4 when sending traffic to a local application. // // Only use IPv4 for service discovery. IpPreference_IPV4_ONLY IpPreference = "IPV4_ONLY" // Use IPv4 when sending traffic to a local application. // // First attempt to use IPv4 and fall back to IPv6 for service discovery. IpPreference_IPV4_PREFERRED IpPreference = "IPV4_PREFERRED" // Use IPv6 when sending traffic to a local application. // // Only use IPv6 for service discovery. IpPreference_IPV6_ONLY IpPreference = "IPV6_ONLY" // Use IPv6 when sending traffic to a local application. // // First attempt to use IPv6 and fall back to IPv4 for service discovery. IpPreference_IPV6_PREFERRED IpPreference = "IPV6_PREFERRED" )
type ListenerTlsOptions ¶
type ListenerTlsOptions struct { // Represents TLS certificate. Certificate TlsCertificate `field:"required" json:"certificate" yaml:"certificate"` // The TLS mode. Mode TlsMode `field:"required" json:"mode" yaml:"mode"` // Represents a listener's TLS validation context. // // The client certificate will only be validated if the client provides it, enabling mutual TLS. MutualTlsValidation *MutualTlsValidation `field:"optional" json:"mutualTlsValidation" yaml:"mutualTlsValidation"` }
Represents TLS properties for listener.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with listener TLS from an ACM provided certificate var cert certificate var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.acm(cert), }, }), }, }) // A Virtual Gateway with listener TLS from a customer provided file certificate gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), }, }), }, virtualGatewayName: jsii.String("gateway"), }) // A Virtual Gateway with listener TLS from a SDS provided certificate gateway2 := appmesh.NewVirtualGateway(this, jsii.String("gateway2"), &virtualGatewayProps{ mesh: mesh, listeners: []*virtualGatewayListener{ appmesh.*virtualGatewayListener.http2(&http2GatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.sds(jsii.String("secrete_certificate")), }, }), }, virtualGatewayName: jsii.String("gateway2"), })
type Mesh ¶
type Mesh interface { awscdk.Resource IMesh // 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 Amazon Resource Name (ARN) of the AppMesh mesh. MeshArn() *string // The name of the AppMesh mesh. MeshName() *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 // Adds a VirtualGateway to the Mesh. AddVirtualGateway(id *string, props *VirtualGatewayBaseProps) VirtualGateway // Adds a VirtualNode to the Mesh. AddVirtualNode(id *string, props *VirtualNodeBaseProps) VirtualNode // Adds a VirtualRouter to the Mesh with the given id and props. AddVirtualRouter(id *string, props *VirtualRouterBaseProps) VirtualRouter // 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 AppMesh mesh.
Example:
// Example automatically generated from non-compiling source. May contain errors. // This is the ARN for the mesh from different AWS IAM account ID. // Ensure mesh is properly shared with your account. For more details, see: https://github.com/aws/aws-cdk/issues/15404 arn := "arn:aws:appmesh:us-east-1:123456789012:mesh/testMesh" sharedMesh := appmesh.mesh.fromMeshArn(this, jsii.String("imported-mesh"), arn) // This VirtualNode resource can communicate with the resources in the mesh from different AWS IAM account ID. // This VirtualNode resource can communicate with the resources in the mesh from different AWS IAM account ID. appmesh.NewVirtualNode(this, jsii.String("test-node"), &virtualNodeProps{ mesh: sharedMesh, })
See: https://docs.aws.amazon.com/app-mesh/latest/userguide/meshes.html
type MeshFilterType ¶
type MeshFilterType string
A utility enum defined for the egressFilter type property, the default of DROP_ALL, allows traffic only to other resources inside the mesh, or API calls to amazon resources.
Example:
// Example automatically generated from non-compiling source. May contain errors. mesh := appmesh.NewMesh(this, jsii.String("AppMesh"), &meshProps{ meshName: jsii.String("myAwsMesh"), egressFilter: appmesh.meshFilterType_ALLOW_ALL, })
const ( // Allows all outbound traffic. MeshFilterType_ALLOW_ALL MeshFilterType = "ALLOW_ALL" // Allows traffic only to other resources inside the mesh, or API calls to amazon resources. MeshFilterType_DROP_ALL MeshFilterType = "DROP_ALL" )
type MeshProps ¶
type MeshProps struct { // Egress filter to be applied to the Mesh. EgressFilter MeshFilterType `field:"optional" json:"egressFilter" yaml:"egressFilter"` // The name of the Mesh being defined. MeshName *string `field:"optional" json:"meshName" yaml:"meshName"` // Defines how upstream clients will discover VirtualNodes in the Mesh. ServiceDiscovery *MeshServiceDiscovery `field:"optional" json:"serviceDiscovery" yaml:"serviceDiscovery"` }
The set of properties used when creating a Mesh.
Example:
// Example automatically generated from non-compiling source. May contain errors. var infraStack stack var appStack stack mesh := appmesh.NewMesh(infraStack, jsii.String("AppMesh"), &meshProps{ meshName: jsii.String("myAwsMesh"), egressFilter: appmesh.meshFilterType_ALLOW_ALL, }) // the VirtualRouter will belong to 'appStack', // even though the Mesh belongs to 'infraStack' router := appmesh.NewVirtualRouter(appStack, jsii.String("router"), &virtualRouterProps{ mesh: mesh, // notice that mesh is a required property when creating a router with the 'new' statement listeners: []virtualRouterListener{ appmesh.*virtualRouterListener.http(jsii.Number(8081)), }, })
type MeshServiceDiscovery ¶ added in v2.30.0
type MeshServiceDiscovery struct { // IP preference applied to all Virtual Nodes in the Mesh. IpPreference IpPreference `field:"optional" json:"ipPreference" yaml:"ipPreference"` }
Properties for Mesh Service Discovery.
Example:
// Example automatically generated from non-compiling source. May contain errors. mesh := appmesh.NewMesh(this, jsii.String("AppMesh"), &meshProps{ meshName: jsii.String("myAwsMesh"), serviceDiscovery: &meshServiceDiscovery{ ipPreference: appmesh.ipPreference_IPV4_ONLY, }, })
type MutualTlsCertificate ¶
type MutualTlsCertificate interface { TlsCertificate Differentiator() *bool // Returns TLS certificate based provider. Bind(_scope constructs.Construct) *TlsCertificateConfig }
Represents a TLS certificate that is supported for mutual TLS authentication.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh node1 := appmesh.NewVirtualNode(this, jsii.String("node1"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), // Validate a file client certificates to enable mutual TLS authentication when a client provides a certificate. mutualTlsValidation: &mutualTlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("path-to-certificate")), }, }, }), }, }) certificateAuthorityArn := "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012" node2 := appmesh.NewVirtualNode(this, jsii.String("node2"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.*serviceDiscovery.dns(jsii.String("node2")), backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ ports: []*f64{ jsii.Number(8080), jsii.Number(8081), }, validation: &tlsValidation{ subjectAlternativeNames: appmesh.subjectAlternativeNames.matchingExactly(jsii.String("mesh-endpoint.apps.local")), trust: appmesh.*tlsValidationTrust.acm([]iCertificateAuthority{ acmpca.certificateAuthority.fromCertificateAuthorityArn(this, jsii.String("certificate"), certificateAuthorityArn), }), }, // Provide a SDS client certificate when a server requests it and enable mutual TLS authentication. mutualTlsCertificate: appmesh.*tlsCertificate.sds(jsii.String("secret_certificate")), }, }, })
func MutualTlsCertificate_File ¶
func MutualTlsCertificate_File(certificateChainPath *string, privateKeyPath *string) MutualTlsCertificate
Returns an File TLS Certificate.
func MutualTlsCertificate_Sds ¶
func MutualTlsCertificate_Sds(secretName *string) MutualTlsCertificate
Returns an SDS TLS Certificate.
func TlsCertificate_File ¶
func TlsCertificate_File(certificateChainPath *string, privateKeyPath *string) MutualTlsCertificate
Returns an File TLS Certificate.
func TlsCertificate_Sds ¶
func TlsCertificate_Sds(secretName *string) MutualTlsCertificate
Returns an SDS TLS Certificate.
type MutualTlsValidation ¶
type MutualTlsValidation struct { // Reference to where to retrieve the trust chain. Trust MutualTlsValidationTrust `field:"required" json:"trust" yaml:"trust"` // Represents the subject alternative names (SANs) secured by the certificate. // // SANs must be in the FQDN or URI format. SubjectAlternativeNames SubjectAlternativeNames `field:"optional" json:"subjectAlternativeNames" yaml:"subjectAlternativeNames"` }
Represents the properties needed to define TLS Validation context that is supported for mutual TLS authentication.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh node1 := appmesh.NewVirtualNode(this, jsii.String("node1"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), // Validate a file client certificates to enable mutual TLS authentication when a client provides a certificate. mutualTlsValidation: &mutualTlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("path-to-certificate")), }, }, }), }, }) certificateAuthorityArn := "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012" node2 := appmesh.NewVirtualNode(this, jsii.String("node2"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.*serviceDiscovery.dns(jsii.String("node2")), backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ ports: []*f64{ jsii.Number(8080), jsii.Number(8081), }, validation: &tlsValidation{ subjectAlternativeNames: appmesh.subjectAlternativeNames.matchingExactly(jsii.String("mesh-endpoint.apps.local")), trust: appmesh.*tlsValidationTrust.acm([]iCertificateAuthority{ acmpca.certificateAuthority.fromCertificateAuthorityArn(this, jsii.String("certificate"), certificateAuthorityArn), }), }, // Provide a SDS client certificate when a server requests it and enable mutual TLS authentication. mutualTlsCertificate: appmesh.*tlsCertificate.sds(jsii.String("secret_certificate")), }, }, })
type MutualTlsValidationTrust ¶
type MutualTlsValidationTrust interface { TlsValidationTrust Differentiator() *bool // Returns Trust context based on trust type. Bind(scope constructs.Construct) *TlsValidationTrustConfig }
Represents a TLS Validation Context Trust that is supported for mutual TLS authentication.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh node1 := appmesh.NewVirtualNode(this, jsii.String("node1"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), // Validate a file client certificates to enable mutual TLS authentication when a client provides a certificate. mutualTlsValidation: &mutualTlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("path-to-certificate")), }, }, }), }, }) certificateAuthorityArn := "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012" node2 := appmesh.NewVirtualNode(this, jsii.String("node2"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.*serviceDiscovery.dns(jsii.String("node2")), backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ ports: []*f64{ jsii.Number(8080), jsii.Number(8081), }, validation: &tlsValidation{ subjectAlternativeNames: appmesh.subjectAlternativeNames.matchingExactly(jsii.String("mesh-endpoint.apps.local")), trust: appmesh.*tlsValidationTrust.acm([]iCertificateAuthority{ acmpca.certificateAuthority.fromCertificateAuthorityArn(this, jsii.String("certificate"), certificateAuthorityArn), }), }, // Provide a SDS client certificate when a server requests it and enable mutual TLS authentication. mutualTlsCertificate: appmesh.*tlsCertificate.sds(jsii.String("secret_certificate")), }, }, })
func MutualTlsValidationTrust_File ¶
func MutualTlsValidationTrust_File(certificateChain *string) MutualTlsValidationTrust
Tells envoy where to fetch the validation context from.
func MutualTlsValidationTrust_Sds ¶
func MutualTlsValidationTrust_Sds(secretName *string) MutualTlsValidationTrust
TLS Validation Context Trust for Envoy' service discovery service.
func TlsValidationTrust_File ¶
func TlsValidationTrust_File(certificateChain *string) MutualTlsValidationTrust
Tells envoy where to fetch the validation context from.
func TlsValidationTrust_Sds ¶
func TlsValidationTrust_Sds(secretName *string) MutualTlsValidationTrust
TLS Validation Context Trust for Envoy' service discovery service.
type OutlierDetection ¶
type OutlierDetection struct { // The base amount of time for which a host is ejected. BaseEjectionDuration awscdk.Duration `field:"required" json:"baseEjectionDuration" yaml:"baseEjectionDuration"` // The time interval between ejection sweep analysis. Interval awscdk.Duration `field:"required" json:"interval" yaml:"interval"` // Maximum percentage of hosts in load balancing pool for upstream service that can be ejected. // // Will eject at // least one host regardless of the value. MaxEjectionPercent *float64 `field:"required" json:"maxEjectionPercent" yaml:"maxEjectionPercent"` // Number of consecutive 5xx errors required for ejection. MaxServerErrors *float64 `field:"required" json:"maxServerErrors" yaml:"maxServerErrors"` }
Represents the outlier detection for a listener.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh // Cloud Map service discovery is currently required for host ejection by outlier detection vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ outlierDetection: &outlierDetection{ baseEjectionDuration: cdk.duration.seconds(jsii.Number(10)), interval: cdk.*duration.seconds(jsii.Number(30)), maxEjectionPercent: jsii.Number(50), maxServerErrors: jsii.Number(5), }, }), }, })
type QueryParameterMatch ¶
type QueryParameterMatch interface { // Returns the query parameter match configuration. Bind(scope constructs.Construct) *QueryParameterMatchConfig }
Used to generate query parameter matching methods.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, match: &httpRouteMatch{ path: appmesh.httpRoutePathMatch.exactly(jsii.String("/exact")), method: appmesh.httpRouteMethod_POST, protocol: appmesh.httpRouteProtocol_HTTPS, headers: []headerMatch{ appmesh.*headerMatch.valueIs(jsii.String("Content-Type"), jsii.String("application/json")), appmesh.*headerMatch.valueIsNot(jsii.String("Content-Type"), jsii.String("application/json")), }, queryParameters: []queryParameterMatch{ appmesh.*queryParameterMatch.valueIs(jsii.String("query-field"), jsii.String("value")), }, }, }), })
func QueryParameterMatch_ValueIs ¶
func QueryParameterMatch_ValueIs(queryParameterName *string, queryParameterValue *string) QueryParameterMatch
The value of the query parameter with the given name in the request must match the specified value exactly.
type QueryParameterMatchConfig ¶
type QueryParameterMatchConfig struct { // Route CFN configuration for route query parameter match. QueryParameterMatch *CfnRoute_QueryParameterProperty `field:"required" json:"queryParameterMatch" yaml:"queryParameterMatch"` }
Configuration for `QueryParameterMatch`.
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" queryParameterMatchConfig := &queryParameterMatchConfig{ queryParameterMatch: &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }
type Route ¶
type Route interface { awscdk.Resource IRoute // 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 Amazon Resource Name (ARN) for the route. RouteArn() *string // The name of the Route. RouteName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // The VirtualRouter the Route belongs to. VirtualRouter() IVirtualRouter // 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 }
Route represents a new or existing route attached to a VirtualRouter and Mesh.
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 mesh mesh var routeSpec routeSpec var virtualRouter virtualRouter route := awscdk.Aws_appmesh.NewRoute(this, jsii.String("MyRoute"), &routeProps{ mesh: mesh, routeSpec: routeSpec, virtualRouter: virtualRouter, // the properties below are optional routeName: jsii.String("routeName"), })
See: https://docs.aws.amazon.com/app-mesh/latest/userguide/routes.html
func NewRoute ¶
func NewRoute(scope constructs.Construct, id *string, props *RouteProps) Route
type RouteAttributes ¶
type RouteAttributes struct { // The name of the Route. RouteName *string `field:"required" json:"routeName" yaml:"routeName"` // The VirtualRouter the Route belongs to. VirtualRouter IVirtualRouter `field:"required" json:"virtualRouter" yaml:"virtualRouter"` }
Interface with properties ncecessary to import a reusable Route.
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 virtualRouter virtualRouter routeAttributes := &routeAttributes{ routeName: jsii.String("routeName"), virtualRouter: virtualRouter, }
type RouteBaseProps ¶
type RouteBaseProps struct { // Protocol specific spec. RouteSpec RouteSpec `field:"required" json:"routeSpec" yaml:"routeSpec"` // The name of the route. RouteName *string `field:"optional" json:"routeName" yaml:"routeName"` }
Base interface properties for all Routes.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, retryPolicy: &httpRetryPolicy{ // Retry if the connection failed tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, // Retry if HTTP responds with a gateway error (502, 503, 504) httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry five times retryAttempts: jsii.Number(5), // Use a 1 second timeout per retry retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
type RouteProps ¶
type RouteProps struct { // Protocol specific spec. RouteSpec RouteSpec `field:"required" json:"routeSpec" yaml:"routeSpec"` // The name of the route. RouteName *string `field:"optional" json:"routeName" yaml:"routeName"` // The service mesh to define the route in. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` // The VirtualRouter the Route belongs to. VirtualRouter IVirtualRouter `field:"required" json:"virtualRouter" yaml:"virtualRouter"` }
Properties to define new Routes.
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 mesh mesh var routeSpec routeSpec var virtualRouter virtualRouter routeProps := &routeProps{ mesh: mesh, routeSpec: routeSpec, virtualRouter: virtualRouter, // the properties below are optional routeName: jsii.String("routeName"), }
type RouteSpec ¶
type RouteSpec interface { // Called when the RouteSpec type is initialized. // // Can be used to enforce // mutual exclusivity with future properties. Bind(scope constructs.Construct) *RouteSpecConfig }
Used to generate specs with different protocols for a RouteSpec.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, retryPolicy: &httpRetryPolicy{ // Retry if the connection failed tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, // Retry if HTTP responds with a gateway error (502, 503, 504) httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry five times retryAttempts: jsii.Number(5), // Use a 1 second timeout per retry retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
func RouteSpec_Grpc ¶
func RouteSpec_Grpc(options *GrpcRouteSpecOptions) RouteSpec
Creates a GRPC Based RouteSpec.
func RouteSpec_Http ¶
func RouteSpec_Http(options *HttpRouteSpecOptions) RouteSpec
Creates an HTTP Based RouteSpec.
func RouteSpec_Http2 ¶
func RouteSpec_Http2(options *HttpRouteSpecOptions) RouteSpec
Creates an HTTP2 Based RouteSpec.
func RouteSpec_Tcp ¶
func RouteSpec_Tcp(options *TcpRouteSpecOptions) RouteSpec
Creates a TCP Based RouteSpec.
type RouteSpecConfig ¶
type RouteSpecConfig struct { // The spec for a grpc route. GrpcRouteSpec *CfnRoute_GrpcRouteProperty `field:"optional" json:"grpcRouteSpec" yaml:"grpcRouteSpec"` // The spec for an http2 route. Http2RouteSpec *CfnRoute_HttpRouteProperty `field:"optional" json:"http2RouteSpec" yaml:"http2RouteSpec"` // The spec for an http route. HttpRouteSpec *CfnRoute_HttpRouteProperty `field:"optional" json:"httpRouteSpec" yaml:"httpRouteSpec"` // The priority for the route. // // When a Virtual Router has multiple routes, route match is performed in the // order of specified value, where 0 is the highest priority, and first matched route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` // The spec for a tcp route. TcpRouteSpec *CfnRoute_TcpRouteProperty `field:"optional" json:"tcpRouteSpec" yaml:"tcpRouteSpec"` }
All Properties for Route Specs.
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" routeSpecConfig := &routeSpecConfig{ grpcRouteSpec: &grpcRouteProperty{ action: &grpcRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &grpcRouteMatchProperty{ metadata: []interface{}{ &grpcRouteMetadataProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &grpcRouteMetadataMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, methodName: jsii.String("methodName"), serviceName: jsii.String("serviceName"), }, // the properties below are optional retryPolicy: &grpcRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional grpcRetryEvents: []*string{ jsii.String("grpcRetryEvents"), }, httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, http2RouteSpec: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, httpRouteSpec: &httpRouteProperty{ action: &httpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, match: &httpRouteMatchProperty{ headers: []interface{}{ &httpRouteHeaderProperty{ name: jsii.String("name"), // the properties below are optional invert: jsii.Boolean(false), match: &headerMatchMethodProperty{ exact: jsii.String("exact"), prefix: jsii.String("prefix"), range: &matchRangeProperty{ end: jsii.Number(123), start: jsii.Number(123), }, regex: jsii.String("regex"), suffix: jsii.String("suffix"), }, }, }, method: jsii.String("method"), path: &httpPathMatchProperty{ exact: jsii.String("exact"), regex: jsii.String("regex"), }, prefix: jsii.String("prefix"), queryParameters: []interface{}{ &queryParameterProperty{ name: jsii.String("name"), // the properties below are optional match: &httpQueryParameterMatchProperty{ exact: jsii.String("exact"), }, }, }, scheme: jsii.String("scheme"), }, // the properties below are optional retryPolicy: &httpRetryPolicyProperty{ maxRetries: jsii.Number(123), perRetryTimeout: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, // the properties below are optional httpRetryEvents: []*string{ jsii.String("httpRetryEvents"), }, tcpRetryEvents: []*string{ jsii.String("tcpRetryEvents"), }, }, timeout: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, priority: jsii.Number(123), tcpRouteSpec: &tcpRouteProperty{ action: &tcpRouteActionProperty{ weightedTargets: []interface{}{ &weightedTargetProperty{ virtualNode: jsii.String("virtualNode"), weight: jsii.Number(123), }, }, }, // the properties below are optional timeout: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, }
type RouteSpecOptionsBase ¶
type RouteSpecOptionsBase struct { // The priority for the route. // // When a Virtual Router has multiple routes, route match is performed in the // order of specified value, where 0 is the highest priority, and first matched route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` }
Base options for all route specs.
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" routeSpecOptionsBase := &routeSpecOptionsBase{ priority: jsii.Number(123), }
type ServiceDiscovery ¶
type ServiceDiscovery interface { // Binds the current object when adding Service Discovery to a VirtualNode. Bind(scope constructs.Construct) *ServiceDiscoveryConfig }
Provides the Service Discovery method a VirtualNode uses.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8081), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), // minimum path: jsii.String("/health-check-path"), timeout: cdk.*duration.seconds(jsii.Number(2)), // minimum unhealthyThreshold: jsii.Number(2), }), }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), })
func ServiceDiscovery_CloudMap ¶
func ServiceDiscovery_CloudMap(service awsservicediscovery.IService, instanceAttributes *map[string]*string, ipPreference IpPreference) ServiceDiscovery
Returns Cloud Map based service discovery.
func ServiceDiscovery_Dns ¶
func ServiceDiscovery_Dns(hostname *string, responseType DnsResponseType, ipPreference IpPreference) ServiceDiscovery
Returns DNS based service discovery.
type ServiceDiscoveryConfig ¶
type ServiceDiscoveryConfig struct { // Cloud Map based Service Discovery. Cloudmap *CfnVirtualNode_AwsCloudMapServiceDiscoveryProperty `field:"optional" json:"cloudmap" yaml:"cloudmap"` // DNS based Service Discovery. Dns *CfnVirtualNode_DnsServiceDiscoveryProperty `field:"optional" json:"dns" yaml:"dns"` }
Properties for VirtualNode Service Discovery.
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" serviceDiscoveryConfig := &serviceDiscoveryConfig{ cloudmap: &awsCloudMapServiceDiscoveryProperty{ namespaceName: jsii.String("namespaceName"), serviceName: jsii.String("serviceName"), // the properties below are optional attributes: []interface{}{ &awsCloudMapInstanceAttributeProperty{ key: jsii.String("key"), value: jsii.String("value"), }, }, ipPreference: jsii.String("ipPreference"), }, dns: &dnsServiceDiscoveryProperty{ hostname: jsii.String("hostname"), // the properties below are optional ipPreference: jsii.String("ipPreference"), responseType: jsii.String("responseType"), }, }
type SubjectAlternativeNames ¶
type SubjectAlternativeNames interface { // Returns Subject Alternative Names Matcher based on method type. Bind(scope constructs.Construct) *SubjectAlternativeNamesMatcherConfig }
Used to generate Subject Alternative Names Matchers.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh node1 := appmesh.NewVirtualNode(this, jsii.String("node1"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), // Validate a file client certificates to enable mutual TLS authentication when a client provides a certificate. mutualTlsValidation: &mutualTlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("path-to-certificate")), }, }, }), }, }) certificateAuthorityArn := "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012" node2 := appmesh.NewVirtualNode(this, jsii.String("node2"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.*serviceDiscovery.dns(jsii.String("node2")), backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ ports: []*f64{ jsii.Number(8080), jsii.Number(8081), }, validation: &tlsValidation{ subjectAlternativeNames: appmesh.subjectAlternativeNames.matchingExactly(jsii.String("mesh-endpoint.apps.local")), trust: appmesh.*tlsValidationTrust.acm([]iCertificateAuthority{ acmpca.certificateAuthority.fromCertificateAuthorityArn(this, jsii.String("certificate"), certificateAuthorityArn), }), }, // Provide a SDS client certificate when a server requests it and enable mutual TLS authentication. mutualTlsCertificate: appmesh.*tlsCertificate.sds(jsii.String("secret_certificate")), }, }, })
func SubjectAlternativeNames_MatchingExactly ¶
func SubjectAlternativeNames_MatchingExactly(names ...*string) SubjectAlternativeNames
The values of the SAN must match the specified values exactly.
type SubjectAlternativeNamesMatcherConfig ¶
type SubjectAlternativeNamesMatcherConfig struct { // VirtualNode CFN configuration for subject alternative names secured by the certificate. SubjectAlternativeNamesMatch *CfnVirtualNode_SubjectAlternativeNameMatchersProperty `field:"required" json:"subjectAlternativeNamesMatch" yaml:"subjectAlternativeNamesMatch"` }
All Properties for Subject Alternative Names Matcher for both Client Policy and Listener.
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" subjectAlternativeNamesMatcherConfig := &subjectAlternativeNamesMatcherConfig{ subjectAlternativeNamesMatch: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }
type TcpConnectionPool ¶
type TcpConnectionPool struct { // The maximum connections in the pool. MaxConnections *float64 `field:"required" json:"maxConnections" yaml:"maxConnections"` }
Connection pool properties for TCP listeners.
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" tcpConnectionPool := &tcpConnectionPool{ maxConnections: jsii.Number(123), }
type TcpHealthCheckOptions ¶
type TcpHealthCheckOptions struct { // The number of consecutive successful health checks that must occur before declaring listener healthy. HealthyThreshold *float64 `field:"optional" json:"healthyThreshold" yaml:"healthyThreshold"` // The time period between each health check execution. Interval awscdk.Duration `field:"optional" json:"interval" yaml:"interval"` // The amount of time to wait when receiving a response from the health check. Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // The number of consecutive failed health checks that must occur before declaring a listener unhealthy. UnhealthyThreshold *float64 `field:"optional" json:"unhealthyThreshold" yaml:"unhealthyThreshold"` }
Properties used to define TCP Based healthchecks.
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" tcpHealthCheckOptions := &tcpHealthCheckOptions{ healthyThreshold: jsii.Number(123), interval: cdk.duration.minutes(jsii.Number(30)), timeout: cdk.*duration.minutes(jsii.Number(30)), unhealthyThreshold: jsii.Number(123), }
type TcpRetryEvent ¶
type TcpRetryEvent string
TCP events on which you may retry.
Example:
// Example automatically generated from non-compiling source. May contain errors. var router virtualRouter var node virtualNode router.addRoute(jsii.String("route-http2-retry"), &routeBaseProps{ routeSpec: appmesh.routeSpec.http2(&httpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: node, }, }, retryPolicy: &httpRetryPolicy{ // Retry if the connection failed tcpRetryEvents: []cONNECTION_ERROR{ appmesh.tcpRetryEvent_*cONNECTION_ERROR, }, // Retry if HTTP responds with a gateway error (502, 503, 504) httpRetryEvents: []httpRetryEvent{ appmesh.*httpRetryEvent_GATEWAY_ERROR, }, // Retry five times retryAttempts: jsii.Number(5), // Use a 1 second timeout per retry retryTimeout: cdk.duration.seconds(jsii.Number(1)), }, }), })
const ( // A connection error. TcpRetryEvent_CONNECTION_ERROR TcpRetryEvent = "CONNECTION_ERROR" )
type TcpRouteSpecOptions ¶
type TcpRouteSpecOptions struct { // The priority for the route. // // When a Virtual Router has multiple routes, route match is performed in the // order of specified value, where 0 is the highest priority, and first matched route is selected. Priority *float64 `field:"optional" json:"priority" yaml:"priority"` // List of targets that traffic is routed to when a request matches the route. WeightedTargets *[]*WeightedTarget `field:"required" json:"weightedTargets" yaml:"weightedTargets"` // An object that represents a tcp timeout. Timeout *TcpTimeout `field:"optional" json:"timeout" yaml:"timeout"` }
Properties specific for a TCP Based Routes.
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 virtualNode virtualNode tcpRouteSpecOptions := &tcpRouteSpecOptions{ weightedTargets: []weightedTarget{ &weightedTarget{ virtualNode: virtualNode, // the properties below are optional weight: jsii.Number(123), }, }, // the properties below are optional priority: jsii.Number(123), timeout: &tcpTimeout{ idle: cdk.duration.minutes(jsii.Number(30)), }, }
type TcpTimeout ¶
type TcpTimeout struct { // Represents an idle timeout. // // The amount of time that a connection may be idle. Idle awscdk.Duration `field:"optional" json:"idle" yaml:"idle"` }
Represents timeouts for TCP protocols.
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" tcpTimeout := &tcpTimeout{ idle: cdk.duration.minutes(jsii.Number(30)), }
type TcpVirtualNodeListenerOptions ¶
type TcpVirtualNodeListenerOptions struct { // Connection pool for http listeners. ConnectionPool *TcpConnectionPool `field:"optional" json:"connectionPool" yaml:"connectionPool"` // The health check information for the listener. HealthCheck HealthCheck `field:"optional" json:"healthCheck" yaml:"healthCheck"` // Represents the configuration for enabling outlier detection. OutlierDetection *OutlierDetection `field:"optional" json:"outlierDetection" yaml:"outlierDetection"` // Port to listen for connections on. Port *float64 `field:"optional" json:"port" yaml:"port"` // Timeout for TCP protocol. Timeout *TcpTimeout `field:"optional" json:"timeout" yaml:"timeout"` // Represents the configuration for enabling TLS on a listener. Tls *ListenerTlsOptions `field:"optional" json:"tls" yaml:"tls"` }
Represent the TCP Node Listener prorperty.
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 healthCheck healthCheck var mutualTlsValidationTrust mutualTlsValidationTrust var subjectAlternativeNames subjectAlternativeNames var tlsCertificate tlsCertificate tcpVirtualNodeListenerOptions := &tcpVirtualNodeListenerOptions{ connectionPool: &tcpConnectionPool{ maxConnections: jsii.Number(123), }, healthCheck: healthCheck, outlierDetection: &outlierDetection{ baseEjectionDuration: cdk.duration.minutes(jsii.Number(30)), interval: cdk.*duration.minutes(jsii.Number(30)), maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }, port: jsii.Number(123), timeout: &tcpTimeout{ idle: cdk.*duration.minutes(jsii.Number(30)), }, tls: &listenerTlsOptions{ certificate: tlsCertificate, mode: awscdk.Aws_appmesh.tlsMode_STRICT, // the properties below are optional mutualTlsValidation: &mutualTlsValidation{ trust: mutualTlsValidationTrust, // the properties below are optional subjectAlternativeNames: subjectAlternativeNames, }, }, }
type TlsCertificate ¶
type TlsCertificate interface { // Returns TLS certificate based provider. Bind(_scope constructs.Construct) *TlsCertificateConfig }
Represents a TLS certificate.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with listener TLS from an ACM provided certificate var cert certificate var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.acm(cert), }, }), }, }) // A Virtual Gateway with listener TLS from a customer provided file certificate gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), }, }), }, virtualGatewayName: jsii.String("gateway"), }) // A Virtual Gateway with listener TLS from a SDS provided certificate gateway2 := appmesh.NewVirtualGateway(this, jsii.String("gateway2"), &virtualGatewayProps{ mesh: mesh, listeners: []*virtualGatewayListener{ appmesh.*virtualGatewayListener.http2(&http2GatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.sds(jsii.String("secrete_certificate")), }, }), }, virtualGatewayName: jsii.String("gateway2"), })
func MutualTlsCertificate_Acm ¶
func MutualTlsCertificate_Acm(certificate awscertificatemanager.ICertificate) TlsCertificate
Returns an ACM TLS Certificate.
func TlsCertificate_Acm ¶
func TlsCertificate_Acm(certificate awscertificatemanager.ICertificate) TlsCertificate
Returns an ACM TLS Certificate.
type TlsCertificateConfig ¶
type TlsCertificateConfig struct { // The CFN shape for a TLS certificate. TlsCertificate *CfnVirtualNode_ListenerTlsCertificateProperty `field:"required" json:"tlsCertificate" yaml:"tlsCertificate"` }
A wrapper for the tls config returned by {@link TlsCertificate.bind}.
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" tlsCertificateConfig := &tlsCertificateConfig{ tlsCertificate: &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, }
type TlsClientPolicy ¶
type TlsClientPolicy struct { // Represents the object for TLS validation context. Validation *TlsValidation `field:"required" json:"validation" yaml:"validation"` // Whether the policy is enforced. Enforce *bool `field:"optional" json:"enforce" yaml:"enforce"` // Represents a client TLS certificate. // // The certificate will be sent only if the server requests it, enabling mutual TLS. MutualTlsCertificate MutualTlsCertificate `field:"optional" json:"mutualTlsCertificate" yaml:"mutualTlsCertificate"` // TLS is enforced on the ports specified here. // // If no ports are specified, TLS will be enforced on all the ports. Ports *[]*float64 `field:"optional" json:"ports" yaml:"ports"` }
Represents the properties needed to define client policy.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh var service service node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8080), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), path: jsii.String("/ping"), timeout: cdk.*duration.seconds(jsii.Number(2)), unhealthyThreshold: jsii.Number(2), }), timeout: &httpTimeout{ idle: cdk.*duration.seconds(jsii.Number(5)), }, }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("/keys/local_cert_chain.pem")), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), }) cdk.tags.of(node).add(jsii.String("Environment"), jsii.String("Dev"))
type TlsMode ¶
type TlsMode string
Enum of supported TLS modes.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with listener TLS from an ACM provided certificate var cert certificate var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.grpc(&grpcVirtualNodeListenerOptions{ port: jsii.Number(80), tls: &listenerTlsOptions{ mode: appmesh.tlsMode_STRICT, certificate: appmesh.tlsCertificate.acm(cert), }, }), }, }) // A Virtual Gateway with listener TLS from a customer provided file certificate gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.file(jsii.String("path/to/certChain"), jsii.String("path/to/privateKey")), }, }), }, virtualGatewayName: jsii.String("gateway"), }) // A Virtual Gateway with listener TLS from a SDS provided certificate gateway2 := appmesh.NewVirtualGateway(this, jsii.String("gateway2"), &virtualGatewayProps{ mesh: mesh, listeners: []*virtualGatewayListener{ appmesh.*virtualGatewayListener.http2(&http2GatewayListenerOptions{ port: jsii.Number(8080), tls: &listenerTlsOptions{ mode: appmesh.*tlsMode_STRICT, certificate: appmesh.*tlsCertificate.sds(jsii.String("secrete_certificate")), }, }), }, virtualGatewayName: jsii.String("gateway2"), })
type TlsValidation ¶
type TlsValidation struct { // Reference to where to retrieve the trust chain. Trust TlsValidationTrust `field:"required" json:"trust" yaml:"trust"` // Represents the subject alternative names (SANs) secured by the certificate. // // SANs must be in the FQDN or URI format. SubjectAlternativeNames SubjectAlternativeNames `field:"optional" json:"subjectAlternativeNames" yaml:"subjectAlternativeNames"` }
Represents the properties needed to define TLS Validation context.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh var service service node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8080), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), path: jsii.String("/ping"), timeout: cdk.*duration.seconds(jsii.Number(2)), unhealthyThreshold: jsii.Number(2), }), timeout: &httpTimeout{ idle: cdk.*duration.seconds(jsii.Number(5)), }, }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("/keys/local_cert_chain.pem")), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), }) cdk.tags.of(node).add(jsii.String("Environment"), jsii.String("Dev"))
type TlsValidationTrust ¶
type TlsValidationTrust interface { // Returns Trust context based on trust type. Bind(scope constructs.Construct) *TlsValidationTrustConfig }
Defines the TLS Validation Context Trust.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh var service service node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8080), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), path: jsii.String("/ping"), timeout: cdk.*duration.seconds(jsii.Number(2)), unhealthyThreshold: jsii.Number(2), }), timeout: &httpTimeout{ idle: cdk.*duration.seconds(jsii.Number(5)), }, }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.file(jsii.String("/keys/local_cert_chain.pem")), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), }) cdk.tags.of(node).add(jsii.String("Environment"), jsii.String("Dev"))
func MutualTlsValidationTrust_Acm ¶
func MutualTlsValidationTrust_Acm(certificateAuthorities *[]awsacmpca.ICertificateAuthority) TlsValidationTrust
TLS Validation Context Trust for ACM Private Certificate Authority (CA).
func TlsValidationTrust_Acm ¶
func TlsValidationTrust_Acm(certificateAuthorities *[]awsacmpca.ICertificateAuthority) TlsValidationTrust
TLS Validation Context Trust for ACM Private Certificate Authority (CA).
type TlsValidationTrustConfig ¶
type TlsValidationTrustConfig struct { // VirtualNode CFN configuration for client policy's TLS Validation Trust. TlsValidationTrust *CfnVirtualNode_TlsValidationContextTrustProperty `field:"required" json:"tlsValidationTrust" yaml:"tlsValidationTrust"` }
All Properties for TLS Validation Trusts for both Client Policy and Listener.
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" tlsValidationTrustConfig := &tlsValidationTrustConfig{ tlsValidationTrust: &tlsValidationContextTrustProperty{ acm: &tlsValidationContextAcmTrustProperty{ certificateAuthorityArns: []*string{ jsii.String("certificateAuthorityArns"), }, }, file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, }
type VirtualGateway ¶
type VirtualGateway interface { awscdk.Resource IVirtualGateway // 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 Listeners() *[]*VirtualGatewayListenerConfig // The Mesh that the VirtualGateway belongs to. Mesh() IMesh // 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 Amazon Resource Name (ARN) for the VirtualGateway. VirtualGatewayArn() *string // The name of the VirtualGateway. VirtualGatewayName() *string // Utility method to add a new GatewayRoute to the VirtualGateway. AddGatewayRoute(id *string, props *GatewayRouteBaseProps) GatewayRoute // 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 the given entity `appmesh:StreamAggregatedResources`. GrantStreamAggregatedResources(identity awsiam.IGrantable) awsiam.Grant // Returns a string representation of this construct. ToString() *string }
VirtualGateway represents a newly defined App Mesh Virtual Gateway.
A virtual gateway allows resources that are outside of your mesh to communicate to resources that are inside of your mesh.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with a gRPC listener with a connection pool set var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, // DNS service discovery can optionally specify the DNS response type as either LOAD_BALANCER or ENDPOINTS. // LOAD_BALANCER means that the DNS resolver returns a loadbalanced set of endpoints, // whereas ENDPOINTS means that the DNS resolver is returning all the endpoints. // By default, the response type is assumed to be LOAD_BALANCER serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node"), appmesh.dnsResponseType_ENDPOINTS), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(80), connectionPool: &httpConnectionPool{ maxConnections: jsii.Number(100), maxPendingRequests: jsii.Number(10), }, }), }, }) // A Virtual Gateway with a gRPC listener with a connection pool set gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), connectionPool: &grpcConnectionPool{ maxRequests: jsii.Number(10), }, }), }, virtualGatewayName: jsii.String("gateway"), })
See: https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_gateways.html
func NewVirtualGateway ¶
func NewVirtualGateway(scope constructs.Construct, id *string, props *VirtualGatewayProps) VirtualGateway
type VirtualGatewayAttributes ¶
type VirtualGatewayAttributes struct { // The Mesh that the VirtualGateway belongs to. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` // The name of the VirtualGateway. VirtualGatewayName *string `field:"required" json:"virtualGatewayName" yaml:"virtualGatewayName"` }
Unterface with properties necessary to import a reusable VirtualGateway.
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 mesh mesh virtualGatewayAttributes := &virtualGatewayAttributes{ mesh: mesh, virtualGatewayName: jsii.String("virtualGatewayName"), }
type VirtualGatewayBaseProps ¶
type VirtualGatewayBaseProps struct { // Access Logging Configuration for the VirtualGateway. AccessLog AccessLog `field:"optional" json:"accessLog" yaml:"accessLog"` // Default Configuration Virtual Node uses to communicate with Virtual Service. BackendDefaults *BackendDefaults `field:"optional" json:"backendDefaults" yaml:"backendDefaults"` // Listeners for the VirtualGateway. // // Only one is supported. Listeners *[]VirtualGatewayListener `field:"optional" json:"listeners" yaml:"listeners"` // Name of the VirtualGateway. VirtualGatewayName *string `field:"optional" json:"virtualGatewayName" yaml:"virtualGatewayName"` }
Basic configuration properties for a VirtualGateway.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh gateway := mesh.addVirtualGateway(jsii.String("gateway"), &virtualGatewayBaseProps{ accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), virtualGatewayName: jsii.String("virtualGateway"), listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.http(&httpGatewayListenerOptions{ port: jsii.Number(443), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ interval: cdk.duration.seconds(jsii.Number(10)), }), }), }, })
type VirtualGatewayListener ¶
type VirtualGatewayListener interface { // Called when the GatewayListener type is initialized. // // Can be used to enforce // mutual exclusivity. Bind(scope constructs.Construct) *VirtualGatewayListenerConfig }
Represents the properties needed to define listeners for a VirtualGateway.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh certificateAuthorityArn := "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012" gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.http(&httpGatewayListenerOptions{ port: jsii.Number(443), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ interval: cdk.duration.seconds(jsii.Number(10)), }), }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ ports: []*f64{ jsii.Number(8080), jsii.Number(8081), }, validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.acm([]iCertificateAuthority{ acmpca.certificateAuthority.fromCertificateAuthorityArn(this, jsii.String("certificate"), certificateAuthorityArn), }), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), virtualGatewayName: jsii.String("virtualGateway"), })
func VirtualGatewayListener_Grpc ¶
func VirtualGatewayListener_Grpc(options *GrpcGatewayListenerOptions) VirtualGatewayListener
Returns a GRPC Listener for a VirtualGateway.
func VirtualGatewayListener_Http ¶
func VirtualGatewayListener_Http(options *HttpGatewayListenerOptions) VirtualGatewayListener
Returns an HTTP Listener for a VirtualGateway.
func VirtualGatewayListener_Http2 ¶
func VirtualGatewayListener_Http2(options *Http2GatewayListenerOptions) VirtualGatewayListener
Returns an HTTP2 Listener for a VirtualGateway.
type VirtualGatewayListenerConfig ¶
type VirtualGatewayListenerConfig struct { // Single listener config for a VirtualGateway. Listener *CfnVirtualGateway_VirtualGatewayListenerProperty `field:"required" json:"listener" yaml:"listener"` }
Properties for a VirtualGateway listener.
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" virtualGatewayListenerConfig := &virtualGatewayListenerConfig{ listener: &virtualGatewayListenerProperty{ portMapping: &virtualGatewayPortMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualGatewayConnectionPoolProperty{ grpc: &virtualGatewayGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualGatewayHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualGatewayHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, }, healthCheck: &virtualGatewayHealthCheckPolicyProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, tls: &virtualGatewayListenerTlsProperty{ certificate: &virtualGatewayListenerTlsCertificateProperty{ acm: &virtualGatewayListenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &virtualGatewayListenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &virtualGatewayListenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &virtualGatewayListenerTlsValidationContextProperty{ trust: &virtualGatewayListenerTlsValidationContextTrustProperty{ file: &virtualGatewayTlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &virtualGatewayTlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }
type VirtualGatewayProps ¶
type VirtualGatewayProps struct { // Access Logging Configuration for the VirtualGateway. AccessLog AccessLog `field:"optional" json:"accessLog" yaml:"accessLog"` // Default Configuration Virtual Node uses to communicate with Virtual Service. BackendDefaults *BackendDefaults `field:"optional" json:"backendDefaults" yaml:"backendDefaults"` // Listeners for the VirtualGateway. // // Only one is supported. Listeners *[]VirtualGatewayListener `field:"optional" json:"listeners" yaml:"listeners"` // Name of the VirtualGateway. VirtualGatewayName *string `field:"optional" json:"virtualGatewayName" yaml:"virtualGatewayName"` // The Mesh which the VirtualGateway belongs to. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` }
Properties used when creating a new VirtualGateway.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh certificateAuthorityArn := "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012" gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.http(&httpGatewayListenerOptions{ port: jsii.Number(443), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ interval: cdk.duration.seconds(jsii.Number(10)), }), }), }, backendDefaults: &backendDefaults{ tlsClientPolicy: &tlsClientPolicy{ ports: []*f64{ jsii.Number(8080), jsii.Number(8081), }, validation: &tlsValidation{ trust: appmesh.tlsValidationTrust.acm([]iCertificateAuthority{ acmpca.certificateAuthority.fromCertificateAuthorityArn(this, jsii.String("certificate"), certificateAuthorityArn), }), }, }, }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), virtualGatewayName: jsii.String("virtualGateway"), })
type VirtualNode ¶
type VirtualNode interface { awscdk.Resource IVirtualNode // 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 Mesh which the VirtualNode belongs to. Mesh() IMesh // 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 Amazon Resource Name belonging to the VirtualNode. VirtualNodeArn() *string // The name of the VirtualNode. VirtualNodeName() *string // Add a Virtual Services that this node is expected to send outbound traffic to. AddBackend(backend Backend) // Utility method to add an inbound listener for this VirtualNode. // // Note: At this time, Virtual Nodes support at most one listener. Adding // more than one will result in a failure to deploy the CloudFormation stack. // However, the App Mesh team has plans to add support for multiple listeners // on Virtual Nodes and Virtual Routers. // See: https://github.com/aws/aws-app-mesh-roadmap/issues/120 // AddListener(listener VirtualNodeListener) // 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 the given entity `appmesh:StreamAggregatedResources`. GrantStreamAggregatedResources(identity awsiam.IGrantable) awsiam.Grant // Returns a string representation of this construct. ToString() *string }
VirtualNode represents a newly defined AppMesh VirtualNode.
Any inbound traffic that your virtual node expects should be specified as a listener. Any outbound traffic that your virtual node expects to reach should be specified as a backend.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh // Cloud Map service discovery is currently required for host ejection by outlier detection vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ outlierDetection: &outlierDetection{ baseEjectionDuration: cdk.duration.seconds(jsii.Number(10)), interval: cdk.*duration.seconds(jsii.Number(30)), maxEjectionPercent: jsii.Number(50), maxServerErrors: jsii.Number(5), }, }), }, })
See: https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html
func NewVirtualNode ¶
func NewVirtualNode(scope constructs.Construct, id *string, props *VirtualNodeProps) VirtualNode
type VirtualNodeAttributes ¶
type VirtualNodeAttributes struct { // The Mesh that the VirtualNode belongs to. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` // The name of the VirtualNode. VirtualNodeName *string `field:"required" json:"virtualNodeName" yaml:"virtualNodeName"` }
Interface with properties necessary to import a reusable VirtualNode.
Example:
// Example automatically generated from non-compiling source. May contain errors. virtualNodeName := "my-virtual-node" appmesh.virtualNode.fromVirtualNodeAttributes(this, jsii.String("imported-virtual-node"), &virtualNodeAttributes{ mesh: appmesh.mesh.fromMeshName(this, jsii.String("Mesh"), jsii.String("testMesh")), virtualNodeName: virtualNodeName, })
type VirtualNodeBaseProps ¶
type VirtualNodeBaseProps struct { // Access Logging Configuration for the virtual node. AccessLog AccessLog `field:"optional" json:"accessLog" yaml:"accessLog"` // Default Configuration Virtual Node uses to communicate with Virtual Service. BackendDefaults *BackendDefaults `field:"optional" json:"backendDefaults" yaml:"backendDefaults"` // Virtual Services that this is node expected to send outbound traffic to. Backends *[]Backend `field:"optional" json:"backends" yaml:"backends"` // Initial listener for the virtual node. Listeners *[]VirtualNodeListener `field:"optional" json:"listeners" yaml:"listeners"` // Defines how upstream clients will discover this VirtualNode. ServiceDiscovery ServiceDiscovery `field:"optional" json:"serviceDiscovery" yaml:"serviceDiscovery"` // The name of the VirtualNode. VirtualNodeName *string `field:"optional" json:"virtualNodeName" yaml:"virtualNodeName"` }
Basic configuration properties for a VirtualNode.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8081), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), // minimum path: jsii.String("/health-check-path"), timeout: cdk.*duration.seconds(jsii.Number(2)), // minimum unhealthyThreshold: jsii.Number(2), }), }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), })
type VirtualNodeListener ¶
type VirtualNodeListener interface { // Binds the current object when adding Listener to a VirtualNode. Bind(scope constructs.Construct) *VirtualNodeListenerConfig }
Defines listener for a VirtualNode.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh vpc := ec2.NewVpc(this, jsii.String("vpc")) namespace := cloudmap.NewPrivateDnsNamespace(this, jsii.String("test-namespace"), &privateDnsNamespaceProps{ vpc: vpc, name: jsii.String("domain.local"), }) service := namespace.createService(jsii.String("Svc")) node := mesh.addVirtualNode(jsii.String("virtual-node"), &virtualNodeBaseProps{ serviceDiscovery: appmesh.serviceDiscovery.cloudMap(service), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(8081), healthCheck: appmesh.healthCheck.http(&httpHealthCheckOptions{ healthyThreshold: jsii.Number(3), interval: cdk.duration.seconds(jsii.Number(5)), // minimum path: jsii.String("/health-check-path"), timeout: cdk.*duration.seconds(jsii.Number(2)), // minimum unhealthyThreshold: jsii.Number(2), }), }), }, accessLog: appmesh.accessLog.fromFilePath(jsii.String("/dev/stdout")), })
func VirtualNodeListener_Grpc ¶
func VirtualNodeListener_Grpc(props *GrpcVirtualNodeListenerOptions) VirtualNodeListener
Returns an GRPC Listener for a VirtualNode.
func VirtualNodeListener_Http ¶
func VirtualNodeListener_Http(props *HttpVirtualNodeListenerOptions) VirtualNodeListener
Returns an HTTP Listener for a VirtualNode.
func VirtualNodeListener_Http2 ¶
func VirtualNodeListener_Http2(props *Http2VirtualNodeListenerOptions) VirtualNodeListener
Returns an HTTP2 Listener for a VirtualNode.
func VirtualNodeListener_Tcp ¶
func VirtualNodeListener_Tcp(props *TcpVirtualNodeListenerOptions) VirtualNodeListener
Returns an TCP Listener for a VirtualNode.
type VirtualNodeListenerConfig ¶
type VirtualNodeListenerConfig struct { // Single listener config for a VirtualNode. Listener *CfnVirtualNode_ListenerProperty `field:"required" json:"listener" yaml:"listener"` }
Properties for a VirtualNode listener.
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" virtualNodeListenerConfig := &virtualNodeListenerConfig{ listener: &listenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, // the properties below are optional connectionPool: &virtualNodeConnectionPoolProperty{ grpc: &virtualNodeGrpcConnectionPoolProperty{ maxRequests: jsii.Number(123), }, http: &virtualNodeHttpConnectionPoolProperty{ maxConnections: jsii.Number(123), // the properties below are optional maxPendingRequests: jsii.Number(123), }, http2: &virtualNodeHttp2ConnectionPoolProperty{ maxRequests: jsii.Number(123), }, tcp: &virtualNodeTcpConnectionPoolProperty{ maxConnections: jsii.Number(123), }, }, healthCheck: &healthCheckProperty{ healthyThreshold: jsii.Number(123), intervalMillis: jsii.Number(123), protocol: jsii.String("protocol"), timeoutMillis: jsii.Number(123), unhealthyThreshold: jsii.Number(123), // the properties below are optional path: jsii.String("path"), port: jsii.Number(123), }, outlierDetection: &outlierDetectionProperty{ baseEjectionDuration: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, interval: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, maxEjectionPercent: jsii.Number(123), maxServerErrors: jsii.Number(123), }, timeout: &listenerTimeoutProperty{ grpc: &grpcTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, http2: &httpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, perRequest: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, tcp: &tcpTimeoutProperty{ idle: &durationProperty{ unit: jsii.String("unit"), value: jsii.Number(123), }, }, }, tls: &listenerTlsProperty{ certificate: &listenerTlsCertificateProperty{ acm: &listenerTlsAcmCertificateProperty{ certificateArn: jsii.String("certificateArn"), }, file: &listenerTlsFileCertificateProperty{ certificateChain: jsii.String("certificateChain"), privateKey: jsii.String("privateKey"), }, sds: &listenerTlsSdsCertificateProperty{ secretName: jsii.String("secretName"), }, }, mode: jsii.String("mode"), // the properties below are optional validation: &listenerTlsValidationContextProperty{ trust: &listenerTlsValidationContextTrustProperty{ file: &tlsValidationContextFileTrustProperty{ certificateChain: jsii.String("certificateChain"), }, sds: &tlsValidationContextSdsTrustProperty{ secretName: jsii.String("secretName"), }, }, // the properties below are optional subjectAlternativeNames: &subjectAlternativeNamesProperty{ match: &subjectAlternativeNameMatchersProperty{ exact: []*string{ jsii.String("exact"), }, }, }, }, }, }, }
type VirtualNodeProps ¶
type VirtualNodeProps struct { // Access Logging Configuration for the virtual node. AccessLog AccessLog `field:"optional" json:"accessLog" yaml:"accessLog"` // Default Configuration Virtual Node uses to communicate with Virtual Service. BackendDefaults *BackendDefaults `field:"optional" json:"backendDefaults" yaml:"backendDefaults"` // Virtual Services that this is node expected to send outbound traffic to. Backends *[]Backend `field:"optional" json:"backends" yaml:"backends"` // Initial listener for the virtual node. Listeners *[]VirtualNodeListener `field:"optional" json:"listeners" yaml:"listeners"` // Defines how upstream clients will discover this VirtualNode. ServiceDiscovery ServiceDiscovery `field:"optional" json:"serviceDiscovery" yaml:"serviceDiscovery"` // The name of the VirtualNode. VirtualNodeName *string `field:"optional" json:"virtualNodeName" yaml:"virtualNodeName"` // The Mesh which the VirtualNode belongs to. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` }
The properties used when creating a new VirtualNode.
Example:
// Example automatically generated from non-compiling source. May contain errors. // A Virtual Node with a gRPC listener with a connection pool set var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, // DNS service discovery can optionally specify the DNS response type as either LOAD_BALANCER or ENDPOINTS. // LOAD_BALANCER means that the DNS resolver returns a loadbalanced set of endpoints, // whereas ENDPOINTS means that the DNS resolver is returning all the endpoints. // By default, the response type is assumed to be LOAD_BALANCER serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node"), appmesh.dnsResponseType_ENDPOINTS), listeners: []virtualNodeListener{ appmesh.*virtualNodeListener.http(&httpVirtualNodeListenerOptions{ port: jsii.Number(80), connectionPool: &httpConnectionPool{ maxConnections: jsii.Number(100), maxPendingRequests: jsii.Number(10), }, }), }, }) // A Virtual Gateway with a gRPC listener with a connection pool set gateway := appmesh.NewVirtualGateway(this, jsii.String("gateway"), &virtualGatewayProps{ mesh: mesh, listeners: []virtualGatewayListener{ appmesh.*virtualGatewayListener.grpc(&grpcGatewayListenerOptions{ port: jsii.Number(8080), connectionPool: &grpcConnectionPool{ maxRequests: jsii.Number(10), }, }), }, virtualGatewayName: jsii.String("gateway"), })
type VirtualRouter ¶
type VirtualRouter interface { awscdk.Resource IVirtualRouter // 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 Mesh which the VirtualRouter belongs to. Mesh() IMesh // 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 Amazon Resource Name (ARN) for the VirtualRouter. VirtualRouterArn() *string // The name of the VirtualRouter. VirtualRouterName() *string // Add a single route to the router. AddRoute(id *string, props *RouteBaseProps) Route // 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:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh router := mesh.addVirtualRouter(jsii.String("router"), &virtualRouterBaseProps{ listeners: []virtualRouterListener{ appmesh.*virtualRouterListener.http(jsii.Number(8080)), }, })
func NewVirtualRouter ¶
func NewVirtualRouter(scope constructs.Construct, id *string, props *VirtualRouterProps) VirtualRouter
type VirtualRouterAttributes ¶
type VirtualRouterAttributes struct { // The Mesh which the VirtualRouter belongs to. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` // The name of the VirtualRouter. VirtualRouterName *string `field:"required" json:"virtualRouterName" yaml:"virtualRouterName"` }
Interface with properties ncecessary to import a reusable VirtualRouter.
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 mesh mesh virtualRouterAttributes := &virtualRouterAttributes{ mesh: mesh, virtualRouterName: jsii.String("virtualRouterName"), }
type VirtualRouterBaseProps ¶
type VirtualRouterBaseProps struct { // Listener specification for the VirtualRouter. Listeners *[]VirtualRouterListener `field:"optional" json:"listeners" yaml:"listeners"` // The name of the VirtualRouter. VirtualRouterName *string `field:"optional" json:"virtualRouterName" yaml:"virtualRouterName"` }
Interface with base properties all routers willl inherit.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh router := mesh.addVirtualRouter(jsii.String("router"), &virtualRouterBaseProps{ listeners: []virtualRouterListener{ appmesh.*virtualRouterListener.http(jsii.Number(8080)), }, })
type VirtualRouterListener ¶
type VirtualRouterListener interface { // Called when the VirtualRouterListener type is initialized. // // Can be used to enforce // mutual exclusivity. Bind(scope constructs.Construct) *VirtualRouterListenerConfig }
Represents the properties needed to define listeners for a VirtualRouter.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh router := mesh.addVirtualRouter(jsii.String("router"), &virtualRouterBaseProps{ listeners: []virtualRouterListener{ appmesh.*virtualRouterListener.http(jsii.Number(8080)), }, })
func VirtualRouterListener_Grpc ¶
func VirtualRouterListener_Grpc(port *float64) VirtualRouterListener
Returns a GRPC Listener for a VirtualRouter.
func VirtualRouterListener_Http ¶
func VirtualRouterListener_Http(port *float64) VirtualRouterListener
Returns an HTTP Listener for a VirtualRouter.
func VirtualRouterListener_Http2 ¶
func VirtualRouterListener_Http2(port *float64) VirtualRouterListener
Returns an HTTP2 Listener for a VirtualRouter.
func VirtualRouterListener_Tcp ¶
func VirtualRouterListener_Tcp(port *float64) VirtualRouterListener
Returns a TCP Listener for a VirtualRouter.
type VirtualRouterListenerConfig ¶
type VirtualRouterListenerConfig struct { // Single listener config for a VirtualRouter. Listener *CfnVirtualRouter_VirtualRouterListenerProperty `field:"required" json:"listener" yaml:"listener"` }
Properties for a VirtualRouter listener.
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" virtualRouterListenerConfig := &virtualRouterListenerConfig{ listener: &virtualRouterListenerProperty{ portMapping: &portMappingProperty{ port: jsii.Number(123), protocol: jsii.String("protocol"), }, }, }
type VirtualRouterProps ¶
type VirtualRouterProps struct { // Listener specification for the VirtualRouter. Listeners *[]VirtualRouterListener `field:"optional" json:"listeners" yaml:"listeners"` // The name of the VirtualRouter. VirtualRouterName *string `field:"optional" json:"virtualRouterName" yaml:"virtualRouterName"` // The Mesh which the VirtualRouter belongs to. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` }
The properties used when creating a new VirtualRouter.
Example:
// Example automatically generated from non-compiling source. May contain errors. var infraStack stack var appStack stack mesh := appmesh.NewMesh(infraStack, jsii.String("AppMesh"), &meshProps{ meshName: jsii.String("myAwsMesh"), egressFilter: appmesh.meshFilterType_ALLOW_ALL, }) // the VirtualRouter will belong to 'appStack', // even though the Mesh belongs to 'infraStack' router := appmesh.NewVirtualRouter(appStack, jsii.String("router"), &virtualRouterProps{ mesh: mesh, // notice that mesh is a required property when creating a router with the 'new' statement listeners: []virtualRouterListener{ appmesh.*virtualRouterListener.http(jsii.Number(8081)), }, })
type VirtualService ¶
type VirtualService interface { awscdk.Resource IVirtualService // 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 Mesh which the VirtualService belongs to. Mesh() IMesh // 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 Amazon Resource Name (ARN) for the virtual service. VirtualServiceArn() *string // The name of the VirtualService, it is recommended this follows the fully-qualified domain name format. VirtualServiceName() *string // 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 }
VirtualService represents a service inside an AppMesh.
It routes traffic either to a Virtual Node or to a Virtual Router.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), }) virtualService := appmesh.NewVirtualService(this, jsii.String("service-1"), &virtualServiceProps{ virtualServiceProvider: appmesh.virtualServiceProvider.virtualNode(node), virtualServiceName: jsii.String("service1.domain.local"), }) node.addBackend(appmesh.backend.virtualService(virtualService))
See: https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html
func NewVirtualService ¶
func NewVirtualService(scope constructs.Construct, id *string, props *VirtualServiceProps) VirtualService
type VirtualServiceAttributes ¶
type VirtualServiceAttributes struct { // The Mesh which the VirtualService belongs to. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` // The name of the VirtualService, it is recommended this follows the fully-qualified domain name format. VirtualServiceName *string `field:"required" json:"virtualServiceName" yaml:"virtualServiceName"` }
Interface with properties ncecessary to import a reusable VirtualService.
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 mesh mesh virtualServiceAttributes := &virtualServiceAttributes{ mesh: mesh, virtualServiceName: jsii.String("virtualServiceName"), }
type VirtualServiceBackendOptions ¶
type VirtualServiceBackendOptions struct { // TLS properties for Client policy for the backend. TlsClientPolicy *TlsClientPolicy `field:"optional" json:"tlsClientPolicy" yaml:"tlsClientPolicy"` }
Represents the properties needed to define a Virtual Service 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 mutualTlsCertificate mutualTlsCertificate var subjectAlternativeNames subjectAlternativeNames var tlsValidationTrust tlsValidationTrust virtualServiceBackendOptions := &virtualServiceBackendOptions{ tlsClientPolicy: &tlsClientPolicy{ validation: &tlsValidation{ trust: tlsValidationTrust, // the properties below are optional subjectAlternativeNames: subjectAlternativeNames, }, // the properties below are optional enforce: jsii.Boolean(false), mutualTlsCertificate: mutualTlsCertificate, ports: []*f64{ jsii.Number(123), }, }, }
type VirtualServiceProps ¶
type VirtualServiceProps struct { // The VirtualNode or VirtualRouter which the VirtualService uses as its provider. VirtualServiceProvider VirtualServiceProvider `field:"required" json:"virtualServiceProvider" yaml:"virtualServiceProvider"` // The name of the VirtualService. // // It is recommended this follows the fully-qualified domain name format, // such as "my-service.default.svc.cluster.local". // // Example value: `service.domain.local` VirtualServiceName *string `field:"optional" json:"virtualServiceName" yaml:"virtualServiceName"` }
The properties applied to the VirtualService being defined.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), }) virtualService := appmesh.NewVirtualService(this, jsii.String("service-1"), &virtualServiceProps{ virtualServiceProvider: appmesh.virtualServiceProvider.virtualNode(node), virtualServiceName: jsii.String("service1.domain.local"), }) node.addBackend(appmesh.backend.virtualService(virtualService))
type VirtualServiceProvider ¶
type VirtualServiceProvider interface { // Enforces mutual exclusivity for VirtualService provider types. Bind(_construct constructs.Construct) *VirtualServiceProviderConfig }
Represents the properties needed to define the provider for a VirtualService.
Example:
// Example automatically generated from non-compiling source. May contain errors. var mesh mesh node := appmesh.NewVirtualNode(this, jsii.String("node"), &virtualNodeProps{ mesh: mesh, serviceDiscovery: appmesh.serviceDiscovery.dns(jsii.String("node")), }) virtualService := appmesh.NewVirtualService(this, jsii.String("service-1"), &virtualServiceProps{ virtualServiceProvider: appmesh.virtualServiceProvider.virtualNode(node), virtualServiceName: jsii.String("service1.domain.local"), }) node.addBackend(appmesh.backend.virtualService(virtualService))
func VirtualServiceProvider_None ¶
func VirtualServiceProvider_None(mesh IMesh) VirtualServiceProvider
Returns an Empty Provider for a VirtualService.
This provides no routing capabilities and should only be used as a placeholder.
func VirtualServiceProvider_VirtualNode ¶
func VirtualServiceProvider_VirtualNode(virtualNode IVirtualNode) VirtualServiceProvider
Returns a VirtualNode based Provider for a VirtualService.
func VirtualServiceProvider_VirtualRouter ¶
func VirtualServiceProvider_VirtualRouter(virtualRouter IVirtualRouter) VirtualServiceProvider
Returns a VirtualRouter based Provider for a VirtualService.
type VirtualServiceProviderConfig ¶
type VirtualServiceProviderConfig struct { // Mesh the Provider is using. Mesh IMesh `field:"required" json:"mesh" yaml:"mesh"` // Virtual Node based provider. VirtualNodeProvider *CfnVirtualService_VirtualNodeServiceProviderProperty `field:"optional" json:"virtualNodeProvider" yaml:"virtualNodeProvider"` // Virtual Router based provider. VirtualRouterProvider *CfnVirtualService_VirtualRouterServiceProviderProperty `field:"optional" json:"virtualRouterProvider" yaml:"virtualRouterProvider"` }
Properties for a VirtualService provider.
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 mesh mesh virtualServiceProviderConfig := &virtualServiceProviderConfig{ mesh: mesh, // the properties below are optional virtualNodeProvider: &virtualNodeServiceProviderProperty{ virtualNodeName: jsii.String("virtualNodeName"), }, virtualRouterProvider: &virtualRouterServiceProviderProperty{ virtualRouterName: jsii.String("virtualRouterName"), }, }
type WeightedTarget ¶
type WeightedTarget struct { // The VirtualNode the route points to. VirtualNode IVirtualNode `field:"required" json:"virtualNode" yaml:"virtualNode"` // The weight for the target. Weight *float64 `field:"optional" json:"weight" yaml:"weight"` }
Properties for the Weighted Targets in the route.
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 virtualNode virtualNode weightedTarget := &weightedTarget{ virtualNode: virtualNode, // the properties below are optional weight: jsii.Number(123), }
Source Files ¶
- awsappmesh.go
- awsappmesh_AccessLog.go
- awsappmesh_AccessLogConfig.go
- awsappmesh_AccessLog__runtime_type_checks.go
- awsappmesh_Backend.go
- awsappmesh_BackendConfig.go
- awsappmesh_BackendDefaults.go
- awsappmesh_Backend__runtime_type_checks.go
- awsappmesh_CfnGatewayRoute.go
- awsappmesh_CfnGatewayRouteProps.go
- awsappmesh_CfnGatewayRoute_GatewayRouteHostnameMatchProperty.go
- awsappmesh_CfnGatewayRoute_GatewayRouteHostnameRewriteProperty.go
- awsappmesh_CfnGatewayRoute_GatewayRouteMetadataMatchProperty.go
- awsappmesh_CfnGatewayRoute_GatewayRouteRangeMatchProperty.go
- awsappmesh_CfnGatewayRoute_GatewayRouteSpecProperty.go
- awsappmesh_CfnGatewayRoute_GatewayRouteTargetProperty.go
- awsappmesh_CfnGatewayRoute_GatewayRouteVirtualServiceProperty.go
- awsappmesh_CfnGatewayRoute_GrpcGatewayRouteActionProperty.go
- awsappmesh_CfnGatewayRoute_GrpcGatewayRouteMatchProperty.go
- awsappmesh_CfnGatewayRoute_GrpcGatewayRouteMetadataProperty.go
- awsappmesh_CfnGatewayRoute_GrpcGatewayRouteProperty.go
- awsappmesh_CfnGatewayRoute_GrpcGatewayRouteRewriteProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRouteActionProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRouteHeaderMatchProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRouteHeaderProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRouteMatchProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRoutePathRewriteProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRoutePrefixRewriteProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRouteProperty.go
- awsappmesh_CfnGatewayRoute_HttpGatewayRouteRewriteProperty.go
- awsappmesh_CfnGatewayRoute_HttpPathMatchProperty.go
- awsappmesh_CfnGatewayRoute_HttpQueryParameterMatchProperty.go
- awsappmesh_CfnGatewayRoute_QueryParameterProperty.go
- awsappmesh_CfnGatewayRoute__runtime_type_checks.go
- awsappmesh_CfnMesh.go
- awsappmesh_CfnMeshProps.go
- awsappmesh_CfnMesh_EgressFilterProperty.go
- awsappmesh_CfnMesh_MeshServiceDiscoveryProperty.go
- awsappmesh_CfnMesh_MeshSpecProperty.go
- awsappmesh_CfnMesh__runtime_type_checks.go
- awsappmesh_CfnRoute.go
- awsappmesh_CfnRouteProps.go
- awsappmesh_CfnRoute_DurationProperty.go
- awsappmesh_CfnRoute_GrpcRetryPolicyProperty.go
- awsappmesh_CfnRoute_GrpcRouteActionProperty.go
- awsappmesh_CfnRoute_GrpcRouteMatchProperty.go
- awsappmesh_CfnRoute_GrpcRouteMetadataMatchMethodProperty.go
- awsappmesh_CfnRoute_GrpcRouteMetadataProperty.go
- awsappmesh_CfnRoute_GrpcRouteProperty.go
- awsappmesh_CfnRoute_GrpcTimeoutProperty.go
- awsappmesh_CfnRoute_HeaderMatchMethodProperty.go
- awsappmesh_CfnRoute_HttpPathMatchProperty.go
- awsappmesh_CfnRoute_HttpQueryParameterMatchProperty.go
- awsappmesh_CfnRoute_HttpRetryPolicyProperty.go
- awsappmesh_CfnRoute_HttpRouteActionProperty.go
- awsappmesh_CfnRoute_HttpRouteHeaderProperty.go
- awsappmesh_CfnRoute_HttpRouteMatchProperty.go
- awsappmesh_CfnRoute_HttpRouteProperty.go
- awsappmesh_CfnRoute_HttpTimeoutProperty.go
- awsappmesh_CfnRoute_MatchRangeProperty.go
- awsappmesh_CfnRoute_QueryParameterProperty.go
- awsappmesh_CfnRoute_RouteSpecProperty.go
- awsappmesh_CfnRoute_TcpRouteActionProperty.go
- awsappmesh_CfnRoute_TcpRouteProperty.go
- awsappmesh_CfnRoute_TcpTimeoutProperty.go
- awsappmesh_CfnRoute_WeightedTargetProperty.go
- awsappmesh_CfnRoute__runtime_type_checks.go
- awsappmesh_CfnVirtualGateway.go
- awsappmesh_CfnVirtualGatewayProps.go
- awsappmesh_CfnVirtualGateway_SubjectAlternativeNameMatchersProperty.go
- awsappmesh_CfnVirtualGateway_SubjectAlternativeNamesProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayAccessLogProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayBackendDefaultsProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayClientPolicyProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayClientPolicyTlsProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayClientTlsCertificateProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayConnectionPoolProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayFileAccessLogProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayHealthCheckPolicyProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayHttpConnectionPoolProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificateProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerTlsCertificateProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificateProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerTlsProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificateProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayLoggingProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayPortMappingProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewaySpecProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayTlsValidationContextProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustProperty.go
- awsappmesh_CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustProperty.go
- awsappmesh_CfnVirtualGateway__runtime_type_checks.go
- awsappmesh_CfnVirtualNode.go
- awsappmesh_CfnVirtualNodeProps.go
- awsappmesh_CfnVirtualNode_AccessLogProperty.go
- awsappmesh_CfnVirtualNode_AwsCloudMapInstanceAttributeProperty.go
- awsappmesh_CfnVirtualNode_AwsCloudMapServiceDiscoveryProperty.go
- awsappmesh_CfnVirtualNode_BackendDefaultsProperty.go
- awsappmesh_CfnVirtualNode_BackendProperty.go
- awsappmesh_CfnVirtualNode_ClientPolicyProperty.go
- awsappmesh_CfnVirtualNode_ClientPolicyTlsProperty.go
- awsappmesh_CfnVirtualNode_ClientTlsCertificateProperty.go
- awsappmesh_CfnVirtualNode_DnsServiceDiscoveryProperty.go
- awsappmesh_CfnVirtualNode_DurationProperty.go
- awsappmesh_CfnVirtualNode_FileAccessLogProperty.go
- awsappmesh_CfnVirtualNode_GrpcTimeoutProperty.go
- awsappmesh_CfnVirtualNode_HealthCheckProperty.go
- awsappmesh_CfnVirtualNode_HttpTimeoutProperty.go
- awsappmesh_CfnVirtualNode_ListenerProperty.go
- awsappmesh_CfnVirtualNode_ListenerTimeoutProperty.go
- awsappmesh_CfnVirtualNode_ListenerTlsAcmCertificateProperty.go
- awsappmesh_CfnVirtualNode_ListenerTlsCertificateProperty.go
- awsappmesh_CfnVirtualNode_ListenerTlsFileCertificateProperty.go
- awsappmesh_CfnVirtualNode_ListenerTlsProperty.go
- awsappmesh_CfnVirtualNode_ListenerTlsSdsCertificateProperty.go
- awsappmesh_CfnVirtualNode_ListenerTlsValidationContextProperty.go
- awsappmesh_CfnVirtualNode_ListenerTlsValidationContextTrustProperty.go
- awsappmesh_CfnVirtualNode_LoggingProperty.go
- awsappmesh_CfnVirtualNode_OutlierDetectionProperty.go
- awsappmesh_CfnVirtualNode_PortMappingProperty.go
- awsappmesh_CfnVirtualNode_ServiceDiscoveryProperty.go
- awsappmesh_CfnVirtualNode_SubjectAlternativeNameMatchersProperty.go
- awsappmesh_CfnVirtualNode_SubjectAlternativeNamesProperty.go
- awsappmesh_CfnVirtualNode_TcpTimeoutProperty.go
- awsappmesh_CfnVirtualNode_TlsValidationContextAcmTrustProperty.go
- awsappmesh_CfnVirtualNode_TlsValidationContextFileTrustProperty.go
- awsappmesh_CfnVirtualNode_TlsValidationContextProperty.go
- awsappmesh_CfnVirtualNode_TlsValidationContextSdsTrustProperty.go
- awsappmesh_CfnVirtualNode_TlsValidationContextTrustProperty.go
- awsappmesh_CfnVirtualNode_VirtualNodeConnectionPoolProperty.go
- awsappmesh_CfnVirtualNode_VirtualNodeGrpcConnectionPoolProperty.go
- awsappmesh_CfnVirtualNode_VirtualNodeHttp2ConnectionPoolProperty.go
- awsappmesh_CfnVirtualNode_VirtualNodeHttpConnectionPoolProperty.go
- awsappmesh_CfnVirtualNode_VirtualNodeSpecProperty.go
- awsappmesh_CfnVirtualNode_VirtualNodeTcpConnectionPoolProperty.go
- awsappmesh_CfnVirtualNode_VirtualServiceBackendProperty.go
- awsappmesh_CfnVirtualNode__runtime_type_checks.go
- awsappmesh_CfnVirtualRouter.go
- awsappmesh_CfnVirtualRouterProps.go
- awsappmesh_CfnVirtualRouter_PortMappingProperty.go
- awsappmesh_CfnVirtualRouter_VirtualRouterListenerProperty.go
- awsappmesh_CfnVirtualRouter_VirtualRouterSpecProperty.go
- awsappmesh_CfnVirtualRouter__runtime_type_checks.go
- awsappmesh_CfnVirtualService.go
- awsappmesh_CfnVirtualServiceProps.go
- awsappmesh_CfnVirtualService_VirtualNodeServiceProviderProperty.go
- awsappmesh_CfnVirtualService_VirtualRouterServiceProviderProperty.go
- awsappmesh_CfnVirtualService_VirtualServiceProviderProperty.go
- awsappmesh_CfnVirtualService_VirtualServiceSpecProperty.go
- awsappmesh_CfnVirtualService__runtime_type_checks.go
- awsappmesh_CommonGatewayRouteSpecOptions.go
- awsappmesh_DnsResponseType.go
- awsappmesh_GatewayRoute.go
- awsappmesh_GatewayRouteAttributes.go
- awsappmesh_GatewayRouteBaseProps.go
- awsappmesh_GatewayRouteHostnameMatch.go
- awsappmesh_GatewayRouteHostnameMatchConfig.go
- awsappmesh_GatewayRouteHostnameMatch__runtime_type_checks.go
- awsappmesh_GatewayRouteProps.go
- awsappmesh_GatewayRouteSpec.go
- awsappmesh_GatewayRouteSpecConfig.go
- awsappmesh_GatewayRouteSpec__runtime_type_checks.go
- awsappmesh_GatewayRoute__runtime_type_checks.go
- awsappmesh_GrpcConnectionPool.go
- awsappmesh_GrpcGatewayListenerOptions.go
- awsappmesh_GrpcGatewayRouteMatch.go
- awsappmesh_GrpcGatewayRouteSpecOptions.go
- awsappmesh_GrpcHealthCheckOptions.go
- awsappmesh_GrpcRetryEvent.go
- awsappmesh_GrpcRetryPolicy.go
- awsappmesh_GrpcRouteMatch.go
- awsappmesh_GrpcRouteSpecOptions.go
- awsappmesh_GrpcTimeout.go
- awsappmesh_GrpcVirtualNodeListenerOptions.go
- awsappmesh_HeaderMatch.go
- awsappmesh_HeaderMatchConfig.go
- awsappmesh_HeaderMatch__runtime_type_checks.go
- awsappmesh_HealthCheck.go
- awsappmesh_HealthCheckBindOptions.go
- awsappmesh_HealthCheckConfig.go
- awsappmesh_HealthCheck__runtime_type_checks.go
- awsappmesh_Http2ConnectionPool.go
- awsappmesh_Http2GatewayListenerOptions.go
- awsappmesh_Http2VirtualNodeListenerOptions.go
- awsappmesh_HttpConnectionPool.go
- awsappmesh_HttpGatewayListenerOptions.go
- awsappmesh_HttpGatewayRouteMatch.go
- awsappmesh_HttpGatewayRoutePathMatch.go
- awsappmesh_HttpGatewayRoutePathMatchConfig.go
- awsappmesh_HttpGatewayRoutePathMatch__runtime_type_checks.go
- awsappmesh_HttpGatewayRouteSpecOptions.go
- awsappmesh_HttpHealthCheckOptions.go
- awsappmesh_HttpRetryEvent.go
- awsappmesh_HttpRetryPolicy.go
- awsappmesh_HttpRouteMatch.go
- awsappmesh_HttpRouteMethod.go
- awsappmesh_HttpRoutePathMatch.go
- awsappmesh_HttpRoutePathMatchConfig.go
- awsappmesh_HttpRoutePathMatch__runtime_type_checks.go
- awsappmesh_HttpRouteProtocol.go
- awsappmesh_HttpRouteSpecOptions.go
- awsappmesh_HttpTimeout.go
- awsappmesh_HttpVirtualNodeListenerOptions.go
- awsappmesh_IGatewayRoute.go
- awsappmesh_IMesh.go
- awsappmesh_IMesh__runtime_type_checks.go
- awsappmesh_IRoute.go
- awsappmesh_IVirtualGateway.go
- awsappmesh_IVirtualGateway__runtime_type_checks.go
- awsappmesh_IVirtualNode.go
- awsappmesh_IVirtualNode__runtime_type_checks.go
- awsappmesh_IVirtualRouter.go
- awsappmesh_IVirtualRouter__runtime_type_checks.go
- awsappmesh_IVirtualService.go
- awsappmesh_IpPreference.go
- awsappmesh_ListenerTlsOptions.go
- awsappmesh_Mesh.go
- awsappmesh_MeshFilterType.go
- awsappmesh_MeshProps.go
- awsappmesh_MeshServiceDiscovery.go
- awsappmesh_Mesh__runtime_type_checks.go
- awsappmesh_MutualTlsCertificate.go
- awsappmesh_MutualTlsCertificate__runtime_type_checks.go
- awsappmesh_MutualTlsValidation.go
- awsappmesh_MutualTlsValidationTrust.go
- awsappmesh_MutualTlsValidationTrust__runtime_type_checks.go
- awsappmesh_OutlierDetection.go
- awsappmesh_QueryParameterMatch.go
- awsappmesh_QueryParameterMatchConfig.go
- awsappmesh_QueryParameterMatch__runtime_type_checks.go
- awsappmesh_Route.go
- awsappmesh_RouteAttributes.go
- awsappmesh_RouteBaseProps.go
- awsappmesh_RouteProps.go
- awsappmesh_RouteSpec.go
- awsappmesh_RouteSpecConfig.go
- awsappmesh_RouteSpecOptionsBase.go
- awsappmesh_RouteSpec__runtime_type_checks.go
- awsappmesh_Route__runtime_type_checks.go
- awsappmesh_ServiceDiscovery.go
- awsappmesh_ServiceDiscoveryConfig.go
- awsappmesh_ServiceDiscovery__runtime_type_checks.go
- awsappmesh_SubjectAlternativeNames.go
- awsappmesh_SubjectAlternativeNamesMatcherConfig.go
- awsappmesh_SubjectAlternativeNames__runtime_type_checks.go
- awsappmesh_TcpConnectionPool.go
- awsappmesh_TcpHealthCheckOptions.go
- awsappmesh_TcpRetryEvent.go
- awsappmesh_TcpRouteSpecOptions.go
- awsappmesh_TcpTimeout.go
- awsappmesh_TcpVirtualNodeListenerOptions.go
- awsappmesh_TlsCertificate.go
- awsappmesh_TlsCertificateConfig.go
- awsappmesh_TlsCertificate__runtime_type_checks.go
- awsappmesh_TlsClientPolicy.go
- awsappmesh_TlsMode.go
- awsappmesh_TlsValidation.go
- awsappmesh_TlsValidationTrust.go
- awsappmesh_TlsValidationTrustConfig.go
- awsappmesh_TlsValidationTrust__runtime_type_checks.go
- awsappmesh_VirtualGateway.go
- awsappmesh_VirtualGatewayAttributes.go
- awsappmesh_VirtualGatewayBaseProps.go
- awsappmesh_VirtualGatewayListener.go
- awsappmesh_VirtualGatewayListenerConfig.go
- awsappmesh_VirtualGatewayListener__runtime_type_checks.go
- awsappmesh_VirtualGatewayProps.go
- awsappmesh_VirtualGateway__runtime_type_checks.go
- awsappmesh_VirtualNode.go
- awsappmesh_VirtualNodeAttributes.go
- awsappmesh_VirtualNodeBaseProps.go
- awsappmesh_VirtualNodeListener.go
- awsappmesh_VirtualNodeListenerConfig.go
- awsappmesh_VirtualNodeListener__runtime_type_checks.go
- awsappmesh_VirtualNodeProps.go
- awsappmesh_VirtualNode__runtime_type_checks.go
- awsappmesh_VirtualRouter.go
- awsappmesh_VirtualRouterAttributes.go
- awsappmesh_VirtualRouterBaseProps.go
- awsappmesh_VirtualRouterListener.go
- awsappmesh_VirtualRouterListenerConfig.go
- awsappmesh_VirtualRouterListener__runtime_type_checks.go
- awsappmesh_VirtualRouterProps.go
- awsappmesh_VirtualRouter__runtime_type_checks.go
- awsappmesh_VirtualService.go
- awsappmesh_VirtualServiceAttributes.go
- awsappmesh_VirtualServiceBackendOptions.go
- awsappmesh_VirtualServiceProps.go
- awsappmesh_VirtualServiceProvider.go
- awsappmesh_VirtualServiceProviderConfig.go
- awsappmesh_VirtualServiceProvider__runtime_type_checks.go
- awsappmesh_VirtualService__runtime_type_checks.go
- awsappmesh_WeightedTarget.go