Source code for troposphere.appmesh

# 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 GatewayRouteMetadataMatch(AWSProperty): """ `GatewayRouteMetadataMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-gatewayroutemetadatamatch.html>`__ """ props: PropsDictType = { "Exact": (str, False), "Prefix": (str, False), "Range": (GatewayRouteRangeMatch, False), "Regex": (str, False), "Suffix": (str, False), }
[docs]class GrpcGatewayRouteMetadata(AWSProperty): """ `GrpcGatewayRouteMetadata <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-grpcgatewayroutemetadata.html>`__ """ props: PropsDictType = { "Invert": (boolean, False), "Match": (GatewayRouteMetadataMatch, False), "Name": (str, 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 HttpGatewayRouteHeaderMatch(AWSProperty): """ `HttpGatewayRouteHeaderMatch <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheadermatch.html>`__ """ props: PropsDictType = { "Exact": (str, False), "Prefix": (str, False), "Range": (GatewayRouteRangeMatch, False), "Regex": (str, False), "Suffix": (str, False), }
[docs]class HttpGatewayRouteHeader(AWSProperty): """ `HttpGatewayRouteHeader <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-gatewayroute-httpgatewayrouteheader.html>`__ """ props: PropsDictType = { "Invert": (boolean, False), "Match": (HttpGatewayRouteHeaderMatch, False), "Name": (str, 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 GrpcRouteMetadataMatchMethod(AWSProperty): """ `GrpcRouteMetadataMatchMethod <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadatamatchmethod.html>`__ """ props: PropsDictType = { "Exact": (str, False), "Prefix": (str, False), "Range": (MatchRange, False), "Regex": (str, False), "Suffix": (str, False), }
[docs]class GrpcRouteMetadata(AWSProperty): """ `GrpcRouteMetadata <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-grpcroutemetadata.html>`__ """ props: PropsDictType = { "Invert": (boolean, False), "Match": (GrpcRouteMetadataMatchMethod, False), "Name": (str, 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 HeaderMatchMethod(AWSProperty): """ `HeaderMatchMethod <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-headermatchmethod.html>`__ """ props: PropsDictType = { "Exact": (str, False), "Prefix": (str, False), "Range": (MatchRange, False), "Regex": (str, False), "Suffix": (str, False), }
[docs]class HttpRouteHeader(AWSProperty): """ `HttpRouteHeader <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-route-httprouteheader.html>`__ """ props: PropsDictType = { "Invert": (boolean, False), "Match": (HeaderMatchMethod, False), "Name": (str, 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 JsonFormatRef(AWSProperty): """ `JsonFormatRef <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-jsonformatref.html>`__ """ props: PropsDictType = { "Key": (str, True), "Value": (str, True), }
[docs]class LoggingFormat(AWSProperty): """ `LoggingFormat <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appmesh-virtualnode-loggingformat.html>`__ """ props: PropsDictType = { "Json": ([JsonFormatRef], False), "Text": (str, 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), }