# Copyright (c) 2012-2024, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, integer
from .validators.appmesh import validate_listenertls_mode
[docs]class GatewayRouteVirtualService(AWSProperty):
"""
`GatewayRouteVirtualService <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutevirtualservice.html>`__
"""
props: PropsDictType = {
"VirtualServiceName": (str, True),
}
[docs]class GatewayRouteTarget(AWSProperty):
"""
`GatewayRouteTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutetarget.html>`__
"""
props: PropsDictType = {
"Port": (integer, False),
"VirtualService": (GatewayRouteVirtualService, True),
}
[docs]class GatewayRouteHostnameRewrite(AWSProperty):
"""
`GatewayRouteHostnameRewrite <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamerewrite.html>`__
"""
props: PropsDictType = {
"DefaultTargetHostname": (str, False),
}
[docs]class GrpcGatewayRouteRewrite(AWSProperty):
"""
`GrpcGatewayRouteRewrite <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouterewrite.html>`__
"""
props: PropsDictType = {
"Hostname": (GatewayRouteHostnameRewrite, False),
}
[docs]class GrpcGatewayRouteAction(AWSProperty):
"""
`GrpcGatewayRouteAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayrouteaction.html>`__
"""
props: PropsDictType = {
"Rewrite": (GrpcGatewayRouteRewrite, False),
"Target": (GatewayRouteTarget, True),
}
[docs]class GatewayRouteHostnameMatch(AWSProperty):
"""
`GatewayRouteHostnameMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutehostnamematch.html>`__
"""
props: PropsDictType = {
"Exact": (str, False),
"Suffix": (str, False),
}
[docs]class GatewayRouteRangeMatch(AWSProperty):
"""
`GatewayRouteRangeMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayrouterangematch.html>`__
"""
props: PropsDictType = {
"End": (integer, True),
"Start": (integer, True),
}
[docs]class GrpcGatewayRouteMatch(AWSProperty):
"""
`GrpcGatewayRouteMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutematch.html>`__
"""
props: PropsDictType = {
"Hostname": (GatewayRouteHostnameMatch, False),
"Metadata": ([GrpcGatewayRouteMetadata], False),
"Port": (integer, False),
"ServiceName": (str, False),
}
[docs]class GrpcGatewayRoute(AWSProperty):
"""
`GrpcGatewayRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroute.html>`__
"""
props: PropsDictType = {
"Action": (GrpcGatewayRouteAction, True),
"Match": (GrpcGatewayRouteMatch, True),
}
[docs]class HttpGatewayRoutePathRewrite(AWSProperty):
"""
`HttpGatewayRoutePathRewrite <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutepathrewrite.html>`__
"""
props: PropsDictType = {
"Exact": (str, False),
}
[docs]class HttpGatewayRoutePrefixRewrite(AWSProperty):
"""
`HttpGatewayRoutePrefixRewrite <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteprefixrewrite.html>`__
"""
props: PropsDictType = {
"DefaultPrefix": (str, False),
"Value": (str, False),
}
[docs]class HttpGatewayRouteRewrite(AWSProperty):
"""
`HttpGatewayRouteRewrite <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouterewrite.html>`__
"""
props: PropsDictType = {
"Hostname": (GatewayRouteHostnameRewrite, False),
"Path": (HttpGatewayRoutePathRewrite, False),
"Prefix": (HttpGatewayRoutePrefixRewrite, False),
}
[docs]class HttpGatewayRouteAction(AWSProperty):
"""
`HttpGatewayRouteAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteaction.html>`__
"""
props: PropsDictType = {
"Rewrite": (HttpGatewayRouteRewrite, False),
"Target": (GatewayRouteTarget, True),
}
[docs]class HttpPathMatch(AWSProperty):
"""
`HttpPathMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httppathmatch.html>`__
"""
props: PropsDictType = {
"Exact": (str, False),
"Regex": (str, False),
}
[docs]class HttpQueryParameterMatch(AWSProperty):
"""
`HttpQueryParameterMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpqueryparametermatch.html>`__
"""
props: PropsDictType = {
"Exact": (str, False),
}
[docs]class QueryParameter(AWSProperty):
"""
`QueryParameter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-queryparameter.html>`__
"""
props: PropsDictType = {
"Match": (HttpQueryParameterMatch, False),
"Name": (str, True),
}
[docs]class HttpGatewayRouteMatch(AWSProperty):
"""
`HttpGatewayRouteMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroutematch.html>`__
"""
props: PropsDictType = {
"Headers": ([HttpGatewayRouteHeader], False),
"Hostname": (GatewayRouteHostnameMatch, False),
"Method": (str, False),
"Path": (HttpPathMatch, False),
"Port": (integer, False),
"Prefix": (str, False),
"QueryParameters": ([QueryParameter], False),
}
[docs]class HttpGatewayRoute(AWSProperty):
"""
`HttpGatewayRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayroute.html>`__
"""
props: PropsDictType = {
"Action": (HttpGatewayRouteAction, True),
"Match": (HttpGatewayRouteMatch, True),
}
[docs]class GatewayRouteSpec(AWSProperty):
"""
`GatewayRouteSpec <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutespec.html>`__
"""
props: PropsDictType = {
"GrpcRoute": (GrpcGatewayRoute, False),
"Http2Route": (HttpGatewayRoute, False),
"HttpRoute": (HttpGatewayRoute, False),
"Priority": (integer, False),
}
[docs]class GatewayRoute(AWSObject):
"""
`GatewayRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-gatewayroute.html>`__
"""
resource_type = "AWS::AppMesh::GatewayRoute"
props: PropsDictType = {
"GatewayRouteName": (str, False),
"MeshName": (str, True),
"MeshOwner": (str, False),
"Spec": (GatewayRouteSpec, True),
"Tags": (Tags, False),
"VirtualGatewayName": (str, True),
}
[docs]class EgressFilter(AWSProperty):
"""
`EgressFilter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-egressfilter.html>`__
"""
props: PropsDictType = {
"Type": (str, True),
}
[docs]class MeshServiceDiscovery(AWSProperty):
"""
`MeshServiceDiscovery <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-meshservicediscovery.html>`__
"""
props: PropsDictType = {
"IpPreference": (str, False),
}
[docs]class MeshSpec(AWSProperty):
"""
`MeshSpec <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-mesh-meshspec.html>`__
"""
props: PropsDictType = {
"EgressFilter": (EgressFilter, False),
"ServiceDiscovery": (MeshServiceDiscovery, False),
}
[docs]class Mesh(AWSObject):
"""
`Mesh <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-mesh.html>`__
"""
resource_type = "AWS::AppMesh::Mesh"
props: PropsDictType = {
"MeshName": (str, False),
"Spec": (MeshSpec, False),
"Tags": (Tags, False),
}
[docs]class Duration(AWSProperty):
"""
`Duration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-duration.html>`__
"""
props: PropsDictType = {
"Unit": (str, True),
"Value": (integer, True),
}
[docs]class GrpcRetryPolicy(AWSProperty):
"""
`GrpcRetryPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcretrypolicy.html>`__
"""
props: PropsDictType = {
"GrpcRetryEvents": ([str], False),
"HttpRetryEvents": ([str], False),
"MaxRetries": (integer, True),
"PerRetryTimeout": (Duration, True),
"TcpRetryEvents": ([str], False),
}
[docs]class WeightedTarget(AWSProperty):
"""
`WeightedTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-weightedtarget.html>`__
"""
props: PropsDictType = {
"Port": (integer, False),
"VirtualNode": (str, True),
"Weight": (integer, True),
}
[docs]class GrpcRouteAction(AWSProperty):
"""
`GrpcRouteAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcrouteaction.html>`__
"""
props: PropsDictType = {
"WeightedTargets": ([WeightedTarget], True),
}
[docs]class MatchRange(AWSProperty):
"""
`MatchRange <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-matchrange.html>`__
"""
props: PropsDictType = {
"End": (integer, True),
"Start": (integer, True),
}
[docs]class GrpcRouteMatch(AWSProperty):
"""
`GrpcRouteMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutematch.html>`__
"""
props: PropsDictType = {
"Metadata": ([GrpcRouteMetadata], False),
"MethodName": (str, False),
"Port": (integer, False),
"ServiceName": (str, False),
}
[docs]class GrpcTimeout(AWSProperty):
"""
`GrpcTimeout <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-grpctimeout.html>`__
"""
props: PropsDictType = {
"Idle": (Duration, False),
"PerRequest": (Duration, False),
}
[docs]class GrpcRoute(AWSProperty):
"""
`GrpcRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroute.html>`__
"""
props: PropsDictType = {
"Action": (GrpcRouteAction, True),
"Match": (GrpcRouteMatch, True),
"RetryPolicy": (GrpcRetryPolicy, False),
"Timeout": (GrpcTimeout, False),
}
[docs]class HttpRetryPolicy(AWSProperty):
"""
`HttpRetryPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httpretrypolicy.html>`__
"""
props: PropsDictType = {
"HttpRetryEvents": ([str], False),
"MaxRetries": (integer, True),
"PerRetryTimeout": (Duration, True),
"TcpRetryEvents": ([str], False),
}
[docs]class HttpRouteAction(AWSProperty):
"""
`HttpRouteAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteaction.html>`__
"""
props: PropsDictType = {
"WeightedTargets": ([WeightedTarget], True),
}
[docs]class HttpRouteMatch(AWSProperty):
"""
`HttpRouteMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproutematch.html>`__
"""
props: PropsDictType = {
"Headers": ([HttpRouteHeader], False),
"Method": (str, False),
"Path": (HttpPathMatch, False),
"Port": (integer, False),
"Prefix": (str, False),
"QueryParameters": ([QueryParameter], False),
"Scheme": (str, False),
}
[docs]class HttpTimeout(AWSProperty):
"""
`HttpTimeout <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-httptimeout.html>`__
"""
props: PropsDictType = {
"Idle": (Duration, False),
"PerRequest": (Duration, False),
}
[docs]class HttpRoute(AWSProperty):
"""
`HttpRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httproute.html>`__
"""
props: PropsDictType = {
"Action": (HttpRouteAction, True),
"Match": (HttpRouteMatch, True),
"RetryPolicy": (HttpRetryPolicy, False),
"Timeout": (HttpTimeout, False),
}
[docs]class TcpRouteAction(AWSProperty):
"""
`TcpRouteAction <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcprouteaction.html>`__
"""
props: PropsDictType = {
"WeightedTargets": ([WeightedTarget], True),
}
[docs]class TcpRouteMatch(AWSProperty):
"""
`TcpRouteMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproutematch.html>`__
"""
props: PropsDictType = {
"Port": (integer, False),
}
[docs]class TcpTimeout(AWSProperty):
"""
`TcpTimeout <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tcptimeout.html>`__
"""
props: PropsDictType = {
"Idle": (Duration, False),
}
[docs]class TcpRoute(AWSProperty):
"""
`TcpRoute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-tcproute.html>`__
"""
props: PropsDictType = {
"Action": (TcpRouteAction, True),
"Match": (TcpRouteMatch, False),
"Timeout": (TcpTimeout, False),
}
[docs]class RouteSpec(AWSProperty):
"""
`RouteSpec <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-routespec.html>`__
"""
props: PropsDictType = {
"GrpcRoute": (GrpcRoute, False),
"Http2Route": (HttpRoute, False),
"HttpRoute": (HttpRoute, False),
"Priority": (integer, False),
"TcpRoute": (TcpRoute, False),
}
[docs]class Route(AWSObject):
"""
`Route <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-route.html>`__
"""
resource_type = "AWS::AppMesh::Route"
props: PropsDictType = {
"MeshName": (str, True),
"MeshOwner": (str, False),
"RouteName": (str, False),
"Spec": (RouteSpec, True),
"Tags": (Tags, False),
"VirtualRouterName": (str, True),
}
[docs]class VirtualGatewayListenerTlsFileCertificate(AWSProperty):
"""
`VirtualGatewayListenerTlsFileCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsfilecertificate.html>`__
"""
props: PropsDictType = {
"CertificateChain": (str, True),
"PrivateKey": (str, True),
}
[docs]class VirtualGatewayListenerTlsSdsCertificate(AWSProperty):
"""
`VirtualGatewayListenerTlsSdsCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlssdscertificate.html>`__
"""
props: PropsDictType = {
"SecretName": (str, True),
}
[docs]class VirtualGatewayClientTlsCertificate(AWSProperty):
"""
`VirtualGatewayClientTlsCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclienttlscertificate.html>`__
"""
props: PropsDictType = {
"File": (VirtualGatewayListenerTlsFileCertificate, False),
"SDS": (VirtualGatewayListenerTlsSdsCertificate, False),
}
[docs]class SubjectAlternativeNameMatchers(AWSProperty):
"""
`SubjectAlternativeNameMatchers <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenamematchers.html>`__
"""
props: PropsDictType = {
"Exact": ([str], False),
}
[docs]class SubjectAlternativeNames(AWSProperty):
"""
`SubjectAlternativeNames <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-subjectalternativenames.html>`__
"""
props: PropsDictType = {
"Match": (SubjectAlternativeNameMatchers, True),
}
[docs]class VirtualGatewayTlsValidationContextAcmTrust(AWSProperty):
"""
`VirtualGatewayTlsValidationContextAcmTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextacmtrust.html>`__
"""
props: PropsDictType = {
"CertificateAuthorityArns": ([str], True),
}
[docs]class VirtualGatewayTlsValidationContextFileTrust(AWSProperty):
"""
`VirtualGatewayTlsValidationContextFileTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextfiletrust.html>`__
"""
props: PropsDictType = {
"CertificateChain": (str, True),
}
[docs]class VirtualGatewayTlsValidationContextSdsTrust(AWSProperty):
"""
`VirtualGatewayTlsValidationContextSdsTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontextsdstrust.html>`__
"""
props: PropsDictType = {
"SecretName": (str, True),
}
[docs]class VirtualGatewayTlsValidationContextTrust(AWSProperty):
"""
`VirtualGatewayTlsValidationContextTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontexttrust.html>`__
"""
props: PropsDictType = {
"ACM": (VirtualGatewayTlsValidationContextAcmTrust, False),
"File": (VirtualGatewayTlsValidationContextFileTrust, False),
"SDS": (VirtualGatewayTlsValidationContextSdsTrust, False),
}
[docs]class VirtualGatewayTlsValidationContext(AWSProperty):
"""
`VirtualGatewayTlsValidationContext <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaytlsvalidationcontext.html>`__
"""
props: PropsDictType = {
"SubjectAlternativeNames": (SubjectAlternativeNames, False),
"Trust": (VirtualGatewayTlsValidationContextTrust, True),
}
[docs]class VirtualGatewayClientPolicyTls(AWSProperty):
"""
`VirtualGatewayClientPolicyTls <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicytls.html>`__
"""
props: PropsDictType = {
"Certificate": (VirtualGatewayClientTlsCertificate, False),
"Enforce": (boolean, False),
"Ports": ([integer], False),
"Validation": (VirtualGatewayTlsValidationContext, True),
}
[docs]class VirtualGatewayClientPolicy(AWSProperty):
"""
`VirtualGatewayClientPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayclientpolicy.html>`__
"""
props: PropsDictType = {
"TLS": (VirtualGatewayClientPolicyTls, False),
}
[docs]class VirtualGatewayBackendDefaults(AWSProperty):
"""
`VirtualGatewayBackendDefaults <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaybackenddefaults.html>`__
"""
props: PropsDictType = {
"ClientPolicy": (VirtualGatewayClientPolicy, False),
}
[docs]class VirtualGatewayGrpcConnectionPool(AWSProperty):
"""
`VirtualGatewayGrpcConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaygrpcconnectionpool.html>`__
"""
props: PropsDictType = {
"MaxRequests": (integer, True),
}
[docs]class VirtualGatewayHttp2ConnectionPool(AWSProperty):
"""
`VirtualGatewayHttp2ConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttp2connectionpool.html>`__
"""
props: PropsDictType = {
"MaxRequests": (integer, True),
}
[docs]class VirtualGatewayHttpConnectionPool(AWSProperty):
"""
`VirtualGatewayHttpConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhttpconnectionpool.html>`__
"""
props: PropsDictType = {
"MaxConnections": (integer, True),
"MaxPendingRequests": (integer, False),
}
[docs]class VirtualGatewayConnectionPool(AWSProperty):
"""
`VirtualGatewayConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayconnectionpool.html>`__
"""
props: PropsDictType = {
"GRPC": (VirtualGatewayGrpcConnectionPool, False),
"HTTP": (VirtualGatewayHttpConnectionPool, False),
"HTTP2": (VirtualGatewayHttp2ConnectionPool, False),
}
[docs]class VirtualGatewayHealthCheckPolicy(AWSProperty):
"""
`VirtualGatewayHealthCheckPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayhealthcheckpolicy.html>`__
"""
props: PropsDictType = {
"HealthyThreshold": (integer, True),
"IntervalMillis": (integer, True),
"Path": (str, False),
"Port": (integer, False),
"Protocol": (str, True),
"TimeoutMillis": (integer, True),
"UnhealthyThreshold": (integer, True),
}
[docs]class VirtualGatewayListenerTlsAcmCertificate(AWSProperty):
"""
`VirtualGatewayListenerTlsAcmCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsacmcertificate.html>`__
"""
props: PropsDictType = {
"CertificateArn": (str, True),
}
[docs]class VirtualGatewayListenerTlsCertificate(AWSProperty):
"""
`VirtualGatewayListenerTlsCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlscertificate.html>`__
"""
props: PropsDictType = {
"ACM": (VirtualGatewayListenerTlsAcmCertificate, False),
"File": (VirtualGatewayListenerTlsFileCertificate, False),
"SDS": (VirtualGatewayListenerTlsSdsCertificate, False),
}
[docs]class VirtualGatewayListenerTlsValidationContextTrust(AWSProperty):
"""
`VirtualGatewayListenerTlsValidationContextTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontexttrust.html>`__
"""
props: PropsDictType = {
"File": (VirtualGatewayTlsValidationContextFileTrust, False),
"SDS": (VirtualGatewayTlsValidationContextSdsTrust, False),
}
[docs]class VirtualGatewayListenerTlsValidationContext(AWSProperty):
"""
`VirtualGatewayListenerTlsValidationContext <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertlsvalidationcontext.html>`__
"""
props: PropsDictType = {
"SubjectAlternativeNames": (SubjectAlternativeNames, False),
"Trust": (VirtualGatewayListenerTlsValidationContextTrust, True),
}
[docs]class VirtualGatewayListenerTls(AWSProperty):
"""
`VirtualGatewayListenerTls <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistenertls.html>`__
"""
props: PropsDictType = {
"Certificate": (VirtualGatewayListenerTlsCertificate, True),
"Mode": (str, True),
"Validation": (VirtualGatewayListenerTlsValidationContext, False),
}
[docs]class VirtualGatewayPortMapping(AWSProperty):
"""
`VirtualGatewayPortMapping <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayportmapping.html>`__
"""
props: PropsDictType = {
"Port": (integer, True),
"Protocol": (str, True),
}
[docs]class VirtualGatewayListener(AWSProperty):
"""
`VirtualGatewayListener <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylistener.html>`__
"""
props: PropsDictType = {
"ConnectionPool": (VirtualGatewayConnectionPool, False),
"HealthCheck": (VirtualGatewayHealthCheckPolicy, False),
"PortMapping": (VirtualGatewayPortMapping, True),
"TLS": (VirtualGatewayListenerTls, False),
}
[docs]class VirtualGatewayFileAccessLog(AWSProperty):
"""
`VirtualGatewayFileAccessLog <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayfileaccesslog.html>`__
"""
props: PropsDictType = {
"Format": (LoggingFormat, False),
"Path": (str, True),
}
[docs]class VirtualGatewayAccessLog(AWSProperty):
"""
`VirtualGatewayAccessLog <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayaccesslog.html>`__
"""
props: PropsDictType = {
"File": (VirtualGatewayFileAccessLog, False),
}
[docs]class VirtualGatewayLogging(AWSProperty):
"""
`VirtualGatewayLogging <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewaylogging.html>`__
"""
props: PropsDictType = {
"AccessLog": (VirtualGatewayAccessLog, False),
}
[docs]class VirtualGatewaySpec(AWSProperty):
"""
`VirtualGatewaySpec <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualgateway-virtualgatewayspec.html>`__
"""
props: PropsDictType = {
"BackendDefaults": (VirtualGatewayBackendDefaults, False),
"Listeners": ([VirtualGatewayListener], True),
"Logging": (VirtualGatewayLogging, False),
}
[docs]class VirtualGateway(AWSObject):
"""
`VirtualGateway <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualgateway.html>`__
"""
resource_type = "AWS::AppMesh::VirtualGateway"
props: PropsDictType = {
"MeshName": (str, True),
"MeshOwner": (str, False),
"Spec": (VirtualGatewaySpec, True),
"Tags": (Tags, False),
"VirtualGatewayName": (str, False),
}
[docs]class ListenerTlsFileCertificate(AWSProperty):
"""
`ListenerTlsFileCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsfilecertificate.html>`__
"""
props: PropsDictType = {
"CertificateChain": (str, True),
"PrivateKey": (str, True),
}
[docs]class ListenerTlsSdsCertificate(AWSProperty):
"""
`ListenerTlsSdsCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlssdscertificate.html>`__
"""
props: PropsDictType = {
"SecretName": (str, True),
}
[docs]class ClientTlsCertificate(AWSProperty):
"""
`ClientTlsCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clienttlscertificate.html>`__
"""
props: PropsDictType = {
"File": (ListenerTlsFileCertificate, False),
"SDS": (ListenerTlsSdsCertificate, False),
}
[docs]class TlsValidationContextAcmTrust(AWSProperty):
"""
`TlsValidationContextAcmTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextacmtrust.html>`__
"""
props: PropsDictType = {
"CertificateAuthorityArns": ([str], True),
}
[docs]class TlsValidationContextFileTrust(AWSProperty):
"""
`TlsValidationContextFileTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextfiletrust.html>`__
"""
props: PropsDictType = {
"CertificateChain": (str, True),
}
[docs]class TlsValidationContextSdsTrust(AWSProperty):
"""
`TlsValidationContextSdsTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontextsdstrust.html>`__
"""
props: PropsDictType = {
"SecretName": (str, True),
}
[docs]class TlsValidationContextTrust(AWSProperty):
"""
`TlsValidationContextTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontexttrust.html>`__
"""
props: PropsDictType = {
"ACM": (TlsValidationContextAcmTrust, False),
"File": (TlsValidationContextFileTrust, False),
"SDS": (TlsValidationContextSdsTrust, False),
}
[docs]class TlsValidationContext(AWSProperty):
"""
`TlsValidationContext <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-tlsvalidationcontext.html>`__
"""
props: PropsDictType = {
"SubjectAlternativeNames": (SubjectAlternativeNames, False),
"Trust": (TlsValidationContextTrust, True),
}
[docs]class ClientPolicyTls(AWSProperty):
"""
`ClientPolicyTls <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicytls.html>`__
"""
props: PropsDictType = {
"Certificate": (ClientTlsCertificate, False),
"Enforce": (boolean, False),
"Ports": ([integer], False),
"Validation": (TlsValidationContext, True),
}
[docs]class ClientPolicy(AWSProperty):
"""
`ClientPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-clientpolicy.html>`__
"""
props: PropsDictType = {
"TLS": (ClientPolicyTls, False),
}
[docs]class VirtualServiceBackend(AWSProperty):
"""
`VirtualServiceBackend <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualservicebackend.html>`__
"""
props: PropsDictType = {
"ClientPolicy": (ClientPolicy, False),
"VirtualServiceName": (str, True),
}
[docs]class Backend(AWSProperty):
"""
`Backend <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backend.html>`__
"""
props: PropsDictType = {
"VirtualService": (VirtualServiceBackend, False),
}
[docs]class BackendDefaults(AWSProperty):
"""
`BackendDefaults <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-backenddefaults.html>`__
"""
props: PropsDictType = {
"ClientPolicy": (ClientPolicy, False),
}
[docs]class HealthCheck(AWSProperty):
"""
`HealthCheck <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-healthcheck.html>`__
"""
props: PropsDictType = {
"HealthyThreshold": (integer, True),
"IntervalMillis": (integer, True),
"Path": (str, False),
"Port": (integer, False),
"Protocol": (str, True),
"TimeoutMillis": (integer, True),
"UnhealthyThreshold": (integer, True),
}
[docs]class ListenerTimeout(AWSProperty):
"""
`ListenerTimeout <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertimeout.html>`__
"""
props: PropsDictType = {
"GRPC": (GrpcTimeout, False),
"HTTP": (HttpTimeout, False),
"HTTP2": (HttpTimeout, False),
"TCP": (TcpTimeout, False),
}
[docs]class ListenerTlsAcmCertificate(AWSProperty):
"""
`ListenerTlsAcmCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsacmcertificate.html>`__
"""
props: PropsDictType = {
"CertificateArn": (str, True),
}
[docs]class ListenerTlsCertificate(AWSProperty):
"""
`ListenerTlsCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlscertificate.html>`__
"""
props: PropsDictType = {
"ACM": (ListenerTlsAcmCertificate, False),
"File": (ListenerTlsFileCertificate, False),
"SDS": (ListenerTlsSdsCertificate, False),
}
[docs]class ListenerTlsValidationContextTrust(AWSProperty):
"""
`ListenerTlsValidationContextTrust <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontexttrust.html>`__
"""
props: PropsDictType = {
"File": (TlsValidationContextFileTrust, False),
"SDS": (TlsValidationContextSdsTrust, False),
}
[docs]class ListenerTlsValidationContext(AWSProperty):
"""
`ListenerTlsValidationContext <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertlsvalidationcontext.html>`__
"""
props: PropsDictType = {
"SubjectAlternativeNames": (SubjectAlternativeNames, False),
"Trust": (ListenerTlsValidationContextTrust, True),
}
[docs]class ListenerTls(AWSProperty):
"""
`ListenerTls <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listenertls.html>`__
"""
props: PropsDictType = {
"Certificate": (ListenerTlsCertificate, True),
"Mode": (validate_listenertls_mode, True),
"Validation": (ListenerTlsValidationContext, False),
}
[docs]class OutlierDetection(AWSProperty):
"""
`OutlierDetection <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-outlierdetection.html>`__
"""
props: PropsDictType = {
"BaseEjectionDuration": (Duration, True),
"Interval": (Duration, True),
"MaxEjectionPercent": (integer, True),
"MaxServerErrors": (integer, True),
}
[docs]class PortMapping(AWSProperty):
"""
`PortMapping <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-portmapping.html>`__
"""
props: PropsDictType = {
"Port": (integer, True),
"Protocol": (str, True),
}
[docs]class VirtualNodeGrpcConnectionPool(AWSProperty):
"""
`VirtualNodeGrpcConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodegrpcconnectionpool.html>`__
"""
props: PropsDictType = {
"MaxRequests": (integer, True),
}
[docs]class VirtualNodeHttp2ConnectionPool(AWSProperty):
"""
`VirtualNodeHttp2ConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttp2connectionpool.html>`__
"""
props: PropsDictType = {
"MaxRequests": (integer, True),
}
[docs]class VirtualNodeHttpConnectionPool(AWSProperty):
"""
`VirtualNodeHttpConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodehttpconnectionpool.html>`__
"""
props: PropsDictType = {
"MaxConnections": (integer, True),
"MaxPendingRequests": (integer, False),
}
[docs]class VirtualNodeTcpConnectionPool(AWSProperty):
"""
`VirtualNodeTcpConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodetcpconnectionpool.html>`__
"""
props: PropsDictType = {
"MaxConnections": (integer, True),
}
[docs]class VirtualNodeConnectionPool(AWSProperty):
"""
`VirtualNodeConnectionPool <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodeconnectionpool.html>`__
"""
props: PropsDictType = {
"GRPC": (VirtualNodeGrpcConnectionPool, False),
"HTTP": (VirtualNodeHttpConnectionPool, False),
"HTTP2": (VirtualNodeHttp2ConnectionPool, False),
"TCP": (VirtualNodeTcpConnectionPool, False),
}
[docs]class Listener(AWSProperty):
"""
`Listener <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-listener.html>`__
"""
props: PropsDictType = {
"ConnectionPool": (VirtualNodeConnectionPool, False),
"HealthCheck": (HealthCheck, False),
"OutlierDetection": (OutlierDetection, False),
"PortMapping": (PortMapping, True),
"TLS": (ListenerTls, False),
"Timeout": (ListenerTimeout, False),
}
[docs]class FileAccessLog(AWSProperty):
"""
`FileAccessLog <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-fileaccesslog.html>`__
"""
props: PropsDictType = {
"Format": (LoggingFormat, False),
"Path": (str, True),
}
[docs]class AccessLog(AWSProperty):
"""
`AccessLog <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-accesslog.html>`__
"""
props: PropsDictType = {
"File": (FileAccessLog, False),
}
[docs]class Logging(AWSProperty):
"""
`Logging <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-logging.html>`__
"""
props: PropsDictType = {
"AccessLog": (AccessLog, False),
}
[docs]class AwsCloudMapInstanceAttribute(AWSProperty):
"""
`AwsCloudMapInstanceAttribute <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapinstanceattribute.html>`__
"""
props: PropsDictType = {
"Key": (str, True),
"Value": (str, True),
}
[docs]class AwsCloudMapServiceDiscovery(AWSProperty):
"""
`AwsCloudMapServiceDiscovery <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-awscloudmapservicediscovery.html>`__
"""
props: PropsDictType = {
"Attributes": ([AwsCloudMapInstanceAttribute], False),
"IpPreference": (str, False),
"NamespaceName": (str, True),
"ServiceName": (str, True),
}
[docs]class DnsServiceDiscovery(AWSProperty):
"""
`DnsServiceDiscovery <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-dnsservicediscovery.html>`__
"""
props: PropsDictType = {
"Hostname": (str, True),
"IpPreference": (str, False),
"ResponseType": (str, False),
}
[docs]class ServiceDiscovery(AWSProperty):
"""
`ServiceDiscovery <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-servicediscovery.html>`__
"""
props: PropsDictType = {
"AWSCloudMap": (AwsCloudMapServiceDiscovery, False),
"DNS": (DnsServiceDiscovery, False),
}
[docs]class VirtualNodeSpec(AWSProperty):
"""
`VirtualNodeSpec <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-virtualnodespec.html>`__
"""
props: PropsDictType = {
"BackendDefaults": (BackendDefaults, False),
"Backends": ([Backend], False),
"Listeners": ([Listener], False),
"Logging": (Logging, False),
"ServiceDiscovery": (ServiceDiscovery, False),
}
[docs]class VirtualNode(AWSObject):
"""
`VirtualNode <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html>`__
"""
resource_type = "AWS::AppMesh::VirtualNode"
props: PropsDictType = {
"MeshName": (str, True),
"MeshOwner": (str, False),
"Spec": (VirtualNodeSpec, True),
"Tags": (Tags, False),
"VirtualNodeName": (str, False),
}
[docs]class VirtualRouterListener(AWSProperty):
"""
`VirtualRouterListener <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterlistener.html>`__
"""
props: PropsDictType = {
"PortMapping": (PortMapping, True),
}
[docs]class VirtualRouterSpec(AWSProperty):
"""
`VirtualRouterSpec <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualrouter-virtualrouterspec.html>`__
"""
props: PropsDictType = {
"Listeners": ([VirtualRouterListener], True),
}
[docs]class VirtualRouter(AWSObject):
"""
`VirtualRouter <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualrouter.html>`__
"""
resource_type = "AWS::AppMesh::VirtualRouter"
props: PropsDictType = {
"MeshName": (str, True),
"MeshOwner": (str, False),
"Spec": (VirtualRouterSpec, True),
"Tags": (Tags, False),
"VirtualRouterName": (str, False),
}
[docs]class VirtualNodeServiceProvider(AWSProperty):
"""
`VirtualNodeServiceProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualnodeserviceprovider.html>`__
"""
props: PropsDictType = {
"VirtualNodeName": (str, True),
}
[docs]class VirtualRouterServiceProvider(AWSProperty):
"""
`VirtualRouterServiceProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualrouterserviceprovider.html>`__
"""
props: PropsDictType = {
"VirtualRouterName": (str, True),
}
[docs]class VirtualServiceProvider(AWSProperty):
"""
`VirtualServiceProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualserviceprovider.html>`__
"""
props: PropsDictType = {
"VirtualNode": (VirtualNodeServiceProvider, False),
"VirtualRouter": (VirtualRouterServiceProvider, False),
}
[docs]class VirtualServiceSpec(AWSProperty):
"""
`VirtualServiceSpec <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualservice-virtualservicespec.html>`__
"""
props: PropsDictType = {
"Provider": (VirtualServiceProvider, False),
}
[docs]class VirtualService(AWSObject):
"""
`VirtualService <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualservice.html>`__
"""
resource_type = "AWS::AppMesh::VirtualService"
props: PropsDictType = {
"MeshName": (str, True),
"MeshOwner": (str, False),
"Spec": (VirtualServiceSpec, True),
"Tags": (Tags, False),
"VirtualServiceName": (str, True),
}