aws-cdk-lib 2.51.0 → 2.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/.jsii.gz +0 -0
  2. package/alexa-ask/lib/ask.generated.js +1 -1
  3. package/assertions/lib/annotations.js +1 -1
  4. package/assertions/lib/capture.js +1 -1
  5. package/assertions/lib/match.js +1 -1
  6. package/assertions/lib/matcher.js +1 -1
  7. package/assertions/lib/template.js +1 -1
  8. package/assets/lib/staging.js +1 -1
  9. package/aws-accessanalyzer/lib/accessanalyzer.generated.js +1 -1
  10. package/aws-acmpca/lib/acmpca.generated.js +1 -1
  11. package/aws-acmpca/lib/certificate-authority.js +1 -1
  12. package/aws-amazonmq/lib/amazonmq.generated.js +1 -1
  13. package/aws-amplify/lib/amplify.generated.js +1 -1
  14. package/aws-amplifyuibuilder/lib/amplifyuibuilder.generated.js +1 -1
  15. package/aws-apigateway/lib/access-log.js +1 -1
  16. package/aws-apigateway/lib/api-definition.js +1 -1
  17. package/aws-apigateway/lib/api-key.js +1 -1
  18. package/aws-apigateway/lib/apigateway.generated.js +1 -1
  19. package/aws-apigateway/lib/apigatewayv2.js +1 -1
  20. package/aws-apigateway/lib/authorizer.js +1 -1
  21. package/aws-apigateway/lib/authorizers/cognito.js +1 -1
  22. package/aws-apigateway/lib/authorizers/identity-source.js +1 -1
  23. package/aws-apigateway/lib/authorizers/lambda.js +1 -1
  24. package/aws-apigateway/lib/base-path-mapping.js +1 -1
  25. package/aws-apigateway/lib/cors.js +1 -1
  26. package/aws-apigateway/lib/deployment.js +1 -1
  27. package/aws-apigateway/lib/domain-name.js +1 -1
  28. package/aws-apigateway/lib/gateway-response.js +1 -1
  29. package/aws-apigateway/lib/integration.js +1 -1
  30. package/aws-apigateway/lib/integrations/aws.js +1 -1
  31. package/aws-apigateway/lib/integrations/http.js +1 -1
  32. package/aws-apigateway/lib/integrations/lambda.js +1 -1
  33. package/aws-apigateway/lib/integrations/mock.js +1 -1
  34. package/aws-apigateway/lib/integrations/stepfunctions.js +1 -1
  35. package/aws-apigateway/lib/lambda-api.js +1 -1
  36. package/aws-apigateway/lib/method.js +1 -1
  37. package/aws-apigateway/lib/model.js +1 -1
  38. package/aws-apigateway/lib/requestvalidator.js +1 -1
  39. package/aws-apigateway/lib/resource.js +1 -1
  40. package/aws-apigateway/lib/restapi.js +1 -1
  41. package/aws-apigateway/lib/stage.js +1 -1
  42. package/aws-apigateway/lib/stepfunctions-api.js +1 -1
  43. package/aws-apigateway/lib/usage-plan.js +1 -1
  44. package/aws-apigateway/lib/vpc-link.js +1 -1
  45. package/aws-apigatewayv2/lib/apigatewayv2.generated.js +1 -1
  46. package/aws-appconfig/lib/appconfig.generated.js +1 -1
  47. package/aws-appflow/lib/appflow.generated.js +1 -1
  48. package/aws-appintegrations/lib/appintegrations.generated.js +1 -1
  49. package/aws-applicationautoscaling/lib/applicationautoscaling.generated.js +1 -1
  50. package/aws-applicationautoscaling/lib/base-scalable-attribute.js +1 -1
  51. package/aws-applicationautoscaling/lib/scalable-target.js +1 -1
  52. package/aws-applicationautoscaling/lib/schedule.js +1 -1
  53. package/aws-applicationautoscaling/lib/step-scaling-action.js +1 -1
  54. package/aws-applicationautoscaling/lib/step-scaling-policy.js +1 -1
  55. package/aws-applicationautoscaling/lib/target-tracking-scaling-policy.js +1 -1
  56. package/aws-applicationinsights/lib/applicationinsights.generated.js +1 -1
  57. package/aws-appmesh/lib/appmesh.generated.js +1 -1
  58. package/aws-appmesh/lib/gateway-route-spec.js +1 -1
  59. package/aws-appmesh/lib/gateway-route.js +1 -1
  60. package/aws-appmesh/lib/header-match.js +1 -1
  61. package/aws-appmesh/lib/health-checks.js +1 -1
  62. package/aws-appmesh/lib/http-route-path-match.js +1 -1
  63. package/aws-appmesh/lib/mesh.js +1 -1
  64. package/aws-appmesh/lib/query-parameter-match.js +1 -1
  65. package/aws-appmesh/lib/route-spec.js +1 -1
  66. package/aws-appmesh/lib/route.js +1 -1
  67. package/aws-appmesh/lib/service-discovery.js +1 -1
  68. package/aws-appmesh/lib/shared-interfaces.js +1 -1
  69. package/aws-appmesh/lib/tls-certificate.js +1 -1
  70. package/aws-appmesh/lib/tls-validation.js +1 -1
  71. package/aws-appmesh/lib/virtual-gateway-listener.js +1 -1
  72. package/aws-appmesh/lib/virtual-gateway.js +1 -1
  73. package/aws-appmesh/lib/virtual-node-listener.js +1 -1
  74. package/aws-appmesh/lib/virtual-node.js +1 -1
  75. package/aws-appmesh/lib/virtual-router-listener.js +1 -1
  76. package/aws-appmesh/lib/virtual-router.js +1 -1
  77. package/aws-appmesh/lib/virtual-service.js +1 -1
  78. package/aws-apprunner/lib/apprunner.generated.js +1 -1
  79. package/aws-appstream/lib/appstream.generated.js +1 -1
  80. package/aws-appsync/lib/appsync.generated.js +1 -1
  81. package/aws-aps/lib/aps.generated.js +1 -1
  82. package/aws-athena/lib/athena.generated.js +1 -1
  83. package/aws-auditmanager/lib/auditmanager.generated.js +1 -1
  84. package/aws-autoscaling/lib/aspects/require-imdsv2-aspect.js +1 -1
  85. package/aws-autoscaling/lib/auto-scaling-group.js +1 -1
  86. package/aws-autoscaling/lib/autoscaling.generated.js +1 -1
  87. package/aws-autoscaling/lib/lifecycle-hook.js +1 -1
  88. package/aws-autoscaling/lib/schedule.js +1 -1
  89. package/aws-autoscaling/lib/scheduled-action.js +1 -1
  90. package/aws-autoscaling/lib/step-scaling-action.js +1 -1
  91. package/aws-autoscaling/lib/step-scaling-policy.js +1 -1
  92. package/aws-autoscaling/lib/target-tracking-scaling-policy.js +1 -1
  93. package/aws-autoscaling/lib/volume.js +1 -1
  94. package/aws-autoscaling/lib/warm-pool.js +1 -1
  95. package/aws-autoscaling-hooktargets/lib/lambda-hook.js +1 -1
  96. package/aws-autoscaling-hooktargets/lib/queue-hook.js +1 -1
  97. package/aws-autoscaling-hooktargets/lib/topic-hook.js +1 -1
  98. package/aws-autoscalingplans/lib/autoscalingplans.generated.js +1 -1
  99. package/aws-backup/lib/backup.generated.js +1 -1
  100. package/aws-backup/lib/plan.js +1 -1
  101. package/aws-backup/lib/resource.js +1 -1
  102. package/aws-backup/lib/rule.js +1 -1
  103. package/aws-backup/lib/selection.js +1 -1
  104. package/aws-backup/lib/vault.js +1 -1
  105. package/aws-batch/lib/batch.generated.js +1 -1
  106. package/aws-billingconductor/lib/billingconductor.generated.js +1 -1
  107. package/aws-budgets/lib/budgets.generated.js +1 -1
  108. package/aws-cassandra/lib/cassandra.generated.js +1 -1
  109. package/aws-ce/lib/ce.generated.js +1 -1
  110. package/aws-certificatemanager/lib/certificate.js +1 -1
  111. package/aws-certificatemanager/lib/certificatemanager.generated.js +1 -1
  112. package/aws-certificatemanager/lib/dns-validated-certificate.js +1 -1
  113. package/aws-certificatemanager/lib/private-certificate.js +1 -1
  114. package/aws-chatbot/lib/chatbot.generated.js +1 -1
  115. package/aws-chatbot/lib/slack-channel-configuration.js +1 -1
  116. package/aws-cloud9/lib/cloud9.generated.js +1 -1
  117. package/aws-cloudformation/lib/cloudformation.generated.js +1 -1
  118. package/aws-cloudformation/lib/custom-resource.js +1 -1
  119. package/aws-cloudformation/lib/nested-stack.js +1 -1
  120. package/aws-cloudfront/lib/cache-policy.js +1 -1
  121. package/aws-cloudfront/lib/cloudfront.generated.js +1 -1
  122. package/aws-cloudfront/lib/distribution.js +1 -1
  123. package/aws-cloudfront/lib/experimental/edge-function.js +1 -1
  124. package/aws-cloudfront/lib/function.js +1 -1
  125. package/aws-cloudfront/lib/geo-restriction.js +1 -1
  126. package/aws-cloudfront/lib/key-group.js +1 -1
  127. package/aws-cloudfront/lib/origin-access-identity.js +1 -1
  128. package/aws-cloudfront/lib/origin-request-policy.js +1 -1
  129. package/aws-cloudfront/lib/origin.js +1 -1
  130. package/aws-cloudfront/lib/public-key.js +1 -1
  131. package/aws-cloudfront/lib/response-headers-policy.js +1 -1
  132. package/aws-cloudfront/lib/web-distribution.js +2 -2
  133. package/aws-cloudfront-origins/lib/http-origin.js +1 -1
  134. package/aws-cloudfront-origins/lib/load-balancer-origin.js +1 -1
  135. package/aws-cloudfront-origins/lib/origin-group.js +1 -1
  136. package/aws-cloudfront-origins/lib/rest-api-origin.js +1 -1
  137. package/aws-cloudfront-origins/lib/s3-origin.js +1 -1
  138. package/aws-cloudtrail/lib/cloudtrail.generated.js +1 -1
  139. package/aws-cloudtrail/lib/cloudtrail.js +1 -1
  140. package/aws-cloudwatch/lib/alarm-base.js +1 -1
  141. package/aws-cloudwatch/lib/alarm-rule.js +1 -1
  142. package/aws-cloudwatch/lib/alarm-status-widget.js +1 -1
  143. package/aws-cloudwatch/lib/alarm.js +1 -1
  144. package/aws-cloudwatch/lib/cloudwatch.generated.js +1 -1
  145. package/aws-cloudwatch/lib/composite-alarm.js +1 -1
  146. package/aws-cloudwatch/lib/dashboard.js +1 -1
  147. package/aws-cloudwatch/lib/graph.js +1 -1
  148. package/aws-cloudwatch/lib/layout.js +1 -1
  149. package/aws-cloudwatch/lib/log-query.js +1 -1
  150. package/aws-cloudwatch/lib/metric.js +1 -1
  151. package/aws-cloudwatch/lib/text.js +1 -1
  152. package/aws-cloudwatch/lib/widget.js +1 -1
  153. package/aws-cloudwatch-actions/lib/appscaling.js +1 -1
  154. package/aws-cloudwatch-actions/lib/autoscaling.js +1 -1
  155. package/aws-cloudwatch-actions/lib/ec2.js +1 -1
  156. package/aws-cloudwatch-actions/lib/sns.js +1 -1
  157. package/aws-cloudwatch-actions/lib/ssm.js +1 -1
  158. package/aws-codeartifact/lib/codeartifact.generated.js +1 -1
  159. package/aws-codebuild/lib/artifacts.js +1 -1
  160. package/aws-codebuild/lib/build-spec.js +1 -1
  161. package/aws-codebuild/lib/cache.js +1 -1
  162. package/aws-codebuild/lib/codebuild.generated.js +1 -1
  163. package/aws-codebuild/lib/events.js +1 -1
  164. package/aws-codebuild/lib/file-location.js +1 -1
  165. package/aws-codebuild/lib/linux-arm-build-image.js +1 -1
  166. package/aws-codebuild/lib/linux-gpu-build-image.js +1 -1
  167. package/aws-codebuild/lib/pipeline-project.js +1 -1
  168. package/aws-codebuild/lib/project.js +1 -1
  169. package/aws-codebuild/lib/report-group.js +1 -1
  170. package/aws-codebuild/lib/source-credentials.js +1 -1
  171. package/aws-codebuild/lib/source.js +1 -1
  172. package/aws-codebuild/lib/untrusted-code-boundary-policy.js +1 -1
  173. package/aws-codecommit/lib/code.js +1 -1
  174. package/aws-codecommit/lib/codecommit.generated.js +1 -1
  175. package/aws-codecommit/lib/events.js +1 -1
  176. package/aws-codecommit/lib/repository.js +1 -1
  177. package/aws-codedeploy/lib/base-deployment-config.js +1 -1
  178. package/aws-codedeploy/lib/codedeploy.generated.js +1 -1
  179. package/aws-codedeploy/lib/ecs/application.js +1 -1
  180. package/aws-codedeploy/lib/ecs/deployment-config.js +1 -1
  181. package/aws-codedeploy/lib/ecs/deployment-group.js +1 -1
  182. package/aws-codedeploy/lib/host-health-config.js +1 -1
  183. package/aws-codedeploy/lib/lambda/application.js +1 -1
  184. package/aws-codedeploy/lib/lambda/custom-deployment-config.js +1 -1
  185. package/aws-codedeploy/lib/lambda/deployment-config.js +1 -1
  186. package/aws-codedeploy/lib/lambda/deployment-group.js +1 -1
  187. package/aws-codedeploy/lib/server/application.js +1 -1
  188. package/aws-codedeploy/lib/server/deployment-config.js +1 -1
  189. package/aws-codedeploy/lib/server/deployment-group.js +1 -1
  190. package/aws-codedeploy/lib/server/load-balancer.js +1 -1
  191. package/aws-codedeploy/lib/traffic-routing-config.js +1 -1
  192. package/aws-codeguruprofiler/lib/codeguruprofiler.generated.js +1 -1
  193. package/aws-codeguruprofiler/lib/profiling-group.js +1 -1
  194. package/aws-codegurureviewer/lib/codegurureviewer.generated.js +1 -1
  195. package/aws-codepipeline/lib/action.js +1 -1
  196. package/aws-codepipeline/lib/artifact.js +1 -1
  197. package/aws-codepipeline/lib/codepipeline.generated.js +1 -1
  198. package/aws-codepipeline/lib/custom-action-registration.js +1 -1
  199. package/aws-codepipeline/lib/pipeline.js +1 -1
  200. package/aws-codepipeline-actions/lib/action.js +1 -1
  201. package/aws-codepipeline-actions/lib/alexa-ask/deploy-action.js +1 -1
  202. package/aws-codepipeline-actions/lib/bitbucket/source-action.js +1 -1
  203. package/aws-codepipeline-actions/lib/cloudformation/pipeline-actions.js +1 -1
  204. package/aws-codepipeline-actions/lib/cloudformation/stackinstances-action.js +1 -1
  205. package/aws-codepipeline-actions/lib/cloudformation/stackset-action.js +1 -1
  206. package/aws-codepipeline-actions/lib/cloudformation/stackset-types.js +1 -1
  207. package/aws-codepipeline-actions/lib/codebuild/build-action.js +1 -1
  208. package/aws-codepipeline-actions/lib/codecommit/source-action.js +1 -1
  209. package/aws-codepipeline-actions/lib/codedeploy/ecs-deploy-action.js +1 -1
  210. package/aws-codepipeline-actions/lib/codedeploy/server-deploy-action.js +1 -1
  211. package/aws-codepipeline-actions/lib/codestar-connections/source-action.js +1 -1
  212. package/aws-codepipeline-actions/lib/ecr/source-action.js +1 -1
  213. package/aws-codepipeline-actions/lib/ecs/deploy-action.js +1 -1
  214. package/aws-codepipeline-actions/lib/elastic-beanstalk/deploy-action.js +1 -1
  215. package/aws-codepipeline-actions/lib/github/source-action.js +1 -1
  216. package/aws-codepipeline-actions/lib/jenkins/jenkins-action.js +1 -1
  217. package/aws-codepipeline-actions/lib/jenkins/jenkins-provider.js +1 -1
  218. package/aws-codepipeline-actions/lib/lambda/invoke-action.js +1 -1
  219. package/aws-codepipeline-actions/lib/manual-approval-action.js +1 -1
  220. package/aws-codepipeline-actions/lib/s3/deploy-action.js +1 -1
  221. package/aws-codepipeline-actions/lib/s3/source-action.js +1 -1
  222. package/aws-codepipeline-actions/lib/servicecatalog/deploy-action-beta1.js +1 -1
  223. package/aws-codepipeline-actions/lib/stepfunctions/invoke-action.js +1 -1
  224. package/aws-codestar/lib/codestar.generated.js +1 -1
  225. package/aws-codestarconnections/lib/codestarconnections.generated.js +1 -1
  226. package/aws-codestarnotifications/lib/codestarnotifications.generated.js +1 -1
  227. package/aws-codestarnotifications/lib/notification-rule.js +1 -1
  228. package/aws-cognito/lib/cognito.generated.js +1 -1
  229. package/aws-cognito/lib/user-pool-attr.js +1 -1
  230. package/aws-cognito/lib/user-pool-client.js +1 -1
  231. package/aws-cognito/lib/user-pool-domain.js +1 -1
  232. package/aws-cognito/lib/user-pool-email.js +1 -1
  233. package/aws-cognito/lib/user-pool-idp.js +1 -1
  234. package/aws-cognito/lib/user-pool-idps/amazon.js +1 -1
  235. package/aws-cognito/lib/user-pool-idps/apple.js +1 -1
  236. package/aws-cognito/lib/user-pool-idps/base.js +1 -1
  237. package/aws-cognito/lib/user-pool-idps/facebook.js +1 -1
  238. package/aws-cognito/lib/user-pool-idps/google.js +1 -1
  239. package/aws-cognito/lib/user-pool-idps/oidc.js +1 -1
  240. package/aws-cognito/lib/user-pool-idps/saml.js +1 -1
  241. package/aws-cognito/lib/user-pool-resource-server.js +1 -1
  242. package/aws-cognito/lib/user-pool.js +1 -1
  243. package/aws-config/lib/config.generated.js +1 -1
  244. package/aws-config/lib/managed-rules.js +1 -1
  245. package/aws-config/lib/rule.js +1 -1
  246. package/aws-connect/lib/connect.generated.js +1 -1
  247. package/aws-connectcampaigns/lib/connectcampaigns.generated.js +1 -1
  248. package/aws-controltower/lib/controltower.generated.js +1 -1
  249. package/aws-cur/lib/cur.generated.js +1 -1
  250. package/aws-customerprofiles/lib/customerprofiles.generated.js +1 -1
  251. package/aws-databrew/lib/databrew.generated.js +1 -1
  252. package/aws-datapipeline/lib/datapipeline.generated.js +1 -1
  253. package/aws-datasync/lib/datasync.generated.js +1 -1
  254. package/aws-dax/lib/dax.generated.js +1 -1
  255. package/aws-detective/lib/detective.generated.js +1 -1
  256. package/aws-devopsguru/lib/devopsguru.generated.js +1 -1
  257. package/aws-directoryservice/lib/directoryservice.generated.js +1 -1
  258. package/aws-dlm/lib/dlm.generated.js +1 -1
  259. package/aws-dms/lib/dms.generated.js +1 -1
  260. package/aws-docdb/lib/cluster.js +1 -1
  261. package/aws-docdb/lib/database-secret.js +1 -1
  262. package/aws-docdb/lib/docdb.generated.js +1 -1
  263. package/aws-docdb/lib/endpoint.js +1 -1
  264. package/aws-docdb/lib/instance.js +1 -1
  265. package/aws-docdb/lib/parameter-group.js +1 -1
  266. package/aws-dynamodb/lib/dynamodb.generated.js +1 -1
  267. package/aws-dynamodb/lib/table.js +1 -1
  268. package/aws-ec2/lib/aspects/require-imdsv2-aspect.js +1 -1
  269. package/aws-ec2/lib/bastion-host.js +1 -1
  270. package/aws-ec2/lib/cfn-init-elements.js +1 -1
  271. package/aws-ec2/lib/cfn-init.js +1 -1
  272. package/aws-ec2/lib/client-vpn-authorization-rule.js +1 -1
  273. package/aws-ec2/lib/client-vpn-endpoint.js +1 -1
  274. package/aws-ec2/lib/client-vpn-route.js +1 -1
  275. package/aws-ec2/lib/connections.js +1 -1
  276. package/aws-ec2/lib/ec2.generated.js +1 -1
  277. package/aws-ec2/lib/instance-types.js +1 -1
  278. package/aws-ec2/lib/instance.js +1 -1
  279. package/aws-ec2/lib/ip-addresses.js +1 -1
  280. package/aws-ec2/lib/launch-template.js +1 -1
  281. package/aws-ec2/lib/machine-image.js +1 -1
  282. package/aws-ec2/lib/nat.js +1 -1
  283. package/aws-ec2/lib/network-acl-types.js +1 -1
  284. package/aws-ec2/lib/network-acl.js +1 -1
  285. package/aws-ec2/lib/peer.js +1 -1
  286. package/aws-ec2/lib/port.js +1 -1
  287. package/aws-ec2/lib/security-group.js +1 -1
  288. package/aws-ec2/lib/subnet.js +1 -1
  289. package/aws-ec2/lib/user-data.js +3 -3
  290. package/aws-ec2/lib/volume.js +1 -1
  291. package/aws-ec2/lib/vpc-endpoint-service.js +1 -1
  292. package/aws-ec2/lib/vpc-endpoint.js +1 -1
  293. package/aws-ec2/lib/vpc-flow-logs.js +1 -1
  294. package/aws-ec2/lib/vpc.js +1 -1
  295. package/aws-ec2/lib/vpn.js +1 -1
  296. package/aws-ecr/lib/auth-token.js +1 -1
  297. package/aws-ecr/lib/ecr.generated.js +1 -1
  298. package/aws-ecr/lib/repository.js +1 -1
  299. package/aws-ecr-assets/lib/image-asset.js +2 -2
  300. package/aws-ecr-assets/lib/tarball-asset.js +1 -1
  301. package/aws-ecs/lib/amis.js +1 -1
  302. package/aws-ecs/lib/base/base-service.js +1 -1
  303. package/aws-ecs/lib/base/scalable-task-count.js +1 -1
  304. package/aws-ecs/lib/base/task-definition.js +1 -1
  305. package/aws-ecs/lib/cluster.js +1 -1
  306. package/aws-ecs/lib/container-definition.js +1 -1
  307. package/aws-ecs/lib/container-image.js +1 -1
  308. package/aws-ecs/lib/ec2/ec2-service.js +1 -1
  309. package/aws-ecs/lib/ec2/ec2-task-definition.js +1 -1
  310. package/aws-ecs/lib/ecs.generated.js +1 -1
  311. package/aws-ecs/lib/environment-file.js +1 -1
  312. package/aws-ecs/lib/external/external-service.js +1 -1
  313. package/aws-ecs/lib/external/external-task-definition.js +1 -1
  314. package/aws-ecs/lib/fargate/fargate-service.js +1 -1
  315. package/aws-ecs/lib/fargate/fargate-task-definition.js +1 -1
  316. package/aws-ecs/lib/firelens-log-router.js +1 -1
  317. package/aws-ecs/lib/images/asset-image.js +1 -1
  318. package/aws-ecs/lib/images/ecr.js +1 -1
  319. package/aws-ecs/lib/images/repository.js +1 -1
  320. package/aws-ecs/lib/images/tag-parameter-container-image.js +1 -1
  321. package/aws-ecs/lib/linux-parameters.js +1 -1
  322. package/aws-ecs/lib/log-drivers/aws-log-driver.js +1 -1
  323. package/aws-ecs/lib/log-drivers/firelens-log-driver.js +1 -1
  324. package/aws-ecs/lib/log-drivers/fluentd-log-driver.js +1 -1
  325. package/aws-ecs/lib/log-drivers/gelf-log-driver.js +1 -1
  326. package/aws-ecs/lib/log-drivers/generic-log-driver.js +1 -1
  327. package/aws-ecs/lib/log-drivers/journald-log-driver.js +1 -1
  328. package/aws-ecs/lib/log-drivers/json-file-log-driver.js +1 -1
  329. package/aws-ecs/lib/log-drivers/log-driver.js +1 -1
  330. package/aws-ecs/lib/log-drivers/log-drivers.js +1 -1
  331. package/aws-ecs/lib/log-drivers/splunk-log-driver.js +1 -1
  332. package/aws-ecs/lib/log-drivers/syslog-log-driver.js +1 -1
  333. package/aws-ecs/lib/placement.js +1 -1
  334. package/aws-ecs/lib/proxy-configuration/app-mesh-proxy-configuration.js +1 -1
  335. package/aws-ecs/lib/proxy-configuration/proxy-configuration.js +1 -1
  336. package/aws-ecs/lib/proxy-configuration/proxy-configurations.js +1 -1
  337. package/aws-ecs/lib/runtime-platform.js +1 -1
  338. package/aws-ecs-patterns/lib/base/application-load-balanced-service-base.js +1 -1
  339. package/aws-ecs-patterns/lib/base/application-multiple-target-groups-service-base.js +1 -1
  340. package/aws-ecs-patterns/lib/base/network-load-balanced-service-base.js +1 -1
  341. package/aws-ecs-patterns/lib/base/network-multiple-target-groups-service-base.js +1 -1
  342. package/aws-ecs-patterns/lib/base/queue-processing-service-base.js +1 -1
  343. package/aws-ecs-patterns/lib/base/scheduled-task-base.js +1 -1
  344. package/aws-ecs-patterns/lib/ecs/application-load-balanced-ecs-service.js +1 -1
  345. package/aws-ecs-patterns/lib/ecs/application-multiple-target-groups-ecs-service.js +1 -1
  346. package/aws-ecs-patterns/lib/ecs/network-load-balanced-ecs-service.js +1 -1
  347. package/aws-ecs-patterns/lib/ecs/network-multiple-target-groups-ecs-service.js +1 -1
  348. package/aws-ecs-patterns/lib/ecs/queue-processing-ecs-service.js +1 -1
  349. package/aws-ecs-patterns/lib/ecs/scheduled-ecs-task.js +1 -1
  350. package/aws-ecs-patterns/lib/fargate/application-load-balanced-fargate-service.js +1 -1
  351. package/aws-ecs-patterns/lib/fargate/application-multiple-target-groups-fargate-service.js +1 -1
  352. package/aws-ecs-patterns/lib/fargate/network-load-balanced-fargate-service.js +1 -1
  353. package/aws-ecs-patterns/lib/fargate/network-multiple-target-groups-fargate-service.js +1 -1
  354. package/aws-ecs-patterns/lib/fargate/queue-processing-fargate-service.js +1 -1
  355. package/aws-ecs-patterns/lib/fargate/scheduled-fargate-task.js +1 -1
  356. package/aws-efs/lib/access-point.js +1 -1
  357. package/aws-efs/lib/efs-file-system.js +1 -1
  358. package/aws-efs/lib/efs.generated.js +1 -1
  359. package/aws-eks/lib/alb-controller.js +1 -1
  360. package/aws-eks/lib/aws-auth.js +1 -1
  361. package/aws-eks/lib/cluster.js +1 -1
  362. package/aws-eks/lib/eks.generated.js +1 -1
  363. package/aws-eks/lib/fargate-cluster.js +1 -1
  364. package/aws-eks/lib/fargate-profile.js +1 -1
  365. package/aws-eks/lib/helm-chart.js +1 -1
  366. package/aws-eks/lib/k8s-manifest.js +1 -1
  367. package/aws-eks/lib/k8s-object-value.js +1 -1
  368. package/aws-eks/lib/k8s-patch.js +1 -1
  369. package/aws-eks/lib/kubectl-provider.js +1 -1
  370. package/aws-eks/lib/managed-nodegroup.js +1 -1
  371. package/aws-eks/lib/oidc-provider.js +1 -1
  372. package/aws-eks/lib/service-account.js +1 -1
  373. package/aws-elasticache/lib/elasticache.generated.js +1 -1
  374. package/aws-elasticbeanstalk/lib/elasticbeanstalk.generated.js +1 -1
  375. package/aws-elasticloadbalancing/lib/elasticloadbalancing.generated.js +1 -1
  376. package/aws-elasticloadbalancing/lib/load-balancer.js +1 -1
  377. package/aws-elasticloadbalancingv2/lib/alb/application-listener-action.js +1 -1
  378. package/aws-elasticloadbalancingv2/lib/alb/application-listener-certificate.js +1 -1
  379. package/aws-elasticloadbalancingv2/lib/alb/application-listener-rule.js +1 -1
  380. package/aws-elasticloadbalancingv2/lib/alb/application-listener.js +1 -1
  381. package/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.js +1 -1
  382. package/aws-elasticloadbalancingv2/lib/alb/application-target-group.js +1 -1
  383. package/aws-elasticloadbalancingv2/lib/alb/conditions.js +1 -1
  384. package/aws-elasticloadbalancingv2/lib/elasticloadbalancingv2.generated.js +1 -1
  385. package/aws-elasticloadbalancingv2/lib/nlb/network-listener-action.js +1 -1
  386. package/aws-elasticloadbalancingv2/lib/nlb/network-listener.js +1 -1
  387. package/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.js +1 -1
  388. package/aws-elasticloadbalancingv2/lib/nlb/network-target-group.js +1 -1
  389. package/aws-elasticloadbalancingv2/lib/shared/base-listener.js +1 -1
  390. package/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.js +1 -1
  391. package/aws-elasticloadbalancingv2/lib/shared/base-target-group.js +1 -1
  392. package/aws-elasticloadbalancingv2/lib/shared/listener-certificate.js +1 -1
  393. package/aws-elasticloadbalancingv2/lib/shared/load-balancer-targets.js +1 -1
  394. package/aws-elasticloadbalancingv2-actions/lib/cognito-action.js +1 -1
  395. package/aws-elasticloadbalancingv2-targets/lib/alb-target.js +1 -1
  396. package/aws-elasticloadbalancingv2-targets/lib/instance-target.js +1 -1
  397. package/aws-elasticloadbalancingv2-targets/lib/ip-target.js +1 -1
  398. package/aws-elasticloadbalancingv2-targets/lib/lambda-target.js +1 -1
  399. package/aws-elasticsearch/lib/domain.js +1 -1
  400. package/aws-elasticsearch/lib/elasticsearch.generated.js +1 -1
  401. package/aws-emr/lib/emr.generated.js +1 -1
  402. package/aws-emrcontainers/lib/emrcontainers.generated.js +1 -1
  403. package/aws-emrserverless/lib/emrserverless.generated.js +1 -1
  404. package/aws-events/lib/api-destination.js +1 -1
  405. package/aws-events/lib/archive.js +1 -1
  406. package/aws-events/lib/connection.js +1 -1
  407. package/aws-events/lib/event-bus.js +1 -1
  408. package/aws-events/lib/event-pattern.js +1 -1
  409. package/aws-events/lib/events.generated.js +1 -1
  410. package/aws-events/lib/input.js +2 -2
  411. package/aws-events/lib/rule.js +1 -1
  412. package/aws-events/lib/schedule.js +1 -1
  413. package/aws-events-targets/lib/api-destination.js +1 -1
  414. package/aws-events-targets/lib/api-gateway.js +1 -1
  415. package/aws-events-targets/lib/aws-api.js +1 -1
  416. package/aws-events-targets/lib/batch.js +1 -1
  417. package/aws-events-targets/lib/codebuild.js +1 -1
  418. package/aws-events-targets/lib/codepipeline.js +1 -1
  419. package/aws-events-targets/lib/ecs-task.js +1 -1
  420. package/aws-events-targets/lib/event-bus.js +1 -1
  421. package/aws-events-targets/lib/kinesis-firehose-stream.js +1 -1
  422. package/aws-events-targets/lib/kinesis-stream.js +1 -1
  423. package/aws-events-targets/lib/lambda.js +1 -1
  424. package/aws-events-targets/lib/log-group.js +2 -2
  425. package/aws-events-targets/lib/sns.js +1 -1
  426. package/aws-events-targets/lib/sqs.js +1 -1
  427. package/aws-events-targets/lib/state-machine.js +1 -1
  428. package/aws-eventschemas/lib/eventschemas.generated.js +1 -1
  429. package/aws-evidently/lib/evidently.generated.js +1 -1
  430. package/aws-finspace/lib/finspace.generated.js +1 -1
  431. package/aws-fis/lib/fis.generated.js +1 -1
  432. package/aws-fms/lib/fms.generated.js +1 -1
  433. package/aws-forecast/lib/forecast.generated.js +1 -1
  434. package/aws-frauddetector/lib/frauddetector.generated.js +1 -1
  435. package/aws-fsx/lib/file-system.js +1 -1
  436. package/aws-fsx/lib/fsx.generated.js +1 -1
  437. package/aws-fsx/lib/lustre-file-system.js +1 -1
  438. package/aws-fsx/lib/maintenance-time.js +1 -1
  439. package/aws-gamelift/lib/gamelift.generated.js +1 -1
  440. package/aws-globalaccelerator/lib/accelerator.js +1 -1
  441. package/aws-globalaccelerator/lib/endpoint-group.js +1 -1
  442. package/aws-globalaccelerator/lib/endpoint.js +1 -1
  443. package/aws-globalaccelerator/lib/globalaccelerator.generated.js +1 -1
  444. package/aws-globalaccelerator/lib/listener.js +1 -1
  445. package/aws-globalaccelerator-endpoints/lib/alb.js +1 -1
  446. package/aws-globalaccelerator-endpoints/lib/eip.js +1 -1
  447. package/aws-globalaccelerator-endpoints/lib/instance.js +1 -1
  448. package/aws-globalaccelerator-endpoints/lib/nlb.js +1 -1
  449. package/aws-glue/lib/glue.generated.js +1 -1
  450. package/aws-greengrass/lib/greengrass.generated.js +1 -1
  451. package/aws-greengrassv2/lib/greengrassv2.generated.js +1 -1
  452. package/aws-groundstation/lib/groundstation.generated.js +1 -1
  453. package/aws-guardduty/lib/guardduty.generated.js +1 -1
  454. package/aws-healthlake/lib/healthlake.generated.js +1 -1
  455. package/aws-iam/lib/access-key.js +1 -1
  456. package/aws-iam/lib/grant.js +1 -1
  457. package/aws-iam/lib/group.js +1 -1
  458. package/aws-iam/lib/iam.generated.js +1 -1
  459. package/aws-iam/lib/lazy-role.js +1 -1
  460. package/aws-iam/lib/managed-policy.js +1 -1
  461. package/aws-iam/lib/oidc-provider.js +1 -1
  462. package/aws-iam/lib/permissions-boundary.js +1 -1
  463. package/aws-iam/lib/policy-document.js +1 -1
  464. package/aws-iam/lib/policy-statement.js +1 -1
  465. package/aws-iam/lib/policy.js +1 -1
  466. package/aws-iam/lib/principals.js +1 -1
  467. package/aws-iam/lib/role.js +1 -1
  468. package/aws-iam/lib/saml-provider.js +1 -1
  469. package/aws-iam/lib/unknown-principal.js +1 -1
  470. package/aws-iam/lib/user.js +1 -1
  471. package/aws-identitystore/lib/identitystore.generated.js +1 -1
  472. package/aws-imagebuilder/lib/imagebuilder.generated.js +1 -1
  473. package/aws-inspector/lib/inspector.generated.js +1 -1
  474. package/aws-inspectorv2/lib/inspectorv2.generated.js +1 -1
  475. package/aws-iot/lib/iot.generated.js +1 -1
  476. package/aws-iot1click/lib/iot1click.generated.js +1 -1
  477. package/aws-iotanalytics/lib/iotanalytics.generated.js +1 -1
  478. package/aws-iotcoredeviceadvisor/lib/iotcoredeviceadvisor.generated.js +1 -1
  479. package/aws-iotevents/lib/iotevents.generated.js +1 -1
  480. package/aws-iotfleethub/lib/iotfleethub.generated.js +1 -1
  481. package/aws-iotfleetwise/lib/iotfleetwise.generated.js +1 -1
  482. package/aws-iotsitewise/lib/iotsitewise.generated.js +1 -1
  483. package/aws-iotthingsgraph/lib/iotthingsgraph.generated.js +1 -1
  484. package/aws-iottwinmaker/lib/iottwinmaker.generated.js +1 -1
  485. package/aws-iotwireless/lib/iotwireless.generated.js +1 -1
  486. package/aws-ivs/lib/ivs.generated.js +1 -1
  487. package/aws-kafkaconnect/lib/kafkaconnect.generated.js +1 -1
  488. package/aws-kendra/lib/kendra.generated.js +1 -1
  489. package/aws-kinesis/lib/kinesis.generated.js +1 -1
  490. package/aws-kinesis/lib/stream.js +1 -1
  491. package/aws-kinesisanalytics/lib/kinesisanalytics.generated.js +1 -1
  492. package/aws-kinesisanalytics/lib/kinesisanalyticsv2.generated.js +1 -1
  493. package/aws-kinesisanalyticsv2/lib/kinesisanalyticsv2.generated.js +1 -1
  494. package/aws-kinesisfirehose/lib/kinesisfirehose.generated.js +1 -1
  495. package/aws-kinesisvideo/lib/kinesisvideo.generated.js +1 -1
  496. package/aws-kms/lib/alias.js +1 -1
  497. package/aws-kms/lib/key.js +1 -1
  498. package/aws-kms/lib/kms.generated.js +1 -1
  499. package/aws-kms/lib/via-service-principal.js +1 -1
  500. package/aws-lakeformation/lib/lakeformation.generated.js +1 -1
  501. package/aws-lambda/lib/alias.js +1 -1
  502. package/aws-lambda/lib/architecture.js +1 -1
  503. package/aws-lambda/lib/code-signing-config.js +1 -1
  504. package/aws-lambda/lib/code.js +1 -1
  505. package/aws-lambda/lib/event-invoke-config.js +1 -1
  506. package/aws-lambda/lib/event-source-filter.js +1 -1
  507. package/aws-lambda/lib/event-source-mapping.js +1 -1
  508. package/aws-lambda/lib/filesystem.js +1 -1
  509. package/aws-lambda/lib/function-base.js +1 -1
  510. package/aws-lambda/lib/function-url.js +1 -1
  511. package/aws-lambda/lib/function.js +1 -1
  512. package/aws-lambda/lib/handler.js +1 -1
  513. package/aws-lambda/lib/image-function.js +1 -1
  514. package/aws-lambda/lib/lambda-insights.js +1 -1
  515. package/aws-lambda/lib/lambda-version.js +1 -1
  516. package/aws-lambda/lib/lambda.generated.js +1 -1
  517. package/aws-lambda/lib/layers.js +1 -1
  518. package/aws-lambda/lib/log-retention.js +1 -1
  519. package/aws-lambda/lib/runtime.js +1 -1
  520. package/aws-lambda/lib/singleton-lambda.js +1 -1
  521. package/aws-lambda-destinations/lib/event-bridge.js +1 -1
  522. package/aws-lambda-destinations/lib/lambda.js +1 -1
  523. package/aws-lambda-destinations/lib/sns.js +1 -1
  524. package/aws-lambda-destinations/lib/sqs.js +1 -1
  525. package/aws-lambda-event-sources/lib/api.js +1 -1
  526. package/aws-lambda-event-sources/lib/dynamodb.js +1 -1
  527. package/aws-lambda-event-sources/lib/kafka.js +1 -1
  528. package/aws-lambda-event-sources/lib/kinesis.js +1 -1
  529. package/aws-lambda-event-sources/lib/s3.js +1 -1
  530. package/aws-lambda-event-sources/lib/sns-dlq.js +1 -1
  531. package/aws-lambda-event-sources/lib/sns.js +1 -1
  532. package/aws-lambda-event-sources/lib/sqs-dlq.js +1 -1
  533. package/aws-lambda-event-sources/lib/sqs.js +1 -1
  534. package/aws-lambda-event-sources/lib/stream.js +1 -1
  535. package/aws-lambda-nodejs/lib/function.js +1 -1
  536. package/aws-lex/lib/lex.generated.js +1 -1
  537. package/aws-licensemanager/lib/licensemanager.generated.js +1 -1
  538. package/aws-lightsail/lib/lightsail.generated.js +1 -1
  539. package/aws-location/lib/location.generated.js +1 -1
  540. package/aws-logs/lib/cross-account-destination.js +1 -1
  541. package/aws-logs/lib/log-group.js +1 -1
  542. package/aws-logs/lib/log-retention.js +1 -1
  543. package/aws-logs/lib/log-stream.js +1 -1
  544. package/aws-logs/lib/logs.generated.js +1 -1
  545. package/aws-logs/lib/metric-filter.js +1 -1
  546. package/aws-logs/lib/pattern.js +1 -1
  547. package/aws-logs/lib/policy.js +1 -1
  548. package/aws-logs/lib/query-definition.js +1 -1
  549. package/aws-logs/lib/subscription-filter.js +1 -1
  550. package/aws-logs-destinations/lib/kinesis.js +1 -1
  551. package/aws-logs-destinations/lib/lambda.js +1 -1
  552. package/aws-lookoutequipment/lib/lookoutequipment.generated.js +1 -1
  553. package/aws-lookoutmetrics/lib/lookoutmetrics.generated.js +1 -1
  554. package/aws-lookoutvision/lib/lookoutvision.generated.js +1 -1
  555. package/aws-m2/lib/m2.generated.js +1 -1
  556. package/aws-macie/lib/macie.generated.js +1 -1
  557. package/aws-managedblockchain/lib/managedblockchain.generated.js +1 -1
  558. package/aws-mediaconnect/lib/mediaconnect.generated.js +1 -1
  559. package/aws-mediaconvert/lib/mediaconvert.generated.js +1 -1
  560. package/aws-medialive/lib/medialive.generated.js +1 -1
  561. package/aws-mediapackage/lib/mediapackage.generated.js +1 -1
  562. package/aws-mediastore/lib/mediastore.generated.js +1 -1
  563. package/aws-mediatailor/lib/mediatailor.generated.js +1 -1
  564. package/aws-memorydb/lib/memorydb.generated.js +1 -1
  565. package/aws-msk/lib/msk.generated.js +1 -1
  566. package/aws-mwaa/lib/mwaa.generated.js +1 -1
  567. package/aws-neptune/lib/neptune.generated.js +1 -1
  568. package/aws-networkfirewall/lib/networkfirewall.generated.js +1 -1
  569. package/aws-networkmanager/lib/networkmanager.generated.js +1 -1
  570. package/aws-nimblestudio/lib/nimblestudio.generated.js +1 -1
  571. package/aws-opensearchservice/lib/domain.js +1 -1
  572. package/aws-opensearchservice/lib/opensearchservice.generated.js +1 -1
  573. package/aws-opensearchservice/lib/version.js +1 -1
  574. package/aws-opsworks/lib/opsworks.generated.js +1 -1
  575. package/aws-opsworkscm/lib/opsworkscm.generated.js +1 -1
  576. package/aws-organizations/lib/organizations.generated.js +1 -1
  577. package/aws-panorama/lib/panorama.generated.js +1 -1
  578. package/aws-personalize/lib/personalize.generated.js +1 -1
  579. package/aws-pinpoint/lib/pinpoint.generated.js +1 -1
  580. package/aws-pinpointemail/lib/pinpointemail.generated.js +1 -1
  581. package/aws-qldb/lib/qldb.generated.js +1 -1
  582. package/aws-quicksight/lib/quicksight.generated.js +1 -1
  583. package/aws-ram/lib/ram.generated.js +1 -1
  584. package/aws-rds/lib/cluster-engine.js +1 -1
  585. package/aws-rds/lib/cluster.js +1 -1
  586. package/aws-rds/lib/database-secret.js +1 -1
  587. package/aws-rds/lib/endpoint.js +1 -1
  588. package/aws-rds/lib/instance-engine.js +1 -1
  589. package/aws-rds/lib/instance.js +1 -1
  590. package/aws-rds/lib/option-group.js +1 -1
  591. package/aws-rds/lib/parameter-group.js +1 -1
  592. package/aws-rds/lib/props.js +1 -1
  593. package/aws-rds/lib/proxy.js +1 -1
  594. package/aws-rds/lib/rds.generated.js +1 -1
  595. package/aws-rds/lib/serverless-cluster.js +1 -1
  596. package/aws-rds/lib/subnet-group.js +1 -1
  597. package/aws-redshift/lib/redshift.generated.js +1 -1
  598. package/aws-redshiftserverless/lib/redshiftserverless.generated.js +1 -1
  599. package/aws-refactorspaces/lib/refactorspaces.generated.js +1 -1
  600. package/aws-rekognition/lib/rekognition.generated.js +1 -1
  601. package/aws-resiliencehub/lib/resiliencehub.generated.js +1 -1
  602. package/aws-resourceexplorer2/lib/resourceexplorer2.generated.js +1 -1
  603. package/aws-resourcegroups/lib/resourcegroups.generated.js +1 -1
  604. package/aws-robomaker/lib/robomaker.generated.js +1 -1
  605. package/aws-rolesanywhere/lib/rolesanywhere.generated.js +1 -1
  606. package/aws-route53/lib/hosted-zone.js +1 -1
  607. package/aws-route53/lib/record-set.js +1 -1
  608. package/aws-route53/lib/route53.generated.js +1 -1
  609. package/aws-route53/lib/vpc-endpoint-service-domain-name.js +1 -1
  610. package/aws-route53-patterns/lib/website-redirect.js +1 -1
  611. package/aws-route53-targets/lib/api-gateway-domain-name.js +1 -1
  612. package/aws-route53-targets/lib/api-gatewayv2-domain-name.js +1 -1
  613. package/aws-route53-targets/lib/bucket-website-target.js +1 -1
  614. package/aws-route53-targets/lib/classic-load-balancer-target.js +1 -1
  615. package/aws-route53-targets/lib/cloudfront-target.js +1 -1
  616. package/aws-route53-targets/lib/elastic-beanstalk-environment-target.js +1 -1
  617. package/aws-route53-targets/lib/global-accelerator-target.js +1 -1
  618. package/aws-route53-targets/lib/interface-vpc-endpoint-target.js +1 -1
  619. package/aws-route53-targets/lib/load-balancer-target.js +1 -1
  620. package/aws-route53-targets/lib/route53-record.js +1 -1
  621. package/aws-route53-targets/lib/userpool-domain.js +1 -1
  622. package/aws-route53recoverycontrol/lib/route53recoverycontrol.generated.js +1 -1
  623. package/aws-route53recoveryreadiness/lib/route53recoveryreadiness.generated.js +1 -1
  624. package/aws-route53resolver/lib/route53resolver.generated.js +1 -1
  625. package/aws-rum/lib/rum.generated.js +1 -1
  626. package/aws-s3/lib/bucket-policy.js +1 -1
  627. package/aws-s3/lib/bucket.js +1 -1
  628. package/aws-s3/lib/rule.js +1 -1
  629. package/aws-s3/lib/s3.generated.js +1 -1
  630. package/aws-s3-assets/lib/asset.js +1 -1
  631. package/aws-s3-deployment/lib/bucket-deployment.js +1 -1
  632. package/aws-s3-deployment/lib/source.js +1 -1
  633. package/aws-s3-notifications/lib/lambda.js +1 -1
  634. package/aws-s3-notifications/lib/sns.js +1 -1
  635. package/aws-s3-notifications/lib/sqs.js +1 -1
  636. package/aws-s3objectlambda/lib/s3objectlambda.generated.js +1 -1
  637. package/aws-s3outposts/lib/s3outposts.generated.js +1 -1
  638. package/aws-sagemaker/lib/sagemaker.generated.js +1 -1
  639. package/aws-sam/lib/sam.generated.js +1 -1
  640. package/aws-scheduler/lib/scheduler.generated.js +1 -1
  641. package/aws-sdb/lib/sdb.generated.js +1 -1
  642. package/aws-secretsmanager/lib/policy.js +1 -1
  643. package/aws-secretsmanager/lib/rotation-schedule.js +1 -1
  644. package/aws-secretsmanager/lib/secret-rotation.js +1 -1
  645. package/aws-secretsmanager/lib/secret.js +1 -1
  646. package/aws-secretsmanager/lib/secretsmanager.generated.js +1 -1
  647. package/aws-securityhub/lib/securityhub.generated.js +1 -1
  648. package/aws-servicecatalog/lib/cloudformation-template.js +1 -1
  649. package/aws-servicecatalog/lib/portfolio.js +1 -1
  650. package/aws-servicecatalog/lib/product-stack-history.js +1 -1
  651. package/aws-servicecatalog/lib/product-stack.js +1 -1
  652. package/aws-servicecatalog/lib/product.js +1 -1
  653. package/aws-servicecatalog/lib/servicecatalog.generated.js +1 -1
  654. package/aws-servicecatalog/lib/tag-options.js +1 -1
  655. package/aws-servicecatalogappregistry/lib/servicecatalogappregistry.generated.js +1 -1
  656. package/aws-servicediscovery/lib/alias-target-instance.js +1 -1
  657. package/aws-servicediscovery/lib/cname-instance.js +1 -1
  658. package/aws-servicediscovery/lib/http-namespace.js +1 -1
  659. package/aws-servicediscovery/lib/instance.js +1 -1
  660. package/aws-servicediscovery/lib/ip-instance.js +1 -1
  661. package/aws-servicediscovery/lib/non-ip-instance.js +1 -1
  662. package/aws-servicediscovery/lib/private-dns-namespace.js +1 -1
  663. package/aws-servicediscovery/lib/public-dns-namespace.js +1 -1
  664. package/aws-servicediscovery/lib/service.js +1 -1
  665. package/aws-servicediscovery/lib/servicediscovery.generated.js +1 -1
  666. package/aws-ses/lib/configuration-set.js +1 -1
  667. package/aws-ses/lib/dedicated-ip-pool.js +1 -1
  668. package/aws-ses/lib/email-identity.js +1 -1
  669. package/aws-ses/lib/receipt-filter.js +1 -1
  670. package/aws-ses/lib/receipt-rule-set.js +1 -1
  671. package/aws-ses/lib/receipt-rule.js +1 -1
  672. package/aws-ses/lib/ses.generated.js +1 -1
  673. package/aws-ses-actions/lib/add-header.js +1 -1
  674. package/aws-ses-actions/lib/bounce.js +1 -1
  675. package/aws-ses-actions/lib/lambda.js +1 -1
  676. package/aws-ses-actions/lib/s3.js +1 -1
  677. package/aws-ses-actions/lib/sns.js +1 -1
  678. package/aws-ses-actions/lib/stop.js +1 -1
  679. package/aws-signer/lib/signer.generated.js +1 -1
  680. package/aws-signer/lib/signing-profile.js +1 -1
  681. package/aws-sns/lib/policy.js +1 -1
  682. package/aws-sns/lib/sns.generated.js +1 -1
  683. package/aws-sns/lib/subscription-filter.js +1 -1
  684. package/aws-sns/lib/subscription.js +1 -1
  685. package/aws-sns/lib/topic-base.js +1 -1
  686. package/aws-sns/lib/topic.js +1 -1
  687. package/aws-sns-subscriptions/lib/email.js +1 -1
  688. package/aws-sns-subscriptions/lib/lambda.js +1 -1
  689. package/aws-sns-subscriptions/lib/sms.js +1 -1
  690. package/aws-sns-subscriptions/lib/sqs.js +1 -1
  691. package/aws-sns-subscriptions/lib/url.js +1 -1
  692. package/aws-sqs/lib/policy.js +1 -1
  693. package/aws-sqs/lib/queue-base.js +1 -1
  694. package/aws-sqs/lib/queue.js +1 -1
  695. package/aws-sqs/lib/sqs.generated.js +1 -1
  696. package/aws-ssm/lib/parameter.js +1 -1
  697. package/aws-ssm/lib/ssm.generated.js +1 -1
  698. package/aws-ssmcontacts/lib/ssmcontacts.generated.js +1 -1
  699. package/aws-ssmincidents/lib/ssmincidents.generated.js +1 -1
  700. package/aws-sso/lib/sso.generated.js +1 -1
  701. package/aws-stepfunctions/lib/activity.js +1 -1
  702. package/aws-stepfunctions/lib/chain.js +1 -1
  703. package/aws-stepfunctions/lib/condition.js +1 -1
  704. package/aws-stepfunctions/lib/fields.js +1 -1
  705. package/aws-stepfunctions/lib/input.js +1 -1
  706. package/aws-stepfunctions/lib/state-graph.js +1 -1
  707. package/aws-stepfunctions/lib/state-machine-fragment.js +1 -1
  708. package/aws-stepfunctions/lib/state-machine.js +1 -1
  709. package/aws-stepfunctions/lib/state-transition-metrics.js +1 -1
  710. package/aws-stepfunctions/lib/states/choice.js +1 -1
  711. package/aws-stepfunctions/lib/states/custom-state.js +1 -1
  712. package/aws-stepfunctions/lib/states/fail.js +1 -1
  713. package/aws-stepfunctions/lib/states/map.js +1 -1
  714. package/aws-stepfunctions/lib/states/parallel.js +1 -1
  715. package/aws-stepfunctions/lib/states/pass.js +1 -1
  716. package/aws-stepfunctions/lib/states/state.js +1 -1
  717. package/aws-stepfunctions/lib/states/succeed.js +1 -1
  718. package/aws-stepfunctions/lib/states/task-base.js +1 -1
  719. package/aws-stepfunctions/lib/states/task.js +1 -1
  720. package/aws-stepfunctions/lib/states/wait.js +1 -1
  721. package/aws-stepfunctions/lib/stepfunctions.generated.js +1 -1
  722. package/aws-stepfunctions/lib/types.js +1 -1
  723. package/aws-stepfunctions-tasks/lib/apigateway/call-http-api.js +1 -1
  724. package/aws-stepfunctions-tasks/lib/apigateway/call-rest-api.js +1 -1
  725. package/aws-stepfunctions-tasks/lib/athena/get-query-execution.js +1 -1
  726. package/aws-stepfunctions-tasks/lib/athena/get-query-results.js +1 -1
  727. package/aws-stepfunctions-tasks/lib/athena/start-query-execution.js +1 -1
  728. package/aws-stepfunctions-tasks/lib/athena/stop-query-execution.js +1 -1
  729. package/aws-stepfunctions-tasks/lib/aws-sdk/call-aws-service.js +1 -1
  730. package/aws-stepfunctions-tasks/lib/batch/run-batch-job.js +1 -1
  731. package/aws-stepfunctions-tasks/lib/batch/submit-job.js +1 -1
  732. package/aws-stepfunctions-tasks/lib/codebuild/start-build.js +1 -1
  733. package/aws-stepfunctions-tasks/lib/databrew/start-job-run.js +1 -1
  734. package/aws-stepfunctions-tasks/lib/dynamodb/delete-item.js +1 -1
  735. package/aws-stepfunctions-tasks/lib/dynamodb/get-item.js +1 -1
  736. package/aws-stepfunctions-tasks/lib/dynamodb/put-item.js +1 -1
  737. package/aws-stepfunctions-tasks/lib/dynamodb/shared-types.js +1 -1
  738. package/aws-stepfunctions-tasks/lib/dynamodb/update-item.js +1 -1
  739. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-ec2-task.js +1 -1
  740. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-fargate-task.js +1 -1
  741. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-task-base.js +1 -1
  742. package/aws-stepfunctions-tasks/lib/ecs/run-task.js +1 -1
  743. package/aws-stepfunctions-tasks/lib/eks/call.js +1 -1
  744. package/aws-stepfunctions-tasks/lib/emr/emr-add-step.js +1 -1
  745. package/aws-stepfunctions-tasks/lib/emr/emr-cancel-step.js +1 -1
  746. package/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.js +1 -1
  747. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-fleet-by-name.js +1 -1
  748. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-group-by-name.js +1 -1
  749. package/aws-stepfunctions-tasks/lib/emr/emr-set-cluster-termination-protection.js +1 -1
  750. package/aws-stepfunctions-tasks/lib/emr/emr-terminate-cluster.js +1 -1
  751. package/aws-stepfunctions-tasks/lib/emrcontainers/create-virtual-cluster.js +1 -1
  752. package/aws-stepfunctions-tasks/lib/emrcontainers/delete-virtual-cluster.js +1 -1
  753. package/aws-stepfunctions-tasks/lib/emrcontainers/start-job-run.js +1 -1
  754. package/aws-stepfunctions-tasks/lib/evaluate-expression.js +1 -1
  755. package/aws-stepfunctions-tasks/lib/eventbridge/put-events.js +1 -1
  756. package/aws-stepfunctions-tasks/lib/glue/run-glue-job-task.js +1 -1
  757. package/aws-stepfunctions-tasks/lib/glue/start-job-run.js +1 -1
  758. package/aws-stepfunctions-tasks/lib/invoke-activity.js +1 -1
  759. package/aws-stepfunctions-tasks/lib/lambda/invoke-function.js +1 -1
  760. package/aws-stepfunctions-tasks/lib/lambda/invoke.js +1 -1
  761. package/aws-stepfunctions-tasks/lib/lambda/run-lambda-task.js +1 -1
  762. package/aws-stepfunctions-tasks/lib/sagemaker/base-types.js +1 -1
  763. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint-config.js +1 -1
  764. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint.js +1 -1
  765. package/aws-stepfunctions-tasks/lib/sagemaker/create-model.js +1 -1
  766. package/aws-stepfunctions-tasks/lib/sagemaker/create-training-job.js +1 -1
  767. package/aws-stepfunctions-tasks/lib/sagemaker/create-transform-job.js +1 -1
  768. package/aws-stepfunctions-tasks/lib/sagemaker/update-endpoint.js +1 -1
  769. package/aws-stepfunctions-tasks/lib/sns/publish-to-topic.js +1 -1
  770. package/aws-stepfunctions-tasks/lib/sns/publish.js +1 -1
  771. package/aws-stepfunctions-tasks/lib/sqs/send-message.js +1 -1
  772. package/aws-stepfunctions-tasks/lib/sqs/send-to-queue.js +1 -1
  773. package/aws-stepfunctions-tasks/lib/start-execution.js +1 -1
  774. package/aws-stepfunctions-tasks/lib/stepfunctions/invoke-activity.js +1 -1
  775. package/aws-stepfunctions-tasks/lib/stepfunctions/start-execution.js +1 -1
  776. package/aws-supportapp/lib/supportapp.generated.js +1 -1
  777. package/aws-synthetics/lib/synthetics.generated.js +1 -1
  778. package/aws-timestream/lib/timestream.generated.js +1 -1
  779. package/aws-transfer/lib/transfer.generated.js +1 -1
  780. package/aws-voiceid/lib/voiceid.generated.js +1 -1
  781. package/aws-waf/lib/waf.generated.js +1 -1
  782. package/aws-wafregional/lib/wafregional.generated.js +1 -1
  783. package/aws-wafv2/lib/wafv2.generated.js +1 -1
  784. package/aws-wisdom/lib/wisdom.generated.js +1 -1
  785. package/aws-workspaces/lib/workspaces.generated.js +1 -1
  786. package/aws-xray/lib/xray.generated.js +1 -1
  787. package/cloud-assembly-schema/lib/manifest.js +1 -1
  788. package/cloudformation-include/lib/cfn-include.js +1 -1
  789. package/core/lib/annotations.js +1 -1
  790. package/core/lib/app.js +1 -1
  791. package/core/lib/arn.js +1 -1
  792. package/core/lib/aspect.js +1 -1
  793. package/core/lib/asset-staging.js +1 -1
  794. package/core/lib/bundling.js +1 -1
  795. package/core/lib/cfn-codedeploy-blue-green-hook.js +1 -1
  796. package/core/lib/cfn-condition.js +1 -1
  797. package/core/lib/cfn-dynamic-reference.js +1 -1
  798. package/core/lib/cfn-element.js +1 -1
  799. package/core/lib/cfn-fn.js +1 -1
  800. package/core/lib/cfn-hook.js +1 -1
  801. package/core/lib/cfn-include.js +1 -1
  802. package/core/lib/cfn-json.js +1 -1
  803. package/core/lib/cfn-mapping.js +1 -1
  804. package/core/lib/cfn-output.js +1 -1
  805. package/core/lib/cfn-parameter.js +1 -1
  806. package/core/lib/cfn-pseudo.js +1 -1
  807. package/core/lib/cfn-resource.js +1 -1
  808. package/core/lib/cfn-rule.js +1 -1
  809. package/core/lib/cloudformation.generated.js +1 -1
  810. package/core/lib/context-provider.js +1 -1
  811. package/core/lib/custom-resource-provider/custom-resource-provider.js +1 -1
  812. package/core/lib/custom-resource.js +1 -1
  813. package/core/lib/duration.js +1 -1
  814. package/core/lib/expiration.js +1 -1
  815. package/core/lib/feature-flags.js +1 -1
  816. package/core/lib/fs/ignore.js +1 -1
  817. package/core/lib/fs/index.js +1 -1
  818. package/core/lib/lazy.js +1 -1
  819. package/core/lib/names.js +1 -1
  820. package/core/lib/nested-stack.js +1 -1
  821. package/core/lib/physical-name.js +1 -1
  822. package/core/lib/private/intrinsic.js +1 -1
  823. package/core/lib/reference.js +1 -1
  824. package/core/lib/resolvable.js +2 -2
  825. package/core/lib/resource.js +1 -1
  826. package/core/lib/runtime.js +2 -2
  827. package/core/lib/secret-value.js +1 -1
  828. package/core/lib/size.js +1 -1
  829. package/core/lib/stack-synthesizers/asset-manifest-builder.js +1 -1
  830. package/core/lib/stack-synthesizers/bootstrapless-synthesizer.js +1 -1
  831. package/core/lib/stack-synthesizers/cli-credentials-synthesizer.js +1 -1
  832. package/core/lib/stack-synthesizers/default-synthesizer.js +1 -1
  833. package/core/lib/stack-synthesizers/legacy.js +1 -1
  834. package/core/lib/stack-synthesizers/nested.js +1 -1
  835. package/core/lib/stack-synthesizers/stack-synthesizer.js +1 -1
  836. package/core/lib/stack.js +1 -1
  837. package/core/lib/stage.js +1 -1
  838. package/core/lib/string-fragments.js +1 -1
  839. package/core/lib/tag-aspect.js +1 -1
  840. package/core/lib/tag-manager.js +1 -1
  841. package/core/lib/token.js +1 -1
  842. package/core/lib/tree.js +1 -1
  843. package/custom-resources/lib/aws-custom-resource/aws-custom-resource.js +1 -1
  844. package/custom-resources/lib/provider-framework/provider.js +1 -1
  845. package/cx-api/lib/artifacts/asset-manifest-artifact.js +1 -1
  846. package/cx-api/lib/artifacts/cloudformation-artifact.js +1 -1
  847. package/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js +1 -1
  848. package/cx-api/lib/artifacts/tree-cloud-artifact.js +1 -1
  849. package/cx-api/lib/cloud-artifact.js +1 -1
  850. package/cx-api/lib/cloud-assembly.js +1 -1
  851. package/cx-api/lib/environment.js +1 -1
  852. package/cx-api/lib/placeholders.js +1 -1
  853. package/lambda-layer-awscli/lib/awscli-layer.js +1 -1
  854. package/lambda-layer-kubectl/lib/kubectl-layer.js +1 -1
  855. package/lambda-layer-node-proxy-agent/lib/node-proxy-agent-layer.js +1 -1
  856. package/package.json +253 -253
  857. package/pipelines/lib/blueprint/file-set.js +1 -1
  858. package/pipelines/lib/blueprint/manual-approval.js +1 -1
  859. package/pipelines/lib/blueprint/shell-step.js +1 -1
  860. package/pipelines/lib/blueprint/stack-deployment.js +1 -1
  861. package/pipelines/lib/blueprint/stage-deployment.js +1 -1
  862. package/pipelines/lib/blueprint/step.js +1 -1
  863. package/pipelines/lib/blueprint/wave.js +1 -1
  864. package/pipelines/lib/codepipeline/artifact-map.js +1 -1
  865. package/pipelines/lib/codepipeline/codebuild-step.js +1 -1
  866. package/pipelines/lib/codepipeline/codepipeline-source.js +1 -1
  867. package/pipelines/lib/codepipeline/codepipeline.js +1 -1
  868. package/pipelines/lib/codepipeline/confirm-permissions-broadening.js +1 -1
  869. package/pipelines/lib/docker-credentials.js +1 -1
  870. package/pipelines/lib/legacy/actions/deploy-cdk-stack-action.js +1 -1
  871. package/pipelines/lib/legacy/actions/publish-assets-action.js +1 -1
  872. package/pipelines/lib/legacy/actions/update-pipeline-action.js +1 -1
  873. package/pipelines/lib/legacy/pipeline.js +1 -1
  874. package/pipelines/lib/legacy/stage.js +1 -1
  875. package/pipelines/lib/legacy/synths/simple-synth-action.js +1 -1
  876. package/pipelines/lib/legacy/validation/shell-script-action.js +1 -1
  877. package/pipelines/lib/main/pipeline-base.js +1 -1
  878. package/region-info/lib/built-ins.generated.d.ts +1 -1
  879. package/region-info/lib/default.js +1 -1
  880. package/region-info/lib/fact.js +1 -1
  881. package/region-info/lib/region-info.js +1 -1
  882. package/triggers/lib/trigger-function.js +1 -1
  883. package/triggers/lib/trigger.js +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c,_d,_e,_f,_g;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnVirtualService=exports.CfnVirtualRouter=exports.CfnVirtualNode=exports.CfnVirtualGateway=exports.CfnRoute=exports.CfnMesh=exports.CfnGatewayRoute=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnGatewayRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("gatewayRouteName",cdk.validateString)(properties.gatewayRouteName)),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnGatewayRoute_GatewayRouteSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualGatewayName",cdk.requiredValidator)(properties.virtualGatewayName)),errors.collect(cdk.propertyValidator("virtualGatewayName",cdk.validateString)(properties.virtualGatewayName)),errors.wrap('supplied properties not correct for "CfnGatewayRouteProps"')}function cfnGatewayRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoutePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnGatewayRouteGatewayRouteSpecPropertyToCloudFormation(properties.spec),VirtualGatewayName:cdk.stringToCloudFormation(properties.virtualGatewayName),GatewayRouteName:cdk.stringToCloudFormation(properties.gatewayRouteName),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnGatewayRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnGatewayRouteGatewayRouteSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("virtualGatewayName","VirtualGatewayName",cfn_parse.FromCloudFormation.getString(properties.VirtualGatewayName)),ret.addPropertyResult("gatewayRouteName","GatewayRouteName",properties.GatewayRouteName!=null?cfn_parse.FromCloudFormation.getString(properties.GatewayRouteName):void 0),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGatewayRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGatewayRoute),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),cdk.requireProperty(props,"virtualGatewayName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrGatewayRouteName=cdk.Token.asString(this.getAtt("GatewayRouteName")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualGatewayName=cdk.Token.asString(this.getAtt("VirtualGatewayName")),this.meshName=props.meshName,this.spec=props.spec,this.virtualGatewayName=props.virtualGatewayName,this.gatewayRouteName=props.gatewayRouteName,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::GatewayRoute",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGatewayRoutePropsFromCloudFormation(resourceProperties),ret=new CfnGatewayRoute(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,virtualGatewayName:this.virtualGatewayName,gatewayRouteName:this.gatewayRouteName,meshOwner:this.meshOwner,tags:this.tags.renderTags()}}renderProperties(props){return cfnGatewayRoutePropsToCloudFormation(props)}}exports.CfnGatewayRoute=CfnGatewayRoute,_a=JSII_RTTI_SYMBOL_1,CfnGatewayRoute[_a]={fqn:"aws-cdk-lib.aws_appmesh.CfnGatewayRoute",version:"2.51.0"},CfnGatewayRoute.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::GatewayRoute";function CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "GatewayRouteHostnameMatchProperty"')}function cfnGatewayRouteGatewayRouteHostnameMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnGatewayRouteGatewayRouteHostnameMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("defaultTargetHostname",cdk.validateString)(properties.defaultTargetHostname)),errors.wrap('supplied properties not correct for "GatewayRouteHostnameRewriteProperty"')}function cfnGatewayRouteGatewayRouteHostnameRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator(properties).assertSuccess(),{DefaultTargetHostname:cdk.stringToCloudFormation(properties.defaultTargetHostname)}):properties}function CfnGatewayRouteGatewayRouteHostnameRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultTargetHostname","DefaultTargetHostname",properties.DefaultTargetHostname!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultTargetHostname):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteMetadataMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "GatewayRouteMetadataMatchProperty"')}function cfnGatewayRouteGatewayRouteMetadataMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteMetadataMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnGatewayRouteGatewayRouteRangeMatchPropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnGatewayRouteGatewayRouteMetadataMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnGatewayRouteGatewayRouteRangeMatchPropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("end",cdk.requiredValidator)(properties.end)),errors.collect(cdk.propertyValidator("end",cdk.validateNumber)(properties.end)),errors.collect(cdk.propertyValidator("start",cdk.requiredValidator)(properties.start)),errors.collect(cdk.propertyValidator("start",cdk.validateNumber)(properties.start)),errors.wrap('supplied properties not correct for "GatewayRouteRangeMatchProperty"')}function cfnGatewayRouteGatewayRouteRangeMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator(properties).assertSuccess(),{End:cdk.numberToCloudFormation(properties.end),Start:cdk.numberToCloudFormation(properties.start)}):properties}function CfnGatewayRouteGatewayRouteRangeMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("end","End",cfn_parse.FromCloudFormation.getNumber(properties.End)),ret.addPropertyResult("start","Start",cfn_parse.FromCloudFormation.getNumber(properties.Start)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpcRoute",CfnGatewayRoute_GrpcGatewayRoutePropertyValidator)(properties.grpcRoute)),errors.collect(cdk.propertyValidator("http2Route",CfnGatewayRoute_HttpGatewayRoutePropertyValidator)(properties.http2Route)),errors.collect(cdk.propertyValidator("httpRoute",CfnGatewayRoute_HttpGatewayRoutePropertyValidator)(properties.httpRoute)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.wrap('supplied properties not correct for "GatewayRouteSpecProperty"')}function cfnGatewayRouteGatewayRouteSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteSpecPropertyValidator(properties).assertSuccess(),{GrpcRoute:cfnGatewayRouteGrpcGatewayRoutePropertyToCloudFormation(properties.grpcRoute),Http2Route:cfnGatewayRouteHttpGatewayRoutePropertyToCloudFormation(properties.http2Route),HttpRoute:cfnGatewayRouteHttpGatewayRoutePropertyToCloudFormation(properties.httpRoute),Priority:cdk.numberToCloudFormation(properties.priority)}):properties}function CfnGatewayRouteGatewayRouteSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpcRoute","GrpcRoute",properties.GrpcRoute!=null?CfnGatewayRouteGrpcGatewayRoutePropertyFromCloudFormation(properties.GrpcRoute):void 0),ret.addPropertyResult("http2Route","Http2Route",properties.Http2Route!=null?CfnGatewayRouteHttpGatewayRoutePropertyFromCloudFormation(properties.Http2Route):void 0),ret.addPropertyResult("httpRoute","HttpRoute",properties.HttpRoute!=null?CfnGatewayRouteHttpGatewayRoutePropertyFromCloudFormation(properties.HttpRoute):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("virtualService",cdk.requiredValidator)(properties.virtualService)),errors.collect(cdk.propertyValidator("virtualService",CfnGatewayRoute_GatewayRouteVirtualServicePropertyValidator)(properties.virtualService)),errors.wrap('supplied properties not correct for "GatewayRouteTargetProperty"')}function cfnGatewayRouteGatewayRouteTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteTargetPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),VirtualService:cfnGatewayRouteGatewayRouteVirtualServicePropertyToCloudFormation(properties.virtualService)}):properties}function CfnGatewayRouteGatewayRouteTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("virtualService","VirtualService",CfnGatewayRouteGatewayRouteVirtualServicePropertyFromCloudFormation(properties.VirtualService)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteVirtualServicePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.requiredValidator)(properties.virtualServiceName)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.validateString)(properties.virtualServiceName)),errors.wrap('supplied properties not correct for "GatewayRouteVirtualServiceProperty"')}function cfnGatewayRouteGatewayRouteVirtualServicePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteVirtualServicePropertyValidator(properties).assertSuccess(),{VirtualServiceName:cdk.stringToCloudFormation(properties.virtualServiceName)}):properties}function CfnGatewayRouteGatewayRouteVirtualServicePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualServiceName","VirtualServiceName",cfn_parse.FromCloudFormation.getString(properties.VirtualServiceName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnGatewayRoute_GrpcGatewayRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_GrpcGatewayRouteMatchPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteProperty"')}function cfnGatewayRouteGrpcGatewayRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRoutePropertyValidator(properties).assertSuccess(),{Action:cfnGatewayRouteGrpcGatewayRouteActionPropertyToCloudFormation(properties.action),Match:cfnGatewayRouteGrpcGatewayRouteMatchPropertyToCloudFormation(properties.match)}):properties}function CfnGatewayRouteGrpcGatewayRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnGatewayRouteGrpcGatewayRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnGatewayRouteGrpcGatewayRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("rewrite",CfnGatewayRoute_GrpcGatewayRouteRewritePropertyValidator)(properties.rewrite)),errors.collect(cdk.propertyValidator("target",cdk.requiredValidator)(properties.target)),errors.collect(cdk.propertyValidator("target",CfnGatewayRoute_GatewayRouteTargetPropertyValidator)(properties.target)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteActionProperty"')}function cfnGatewayRouteGrpcGatewayRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteActionPropertyValidator(properties).assertSuccess(),{Rewrite:cfnGatewayRouteGrpcGatewayRouteRewritePropertyToCloudFormation(properties.rewrite),Target:cfnGatewayRouteGatewayRouteTargetPropertyToCloudFormation(properties.target)}):properties}function CfnGatewayRouteGrpcGatewayRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("rewrite","Rewrite",properties.Rewrite!=null?CfnGatewayRouteGrpcGatewayRouteRewritePropertyFromCloudFormation(properties.Rewrite):void 0),ret.addPropertyResult("target","Target",CfnGatewayRouteGatewayRouteTargetPropertyFromCloudFormation(properties.Target)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("metadata",cdk.listValidator(CfnGatewayRoute_GrpcGatewayRouteMetadataPropertyValidator))(properties.metadata)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteMatchProperty"')}function cfnGatewayRouteGrpcGatewayRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteMatchPropertyValidator(properties).assertSuccess(),{Hostname:cfnGatewayRouteGatewayRouteHostnameMatchPropertyToCloudFormation(properties.hostname),Metadata:cdk.listMapper(cfnGatewayRouteGrpcGatewayRouteMetadataPropertyToCloudFormation)(properties.metadata),Port:cdk.numberToCloudFormation(properties.port),ServiceName:cdk.stringToCloudFormation(properties.serviceName)}):properties}function CfnGatewayRouteGrpcGatewayRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameMatchPropertyFromCloudFormation(properties.Hostname):void 0),ret.addPropertyResult("metadata","Metadata",properties.Metadata!=null?cfn_parse.FromCloudFormation.getArray(CfnGatewayRouteGrpcGatewayRouteMetadataPropertyFromCloudFormation)(properties.Metadata):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse.FromCloudFormation.getString(properties.ServiceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteMetadataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_GatewayRouteMetadataMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteMetadataProperty"')}function cfnGatewayRouteGrpcGatewayRouteMetadataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteMetadataPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnGatewayRouteGatewayRouteMetadataMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnGatewayRouteGrpcGatewayRouteMetadataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnGatewayRouteGatewayRouteMetadataMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator)(properties.hostname)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteRewriteProperty"')}function cfnGatewayRouteGrpcGatewayRouteRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteRewritePropertyValidator(properties).assertSuccess(),{Hostname:cfnGatewayRouteGatewayRouteHostnameRewritePropertyToCloudFormation(properties.hostname)}):properties}function CfnGatewayRouteGrpcGatewayRouteRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameRewritePropertyFromCloudFormation(properties.Hostname):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnGatewayRoute_HttpGatewayRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_HttpGatewayRouteMatchPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "HttpGatewayRouteProperty"')}function cfnGatewayRouteHttpGatewayRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRoutePropertyValidator(properties).assertSuccess(),{Action:cfnGatewayRouteHttpGatewayRouteActionPropertyToCloudFormation(properties.action),Match:cfnGatewayRouteHttpGatewayRouteMatchPropertyToCloudFormation(properties.match)}):properties}function CfnGatewayRouteHttpGatewayRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnGatewayRouteHttpGatewayRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnGatewayRouteHttpGatewayRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("rewrite",CfnGatewayRoute_HttpGatewayRouteRewritePropertyValidator)(properties.rewrite)),errors.collect(cdk.propertyValidator("target",cdk.requiredValidator)(properties.target)),errors.collect(cdk.propertyValidator("target",CfnGatewayRoute_GatewayRouteTargetPropertyValidator)(properties.target)),errors.wrap('supplied properties not correct for "HttpGatewayRouteActionProperty"')}function cfnGatewayRouteHttpGatewayRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteActionPropertyValidator(properties).assertSuccess(),{Rewrite:cfnGatewayRouteHttpGatewayRouteRewritePropertyToCloudFormation(properties.rewrite),Target:cfnGatewayRouteGatewayRouteTargetPropertyToCloudFormation(properties.target)}):properties}function CfnGatewayRouteHttpGatewayRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("rewrite","Rewrite",properties.Rewrite!=null?CfnGatewayRouteHttpGatewayRouteRewritePropertyFromCloudFormation(properties.Rewrite):void 0),ret.addPropertyResult("target","Target",CfnGatewayRouteGatewayRouteTargetPropertyFromCloudFormation(properties.Target)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteHeaderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_HttpGatewayRouteHeaderMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "HttpGatewayRouteHeaderProperty"')}function cfnGatewayRouteHttpGatewayRouteHeaderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteHeaderPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnGatewayRouteHttpGatewayRouteHeaderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteHeaderMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "HttpGatewayRouteHeaderMatchProperty"')}function cfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteHeaderMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnGatewayRouteGatewayRouteRangeMatchPropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnGatewayRouteGatewayRouteRangeMatchPropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("headers",cdk.listValidator(CfnGatewayRoute_HttpGatewayRouteHeaderPropertyValidator))(properties.headers)),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("method",cdk.validateString)(properties.method)),errors.collect(cdk.propertyValidator("path",CfnGatewayRoute_HttpPathMatchPropertyValidator)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("queryParameters",cdk.listValidator(CfnGatewayRoute_QueryParameterPropertyValidator))(properties.queryParameters)),errors.wrap('supplied properties not correct for "HttpGatewayRouteMatchProperty"')}function cfnGatewayRouteHttpGatewayRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteMatchPropertyValidator(properties).assertSuccess(),{Headers:cdk.listMapper(cfnGatewayRouteHttpGatewayRouteHeaderPropertyToCloudFormation)(properties.headers),Hostname:cfnGatewayRouteGatewayRouteHostnameMatchPropertyToCloudFormation(properties.hostname),Method:cdk.stringToCloudFormation(properties.method),Path:cfnGatewayRouteHttpPathMatchPropertyToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Prefix:cdk.stringToCloudFormation(properties.prefix),QueryParameters:cdk.listMapper(cfnGatewayRouteQueryParameterPropertyToCloudFormation)(properties.queryParameters)}):properties}function CfnGatewayRouteHttpGatewayRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse.FromCloudFormation.getArray(CfnGatewayRouteHttpGatewayRouteHeaderPropertyFromCloudFormation)(properties.Headers):void 0),ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameMatchPropertyFromCloudFormation(properties.Hostname):void 0),ret.addPropertyResult("method","Method",properties.Method!=null?cfn_parse.FromCloudFormation.getString(properties.Method):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?CfnGatewayRouteHttpPathMatchPropertyFromCloudFormation(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("queryParameters","QueryParameters",properties.QueryParameters!=null?cfn_parse.FromCloudFormation.getArray(CfnGatewayRouteQueryParameterPropertyFromCloudFormation)(properties.QueryParameters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRoutePathRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.wrap('supplied properties not correct for "HttpGatewayRoutePathRewriteProperty"')}function cfnGatewayRouteHttpGatewayRoutePathRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRoutePathRewritePropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact)}):properties}function CfnGatewayRouteHttpGatewayRoutePathRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRoutePrefixRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("defaultPrefix",cdk.validateString)(properties.defaultPrefix)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "HttpGatewayRoutePrefixRewriteProperty"')}function cfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRoutePrefixRewritePropertyValidator(properties).assertSuccess(),{DefaultPrefix:cdk.stringToCloudFormation(properties.defaultPrefix),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultPrefix","DefaultPrefix",properties.DefaultPrefix!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultPrefix):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse.FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("path",CfnGatewayRoute_HttpGatewayRoutePathRewritePropertyValidator)(properties.path)),errors.collect(cdk.propertyValidator("prefix",CfnGatewayRoute_HttpGatewayRoutePrefixRewritePropertyValidator)(properties.prefix)),errors.wrap('supplied properties not correct for "HttpGatewayRouteRewriteProperty"')}function cfnGatewayRouteHttpGatewayRouteRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteRewritePropertyValidator(properties).assertSuccess(),{Hostname:cfnGatewayRouteGatewayRouteHostnameRewritePropertyToCloudFormation(properties.hostname),Path:cfnGatewayRouteHttpGatewayRoutePathRewritePropertyToCloudFormation(properties.path),Prefix:cfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyToCloudFormation(properties.prefix)}):properties}function CfnGatewayRouteHttpGatewayRouteRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameRewritePropertyFromCloudFormation(properties.Hostname):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?CfnGatewayRouteHttpGatewayRoutePathRewritePropertyFromCloudFormation(properties.Path):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?CfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyFromCloudFormation(properties.Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpPathMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.wrap('supplied properties not correct for "HttpPathMatchProperty"')}function cfnGatewayRouteHttpPathMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpPathMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Regex:cdk.stringToCloudFormation(properties.regex)}):properties}function CfnGatewayRouteHttpPathMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpQueryParameterMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.wrap('supplied properties not correct for "HttpQueryParameterMatchProperty"')}function cfnGatewayRouteHttpQueryParameterMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpQueryParameterMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact)}):properties}function CfnGatewayRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_QueryParameterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_HttpQueryParameterMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "QueryParameterProperty"')}function cfnGatewayRouteQueryParameterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_QueryParameterPropertyValidator(properties).assertSuccess(),{Match:cfnGatewayRouteHttpQueryParameterMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnGatewayRouteQueryParameterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",properties.Match!=null?CfnGatewayRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMeshPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("spec",CfnMesh_MeshSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnMeshProps"')}function cfnMeshPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMeshPropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnMeshMeshSpecPropertyToCloudFormation(properties.spec),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnMeshPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",properties.MeshName!=null?cfn_parse.FromCloudFormation.getString(properties.MeshName):void 0),ret.addPropertyResult("spec","Spec",properties.Spec!=null?CfnMeshMeshSpecPropertyFromCloudFormation(properties.Spec):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnMesh extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnMesh.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnMeshProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnMesh),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.meshName=props.meshName,this.spec=props.spec,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::Mesh",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnMeshPropsFromCloudFormation(resourceProperties),ret=new CfnMesh(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnMesh.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,tags:this.tags.renderTags()}}renderProperties(props){return cfnMeshPropsToCloudFormation(props)}}exports.CfnMesh=CfnMesh,_b=JSII_RTTI_SYMBOL_1,CfnMesh[_b]={fqn:"aws-cdk-lib.aws_appmesh.CfnMesh",version:"2.51.0"},CfnMesh.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::Mesh";function CfnMesh_EgressFilterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("type",cdk.requiredValidator)(properties.type)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.wrap('supplied properties not correct for "EgressFilterProperty"')}function cfnMeshEgressFilterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMesh_EgressFilterPropertyValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnMeshEgressFilterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMesh_MeshServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipPreference",cdk.validateString)(properties.ipPreference)),errors.wrap('supplied properties not correct for "MeshServiceDiscoveryProperty"')}function cfnMeshMeshServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMesh_MeshServiceDiscoveryPropertyValidator(properties).assertSuccess(),{IpPreference:cdk.stringToCloudFormation(properties.ipPreference)}):properties}function CfnMeshMeshServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipPreference","IpPreference",properties.IpPreference!=null?cfn_parse.FromCloudFormation.getString(properties.IpPreference):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMesh_MeshSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("egressFilter",CfnMesh_EgressFilterPropertyValidator)(properties.egressFilter)),errors.collect(cdk.propertyValidator("serviceDiscovery",CfnMesh_MeshServiceDiscoveryPropertyValidator)(properties.serviceDiscovery)),errors.wrap('supplied properties not correct for "MeshSpecProperty"')}function cfnMeshMeshSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMesh_MeshSpecPropertyValidator(properties).assertSuccess(),{EgressFilter:cfnMeshEgressFilterPropertyToCloudFormation(properties.egressFilter),ServiceDiscovery:cfnMeshMeshServiceDiscoveryPropertyToCloudFormation(properties.serviceDiscovery)}):properties}function CfnMeshMeshSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("egressFilter","EgressFilter",properties.EgressFilter!=null?CfnMeshEgressFilterPropertyFromCloudFormation(properties.EgressFilter):void 0),ret.addPropertyResult("serviceDiscovery","ServiceDiscovery",properties.ServiceDiscovery!=null?CfnMeshMeshServiceDiscoveryPropertyFromCloudFormation(properties.ServiceDiscovery):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("routeName",cdk.validateString)(properties.routeName)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnRoute_RouteSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.requiredValidator)(properties.virtualRouterName)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.validateString)(properties.virtualRouterName)),errors.wrap('supplied properties not correct for "CfnRouteProps"')}function cfnRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoutePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnRouteRouteSpecPropertyToCloudFormation(properties.spec),VirtualRouterName:cdk.stringToCloudFormation(properties.virtualRouterName),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),RouteName:cdk.stringToCloudFormation(properties.routeName),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnRouteRouteSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("virtualRouterName","VirtualRouterName",cfn_parse.FromCloudFormation.getString(properties.VirtualRouterName)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("routeName","RouteName",properties.RouteName!=null?cfn_parse.FromCloudFormation.getString(properties.RouteName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRoute),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),cdk.requireProperty(props,"virtualRouterName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrRouteName=cdk.Token.asString(this.getAtt("RouteName")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualRouterName=cdk.Token.asString(this.getAtt("VirtualRouterName")),this.meshName=props.meshName,this.spec=props.spec,this.virtualRouterName=props.virtualRouterName,this.meshOwner=props.meshOwner,this.routeName=props.routeName,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::Route",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRoutePropsFromCloudFormation(resourceProperties),ret=new CfnRoute(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,virtualRouterName:this.virtualRouterName,meshOwner:this.meshOwner,routeName:this.routeName,tags:this.tags.renderTags()}}renderProperties(props){return cfnRoutePropsToCloudFormation(props)}}exports.CfnRoute=CfnRoute,_c=JSII_RTTI_SYMBOL_1,CfnRoute[_c]={fqn:"aws-cdk-lib.aws_appmesh.CfnRoute",version:"2.51.0"},CfnRoute.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::Route";function CfnRoute_DurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("unit",cdk.requiredValidator)(properties.unit)),errors.collect(cdk.propertyValidator("unit",cdk.validateString)(properties.unit)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "DurationProperty"')}function cfnRouteDurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_DurationPropertyValidator(properties).assertSuccess(),{Unit:cdk.stringToCloudFormation(properties.unit),Value:cdk.numberToCloudFormation(properties.value)}):properties}function CfnRouteDurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("unit","Unit",cfn_parse.FromCloudFormation.getString(properties.Unit)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getNumber(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRetryPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpcRetryEvents",cdk.listValidator(cdk.validateString))(properties.grpcRetryEvents)),errors.collect(cdk.propertyValidator("httpRetryEvents",cdk.listValidator(cdk.validateString))(properties.httpRetryEvents)),errors.collect(cdk.propertyValidator("maxRetries",cdk.requiredValidator)(properties.maxRetries)),errors.collect(cdk.propertyValidator("maxRetries",cdk.validateNumber)(properties.maxRetries)),errors.collect(cdk.propertyValidator("perRetryTimeout",cdk.requiredValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("perRetryTimeout",CfnRoute_DurationPropertyValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("tcpRetryEvents",cdk.listValidator(cdk.validateString))(properties.tcpRetryEvents)),errors.wrap('supplied properties not correct for "GrpcRetryPolicyProperty"')}function cfnRouteGrpcRetryPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRetryPolicyPropertyValidator(properties).assertSuccess(),{GrpcRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.grpcRetryEvents),HttpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.httpRetryEvents),MaxRetries:cdk.numberToCloudFormation(properties.maxRetries),PerRetryTimeout:cfnRouteDurationPropertyToCloudFormation(properties.perRetryTimeout),TcpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.tcpRetryEvents)}):properties}function CfnRouteGrpcRetryPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpcRetryEvents","GrpcRetryEvents",properties.GrpcRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GrpcRetryEvents):void 0),ret.addPropertyResult("httpRetryEvents","HttpRetryEvents",properties.HttpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.HttpRetryEvents):void 0),ret.addPropertyResult("maxRetries","MaxRetries",cfn_parse.FromCloudFormation.getNumber(properties.MaxRetries)),ret.addPropertyResult("perRetryTimeout","PerRetryTimeout",CfnRouteDurationPropertyFromCloudFormation(properties.PerRetryTimeout)),ret.addPropertyResult("tcpRetryEvents","TcpRetryEvents",properties.TcpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.TcpRetryEvents):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnRoute_GrpcRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnRoute_GrpcRouteMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("retryPolicy",CfnRoute_GrpcRetryPolicyPropertyValidator)(properties.retryPolicy)),errors.collect(cdk.propertyValidator("timeout",CfnRoute_GrpcTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "GrpcRouteProperty"')}function cfnRouteGrpcRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRoutePropertyValidator(properties).assertSuccess(),{Action:cfnRouteGrpcRouteActionPropertyToCloudFormation(properties.action),Match:cfnRouteGrpcRouteMatchPropertyToCloudFormation(properties.match),RetryPolicy:cfnRouteGrpcRetryPolicyPropertyToCloudFormation(properties.retryPolicy),Timeout:cfnRouteGrpcTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnRouteGrpcRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnRouteGrpcRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnRouteGrpcRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addPropertyResult("retryPolicy","RetryPolicy",properties.RetryPolicy!=null?CfnRouteGrpcRetryPolicyPropertyFromCloudFormation(properties.RetryPolicy):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnRouteGrpcTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("weightedTargets",cdk.requiredValidator)(properties.weightedTargets)),errors.collect(cdk.propertyValidator("weightedTargets",cdk.listValidator(CfnRoute_WeightedTargetPropertyValidator))(properties.weightedTargets)),errors.wrap('supplied properties not correct for "GrpcRouteActionProperty"')}function cfnRouteGrpcRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteActionPropertyValidator(properties).assertSuccess(),{WeightedTargets:cdk.listMapper(cfnRouteWeightedTargetPropertyToCloudFormation)(properties.weightedTargets)}):properties}function CfnRouteGrpcRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("weightedTargets","WeightedTargets",cfn_parse.FromCloudFormation.getArray(CfnRouteWeightedTargetPropertyFromCloudFormation)(properties.WeightedTargets)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("metadata",cdk.listValidator(CfnRoute_GrpcRouteMetadataPropertyValidator))(properties.metadata)),errors.collect(cdk.propertyValidator("methodName",cdk.validateString)(properties.methodName)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.wrap('supplied properties not correct for "GrpcRouteMatchProperty"')}function cfnRouteGrpcRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteMatchPropertyValidator(properties).assertSuccess(),{Metadata:cdk.listMapper(cfnRouteGrpcRouteMetadataPropertyToCloudFormation)(properties.metadata),MethodName:cdk.stringToCloudFormation(properties.methodName),Port:cdk.numberToCloudFormation(properties.port),ServiceName:cdk.stringToCloudFormation(properties.serviceName)}):properties}function CfnRouteGrpcRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("metadata","Metadata",properties.Metadata!=null?cfn_parse.FromCloudFormation.getArray(CfnRouteGrpcRouteMetadataPropertyFromCloudFormation)(properties.Metadata):void 0),ret.addPropertyResult("methodName","MethodName",properties.MethodName!=null?cfn_parse.FromCloudFormation.getString(properties.MethodName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse.FromCloudFormation.getString(properties.ServiceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteMetadataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnRoute_GrpcRouteMetadataMatchMethodPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "GrpcRouteMetadataProperty"')}function cfnRouteGrpcRouteMetadataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteMetadataPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnRouteGrpcRouteMetadataMatchMethodPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnRouteGrpcRouteMetadataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteGrpcRouteMetadataMatchMethodPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteMetadataMatchMethodPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnRoute_MatchRangePropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "GrpcRouteMetadataMatchMethodProperty"')}function cfnRouteGrpcRouteMetadataMatchMethodPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteMetadataMatchMethodPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnRouteMatchRangePropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnRouteGrpcRouteMetadataMatchMethodPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnRouteMatchRangePropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnRoute_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnRoute_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "GrpcTimeoutProperty"')}function cfnRouteGrpcTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnRouteDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnRouteDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnRouteGrpcTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnRouteDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnRouteDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HeaderMatchMethodPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnRoute_MatchRangePropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "HeaderMatchMethodProperty"')}function cfnRouteHeaderMatchMethodPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HeaderMatchMethodPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnRouteMatchRangePropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnRouteHeaderMatchMethodPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnRouteMatchRangePropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpPathMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.wrap('supplied properties not correct for "HttpPathMatchProperty"')}function cfnRouteHttpPathMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpPathMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Regex:cdk.stringToCloudFormation(properties.regex)}):properties}function CfnRouteHttpPathMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpQueryParameterMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.wrap('supplied properties not correct for "HttpQueryParameterMatchProperty"')}function cfnRouteHttpQueryParameterMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpQueryParameterMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact)}):properties}function CfnRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRetryPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("httpRetryEvents",cdk.listValidator(cdk.validateString))(properties.httpRetryEvents)),errors.collect(cdk.propertyValidator("maxRetries",cdk.requiredValidator)(properties.maxRetries)),errors.collect(cdk.propertyValidator("maxRetries",cdk.validateNumber)(properties.maxRetries)),errors.collect(cdk.propertyValidator("perRetryTimeout",cdk.requiredValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("perRetryTimeout",CfnRoute_DurationPropertyValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("tcpRetryEvents",cdk.listValidator(cdk.validateString))(properties.tcpRetryEvents)),errors.wrap('supplied properties not correct for "HttpRetryPolicyProperty"')}function cfnRouteHttpRetryPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRetryPolicyPropertyValidator(properties).assertSuccess(),{HttpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.httpRetryEvents),MaxRetries:cdk.numberToCloudFormation(properties.maxRetries),PerRetryTimeout:cfnRouteDurationPropertyToCloudFormation(properties.perRetryTimeout),TcpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.tcpRetryEvents)}):properties}function CfnRouteHttpRetryPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("httpRetryEvents","HttpRetryEvents",properties.HttpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.HttpRetryEvents):void 0),ret.addPropertyResult("maxRetries","MaxRetries",cfn_parse.FromCloudFormation.getNumber(properties.MaxRetries)),ret.addPropertyResult("perRetryTimeout","PerRetryTimeout",CfnRouteDurationPropertyFromCloudFormation(properties.PerRetryTimeout)),ret.addPropertyResult("tcpRetryEvents","TcpRetryEvents",properties.TcpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.TcpRetryEvents):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnRoute_HttpRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnRoute_HttpRouteMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("retryPolicy",CfnRoute_HttpRetryPolicyPropertyValidator)(properties.retryPolicy)),errors.collect(cdk.propertyValidator("timeout",CfnRoute_HttpTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "HttpRouteProperty"')}function cfnRouteHttpRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRoutePropertyValidator(properties).assertSuccess(),{Action:cfnRouteHttpRouteActionPropertyToCloudFormation(properties.action),Match:cfnRouteHttpRouteMatchPropertyToCloudFormation(properties.match),RetryPolicy:cfnRouteHttpRetryPolicyPropertyToCloudFormation(properties.retryPolicy),Timeout:cfnRouteHttpTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnRouteHttpRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnRouteHttpRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnRouteHttpRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addPropertyResult("retryPolicy","RetryPolicy",properties.RetryPolicy!=null?CfnRouteHttpRetryPolicyPropertyFromCloudFormation(properties.RetryPolicy):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnRouteHttpTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("weightedTargets",cdk.requiredValidator)(properties.weightedTargets)),errors.collect(cdk.propertyValidator("weightedTargets",cdk.listValidator(CfnRoute_WeightedTargetPropertyValidator))(properties.weightedTargets)),errors.wrap('supplied properties not correct for "HttpRouteActionProperty"')}function cfnRouteHttpRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRouteActionPropertyValidator(properties).assertSuccess(),{WeightedTargets:cdk.listMapper(cfnRouteWeightedTargetPropertyToCloudFormation)(properties.weightedTargets)}):properties}function CfnRouteHttpRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("weightedTargets","WeightedTargets",cfn_parse.FromCloudFormation.getArray(CfnRouteWeightedTargetPropertyFromCloudFormation)(properties.WeightedTargets)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRouteHeaderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnRoute_HeaderMatchMethodPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "HttpRouteHeaderProperty"')}function cfnRouteHttpRouteHeaderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRouteHeaderPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnRouteHeaderMatchMethodPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnRouteHttpRouteHeaderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteHeaderMatchMethodPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("headers",cdk.listValidator(CfnRoute_HttpRouteHeaderPropertyValidator))(properties.headers)),errors.collect(cdk.propertyValidator("method",cdk.validateString)(properties.method)),errors.collect(cdk.propertyValidator("path",CfnRoute_HttpPathMatchPropertyValidator)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("queryParameters",cdk.listValidator(CfnRoute_QueryParameterPropertyValidator))(properties.queryParameters)),errors.collect(cdk.propertyValidator("scheme",cdk.validateString)(properties.scheme)),errors.wrap('supplied properties not correct for "HttpRouteMatchProperty"')}function cfnRouteHttpRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRouteMatchPropertyValidator(properties).assertSuccess(),{Headers:cdk.listMapper(cfnRouteHttpRouteHeaderPropertyToCloudFormation)(properties.headers),Method:cdk.stringToCloudFormation(properties.method),Path:cfnRouteHttpPathMatchPropertyToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Prefix:cdk.stringToCloudFormation(properties.prefix),QueryParameters:cdk.listMapper(cfnRouteQueryParameterPropertyToCloudFormation)(properties.queryParameters),Scheme:cdk.stringToCloudFormation(properties.scheme)}):properties}function CfnRouteHttpRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse.FromCloudFormation.getArray(CfnRouteHttpRouteHeaderPropertyFromCloudFormation)(properties.Headers):void 0),ret.addPropertyResult("method","Method",properties.Method!=null?cfn_parse.FromCloudFormation.getString(properties.Method):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?CfnRouteHttpPathMatchPropertyFromCloudFormation(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("queryParameters","QueryParameters",properties.QueryParameters!=null?cfn_parse.FromCloudFormation.getArray(CfnRouteQueryParameterPropertyFromCloudFormation)(properties.QueryParameters):void 0),ret.addPropertyResult("scheme","Scheme",properties.Scheme!=null?cfn_parse.FromCloudFormation.getString(properties.Scheme):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnRoute_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnRoute_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "HttpTimeoutProperty"')}function cfnRouteHttpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnRouteDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnRouteDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnRouteHttpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnRouteDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnRouteDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_MatchRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("end",cdk.requiredValidator)(properties.end)),errors.collect(cdk.propertyValidator("end",cdk.validateNumber)(properties.end)),errors.collect(cdk.propertyValidator("start",cdk.requiredValidator)(properties.start)),errors.collect(cdk.propertyValidator("start",cdk.validateNumber)(properties.start)),errors.wrap('supplied properties not correct for "MatchRangeProperty"')}function cfnRouteMatchRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_MatchRangePropertyValidator(properties).assertSuccess(),{End:cdk.numberToCloudFormation(properties.end),Start:cdk.numberToCloudFormation(properties.start)}):properties}function CfnRouteMatchRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("end","End",cfn_parse.FromCloudFormation.getNumber(properties.End)),ret.addPropertyResult("start","Start",cfn_parse.FromCloudFormation.getNumber(properties.Start)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_QueryParameterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",CfnRoute_HttpQueryParameterMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "QueryParameterProperty"')}function cfnRouteQueryParameterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_QueryParameterPropertyValidator(properties).assertSuccess(),{Match:cfnRouteHttpQueryParameterMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnRouteQueryParameterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_RouteSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpcRoute",CfnRoute_GrpcRoutePropertyValidator)(properties.grpcRoute)),errors.collect(cdk.propertyValidator("http2Route",CfnRoute_HttpRoutePropertyValidator)(properties.http2Route)),errors.collect(cdk.propertyValidator("httpRoute",CfnRoute_HttpRoutePropertyValidator)(properties.httpRoute)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("tcpRoute",CfnRoute_TcpRoutePropertyValidator)(properties.tcpRoute)),errors.wrap('supplied properties not correct for "RouteSpecProperty"')}function cfnRouteRouteSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_RouteSpecPropertyValidator(properties).assertSuccess(),{GrpcRoute:cfnRouteGrpcRoutePropertyToCloudFormation(properties.grpcRoute),Http2Route:cfnRouteHttpRoutePropertyToCloudFormation(properties.http2Route),HttpRoute:cfnRouteHttpRoutePropertyToCloudFormation(properties.httpRoute),Priority:cdk.numberToCloudFormation(properties.priority),TcpRoute:cfnRouteTcpRoutePropertyToCloudFormation(properties.tcpRoute)}):properties}function CfnRouteRouteSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpcRoute","GrpcRoute",properties.GrpcRoute!=null?CfnRouteGrpcRoutePropertyFromCloudFormation(properties.GrpcRoute):void 0),ret.addPropertyResult("http2Route","Http2Route",properties.Http2Route!=null?CfnRouteHttpRoutePropertyFromCloudFormation(properties.Http2Route):void 0),ret.addPropertyResult("httpRoute","HttpRoute",properties.HttpRoute!=null?CfnRouteHttpRoutePropertyFromCloudFormation(properties.HttpRoute):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("tcpRoute","TcpRoute",properties.TcpRoute!=null?CfnRouteTcpRoutePropertyFromCloudFormation(properties.TcpRoute):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnRoute_TcpRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",CfnRoute_TcpRouteMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("timeout",CfnRoute_TcpTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "TcpRouteProperty"')}function cfnRouteTcpRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpRoutePropertyValidator(properties).assertSuccess(),{Action:cfnRouteTcpRouteActionPropertyToCloudFormation(properties.action),Match:cfnRouteTcpRouteMatchPropertyToCloudFormation(properties.match),Timeout:cfnRouteTcpTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnRouteTcpRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnRouteTcpRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteTcpRouteMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnRouteTcpTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("weightedTargets",cdk.requiredValidator)(properties.weightedTargets)),errors.collect(cdk.propertyValidator("weightedTargets",cdk.listValidator(CfnRoute_WeightedTargetPropertyValidator))(properties.weightedTargets)),errors.wrap('supplied properties not correct for "TcpRouteActionProperty"')}function cfnRouteTcpRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpRouteActionPropertyValidator(properties).assertSuccess(),{WeightedTargets:cdk.listMapper(cfnRouteWeightedTargetPropertyToCloudFormation)(properties.weightedTargets)}):properties}function CfnRouteTcpRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("weightedTargets","WeightedTargets",cfn_parse.FromCloudFormation.getArray(CfnRouteWeightedTargetPropertyFromCloudFormation)(properties.WeightedTargets)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "TcpRouteMatchProperty"')}function cfnRouteTcpRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpRouteMatchPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port)}):properties}function CfnRouteTcpRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnRoute_DurationPropertyValidator)(properties.idle)),errors.wrap('supplied properties not correct for "TcpTimeoutProperty"')}function cfnRouteTcpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnRouteDurationPropertyToCloudFormation(properties.idle)}):properties}function CfnRouteTcpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnRouteDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_WeightedTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("virtualNode",cdk.requiredValidator)(properties.virtualNode)),errors.collect(cdk.propertyValidator("virtualNode",cdk.validateString)(properties.virtualNode)),errors.collect(cdk.propertyValidator("weight",cdk.requiredValidator)(properties.weight)),errors.collect(cdk.propertyValidator("weight",cdk.validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "WeightedTargetProperty"')}function cfnRouteWeightedTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_WeightedTargetPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),VirtualNode:cdk.stringToCloudFormation(properties.virtualNode),Weight:cdk.numberToCloudFormation(properties.weight)}):properties}function CfnRouteWeightedTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("virtualNode","VirtualNode",cfn_parse.FromCloudFormation.getString(properties.VirtualNode)),ret.addPropertyResult("weight","Weight",cfn_parse.FromCloudFormation.getNumber(properties.Weight)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualGateway_VirtualGatewaySpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualGatewayName",cdk.validateString)(properties.virtualGatewayName)),errors.wrap('supplied properties not correct for "CfnVirtualGatewayProps"')}function cfnVirtualGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGatewayPropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualGatewayVirtualGatewaySpecPropertyToCloudFormation(properties.spec),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualGatewayName:cdk.stringToCloudFormation(properties.virtualGatewayName)}):properties}function CfnVirtualGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualGatewayVirtualGatewaySpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualGatewayName","VirtualGatewayName",properties.VirtualGatewayName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualGatewayName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualGateway),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualGatewayName=cdk.Token.asString(this.getAtt("VirtualGatewayName")),this.meshName=props.meshName,this.spec=props.spec,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualGateway",props.tags,{tagPropertyName:"tags"}),this.virtualGatewayName=props.virtualGatewayName}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnVirtualGateway(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,meshOwner:this.meshOwner,tags:this.tags.renderTags(),virtualGatewayName:this.virtualGatewayName}}renderProperties(props){return cfnVirtualGatewayPropsToCloudFormation(props)}}exports.CfnVirtualGateway=CfnVirtualGateway,_d=JSII_RTTI_SYMBOL_1,CfnVirtualGateway[_d]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualGateway",version:"2.51.0"},CfnVirtualGateway.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualGateway";function CfnVirtualGateway_JsonFormatRefPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("key",cdk.requiredValidator)(properties.key)),errors.collect(cdk.propertyValidator("key",cdk.validateString)(properties.key)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "JsonFormatRefProperty"')}function cfnVirtualGatewayJsonFormatRefPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_JsonFormatRefPropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnVirtualGatewayJsonFormatRefPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",cfn_parse.FromCloudFormation.getString(properties.Key)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getString(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_LoggingFormatPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("json",cdk.listValidator(CfnVirtualGateway_JsonFormatRefPropertyValidator))(properties.json)),errors.collect(cdk.propertyValidator("text",cdk.validateString)(properties.text)),errors.wrap('supplied properties not correct for "LoggingFormatProperty"')}function cfnVirtualGatewayLoggingFormatPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_LoggingFormatPropertyValidator(properties).assertSuccess(),{Json:cdk.listMapper(cfnVirtualGatewayJsonFormatRefPropertyToCloudFormation)(properties.json),Text:cdk.stringToCloudFormation(properties.text)}):properties}function CfnVirtualGatewayLoggingFormatPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("json","Json",properties.Json!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualGatewayJsonFormatRefPropertyFromCloudFormation)(properties.Json):void 0),ret.addPropertyResult("text","Text",properties.Text!=null?cfn_parse.FromCloudFormation.getString(properties.Text):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_SubjectAlternativeNameMatchersPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.listValidator(cdk.validateString))(properties.exact)),errors.wrap('supplied properties not correct for "SubjectAlternativeNameMatchersProperty"')}function cfnVirtualGatewaySubjectAlternativeNameMatchersPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_SubjectAlternativeNameMatchersPropertyValidator(properties).assertSuccess(),{Exact:cdk.listMapper(cdk.stringToCloudFormation)(properties.exact)}):properties}function CfnVirtualGatewaySubjectAlternativeNameMatchersPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnVirtualGateway_SubjectAlternativeNameMatchersPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "SubjectAlternativeNamesProperty"')}function cfnVirtualGatewaySubjectAlternativeNamesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator(properties).assertSuccess(),{Match:cfnVirtualGatewaySubjectAlternativeNameMatchersPropertyToCloudFormation(properties.match)}):properties}function CfnVirtualGatewaySubjectAlternativeNamesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",CfnVirtualGatewaySubjectAlternativeNameMatchersPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayAccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayFileAccessLogPropertyValidator)(properties.file)),errors.wrap('supplied properties not correct for "VirtualGatewayAccessLogProperty"')}function cfnVirtualGatewayVirtualGatewayAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayAccessLogPropertyValidator(properties).assertSuccess(),{File:cfnVirtualGatewayVirtualGatewayFileAccessLogPropertyToCloudFormation(properties.file)}):properties}function CfnVirtualGatewayVirtualGatewayAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayFileAccessLogPropertyFromCloudFormation(properties.File):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayBackendDefaultsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientPolicy",CfnVirtualGateway_VirtualGatewayClientPolicyPropertyValidator)(properties.clientPolicy)),errors.wrap('supplied properties not correct for "VirtualGatewayBackendDefaultsProperty"')}function cfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayBackendDefaultsPropertyValidator(properties).assertSuccess(),{ClientPolicy:cfnVirtualGatewayVirtualGatewayClientPolicyPropertyToCloudFormation(properties.clientPolicy)}):properties}function CfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientPolicy","ClientPolicy",properties.ClientPolicy!=null?CfnVirtualGatewayVirtualGatewayClientPolicyPropertyFromCloudFormation(properties.ClientPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayClientPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tls",CfnVirtualGateway_VirtualGatewayClientPolicyTlsPropertyValidator)(properties.tls)),errors.wrap('supplied properties not correct for "VirtualGatewayClientPolicyProperty"')}function cfnVirtualGatewayVirtualGatewayClientPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayClientPolicyPropertyValidator(properties).assertSuccess(),{TLS:cfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyToCloudFormation(properties.tls)}):properties}function CfnVirtualGatewayVirtualGatewayClientPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayClientPolicyTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",CfnVirtualGateway_VirtualGatewayClientTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("enforce",cdk.validateBoolean)(properties.enforce)),errors.collect(cdk.propertyValidator("ports",cdk.listValidator(cdk.validateNumber))(properties.ports)),errors.collect(cdk.propertyValidator("validation",cdk.requiredValidator)(properties.validation)),errors.collect(cdk.propertyValidator("validation",CfnVirtualGateway_VirtualGatewayTlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "VirtualGatewayClientPolicyTlsProperty"')}function cfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayClientPolicyTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyToCloudFormation(properties.certificate),Enforce:cdk.booleanToCloudFormation(properties.enforce),Ports:cdk.listMapper(cdk.numberToCloudFormation)(properties.ports),Validation:cfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",properties.Certificate!=null?CfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyFromCloudFormation(properties.Certificate):void 0),ret.addPropertyResult("enforce","Enforce",properties.Enforce!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enforce):void 0),ret.addPropertyResult("ports","Ports",properties.Ports!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getNumber)(properties.Ports):void 0),ret.addPropertyResult("validation","Validation",CfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyFromCloudFormation(properties.Validation)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayClientTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayClientTlsCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayClientTlsCertificatePropertyValidator(properties).assertSuccess(),{File:cfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpc",CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolPropertyValidator)(properties.grpc)),errors.collect(cdk.propertyValidator("http",CfnVirtualGateway_VirtualGatewayHttpConnectionPoolPropertyValidator)(properties.http)),errors.collect(cdk.propertyValidator("http2",CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolPropertyValidator)(properties.http2)),errors.wrap('supplied properties not correct for "VirtualGatewayConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayConnectionPoolPropertyValidator(properties).assertSuccess(),{GRPC:cfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyToCloudFormation(properties.grpc),HTTP:cfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyToCloudFormation(properties.http),HTTP2:cfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyToCloudFormation(properties.http2)}):properties}function CfnVirtualGatewayVirtualGatewayConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpc","GRPC",properties.GRPC!=null?CfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyFromCloudFormation(properties.GRPC):void 0),ret.addPropertyResult("http","HTTP",properties.HTTP!=null?CfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyFromCloudFormation(properties.HTTP):void 0),ret.addPropertyResult("http2","HTTP2",properties.HTTP2!=null?CfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyFromCloudFormation(properties.HTTP2):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayFileAccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("format",CfnVirtualGateway_LoggingFormatPropertyValidator)(properties.format)),errors.collect(cdk.propertyValidator("path",cdk.requiredValidator)(properties.path)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.wrap('supplied properties not correct for "VirtualGatewayFileAccessLogProperty"')}function cfnVirtualGatewayVirtualGatewayFileAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayFileAccessLogPropertyValidator(properties).assertSuccess(),{Format:cfnVirtualGatewayLoggingFormatPropertyToCloudFormation(properties.format),Path:cdk.stringToCloudFormation(properties.path)}):properties}function CfnVirtualGatewayVirtualGatewayFileAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("format","Format",properties.Format!=null?CfnVirtualGatewayLoggingFormatPropertyFromCloudFormation(properties.Format):void 0),ret.addPropertyResult("path","Path",cfn_parse.FromCloudFormation.getString(properties.Path)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualGatewayGrpcConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayHealthCheckPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.requiredValidator)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.validateNumber)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.requiredValidator)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.validateNumber)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.requiredValidator)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.validateNumber)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.requiredValidator)(properties.unhealthyThreshold)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.validateNumber)(properties.unhealthyThreshold)),errors.wrap('supplied properties not correct for "VirtualGatewayHealthCheckPolicyProperty"')}function cfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayHealthCheckPolicyPropertyValidator(properties).assertSuccess(),{HealthyThreshold:cdk.numberToCloudFormation(properties.healthyThreshold),IntervalMillis:cdk.numberToCloudFormation(properties.intervalMillis),Path:cdk.stringToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol),TimeoutMillis:cdk.numberToCloudFormation(properties.timeoutMillis),UnhealthyThreshold:cdk.numberToCloudFormation(properties.unhealthyThreshold)}):properties}function CfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("healthyThreshold","HealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.HealthyThreshold)),ret.addPropertyResult("intervalMillis","IntervalMillis",cfn_parse.FromCloudFormation.getNumber(properties.IntervalMillis)),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse.FromCloudFormation.getString(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addPropertyResult("timeoutMillis","TimeoutMillis",cfn_parse.FromCloudFormation.getNumber(properties.TimeoutMillis)),ret.addPropertyResult("unhealthyThreshold","UnhealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.UnhealthyThreshold)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualGatewayHttp2ConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayHttpConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxConnections",cdk.requiredValidator)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxConnections",cdk.validateNumber)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxPendingRequests",cdk.validateNumber)(properties.maxPendingRequests)),errors.wrap('supplied properties not correct for "VirtualGatewayHttpConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayHttpConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxConnections:cdk.numberToCloudFormation(properties.maxConnections),MaxPendingRequests:cdk.numberToCloudFormation(properties.maxPendingRequests)}):properties}function CfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxConnections","MaxConnections",cfn_parse.FromCloudFormation.getNumber(properties.MaxConnections)),ret.addPropertyResult("maxPendingRequests","MaxPendingRequests",properties.MaxPendingRequests!=null?cfn_parse.FromCloudFormation.getNumber(properties.MaxPendingRequests):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("connectionPool",CfnVirtualGateway_VirtualGatewayConnectionPoolPropertyValidator)(properties.connectionPool)),errors.collect(cdk.propertyValidator("healthCheck",CfnVirtualGateway_VirtualGatewayHealthCheckPolicyPropertyValidator)(properties.healthCheck)),errors.collect(cdk.propertyValidator("portMapping",cdk.requiredValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("portMapping",CfnVirtualGateway_VirtualGatewayPortMappingPropertyValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("tls",CfnVirtualGateway_VirtualGatewayListenerTlsPropertyValidator)(properties.tls)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerProperty"')}function cfnVirtualGatewayVirtualGatewayListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerPropertyValidator(properties).assertSuccess(),{ConnectionPool:cfnVirtualGatewayVirtualGatewayConnectionPoolPropertyToCloudFormation(properties.connectionPool),HealthCheck:cfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyToCloudFormation(properties.healthCheck),PortMapping:cfnVirtualGatewayVirtualGatewayPortMappingPropertyToCloudFormation(properties.portMapping),TLS:cfnVirtualGatewayVirtualGatewayListenerTlsPropertyToCloudFormation(properties.tls)}):properties}function CfnVirtualGatewayVirtualGatewayListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("connectionPool","ConnectionPool",properties.ConnectionPool!=null?CfnVirtualGatewayVirtualGatewayConnectionPoolPropertyFromCloudFormation(properties.ConnectionPool):void 0),ret.addPropertyResult("healthCheck","HealthCheck",properties.HealthCheck!=null?CfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyFromCloudFormation(properties.HealthCheck):void 0),ret.addPropertyResult("portMapping","PortMapping",CfnVirtualGatewayVirtualGatewayPortMappingPropertyFromCloudFormation(properties.PortMapping)),ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualGatewayVirtualGatewayListenerTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",cdk.requiredValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("certificate",CfnVirtualGateway_VirtualGatewayListenerTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("mode",cdk.requiredValidator)(properties.mode)),errors.collect(cdk.propertyValidator("mode",cdk.validateString)(properties.mode)),errors.collect(cdk.propertyValidator("validation",CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyToCloudFormation(properties.certificate),Mode:cdk.stringToCloudFormation(properties.mode),Validation:cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",CfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyFromCloudFormation(properties.Certificate)),ret.addPropertyResult("mode","Mode",cfn_parse.FromCloudFormation.getString(properties.Mode)),ret.addPropertyResult("validation","Validation",properties.Validation!=null?CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyFromCloudFormation(properties.Validation):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateArn",cdk.requiredValidator)(properties.certificateArn)),errors.collect(cdk.propertyValidator("certificateArn",cdk.validateString)(properties.certificateArn)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsAcmCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificatePropertyValidator(properties).assertSuccess(),{CertificateArn:cdk.stringToCloudFormation(properties.certificateArn)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateArn","CertificateArn",cfn_parse.FromCloudFormation.getString(properties.CertificateArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificatePropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsCertificatePropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyToCloudFormation(properties.acm),File:cfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.collect(cdk.propertyValidator("privateKey",cdk.requiredValidator)(properties.privateKey)),errors.collect(cdk.propertyValidator("privateKey",cdk.validateString)(properties.privateKey)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsFileCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain),PrivateKey:cdk.stringToCloudFormation(properties.privateKey)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addPropertyResult("privateKey","PrivateKey",cfn_parse.FromCloudFormation.getString(properties.PrivateKey)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsSdsCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsValidationContextProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualGatewaySubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualGatewaySubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsValidationContextTrustProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{File:cfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayLoggingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("accessLog",CfnVirtualGateway_VirtualGatewayAccessLogPropertyValidator)(properties.accessLog)),errors.wrap('supplied properties not correct for "VirtualGatewayLoggingProperty"')}function cfnVirtualGatewayVirtualGatewayLoggingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayLoggingPropertyValidator(properties).assertSuccess(),{AccessLog:cfnVirtualGatewayVirtualGatewayAccessLogPropertyToCloudFormation(properties.accessLog)}):properties}function CfnVirtualGatewayVirtualGatewayLoggingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("accessLog","AccessLog",properties.AccessLog!=null?CfnVirtualGatewayVirtualGatewayAccessLogPropertyFromCloudFormation(properties.AccessLog):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayPortMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.requiredValidator)(properties.port)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "VirtualGatewayPortMappingProperty"')}function cfnVirtualGatewayVirtualGatewayPortMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayPortMappingPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnVirtualGatewayVirtualGatewayPortMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",cfn_parse.FromCloudFormation.getNumber(properties.Port)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewaySpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("backendDefaults",CfnVirtualGateway_VirtualGatewayBackendDefaultsPropertyValidator)(properties.backendDefaults)),errors.collect(cdk.propertyValidator("listeners",cdk.requiredValidator)(properties.listeners)),errors.collect(cdk.propertyValidator("listeners",cdk.listValidator(CfnVirtualGateway_VirtualGatewayListenerPropertyValidator))(properties.listeners)),errors.collect(cdk.propertyValidator("logging",CfnVirtualGateway_VirtualGatewayLoggingPropertyValidator)(properties.logging)),errors.wrap('supplied properties not correct for "VirtualGatewaySpecProperty"')}function cfnVirtualGatewayVirtualGatewaySpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewaySpecPropertyValidator(properties).assertSuccess(),{BackendDefaults:cfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyToCloudFormation(properties.backendDefaults),Listeners:cdk.listMapper(cfnVirtualGatewayVirtualGatewayListenerPropertyToCloudFormation)(properties.listeners),Logging:cfnVirtualGatewayVirtualGatewayLoggingPropertyToCloudFormation(properties.logging)}):properties}function CfnVirtualGatewayVirtualGatewaySpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("backendDefaults","BackendDefaults",properties.BackendDefaults!=null?CfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyFromCloudFormation(properties.BackendDefaults):void 0),ret.addPropertyResult("listeners","Listeners",cfn_parse.FromCloudFormation.getArray(CfnVirtualGatewayVirtualGatewayListenerPropertyFromCloudFormation)(properties.Listeners)),ret.addPropertyResult("logging","Logging",properties.Logging!=null?CfnVirtualGatewayVirtualGatewayLoggingPropertyFromCloudFormation(properties.Logging):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualGatewaySubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualGatewaySubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.requiredValidator)(properties.certificateAuthorityArns)),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.listValidator(cdk.validateString))(properties.certificateAuthorityArns)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextAcmTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustPropertyValidator(properties).assertSuccess(),{CertificateAuthorityArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.certificateAuthorityArns)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateAuthorityArns","CertificateAuthorityArns",cfn_parse.FromCloudFormation.getStringArray(properties.CertificateAuthorityArns)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextFileTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextSdsTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustPropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyToCloudFormation(properties.acm),File:cfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNodePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualNode_VirtualNodeSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualNodeName",cdk.validateString)(properties.virtualNodeName)),errors.wrap('supplied properties not correct for "CfnVirtualNodeProps"')}function cfnVirtualNodePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNodePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualNodeVirtualNodeSpecPropertyToCloudFormation(properties.spec),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualNodeName:cdk.stringToCloudFormation(properties.virtualNodeName)}):properties}function CfnVirtualNodePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualNodeVirtualNodeSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualNodeName","VirtualNodeName",properties.VirtualNodeName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualNodeName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualNode extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualNode.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualNodeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualNode),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualNodeName=cdk.Token.asString(this.getAtt("VirtualNodeName")),this.meshName=props.meshName,this.spec=props.spec,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualNode",props.tags,{tagPropertyName:"tags"}),this.virtualNodeName=props.virtualNodeName}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualNodePropsFromCloudFormation(resourceProperties),ret=new CfnVirtualNode(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualNode.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,meshOwner:this.meshOwner,tags:this.tags.renderTags(),virtualNodeName:this.virtualNodeName}}renderProperties(props){return cfnVirtualNodePropsToCloudFormation(props)}}exports.CfnVirtualNode=CfnVirtualNode,_e=JSII_RTTI_SYMBOL_1,CfnVirtualNode[_e]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualNode",version:"2.51.0"},CfnVirtualNode.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualNode";function CfnVirtualNode_AccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_FileAccessLogPropertyValidator)(properties.file)),errors.wrap('supplied properties not correct for "AccessLogProperty"')}function cfnVirtualNodeAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_AccessLogPropertyValidator(properties).assertSuccess(),{File:cfnVirtualNodeFileAccessLogPropertyToCloudFormation(properties.file)}):properties}function CfnVirtualNodeAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeFileAccessLogPropertyFromCloudFormation(properties.File):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_AwsCloudMapInstanceAttributePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("key",cdk.requiredValidator)(properties.key)),errors.collect(cdk.propertyValidator("key",cdk.validateString)(properties.key)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "AwsCloudMapInstanceAttributeProperty"')}function cfnVirtualNodeAwsCloudMapInstanceAttributePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_AwsCloudMapInstanceAttributePropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnVirtualNodeAwsCloudMapInstanceAttributePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",cfn_parse.FromCloudFormation.getString(properties.Key)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getString(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_AwsCloudMapServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributes",cdk.listValidator(CfnVirtualNode_AwsCloudMapInstanceAttributePropertyValidator))(properties.attributes)),errors.collect(cdk.propertyValidator("ipPreference",cdk.validateString)(properties.ipPreference)),errors.collect(cdk.propertyValidator("namespaceName",cdk.requiredValidator)(properties.namespaceName)),errors.collect(cdk.propertyValidator("namespaceName",cdk.validateString)(properties.namespaceName)),errors.collect(cdk.propertyValidator("serviceName",cdk.requiredValidator)(properties.serviceName)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.wrap('supplied properties not correct for "AwsCloudMapServiceDiscoveryProperty"')}function cfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_AwsCloudMapServiceDiscoveryPropertyValidator(properties).assertSuccess(),{Attributes:cdk.listMapper(cfnVirtualNodeAwsCloudMapInstanceAttributePropertyToCloudFormation)(properties.attributes),IpPreference:cdk.stringToCloudFormation(properties.ipPreference),NamespaceName:cdk.stringToCloudFormation(properties.namespaceName),ServiceName:cdk.stringToCloudFormation(properties.serviceName)}):properties}function CfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributes","Attributes",properties.Attributes!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeAwsCloudMapInstanceAttributePropertyFromCloudFormation)(properties.Attributes):void 0),ret.addPropertyResult("ipPreference","IpPreference",properties.IpPreference!=null?cfn_parse.FromCloudFormation.getString(properties.IpPreference):void 0),ret.addPropertyResult("namespaceName","NamespaceName",cfn_parse.FromCloudFormation.getString(properties.NamespaceName)),ret.addPropertyResult("serviceName","ServiceName",cfn_parse.FromCloudFormation.getString(properties.ServiceName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_BackendPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualService",CfnVirtualNode_VirtualServiceBackendPropertyValidator)(properties.virtualService)),errors.wrap('supplied properties not correct for "BackendProperty"')}function cfnVirtualNodeBackendPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_BackendPropertyValidator(properties).assertSuccess(),{VirtualService:cfnVirtualNodeVirtualServiceBackendPropertyToCloudFormation(properties.virtualService)}):properties}function CfnVirtualNodeBackendPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualService","VirtualService",properties.VirtualService!=null?CfnVirtualNodeVirtualServiceBackendPropertyFromCloudFormation(properties.VirtualService):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_BackendDefaultsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientPolicy",CfnVirtualNode_ClientPolicyPropertyValidator)(properties.clientPolicy)),errors.wrap('supplied properties not correct for "BackendDefaultsProperty"')}function cfnVirtualNodeBackendDefaultsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_BackendDefaultsPropertyValidator(properties).assertSuccess(),{ClientPolicy:cfnVirtualNodeClientPolicyPropertyToCloudFormation(properties.clientPolicy)}):properties}function CfnVirtualNodeBackendDefaultsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientPolicy","ClientPolicy",properties.ClientPolicy!=null?CfnVirtualNodeClientPolicyPropertyFromCloudFormation(properties.ClientPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ClientPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tls",CfnVirtualNode_ClientPolicyTlsPropertyValidator)(properties.tls)),errors.wrap('supplied properties not correct for "ClientPolicyProperty"')}function cfnVirtualNodeClientPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ClientPolicyPropertyValidator(properties).assertSuccess(),{TLS:cfnVirtualNodeClientPolicyTlsPropertyToCloudFormation(properties.tls)}):properties}function CfnVirtualNodeClientPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualNodeClientPolicyTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ClientPolicyTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",CfnVirtualNode_ClientTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("enforce",cdk.validateBoolean)(properties.enforce)),errors.collect(cdk.propertyValidator("ports",cdk.listValidator(cdk.validateNumber))(properties.ports)),errors.collect(cdk.propertyValidator("validation",cdk.requiredValidator)(properties.validation)),errors.collect(cdk.propertyValidator("validation",CfnVirtualNode_TlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "ClientPolicyTlsProperty"')}function cfnVirtualNodeClientPolicyTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ClientPolicyTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualNodeClientTlsCertificatePropertyToCloudFormation(properties.certificate),Enforce:cdk.booleanToCloudFormation(properties.enforce),Ports:cdk.listMapper(cdk.numberToCloudFormation)(properties.ports),Validation:cfnVirtualNodeTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualNodeClientPolicyTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",properties.Certificate!=null?CfnVirtualNodeClientTlsCertificatePropertyFromCloudFormation(properties.Certificate):void 0),ret.addPropertyResult("enforce","Enforce",properties.Enforce!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enforce):void 0),ret.addPropertyResult("ports","Ports",properties.Ports!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getNumber)(properties.Ports):void 0),ret.addPropertyResult("validation","Validation",CfnVirtualNodeTlsValidationContextPropertyFromCloudFormation(properties.Validation)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ClientTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "ClientTlsCertificateProperty"')}function cfnVirtualNodeClientTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ClientTlsCertificatePropertyValidator(properties).assertSuccess(),{File:cfnVirtualNodeListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeClientTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_DnsServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",cdk.requiredValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("hostname",cdk.validateString)(properties.hostname)),errors.collect(cdk.propertyValidator("ipPreference",cdk.validateString)(properties.ipPreference)),errors.collect(cdk.propertyValidator("responseType",cdk.validateString)(properties.responseType)),errors.wrap('supplied properties not correct for "DnsServiceDiscoveryProperty"')}function cfnVirtualNodeDnsServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_DnsServiceDiscoveryPropertyValidator(properties).assertSuccess(),{Hostname:cdk.stringToCloudFormation(properties.hostname),IpPreference:cdk.stringToCloudFormation(properties.ipPreference),ResponseType:cdk.stringToCloudFormation(properties.responseType)}):properties}function CfnVirtualNodeDnsServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",cfn_parse.FromCloudFormation.getString(properties.Hostname)),ret.addPropertyResult("ipPreference","IpPreference",properties.IpPreference!=null?cfn_parse.FromCloudFormation.getString(properties.IpPreference):void 0),ret.addPropertyResult("responseType","ResponseType",properties.ResponseType!=null?cfn_parse.FromCloudFormation.getString(properties.ResponseType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_DurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("unit",cdk.requiredValidator)(properties.unit)),errors.collect(cdk.propertyValidator("unit",cdk.validateString)(properties.unit)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "DurationProperty"')}function cfnVirtualNodeDurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_DurationPropertyValidator(properties).assertSuccess(),{Unit:cdk.stringToCloudFormation(properties.unit),Value:cdk.numberToCloudFormation(properties.value)}):properties}function CfnVirtualNodeDurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("unit","Unit",cfn_parse.FromCloudFormation.getString(properties.Unit)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getNumber(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_FileAccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("format",CfnVirtualNode_LoggingFormatPropertyValidator)(properties.format)),errors.collect(cdk.propertyValidator("path",cdk.requiredValidator)(properties.path)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.wrap('supplied properties not correct for "FileAccessLogProperty"')}function cfnVirtualNodeFileAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_FileAccessLogPropertyValidator(properties).assertSuccess(),{Format:cfnVirtualNodeLoggingFormatPropertyToCloudFormation(properties.format),Path:cdk.stringToCloudFormation(properties.path)}):properties}function CfnVirtualNodeFileAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("format","Format",properties.Format!=null?CfnVirtualNodeLoggingFormatPropertyFromCloudFormation(properties.Format):void 0),ret.addPropertyResult("path","Path",cfn_parse.FromCloudFormation.getString(properties.Path)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_GrpcTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnVirtualNode_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnVirtualNode_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "GrpcTimeoutProperty"')}function cfnVirtualNodeGrpcTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_GrpcTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnVirtualNodeDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnVirtualNodeDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnVirtualNodeGrpcTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_HealthCheckPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.requiredValidator)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.validateNumber)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.requiredValidator)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.validateNumber)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.requiredValidator)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.validateNumber)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.requiredValidator)(properties.unhealthyThreshold)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.validateNumber)(properties.unhealthyThreshold)),errors.wrap('supplied properties not correct for "HealthCheckProperty"')}function cfnVirtualNodeHealthCheckPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_HealthCheckPropertyValidator(properties).assertSuccess(),{HealthyThreshold:cdk.numberToCloudFormation(properties.healthyThreshold),IntervalMillis:cdk.numberToCloudFormation(properties.intervalMillis),Path:cdk.stringToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol),TimeoutMillis:cdk.numberToCloudFormation(properties.timeoutMillis),UnhealthyThreshold:cdk.numberToCloudFormation(properties.unhealthyThreshold)}):properties}function CfnVirtualNodeHealthCheckPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("healthyThreshold","HealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.HealthyThreshold)),ret.addPropertyResult("intervalMillis","IntervalMillis",cfn_parse.FromCloudFormation.getNumber(properties.IntervalMillis)),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse.FromCloudFormation.getString(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addPropertyResult("timeoutMillis","TimeoutMillis",cfn_parse.FromCloudFormation.getNumber(properties.TimeoutMillis)),ret.addPropertyResult("unhealthyThreshold","UnhealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.UnhealthyThreshold)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_HttpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnVirtualNode_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnVirtualNode_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "HttpTimeoutProperty"')}function cfnVirtualNodeHttpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_HttpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnVirtualNodeDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnVirtualNodeDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnVirtualNodeHttpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_JsonFormatRefPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("key",cdk.requiredValidator)(properties.key)),errors.collect(cdk.propertyValidator("key",cdk.validateString)(properties.key)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "JsonFormatRefProperty"')}function cfnVirtualNodeJsonFormatRefPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_JsonFormatRefPropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnVirtualNodeJsonFormatRefPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",cfn_parse.FromCloudFormation.getString(properties.Key)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getString(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("connectionPool",CfnVirtualNode_VirtualNodeConnectionPoolPropertyValidator)(properties.connectionPool)),errors.collect(cdk.propertyValidator("healthCheck",CfnVirtualNode_HealthCheckPropertyValidator)(properties.healthCheck)),errors.collect(cdk.propertyValidator("outlierDetection",CfnVirtualNode_OutlierDetectionPropertyValidator)(properties.outlierDetection)),errors.collect(cdk.propertyValidator("portMapping",cdk.requiredValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("portMapping",CfnVirtualNode_PortMappingPropertyValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("tls",CfnVirtualNode_ListenerTlsPropertyValidator)(properties.tls)),errors.collect(cdk.propertyValidator("timeout",CfnVirtualNode_ListenerTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "ListenerProperty"')}function cfnVirtualNodeListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerPropertyValidator(properties).assertSuccess(),{ConnectionPool:cfnVirtualNodeVirtualNodeConnectionPoolPropertyToCloudFormation(properties.connectionPool),HealthCheck:cfnVirtualNodeHealthCheckPropertyToCloudFormation(properties.healthCheck),OutlierDetection:cfnVirtualNodeOutlierDetectionPropertyToCloudFormation(properties.outlierDetection),PortMapping:cfnVirtualNodePortMappingPropertyToCloudFormation(properties.portMapping),TLS:cfnVirtualNodeListenerTlsPropertyToCloudFormation(properties.tls),Timeout:cfnVirtualNodeListenerTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnVirtualNodeListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("connectionPool","ConnectionPool",properties.ConnectionPool!=null?CfnVirtualNodeVirtualNodeConnectionPoolPropertyFromCloudFormation(properties.ConnectionPool):void 0),ret.addPropertyResult("healthCheck","HealthCheck",properties.HealthCheck!=null?CfnVirtualNodeHealthCheckPropertyFromCloudFormation(properties.HealthCheck):void 0),ret.addPropertyResult("outlierDetection","OutlierDetection",properties.OutlierDetection!=null?CfnVirtualNodeOutlierDetectionPropertyFromCloudFormation(properties.OutlierDetection):void 0),ret.addPropertyResult("portMapping","PortMapping",CfnVirtualNodePortMappingPropertyFromCloudFormation(properties.PortMapping)),ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualNodeListenerTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnVirtualNodeListenerTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpc",CfnVirtualNode_GrpcTimeoutPropertyValidator)(properties.grpc)),errors.collect(cdk.propertyValidator("http",CfnVirtualNode_HttpTimeoutPropertyValidator)(properties.http)),errors.collect(cdk.propertyValidator("http2",CfnVirtualNode_HttpTimeoutPropertyValidator)(properties.http2)),errors.collect(cdk.propertyValidator("tcp",CfnVirtualNode_TcpTimeoutPropertyValidator)(properties.tcp)),errors.wrap('supplied properties not correct for "ListenerTimeoutProperty"')}function cfnVirtualNodeListenerTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTimeoutPropertyValidator(properties).assertSuccess(),{GRPC:cfnVirtualNodeGrpcTimeoutPropertyToCloudFormation(properties.grpc),HTTP:cfnVirtualNodeHttpTimeoutPropertyToCloudFormation(properties.http),HTTP2:cfnVirtualNodeHttpTimeoutPropertyToCloudFormation(properties.http2),TCP:cfnVirtualNodeTcpTimeoutPropertyToCloudFormation(properties.tcp)}):properties}function CfnVirtualNodeListenerTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpc","GRPC",properties.GRPC!=null?CfnVirtualNodeGrpcTimeoutPropertyFromCloudFormation(properties.GRPC):void 0),ret.addPropertyResult("http","HTTP",properties.HTTP!=null?CfnVirtualNodeHttpTimeoutPropertyFromCloudFormation(properties.HTTP):void 0),ret.addPropertyResult("http2","HTTP2",properties.HTTP2!=null?CfnVirtualNodeHttpTimeoutPropertyFromCloudFormation(properties.HTTP2):void 0),ret.addPropertyResult("tcp","TCP",properties.TCP!=null?CfnVirtualNodeTcpTimeoutPropertyFromCloudFormation(properties.TCP):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",cdk.requiredValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("certificate",CfnVirtualNode_ListenerTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("mode",cdk.requiredValidator)(properties.mode)),errors.collect(cdk.propertyValidator("mode",cdk.validateString)(properties.mode)),errors.collect(cdk.propertyValidator("validation",CfnVirtualNode_ListenerTlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "ListenerTlsProperty"')}function cfnVirtualNodeListenerTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualNodeListenerTlsCertificatePropertyToCloudFormation(properties.certificate),Mode:cdk.stringToCloudFormation(properties.mode),Validation:cfnVirtualNodeListenerTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualNodeListenerTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",CfnVirtualNodeListenerTlsCertificatePropertyFromCloudFormation(properties.Certificate)),ret.addPropertyResult("mode","Mode",cfn_parse.FromCloudFormation.getString(properties.Mode)),ret.addPropertyResult("validation","Validation",properties.Validation!=null?CfnVirtualNodeListenerTlsValidationContextPropertyFromCloudFormation(properties.Validation):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsAcmCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateArn",cdk.requiredValidator)(properties.certificateArn)),errors.collect(cdk.propertyValidator("certificateArn",cdk.validateString)(properties.certificateArn)),errors.wrap('supplied properties not correct for "ListenerTlsAcmCertificateProperty"')}function cfnVirtualNodeListenerTlsAcmCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsAcmCertificatePropertyValidator(properties).assertSuccess(),{CertificateArn:cdk.stringToCloudFormation(properties.certificateArn)}):properties}function CfnVirtualNodeListenerTlsAcmCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateArn","CertificateArn",cfn_parse.FromCloudFormation.getString(properties.CertificateArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualNode_ListenerTlsAcmCertificatePropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "ListenerTlsCertificateProperty"')}function cfnVirtualNodeListenerTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsCertificatePropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualNodeListenerTlsAcmCertificatePropertyToCloudFormation(properties.acm),File:cfnVirtualNodeListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeListenerTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualNodeListenerTlsAcmCertificatePropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.collect(cdk.propertyValidator("privateKey",cdk.requiredValidator)(properties.privateKey)),errors.collect(cdk.propertyValidator("privateKey",cdk.validateString)(properties.privateKey)),errors.wrap('supplied properties not correct for "ListenerTlsFileCertificateProperty"')}function cfnVirtualNodeListenerTlsFileCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain),PrivateKey:cdk.stringToCloudFormation(properties.privateKey)}):properties}function CfnVirtualNodeListenerTlsFileCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addPropertyResult("privateKey","PrivateKey",cfn_parse.FromCloudFormation.getString(properties.PrivateKey)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "ListenerTlsSdsCertificateProperty"')}function cfnVirtualNodeListenerTlsSdsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualNodeListenerTlsSdsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualNode_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualNode_ListenerTlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "ListenerTlsValidationContextProperty"')}function cfnVirtualNodeListenerTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualNodeSubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualNodeListenerTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualNodeListenerTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualNodeSubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualNodeListenerTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "ListenerTlsValidationContextTrustProperty"')}function cfnVirtualNodeListenerTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{File:cfnVirtualNodeTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeListenerTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_LoggingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("accessLog",CfnVirtualNode_AccessLogPropertyValidator)(properties.accessLog)),errors.wrap('supplied properties not correct for "LoggingProperty"')}function cfnVirtualNodeLoggingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_LoggingPropertyValidator(properties).assertSuccess(),{AccessLog:cfnVirtualNodeAccessLogPropertyToCloudFormation(properties.accessLog)}):properties}function CfnVirtualNodeLoggingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("accessLog","AccessLog",properties.AccessLog!=null?CfnVirtualNodeAccessLogPropertyFromCloudFormation(properties.AccessLog):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_LoggingFormatPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("json",cdk.listValidator(CfnVirtualNode_JsonFormatRefPropertyValidator))(properties.json)),errors.collect(cdk.propertyValidator("text",cdk.validateString)(properties.text)),errors.wrap('supplied properties not correct for "LoggingFormatProperty"')}function cfnVirtualNodeLoggingFormatPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_LoggingFormatPropertyValidator(properties).assertSuccess(),{Json:cdk.listMapper(cfnVirtualNodeJsonFormatRefPropertyToCloudFormation)(properties.json),Text:cdk.stringToCloudFormation(properties.text)}):properties}function CfnVirtualNodeLoggingFormatPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("json","Json",properties.Json!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeJsonFormatRefPropertyFromCloudFormation)(properties.Json):void 0),ret.addPropertyResult("text","Text",properties.Text!=null?cfn_parse.FromCloudFormation.getString(properties.Text):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_OutlierDetectionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("baseEjectionDuration",cdk.requiredValidator)(properties.baseEjectionDuration)),errors.collect(cdk.propertyValidator("baseEjectionDuration",CfnVirtualNode_DurationPropertyValidator)(properties.baseEjectionDuration)),errors.collect(cdk.propertyValidator("interval",cdk.requiredValidator)(properties.interval)),errors.collect(cdk.propertyValidator("interval",CfnVirtualNode_DurationPropertyValidator)(properties.interval)),errors.collect(cdk.propertyValidator("maxEjectionPercent",cdk.requiredValidator)(properties.maxEjectionPercent)),errors.collect(cdk.propertyValidator("maxEjectionPercent",cdk.validateNumber)(properties.maxEjectionPercent)),errors.collect(cdk.propertyValidator("maxServerErrors",cdk.requiredValidator)(properties.maxServerErrors)),errors.collect(cdk.propertyValidator("maxServerErrors",cdk.validateNumber)(properties.maxServerErrors)),errors.wrap('supplied properties not correct for "OutlierDetectionProperty"')}function cfnVirtualNodeOutlierDetectionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_OutlierDetectionPropertyValidator(properties).assertSuccess(),{BaseEjectionDuration:cfnVirtualNodeDurationPropertyToCloudFormation(properties.baseEjectionDuration),Interval:cfnVirtualNodeDurationPropertyToCloudFormation(properties.interval),MaxEjectionPercent:cdk.numberToCloudFormation(properties.maxEjectionPercent),MaxServerErrors:cdk.numberToCloudFormation(properties.maxServerErrors)}):properties}function CfnVirtualNodeOutlierDetectionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("baseEjectionDuration","BaseEjectionDuration",CfnVirtualNodeDurationPropertyFromCloudFormation(properties.BaseEjectionDuration)),ret.addPropertyResult("interval","Interval",CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Interval)),ret.addPropertyResult("maxEjectionPercent","MaxEjectionPercent",cfn_parse.FromCloudFormation.getNumber(properties.MaxEjectionPercent)),ret.addPropertyResult("maxServerErrors","MaxServerErrors",cfn_parse.FromCloudFormation.getNumber(properties.MaxServerErrors)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_PortMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.requiredValidator)(properties.port)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "PortMappingProperty"')}function cfnVirtualNodePortMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_PortMappingPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnVirtualNodePortMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",cfn_parse.FromCloudFormation.getNumber(properties.Port)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("awsCloudMap",CfnVirtualNode_AwsCloudMapServiceDiscoveryPropertyValidator)(properties.awsCloudMap)),errors.collect(cdk.propertyValidator("dns",CfnVirtualNode_DnsServiceDiscoveryPropertyValidator)(properties.dns)),errors.wrap('supplied properties not correct for "ServiceDiscoveryProperty"')}function cfnVirtualNodeServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ServiceDiscoveryPropertyValidator(properties).assertSuccess(),{AWSCloudMap:cfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyToCloudFormation(properties.awsCloudMap),DNS:cfnVirtualNodeDnsServiceDiscoveryPropertyToCloudFormation(properties.dns)}):properties}function CfnVirtualNodeServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("awsCloudMap","AWSCloudMap",properties.AWSCloudMap!=null?CfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyFromCloudFormation(properties.AWSCloudMap):void 0),ret.addPropertyResult("dns","DNS",properties.DNS!=null?CfnVirtualNodeDnsServiceDiscoveryPropertyFromCloudFormation(properties.DNS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_SubjectAlternativeNameMatchersPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.listValidator(cdk.validateString))(properties.exact)),errors.wrap('supplied properties not correct for "SubjectAlternativeNameMatchersProperty"')}function cfnVirtualNodeSubjectAlternativeNameMatchersPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_SubjectAlternativeNameMatchersPropertyValidator(properties).assertSuccess(),{Exact:cdk.listMapper(cdk.stringToCloudFormation)(properties.exact)}):properties}function CfnVirtualNodeSubjectAlternativeNameMatchersPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_SubjectAlternativeNamesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnVirtualNode_SubjectAlternativeNameMatchersPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "SubjectAlternativeNamesProperty"')}function cfnVirtualNodeSubjectAlternativeNamesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_SubjectAlternativeNamesPropertyValidator(properties).assertSuccess(),{Match:cfnVirtualNodeSubjectAlternativeNameMatchersPropertyToCloudFormation(properties.match)}):properties}function CfnVirtualNodeSubjectAlternativeNamesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",CfnVirtualNodeSubjectAlternativeNameMatchersPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TcpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnVirtualNode_DurationPropertyValidator)(properties.idle)),errors.wrap('supplied properties not correct for "TcpTimeoutProperty"')}function cfnVirtualNodeTcpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TcpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnVirtualNodeDurationPropertyToCloudFormation(properties.idle)}):properties}function CfnVirtualNodeTcpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualNode_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualNode_TlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "TlsValidationContextProperty"')}function cfnVirtualNodeTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualNodeSubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualNodeTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualNodeTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualNodeSubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualNodeTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextAcmTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.requiredValidator)(properties.certificateAuthorityArns)),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.listValidator(cdk.validateString))(properties.certificateAuthorityArns)),errors.wrap('supplied properties not correct for "TlsValidationContextAcmTrustProperty"')}function cfnVirtualNodeTlsValidationContextAcmTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextAcmTrustPropertyValidator(properties).assertSuccess(),{CertificateAuthorityArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.certificateAuthorityArns)}):properties}function CfnVirtualNodeTlsValidationContextAcmTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateAuthorityArns","CertificateAuthorityArns",cfn_parse.FromCloudFormation.getStringArray(properties.CertificateAuthorityArns)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.wrap('supplied properties not correct for "TlsValidationContextFileTrustProperty"')}function cfnVirtualNodeTlsValidationContextFileTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain)}):properties}function CfnVirtualNodeTlsValidationContextFileTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "TlsValidationContextSdsTrustProperty"')}function cfnVirtualNodeTlsValidationContextSdsTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualNodeTlsValidationContextSdsTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualNode_TlsValidationContextAcmTrustPropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "TlsValidationContextTrustProperty"')}function cfnVirtualNodeTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualNodeTlsValidationContextAcmTrustPropertyToCloudFormation(properties.acm),File:cfnVirtualNodeTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualNodeTlsValidationContextAcmTrustPropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpc",CfnVirtualNode_VirtualNodeGrpcConnectionPoolPropertyValidator)(properties.grpc)),errors.collect(cdk.propertyValidator("http",CfnVirtualNode_VirtualNodeHttpConnectionPoolPropertyValidator)(properties.http)),errors.collect(cdk.propertyValidator("http2",CfnVirtualNode_VirtualNodeHttp2ConnectionPoolPropertyValidator)(properties.http2)),errors.collect(cdk.propertyValidator("tcp",CfnVirtualNode_VirtualNodeTcpConnectionPoolPropertyValidator)(properties.tcp)),errors.wrap('supplied properties not correct for "VirtualNodeConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeConnectionPoolPropertyValidator(properties).assertSuccess(),{GRPC:cfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyToCloudFormation(properties.grpc),HTTP:cfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyToCloudFormation(properties.http),HTTP2:cfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyToCloudFormation(properties.http2),TCP:cfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyToCloudFormation(properties.tcp)}):properties}function CfnVirtualNodeVirtualNodeConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpc","GRPC",properties.GRPC!=null?CfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyFromCloudFormation(properties.GRPC):void 0),ret.addPropertyResult("http","HTTP",properties.HTTP!=null?CfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyFromCloudFormation(properties.HTTP):void 0),ret.addPropertyResult("http2","HTTP2",properties.HTTP2!=null?CfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyFromCloudFormation(properties.HTTP2):void 0),ret.addPropertyResult("tcp","TCP",properties.TCP!=null?CfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyFromCloudFormation(properties.TCP):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeGrpcConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualNodeGrpcConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeGrpcConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeHttp2ConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualNodeHttp2ConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeHttp2ConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeHttpConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxConnections",cdk.requiredValidator)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxConnections",cdk.validateNumber)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxPendingRequests",cdk.validateNumber)(properties.maxPendingRequests)),errors.wrap('supplied properties not correct for "VirtualNodeHttpConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeHttpConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxConnections:cdk.numberToCloudFormation(properties.maxConnections),MaxPendingRequests:cdk.numberToCloudFormation(properties.maxPendingRequests)}):properties}function CfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxConnections","MaxConnections",cfn_parse.FromCloudFormation.getNumber(properties.MaxConnections)),ret.addPropertyResult("maxPendingRequests","MaxPendingRequests",properties.MaxPendingRequests!=null?cfn_parse.FromCloudFormation.getNumber(properties.MaxPendingRequests):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("backendDefaults",CfnVirtualNode_BackendDefaultsPropertyValidator)(properties.backendDefaults)),errors.collect(cdk.propertyValidator("backends",cdk.listValidator(CfnVirtualNode_BackendPropertyValidator))(properties.backends)),errors.collect(cdk.propertyValidator("listeners",cdk.listValidator(CfnVirtualNode_ListenerPropertyValidator))(properties.listeners)),errors.collect(cdk.propertyValidator("logging",CfnVirtualNode_LoggingPropertyValidator)(properties.logging)),errors.collect(cdk.propertyValidator("serviceDiscovery",CfnVirtualNode_ServiceDiscoveryPropertyValidator)(properties.serviceDiscovery)),errors.wrap('supplied properties not correct for "VirtualNodeSpecProperty"')}function cfnVirtualNodeVirtualNodeSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeSpecPropertyValidator(properties).assertSuccess(),{BackendDefaults:cfnVirtualNodeBackendDefaultsPropertyToCloudFormation(properties.backendDefaults),Backends:cdk.listMapper(cfnVirtualNodeBackendPropertyToCloudFormation)(properties.backends),Listeners:cdk.listMapper(cfnVirtualNodeListenerPropertyToCloudFormation)(properties.listeners),Logging:cfnVirtualNodeLoggingPropertyToCloudFormation(properties.logging),ServiceDiscovery:cfnVirtualNodeServiceDiscoveryPropertyToCloudFormation(properties.serviceDiscovery)}):properties}function CfnVirtualNodeVirtualNodeSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("backendDefaults","BackendDefaults",properties.BackendDefaults!=null?CfnVirtualNodeBackendDefaultsPropertyFromCloudFormation(properties.BackendDefaults):void 0),ret.addPropertyResult("backends","Backends",properties.Backends!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeBackendPropertyFromCloudFormation)(properties.Backends):void 0),ret.addPropertyResult("listeners","Listeners",properties.Listeners!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeListenerPropertyFromCloudFormation)(properties.Listeners):void 0),ret.addPropertyResult("logging","Logging",properties.Logging!=null?CfnVirtualNodeLoggingPropertyFromCloudFormation(properties.Logging):void 0),ret.addPropertyResult("serviceDiscovery","ServiceDiscovery",properties.ServiceDiscovery!=null?CfnVirtualNodeServiceDiscoveryPropertyFromCloudFormation(properties.ServiceDiscovery):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeTcpConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxConnections",cdk.requiredValidator)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxConnections",cdk.validateNumber)(properties.maxConnections)),errors.wrap('supplied properties not correct for "VirtualNodeTcpConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeTcpConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxConnections:cdk.numberToCloudFormation(properties.maxConnections)}):properties}function CfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxConnections","MaxConnections",cfn_parse.FromCloudFormation.getNumber(properties.MaxConnections)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualServiceBackendPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientPolicy",CfnVirtualNode_ClientPolicyPropertyValidator)(properties.clientPolicy)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.requiredValidator)(properties.virtualServiceName)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.validateString)(properties.virtualServiceName)),errors.wrap('supplied properties not correct for "VirtualServiceBackendProperty"')}function cfnVirtualNodeVirtualServiceBackendPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualServiceBackendPropertyValidator(properties).assertSuccess(),{ClientPolicy:cfnVirtualNodeClientPolicyPropertyToCloudFormation(properties.clientPolicy),VirtualServiceName:cdk.stringToCloudFormation(properties.virtualServiceName)}):properties}function CfnVirtualNodeVirtualServiceBackendPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientPolicy","ClientPolicy",properties.ClientPolicy!=null?CfnVirtualNodeClientPolicyPropertyFromCloudFormation(properties.ClientPolicy):void 0),ret.addPropertyResult("virtualServiceName","VirtualServiceName",cfn_parse.FromCloudFormation.getString(properties.VirtualServiceName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualRouterPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualRouter_VirtualRouterSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.validateString)(properties.virtualRouterName)),errors.wrap('supplied properties not correct for "CfnVirtualRouterProps"')}function cfnVirtualRouterPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouterPropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualRouterVirtualRouterSpecPropertyToCloudFormation(properties.spec),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualRouterName:cdk.stringToCloudFormation(properties.virtualRouterName)}):properties}function CfnVirtualRouterPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualRouterVirtualRouterSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualRouterName","VirtualRouterName",properties.VirtualRouterName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualRouterName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualRouter extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualRouter.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualRouterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualRouter),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualRouterName=cdk.Token.asString(this.getAtt("VirtualRouterName")),this.meshName=props.meshName,this.spec=props.spec,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualRouter",props.tags,{tagPropertyName:"tags"}),this.virtualRouterName=props.virtualRouterName}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualRouterPropsFromCloudFormation(resourceProperties),ret=new CfnVirtualRouter(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualRouter.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,meshOwner:this.meshOwner,tags:this.tags.renderTags(),virtualRouterName:this.virtualRouterName}}renderProperties(props){return cfnVirtualRouterPropsToCloudFormation(props)}}exports.CfnVirtualRouter=CfnVirtualRouter,_f=JSII_RTTI_SYMBOL_1,CfnVirtualRouter[_f]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualRouter",version:"2.51.0"},CfnVirtualRouter.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualRouter";function CfnVirtualRouter_PortMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.requiredValidator)(properties.port)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "PortMappingProperty"')}function cfnVirtualRouterPortMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouter_PortMappingPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnVirtualRouterPortMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",cfn_parse.FromCloudFormation.getNumber(properties.Port)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualRouter_VirtualRouterListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("portMapping",cdk.requiredValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("portMapping",CfnVirtualRouter_PortMappingPropertyValidator)(properties.portMapping)),errors.wrap('supplied properties not correct for "VirtualRouterListenerProperty"')}function cfnVirtualRouterVirtualRouterListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouter_VirtualRouterListenerPropertyValidator(properties).assertSuccess(),{PortMapping:cfnVirtualRouterPortMappingPropertyToCloudFormation(properties.portMapping)}):properties}function CfnVirtualRouterVirtualRouterListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("portMapping","PortMapping",CfnVirtualRouterPortMappingPropertyFromCloudFormation(properties.PortMapping)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualRouter_VirtualRouterSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("listeners",cdk.requiredValidator)(properties.listeners)),errors.collect(cdk.propertyValidator("listeners",cdk.listValidator(CfnVirtualRouter_VirtualRouterListenerPropertyValidator))(properties.listeners)),errors.wrap('supplied properties not correct for "VirtualRouterSpecProperty"')}function cfnVirtualRouterVirtualRouterSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouter_VirtualRouterSpecPropertyValidator(properties).assertSuccess(),{Listeners:cdk.listMapper(cfnVirtualRouterVirtualRouterListenerPropertyToCloudFormation)(properties.listeners)}):properties}function CfnVirtualRouterVirtualRouterSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("listeners","Listeners",cfn_parse.FromCloudFormation.getArray(CfnVirtualRouterVirtualRouterListenerPropertyFromCloudFormation)(properties.Listeners)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualServicePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualService_VirtualServiceSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.requiredValidator)(properties.virtualServiceName)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.validateString)(properties.virtualServiceName)),errors.wrap('supplied properties not correct for "CfnVirtualServiceProps"')}function cfnVirtualServicePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualServicePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualServiceVirtualServiceSpecPropertyToCloudFormation(properties.spec),VirtualServiceName:cdk.stringToCloudFormation(properties.virtualServiceName),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVirtualServicePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualServiceVirtualServiceSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("virtualServiceName","VirtualServiceName",cfn_parse.FromCloudFormation.getString(properties.VirtualServiceName)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualService extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualService.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualService),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),cdk.requireProperty(props,"virtualServiceName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualServiceName=cdk.Token.asString(this.getAtt("VirtualServiceName")),this.meshName=props.meshName,this.spec=props.spec,this.virtualServiceName=props.virtualServiceName,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualService",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualServicePropsFromCloudFormation(resourceProperties),ret=new CfnVirtualService(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualService.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,virtualServiceName:this.virtualServiceName,meshOwner:this.meshOwner,tags:this.tags.renderTags()}}renderProperties(props){return cfnVirtualServicePropsToCloudFormation(props)}}exports.CfnVirtualService=CfnVirtualService,_g=JSII_RTTI_SYMBOL_1,CfnVirtualService[_g]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualService",version:"2.51.0"},CfnVirtualService.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualService";function CfnVirtualService_VirtualNodeServiceProviderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualNodeName",cdk.requiredValidator)(properties.virtualNodeName)),errors.collect(cdk.propertyValidator("virtualNodeName",cdk.validateString)(properties.virtualNodeName)),errors.wrap('supplied properties not correct for "VirtualNodeServiceProviderProperty"')}function cfnVirtualServiceVirtualNodeServiceProviderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualNodeServiceProviderPropertyValidator(properties).assertSuccess(),{VirtualNodeName:cdk.stringToCloudFormation(properties.virtualNodeName)}):properties}function CfnVirtualServiceVirtualNodeServiceProviderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualNodeName","VirtualNodeName",cfn_parse.FromCloudFormation.getString(properties.VirtualNodeName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualService_VirtualRouterServiceProviderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.requiredValidator)(properties.virtualRouterName)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.validateString)(properties.virtualRouterName)),errors.wrap('supplied properties not correct for "VirtualRouterServiceProviderProperty"')}function cfnVirtualServiceVirtualRouterServiceProviderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualRouterServiceProviderPropertyValidator(properties).assertSuccess(),{VirtualRouterName:cdk.stringToCloudFormation(properties.virtualRouterName)}):properties}function CfnVirtualServiceVirtualRouterServiceProviderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualRouterName","VirtualRouterName",cfn_parse.FromCloudFormation.getString(properties.VirtualRouterName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualService_VirtualServiceProviderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualNode",CfnVirtualService_VirtualNodeServiceProviderPropertyValidator)(properties.virtualNode)),errors.collect(cdk.propertyValidator("virtualRouter",CfnVirtualService_VirtualRouterServiceProviderPropertyValidator)(properties.virtualRouter)),errors.wrap('supplied properties not correct for "VirtualServiceProviderProperty"')}function cfnVirtualServiceVirtualServiceProviderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualServiceProviderPropertyValidator(properties).assertSuccess(),{VirtualNode:cfnVirtualServiceVirtualNodeServiceProviderPropertyToCloudFormation(properties.virtualNode),VirtualRouter:cfnVirtualServiceVirtualRouterServiceProviderPropertyToCloudFormation(properties.virtualRouter)}):properties}function CfnVirtualServiceVirtualServiceProviderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualNode","VirtualNode",properties.VirtualNode!=null?CfnVirtualServiceVirtualNodeServiceProviderPropertyFromCloudFormation(properties.VirtualNode):void 0),ret.addPropertyResult("virtualRouter","VirtualRouter",properties.VirtualRouter!=null?CfnVirtualServiceVirtualRouterServiceProviderPropertyFromCloudFormation(properties.VirtualRouter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualService_VirtualServiceSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("provider",CfnVirtualService_VirtualServiceProviderPropertyValidator)(properties.provider)),errors.wrap('supplied properties not correct for "VirtualServiceSpecProperty"')}function cfnVirtualServiceVirtualServiceSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualServiceSpecPropertyValidator(properties).assertSuccess(),{Provider:cfnVirtualServiceVirtualServiceProviderPropertyToCloudFormation(properties.provider)}):properties}function CfnVirtualServiceVirtualServiceSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("provider","Provider",properties.Provider!=null?CfnVirtualServiceVirtualServiceProviderPropertyFromCloudFormation(properties.Provider):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}
1
+ "use strict";var _a,_b,_c,_d,_e,_f,_g;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnVirtualService=exports.CfnVirtualRouter=exports.CfnVirtualNode=exports.CfnVirtualGateway=exports.CfnRoute=exports.CfnMesh=exports.CfnGatewayRoute=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnGatewayRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("gatewayRouteName",cdk.validateString)(properties.gatewayRouteName)),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnGatewayRoute_GatewayRouteSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualGatewayName",cdk.requiredValidator)(properties.virtualGatewayName)),errors.collect(cdk.propertyValidator("virtualGatewayName",cdk.validateString)(properties.virtualGatewayName)),errors.wrap('supplied properties not correct for "CfnGatewayRouteProps"')}function cfnGatewayRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoutePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnGatewayRouteGatewayRouteSpecPropertyToCloudFormation(properties.spec),VirtualGatewayName:cdk.stringToCloudFormation(properties.virtualGatewayName),GatewayRouteName:cdk.stringToCloudFormation(properties.gatewayRouteName),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnGatewayRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnGatewayRouteGatewayRouteSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("virtualGatewayName","VirtualGatewayName",cfn_parse.FromCloudFormation.getString(properties.VirtualGatewayName)),ret.addPropertyResult("gatewayRouteName","GatewayRouteName",properties.GatewayRouteName!=null?cfn_parse.FromCloudFormation.getString(properties.GatewayRouteName):void 0),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGatewayRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGatewayRoute),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),cdk.requireProperty(props,"virtualGatewayName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrGatewayRouteName=cdk.Token.asString(this.getAtt("GatewayRouteName")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualGatewayName=cdk.Token.asString(this.getAtt("VirtualGatewayName")),this.meshName=props.meshName,this.spec=props.spec,this.virtualGatewayName=props.virtualGatewayName,this.gatewayRouteName=props.gatewayRouteName,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::GatewayRoute",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGatewayRoutePropsFromCloudFormation(resourceProperties),ret=new CfnGatewayRoute(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,virtualGatewayName:this.virtualGatewayName,gatewayRouteName:this.gatewayRouteName,meshOwner:this.meshOwner,tags:this.tags.renderTags()}}renderProperties(props){return cfnGatewayRoutePropsToCloudFormation(props)}}exports.CfnGatewayRoute=CfnGatewayRoute,_a=JSII_RTTI_SYMBOL_1,CfnGatewayRoute[_a]={fqn:"aws-cdk-lib.aws_appmesh.CfnGatewayRoute",version:"2.51.1"},CfnGatewayRoute.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::GatewayRoute";function CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "GatewayRouteHostnameMatchProperty"')}function cfnGatewayRouteGatewayRouteHostnameMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnGatewayRouteGatewayRouteHostnameMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("defaultTargetHostname",cdk.validateString)(properties.defaultTargetHostname)),errors.wrap('supplied properties not correct for "GatewayRouteHostnameRewriteProperty"')}function cfnGatewayRouteGatewayRouteHostnameRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator(properties).assertSuccess(),{DefaultTargetHostname:cdk.stringToCloudFormation(properties.defaultTargetHostname)}):properties}function CfnGatewayRouteGatewayRouteHostnameRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultTargetHostname","DefaultTargetHostname",properties.DefaultTargetHostname!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultTargetHostname):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteMetadataMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "GatewayRouteMetadataMatchProperty"')}function cfnGatewayRouteGatewayRouteMetadataMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteMetadataMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnGatewayRouteGatewayRouteRangeMatchPropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnGatewayRouteGatewayRouteMetadataMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnGatewayRouteGatewayRouteRangeMatchPropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("end",cdk.requiredValidator)(properties.end)),errors.collect(cdk.propertyValidator("end",cdk.validateNumber)(properties.end)),errors.collect(cdk.propertyValidator("start",cdk.requiredValidator)(properties.start)),errors.collect(cdk.propertyValidator("start",cdk.validateNumber)(properties.start)),errors.wrap('supplied properties not correct for "GatewayRouteRangeMatchProperty"')}function cfnGatewayRouteGatewayRouteRangeMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator(properties).assertSuccess(),{End:cdk.numberToCloudFormation(properties.end),Start:cdk.numberToCloudFormation(properties.start)}):properties}function CfnGatewayRouteGatewayRouteRangeMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("end","End",cfn_parse.FromCloudFormation.getNumber(properties.End)),ret.addPropertyResult("start","Start",cfn_parse.FromCloudFormation.getNumber(properties.Start)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpcRoute",CfnGatewayRoute_GrpcGatewayRoutePropertyValidator)(properties.grpcRoute)),errors.collect(cdk.propertyValidator("http2Route",CfnGatewayRoute_HttpGatewayRoutePropertyValidator)(properties.http2Route)),errors.collect(cdk.propertyValidator("httpRoute",CfnGatewayRoute_HttpGatewayRoutePropertyValidator)(properties.httpRoute)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.wrap('supplied properties not correct for "GatewayRouteSpecProperty"')}function cfnGatewayRouteGatewayRouteSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteSpecPropertyValidator(properties).assertSuccess(),{GrpcRoute:cfnGatewayRouteGrpcGatewayRoutePropertyToCloudFormation(properties.grpcRoute),Http2Route:cfnGatewayRouteHttpGatewayRoutePropertyToCloudFormation(properties.http2Route),HttpRoute:cfnGatewayRouteHttpGatewayRoutePropertyToCloudFormation(properties.httpRoute),Priority:cdk.numberToCloudFormation(properties.priority)}):properties}function CfnGatewayRouteGatewayRouteSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpcRoute","GrpcRoute",properties.GrpcRoute!=null?CfnGatewayRouteGrpcGatewayRoutePropertyFromCloudFormation(properties.GrpcRoute):void 0),ret.addPropertyResult("http2Route","Http2Route",properties.Http2Route!=null?CfnGatewayRouteHttpGatewayRoutePropertyFromCloudFormation(properties.Http2Route):void 0),ret.addPropertyResult("httpRoute","HttpRoute",properties.HttpRoute!=null?CfnGatewayRouteHttpGatewayRoutePropertyFromCloudFormation(properties.HttpRoute):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("virtualService",cdk.requiredValidator)(properties.virtualService)),errors.collect(cdk.propertyValidator("virtualService",CfnGatewayRoute_GatewayRouteVirtualServicePropertyValidator)(properties.virtualService)),errors.wrap('supplied properties not correct for "GatewayRouteTargetProperty"')}function cfnGatewayRouteGatewayRouteTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteTargetPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),VirtualService:cfnGatewayRouteGatewayRouteVirtualServicePropertyToCloudFormation(properties.virtualService)}):properties}function CfnGatewayRouteGatewayRouteTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("virtualService","VirtualService",CfnGatewayRouteGatewayRouteVirtualServicePropertyFromCloudFormation(properties.VirtualService)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GatewayRouteVirtualServicePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.requiredValidator)(properties.virtualServiceName)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.validateString)(properties.virtualServiceName)),errors.wrap('supplied properties not correct for "GatewayRouteVirtualServiceProperty"')}function cfnGatewayRouteGatewayRouteVirtualServicePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GatewayRouteVirtualServicePropertyValidator(properties).assertSuccess(),{VirtualServiceName:cdk.stringToCloudFormation(properties.virtualServiceName)}):properties}function CfnGatewayRouteGatewayRouteVirtualServicePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualServiceName","VirtualServiceName",cfn_parse.FromCloudFormation.getString(properties.VirtualServiceName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnGatewayRoute_GrpcGatewayRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_GrpcGatewayRouteMatchPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteProperty"')}function cfnGatewayRouteGrpcGatewayRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRoutePropertyValidator(properties).assertSuccess(),{Action:cfnGatewayRouteGrpcGatewayRouteActionPropertyToCloudFormation(properties.action),Match:cfnGatewayRouteGrpcGatewayRouteMatchPropertyToCloudFormation(properties.match)}):properties}function CfnGatewayRouteGrpcGatewayRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnGatewayRouteGrpcGatewayRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnGatewayRouteGrpcGatewayRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("rewrite",CfnGatewayRoute_GrpcGatewayRouteRewritePropertyValidator)(properties.rewrite)),errors.collect(cdk.propertyValidator("target",cdk.requiredValidator)(properties.target)),errors.collect(cdk.propertyValidator("target",CfnGatewayRoute_GatewayRouteTargetPropertyValidator)(properties.target)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteActionProperty"')}function cfnGatewayRouteGrpcGatewayRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteActionPropertyValidator(properties).assertSuccess(),{Rewrite:cfnGatewayRouteGrpcGatewayRouteRewritePropertyToCloudFormation(properties.rewrite),Target:cfnGatewayRouteGatewayRouteTargetPropertyToCloudFormation(properties.target)}):properties}function CfnGatewayRouteGrpcGatewayRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("rewrite","Rewrite",properties.Rewrite!=null?CfnGatewayRouteGrpcGatewayRouteRewritePropertyFromCloudFormation(properties.Rewrite):void 0),ret.addPropertyResult("target","Target",CfnGatewayRouteGatewayRouteTargetPropertyFromCloudFormation(properties.Target)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("metadata",cdk.listValidator(CfnGatewayRoute_GrpcGatewayRouteMetadataPropertyValidator))(properties.metadata)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteMatchProperty"')}function cfnGatewayRouteGrpcGatewayRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteMatchPropertyValidator(properties).assertSuccess(),{Hostname:cfnGatewayRouteGatewayRouteHostnameMatchPropertyToCloudFormation(properties.hostname),Metadata:cdk.listMapper(cfnGatewayRouteGrpcGatewayRouteMetadataPropertyToCloudFormation)(properties.metadata),Port:cdk.numberToCloudFormation(properties.port),ServiceName:cdk.stringToCloudFormation(properties.serviceName)}):properties}function CfnGatewayRouteGrpcGatewayRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameMatchPropertyFromCloudFormation(properties.Hostname):void 0),ret.addPropertyResult("metadata","Metadata",properties.Metadata!=null?cfn_parse.FromCloudFormation.getArray(CfnGatewayRouteGrpcGatewayRouteMetadataPropertyFromCloudFormation)(properties.Metadata):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse.FromCloudFormation.getString(properties.ServiceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteMetadataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_GatewayRouteMetadataMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteMetadataProperty"')}function cfnGatewayRouteGrpcGatewayRouteMetadataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteMetadataPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnGatewayRouteGatewayRouteMetadataMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnGatewayRouteGrpcGatewayRouteMetadataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnGatewayRouteGatewayRouteMetadataMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_GrpcGatewayRouteRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator)(properties.hostname)),errors.wrap('supplied properties not correct for "GrpcGatewayRouteRewriteProperty"')}function cfnGatewayRouteGrpcGatewayRouteRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_GrpcGatewayRouteRewritePropertyValidator(properties).assertSuccess(),{Hostname:cfnGatewayRouteGatewayRouteHostnameRewritePropertyToCloudFormation(properties.hostname)}):properties}function CfnGatewayRouteGrpcGatewayRouteRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameRewritePropertyFromCloudFormation(properties.Hostname):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnGatewayRoute_HttpGatewayRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_HttpGatewayRouteMatchPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "HttpGatewayRouteProperty"')}function cfnGatewayRouteHttpGatewayRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRoutePropertyValidator(properties).assertSuccess(),{Action:cfnGatewayRouteHttpGatewayRouteActionPropertyToCloudFormation(properties.action),Match:cfnGatewayRouteHttpGatewayRouteMatchPropertyToCloudFormation(properties.match)}):properties}function CfnGatewayRouteHttpGatewayRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnGatewayRouteHttpGatewayRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnGatewayRouteHttpGatewayRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("rewrite",CfnGatewayRoute_HttpGatewayRouteRewritePropertyValidator)(properties.rewrite)),errors.collect(cdk.propertyValidator("target",cdk.requiredValidator)(properties.target)),errors.collect(cdk.propertyValidator("target",CfnGatewayRoute_GatewayRouteTargetPropertyValidator)(properties.target)),errors.wrap('supplied properties not correct for "HttpGatewayRouteActionProperty"')}function cfnGatewayRouteHttpGatewayRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteActionPropertyValidator(properties).assertSuccess(),{Rewrite:cfnGatewayRouteHttpGatewayRouteRewritePropertyToCloudFormation(properties.rewrite),Target:cfnGatewayRouteGatewayRouteTargetPropertyToCloudFormation(properties.target)}):properties}function CfnGatewayRouteHttpGatewayRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("rewrite","Rewrite",properties.Rewrite!=null?CfnGatewayRouteHttpGatewayRouteRewritePropertyFromCloudFormation(properties.Rewrite):void 0),ret.addPropertyResult("target","Target",CfnGatewayRouteGatewayRouteTargetPropertyFromCloudFormation(properties.Target)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteHeaderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_HttpGatewayRouteHeaderMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "HttpGatewayRouteHeaderProperty"')}function cfnGatewayRouteHttpGatewayRouteHeaderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteHeaderPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnGatewayRouteHttpGatewayRouteHeaderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteHeaderMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnGatewayRoute_GatewayRouteRangeMatchPropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "HttpGatewayRouteHeaderMatchProperty"')}function cfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteHeaderMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnGatewayRouteGatewayRouteRangeMatchPropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnGatewayRouteHttpGatewayRouteHeaderMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnGatewayRouteGatewayRouteRangeMatchPropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("headers",cdk.listValidator(CfnGatewayRoute_HttpGatewayRouteHeaderPropertyValidator))(properties.headers)),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameMatchPropertyValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("method",cdk.validateString)(properties.method)),errors.collect(cdk.propertyValidator("path",CfnGatewayRoute_HttpPathMatchPropertyValidator)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("queryParameters",cdk.listValidator(CfnGatewayRoute_QueryParameterPropertyValidator))(properties.queryParameters)),errors.wrap('supplied properties not correct for "HttpGatewayRouteMatchProperty"')}function cfnGatewayRouteHttpGatewayRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteMatchPropertyValidator(properties).assertSuccess(),{Headers:cdk.listMapper(cfnGatewayRouteHttpGatewayRouteHeaderPropertyToCloudFormation)(properties.headers),Hostname:cfnGatewayRouteGatewayRouteHostnameMatchPropertyToCloudFormation(properties.hostname),Method:cdk.stringToCloudFormation(properties.method),Path:cfnGatewayRouteHttpPathMatchPropertyToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Prefix:cdk.stringToCloudFormation(properties.prefix),QueryParameters:cdk.listMapper(cfnGatewayRouteQueryParameterPropertyToCloudFormation)(properties.queryParameters)}):properties}function CfnGatewayRouteHttpGatewayRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse.FromCloudFormation.getArray(CfnGatewayRouteHttpGatewayRouteHeaderPropertyFromCloudFormation)(properties.Headers):void 0),ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameMatchPropertyFromCloudFormation(properties.Hostname):void 0),ret.addPropertyResult("method","Method",properties.Method!=null?cfn_parse.FromCloudFormation.getString(properties.Method):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?CfnGatewayRouteHttpPathMatchPropertyFromCloudFormation(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("queryParameters","QueryParameters",properties.QueryParameters!=null?cfn_parse.FromCloudFormation.getArray(CfnGatewayRouteQueryParameterPropertyFromCloudFormation)(properties.QueryParameters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRoutePathRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.wrap('supplied properties not correct for "HttpGatewayRoutePathRewriteProperty"')}function cfnGatewayRouteHttpGatewayRoutePathRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRoutePathRewritePropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact)}):properties}function CfnGatewayRouteHttpGatewayRoutePathRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRoutePrefixRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("defaultPrefix",cdk.validateString)(properties.defaultPrefix)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "HttpGatewayRoutePrefixRewriteProperty"')}function cfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRoutePrefixRewritePropertyValidator(properties).assertSuccess(),{DefaultPrefix:cdk.stringToCloudFormation(properties.defaultPrefix),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultPrefix","DefaultPrefix",properties.DefaultPrefix!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultPrefix):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse.FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpGatewayRouteRewritePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",CfnGatewayRoute_GatewayRouteHostnameRewritePropertyValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("path",CfnGatewayRoute_HttpGatewayRoutePathRewritePropertyValidator)(properties.path)),errors.collect(cdk.propertyValidator("prefix",CfnGatewayRoute_HttpGatewayRoutePrefixRewritePropertyValidator)(properties.prefix)),errors.wrap('supplied properties not correct for "HttpGatewayRouteRewriteProperty"')}function cfnGatewayRouteHttpGatewayRouteRewritePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpGatewayRouteRewritePropertyValidator(properties).assertSuccess(),{Hostname:cfnGatewayRouteGatewayRouteHostnameRewritePropertyToCloudFormation(properties.hostname),Path:cfnGatewayRouteHttpGatewayRoutePathRewritePropertyToCloudFormation(properties.path),Prefix:cfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyToCloudFormation(properties.prefix)}):properties}function CfnGatewayRouteHttpGatewayRouteRewritePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",properties.Hostname!=null?CfnGatewayRouteGatewayRouteHostnameRewritePropertyFromCloudFormation(properties.Hostname):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?CfnGatewayRouteHttpGatewayRoutePathRewritePropertyFromCloudFormation(properties.Path):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?CfnGatewayRouteHttpGatewayRoutePrefixRewritePropertyFromCloudFormation(properties.Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpPathMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.wrap('supplied properties not correct for "HttpPathMatchProperty"')}function cfnGatewayRouteHttpPathMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpPathMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Regex:cdk.stringToCloudFormation(properties.regex)}):properties}function CfnGatewayRouteHttpPathMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_HttpQueryParameterMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.wrap('supplied properties not correct for "HttpQueryParameterMatchProperty"')}function cfnGatewayRouteHttpQueryParameterMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_HttpQueryParameterMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact)}):properties}function CfnGatewayRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGatewayRoute_QueryParameterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",CfnGatewayRoute_HttpQueryParameterMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "QueryParameterProperty"')}function cfnGatewayRouteQueryParameterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRoute_QueryParameterPropertyValidator(properties).assertSuccess(),{Match:cfnGatewayRouteHttpQueryParameterMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnGatewayRouteQueryParameterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",properties.Match!=null?CfnGatewayRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMeshPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("spec",CfnMesh_MeshSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnMeshProps"')}function cfnMeshPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMeshPropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnMeshMeshSpecPropertyToCloudFormation(properties.spec),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnMeshPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",properties.MeshName!=null?cfn_parse.FromCloudFormation.getString(properties.MeshName):void 0),ret.addPropertyResult("spec","Spec",properties.Spec!=null?CfnMeshMeshSpecPropertyFromCloudFormation(properties.Spec):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnMesh extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnMesh.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnMeshProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnMesh),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.meshName=props.meshName,this.spec=props.spec,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::Mesh",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnMeshPropsFromCloudFormation(resourceProperties),ret=new CfnMesh(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnMesh.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,tags:this.tags.renderTags()}}renderProperties(props){return cfnMeshPropsToCloudFormation(props)}}exports.CfnMesh=CfnMesh,_b=JSII_RTTI_SYMBOL_1,CfnMesh[_b]={fqn:"aws-cdk-lib.aws_appmesh.CfnMesh",version:"2.51.1"},CfnMesh.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::Mesh";function CfnMesh_EgressFilterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("type",cdk.requiredValidator)(properties.type)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.wrap('supplied properties not correct for "EgressFilterProperty"')}function cfnMeshEgressFilterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMesh_EgressFilterPropertyValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnMeshEgressFilterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMesh_MeshServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipPreference",cdk.validateString)(properties.ipPreference)),errors.wrap('supplied properties not correct for "MeshServiceDiscoveryProperty"')}function cfnMeshMeshServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMesh_MeshServiceDiscoveryPropertyValidator(properties).assertSuccess(),{IpPreference:cdk.stringToCloudFormation(properties.ipPreference)}):properties}function CfnMeshMeshServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipPreference","IpPreference",properties.IpPreference!=null?cfn_parse.FromCloudFormation.getString(properties.IpPreference):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnMesh_MeshSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("egressFilter",CfnMesh_EgressFilterPropertyValidator)(properties.egressFilter)),errors.collect(cdk.propertyValidator("serviceDiscovery",CfnMesh_MeshServiceDiscoveryPropertyValidator)(properties.serviceDiscovery)),errors.wrap('supplied properties not correct for "MeshSpecProperty"')}function cfnMeshMeshSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnMesh_MeshSpecPropertyValidator(properties).assertSuccess(),{EgressFilter:cfnMeshEgressFilterPropertyToCloudFormation(properties.egressFilter),ServiceDiscovery:cfnMeshMeshServiceDiscoveryPropertyToCloudFormation(properties.serviceDiscovery)}):properties}function CfnMeshMeshSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("egressFilter","EgressFilter",properties.EgressFilter!=null?CfnMeshEgressFilterPropertyFromCloudFormation(properties.EgressFilter):void 0),ret.addPropertyResult("serviceDiscovery","ServiceDiscovery",properties.ServiceDiscovery!=null?CfnMeshMeshServiceDiscoveryPropertyFromCloudFormation(properties.ServiceDiscovery):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("routeName",cdk.validateString)(properties.routeName)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnRoute_RouteSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.requiredValidator)(properties.virtualRouterName)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.validateString)(properties.virtualRouterName)),errors.wrap('supplied properties not correct for "CfnRouteProps"')}function cfnRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoutePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnRouteRouteSpecPropertyToCloudFormation(properties.spec),VirtualRouterName:cdk.stringToCloudFormation(properties.virtualRouterName),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),RouteName:cdk.stringToCloudFormation(properties.routeName),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnRouteRouteSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("virtualRouterName","VirtualRouterName",cfn_parse.FromCloudFormation.getString(properties.VirtualRouterName)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("routeName","RouteName",properties.RouteName!=null?cfn_parse.FromCloudFormation.getString(properties.RouteName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRoute),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),cdk.requireProperty(props,"virtualRouterName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrRouteName=cdk.Token.asString(this.getAtt("RouteName")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualRouterName=cdk.Token.asString(this.getAtt("VirtualRouterName")),this.meshName=props.meshName,this.spec=props.spec,this.virtualRouterName=props.virtualRouterName,this.meshOwner=props.meshOwner,this.routeName=props.routeName,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::Route",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRoutePropsFromCloudFormation(resourceProperties),ret=new CfnRoute(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,virtualRouterName:this.virtualRouterName,meshOwner:this.meshOwner,routeName:this.routeName,tags:this.tags.renderTags()}}renderProperties(props){return cfnRoutePropsToCloudFormation(props)}}exports.CfnRoute=CfnRoute,_c=JSII_RTTI_SYMBOL_1,CfnRoute[_c]={fqn:"aws-cdk-lib.aws_appmesh.CfnRoute",version:"2.51.1"},CfnRoute.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::Route";function CfnRoute_DurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("unit",cdk.requiredValidator)(properties.unit)),errors.collect(cdk.propertyValidator("unit",cdk.validateString)(properties.unit)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "DurationProperty"')}function cfnRouteDurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_DurationPropertyValidator(properties).assertSuccess(),{Unit:cdk.stringToCloudFormation(properties.unit),Value:cdk.numberToCloudFormation(properties.value)}):properties}function CfnRouteDurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("unit","Unit",cfn_parse.FromCloudFormation.getString(properties.Unit)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getNumber(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRetryPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpcRetryEvents",cdk.listValidator(cdk.validateString))(properties.grpcRetryEvents)),errors.collect(cdk.propertyValidator("httpRetryEvents",cdk.listValidator(cdk.validateString))(properties.httpRetryEvents)),errors.collect(cdk.propertyValidator("maxRetries",cdk.requiredValidator)(properties.maxRetries)),errors.collect(cdk.propertyValidator("maxRetries",cdk.validateNumber)(properties.maxRetries)),errors.collect(cdk.propertyValidator("perRetryTimeout",cdk.requiredValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("perRetryTimeout",CfnRoute_DurationPropertyValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("tcpRetryEvents",cdk.listValidator(cdk.validateString))(properties.tcpRetryEvents)),errors.wrap('supplied properties not correct for "GrpcRetryPolicyProperty"')}function cfnRouteGrpcRetryPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRetryPolicyPropertyValidator(properties).assertSuccess(),{GrpcRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.grpcRetryEvents),HttpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.httpRetryEvents),MaxRetries:cdk.numberToCloudFormation(properties.maxRetries),PerRetryTimeout:cfnRouteDurationPropertyToCloudFormation(properties.perRetryTimeout),TcpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.tcpRetryEvents)}):properties}function CfnRouteGrpcRetryPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpcRetryEvents","GrpcRetryEvents",properties.GrpcRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GrpcRetryEvents):void 0),ret.addPropertyResult("httpRetryEvents","HttpRetryEvents",properties.HttpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.HttpRetryEvents):void 0),ret.addPropertyResult("maxRetries","MaxRetries",cfn_parse.FromCloudFormation.getNumber(properties.MaxRetries)),ret.addPropertyResult("perRetryTimeout","PerRetryTimeout",CfnRouteDurationPropertyFromCloudFormation(properties.PerRetryTimeout)),ret.addPropertyResult("tcpRetryEvents","TcpRetryEvents",properties.TcpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.TcpRetryEvents):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnRoute_GrpcRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnRoute_GrpcRouteMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("retryPolicy",CfnRoute_GrpcRetryPolicyPropertyValidator)(properties.retryPolicy)),errors.collect(cdk.propertyValidator("timeout",CfnRoute_GrpcTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "GrpcRouteProperty"')}function cfnRouteGrpcRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRoutePropertyValidator(properties).assertSuccess(),{Action:cfnRouteGrpcRouteActionPropertyToCloudFormation(properties.action),Match:cfnRouteGrpcRouteMatchPropertyToCloudFormation(properties.match),RetryPolicy:cfnRouteGrpcRetryPolicyPropertyToCloudFormation(properties.retryPolicy),Timeout:cfnRouteGrpcTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnRouteGrpcRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnRouteGrpcRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnRouteGrpcRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addPropertyResult("retryPolicy","RetryPolicy",properties.RetryPolicy!=null?CfnRouteGrpcRetryPolicyPropertyFromCloudFormation(properties.RetryPolicy):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnRouteGrpcTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("weightedTargets",cdk.requiredValidator)(properties.weightedTargets)),errors.collect(cdk.propertyValidator("weightedTargets",cdk.listValidator(CfnRoute_WeightedTargetPropertyValidator))(properties.weightedTargets)),errors.wrap('supplied properties not correct for "GrpcRouteActionProperty"')}function cfnRouteGrpcRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteActionPropertyValidator(properties).assertSuccess(),{WeightedTargets:cdk.listMapper(cfnRouteWeightedTargetPropertyToCloudFormation)(properties.weightedTargets)}):properties}function CfnRouteGrpcRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("weightedTargets","WeightedTargets",cfn_parse.FromCloudFormation.getArray(CfnRouteWeightedTargetPropertyFromCloudFormation)(properties.WeightedTargets)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("metadata",cdk.listValidator(CfnRoute_GrpcRouteMetadataPropertyValidator))(properties.metadata)),errors.collect(cdk.propertyValidator("methodName",cdk.validateString)(properties.methodName)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.wrap('supplied properties not correct for "GrpcRouteMatchProperty"')}function cfnRouteGrpcRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteMatchPropertyValidator(properties).assertSuccess(),{Metadata:cdk.listMapper(cfnRouteGrpcRouteMetadataPropertyToCloudFormation)(properties.metadata),MethodName:cdk.stringToCloudFormation(properties.methodName),Port:cdk.numberToCloudFormation(properties.port),ServiceName:cdk.stringToCloudFormation(properties.serviceName)}):properties}function CfnRouteGrpcRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("metadata","Metadata",properties.Metadata!=null?cfn_parse.FromCloudFormation.getArray(CfnRouteGrpcRouteMetadataPropertyFromCloudFormation)(properties.Metadata):void 0),ret.addPropertyResult("methodName","MethodName",properties.MethodName!=null?cfn_parse.FromCloudFormation.getString(properties.MethodName):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("serviceName","ServiceName",properties.ServiceName!=null?cfn_parse.FromCloudFormation.getString(properties.ServiceName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteMetadataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnRoute_GrpcRouteMetadataMatchMethodPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "GrpcRouteMetadataProperty"')}function cfnRouteGrpcRouteMetadataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteMetadataPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnRouteGrpcRouteMetadataMatchMethodPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnRouteGrpcRouteMetadataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteGrpcRouteMetadataMatchMethodPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcRouteMetadataMatchMethodPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnRoute_MatchRangePropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "GrpcRouteMetadataMatchMethodProperty"')}function cfnRouteGrpcRouteMetadataMatchMethodPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcRouteMetadataMatchMethodPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnRouteMatchRangePropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnRouteGrpcRouteMetadataMatchMethodPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnRouteMatchRangePropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_GrpcTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnRoute_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnRoute_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "GrpcTimeoutProperty"')}function cfnRouteGrpcTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_GrpcTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnRouteDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnRouteDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnRouteGrpcTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnRouteDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnRouteDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HeaderMatchMethodPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("range",CfnRoute_MatchRangePropertyValidator)(properties.range)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.collect(cdk.propertyValidator("suffix",cdk.validateString)(properties.suffix)),errors.wrap('supplied properties not correct for "HeaderMatchMethodProperty"')}function cfnRouteHeaderMatchMethodPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HeaderMatchMethodPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Prefix:cdk.stringToCloudFormation(properties.prefix),Range:cfnRouteMatchRangePropertyToCloudFormation(properties.range),Regex:cdk.stringToCloudFormation(properties.regex),Suffix:cdk.stringToCloudFormation(properties.suffix)}):properties}function CfnRouteHeaderMatchMethodPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("range","Range",properties.Range!=null?CfnRouteMatchRangePropertyFromCloudFormation(properties.Range):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addPropertyResult("suffix","Suffix",properties.Suffix!=null?cfn_parse.FromCloudFormation.getString(properties.Suffix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpPathMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.collect(cdk.propertyValidator("regex",cdk.validateString)(properties.regex)),errors.wrap('supplied properties not correct for "HttpPathMatchProperty"')}function cfnRouteHttpPathMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpPathMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact),Regex:cdk.stringToCloudFormation(properties.regex)}):properties}function CfnRouteHttpPathMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addPropertyResult("regex","Regex",properties.Regex!=null?cfn_parse.FromCloudFormation.getString(properties.Regex):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpQueryParameterMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.validateString)(properties.exact)),errors.wrap('supplied properties not correct for "HttpQueryParameterMatchProperty"')}function cfnRouteHttpQueryParameterMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpQueryParameterMatchPropertyValidator(properties).assertSuccess(),{Exact:cdk.stringToCloudFormation(properties.exact)}):properties}function CfnRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getString(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRetryPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("httpRetryEvents",cdk.listValidator(cdk.validateString))(properties.httpRetryEvents)),errors.collect(cdk.propertyValidator("maxRetries",cdk.requiredValidator)(properties.maxRetries)),errors.collect(cdk.propertyValidator("maxRetries",cdk.validateNumber)(properties.maxRetries)),errors.collect(cdk.propertyValidator("perRetryTimeout",cdk.requiredValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("perRetryTimeout",CfnRoute_DurationPropertyValidator)(properties.perRetryTimeout)),errors.collect(cdk.propertyValidator("tcpRetryEvents",cdk.listValidator(cdk.validateString))(properties.tcpRetryEvents)),errors.wrap('supplied properties not correct for "HttpRetryPolicyProperty"')}function cfnRouteHttpRetryPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRetryPolicyPropertyValidator(properties).assertSuccess(),{HttpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.httpRetryEvents),MaxRetries:cdk.numberToCloudFormation(properties.maxRetries),PerRetryTimeout:cfnRouteDurationPropertyToCloudFormation(properties.perRetryTimeout),TcpRetryEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.tcpRetryEvents)}):properties}function CfnRouteHttpRetryPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("httpRetryEvents","HttpRetryEvents",properties.HttpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.HttpRetryEvents):void 0),ret.addPropertyResult("maxRetries","MaxRetries",cfn_parse.FromCloudFormation.getNumber(properties.MaxRetries)),ret.addPropertyResult("perRetryTimeout","PerRetryTimeout",CfnRouteDurationPropertyFromCloudFormation(properties.PerRetryTimeout)),ret.addPropertyResult("tcpRetryEvents","TcpRetryEvents",properties.TcpRetryEvents!=null?cfn_parse.FromCloudFormation.getStringArray(properties.TcpRetryEvents):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnRoute_HttpRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnRoute_HttpRouteMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("retryPolicy",CfnRoute_HttpRetryPolicyPropertyValidator)(properties.retryPolicy)),errors.collect(cdk.propertyValidator("timeout",CfnRoute_HttpTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "HttpRouteProperty"')}function cfnRouteHttpRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRoutePropertyValidator(properties).assertSuccess(),{Action:cfnRouteHttpRouteActionPropertyToCloudFormation(properties.action),Match:cfnRouteHttpRouteMatchPropertyToCloudFormation(properties.match),RetryPolicy:cfnRouteHttpRetryPolicyPropertyToCloudFormation(properties.retryPolicy),Timeout:cfnRouteHttpTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnRouteHttpRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnRouteHttpRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",CfnRouteHttpRouteMatchPropertyFromCloudFormation(properties.Match)),ret.addPropertyResult("retryPolicy","RetryPolicy",properties.RetryPolicy!=null?CfnRouteHttpRetryPolicyPropertyFromCloudFormation(properties.RetryPolicy):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnRouteHttpTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("weightedTargets",cdk.requiredValidator)(properties.weightedTargets)),errors.collect(cdk.propertyValidator("weightedTargets",cdk.listValidator(CfnRoute_WeightedTargetPropertyValidator))(properties.weightedTargets)),errors.wrap('supplied properties not correct for "HttpRouteActionProperty"')}function cfnRouteHttpRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRouteActionPropertyValidator(properties).assertSuccess(),{WeightedTargets:cdk.listMapper(cfnRouteWeightedTargetPropertyToCloudFormation)(properties.weightedTargets)}):properties}function CfnRouteHttpRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("weightedTargets","WeightedTargets",cfn_parse.FromCloudFormation.getArray(CfnRouteWeightedTargetPropertyFromCloudFormation)(properties.WeightedTargets)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRouteHeaderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("invert",cdk.validateBoolean)(properties.invert)),errors.collect(cdk.propertyValidator("match",CfnRoute_HeaderMatchMethodPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "HttpRouteHeaderProperty"')}function cfnRouteHttpRouteHeaderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRouteHeaderPropertyValidator(properties).assertSuccess(),{Invert:cdk.booleanToCloudFormation(properties.invert),Match:cfnRouteHeaderMatchMethodPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnRouteHttpRouteHeaderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("invert","Invert",properties.Invert!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Invert):void 0),ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteHeaderMatchMethodPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("headers",cdk.listValidator(CfnRoute_HttpRouteHeaderPropertyValidator))(properties.headers)),errors.collect(cdk.propertyValidator("method",cdk.validateString)(properties.method)),errors.collect(cdk.propertyValidator("path",CfnRoute_HttpPathMatchPropertyValidator)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("prefix",cdk.validateString)(properties.prefix)),errors.collect(cdk.propertyValidator("queryParameters",cdk.listValidator(CfnRoute_QueryParameterPropertyValidator))(properties.queryParameters)),errors.collect(cdk.propertyValidator("scheme",cdk.validateString)(properties.scheme)),errors.wrap('supplied properties not correct for "HttpRouteMatchProperty"')}function cfnRouteHttpRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpRouteMatchPropertyValidator(properties).assertSuccess(),{Headers:cdk.listMapper(cfnRouteHttpRouteHeaderPropertyToCloudFormation)(properties.headers),Method:cdk.stringToCloudFormation(properties.method),Path:cfnRouteHttpPathMatchPropertyToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Prefix:cdk.stringToCloudFormation(properties.prefix),QueryParameters:cdk.listMapper(cfnRouteQueryParameterPropertyToCloudFormation)(properties.queryParameters),Scheme:cdk.stringToCloudFormation(properties.scheme)}):properties}function CfnRouteHttpRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("headers","Headers",properties.Headers!=null?cfn_parse.FromCloudFormation.getArray(CfnRouteHttpRouteHeaderPropertyFromCloudFormation)(properties.Headers):void 0),ret.addPropertyResult("method","Method",properties.Method!=null?cfn_parse.FromCloudFormation.getString(properties.Method):void 0),ret.addPropertyResult("path","Path",properties.Path!=null?CfnRouteHttpPathMatchPropertyFromCloudFormation(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("prefix","Prefix",properties.Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Prefix):void 0),ret.addPropertyResult("queryParameters","QueryParameters",properties.QueryParameters!=null?cfn_parse.FromCloudFormation.getArray(CfnRouteQueryParameterPropertyFromCloudFormation)(properties.QueryParameters):void 0),ret.addPropertyResult("scheme","Scheme",properties.Scheme!=null?cfn_parse.FromCloudFormation.getString(properties.Scheme):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_HttpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnRoute_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnRoute_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "HttpTimeoutProperty"')}function cfnRouteHttpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_HttpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnRouteDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnRouteDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnRouteHttpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnRouteDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnRouteDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_MatchRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("end",cdk.requiredValidator)(properties.end)),errors.collect(cdk.propertyValidator("end",cdk.validateNumber)(properties.end)),errors.collect(cdk.propertyValidator("start",cdk.requiredValidator)(properties.start)),errors.collect(cdk.propertyValidator("start",cdk.validateNumber)(properties.start)),errors.wrap('supplied properties not correct for "MatchRangeProperty"')}function cfnRouteMatchRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_MatchRangePropertyValidator(properties).assertSuccess(),{End:cdk.numberToCloudFormation(properties.end),Start:cdk.numberToCloudFormation(properties.start)}):properties}function CfnRouteMatchRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("end","End",cfn_parse.FromCloudFormation.getNumber(properties.End)),ret.addPropertyResult("start","Start",cfn_parse.FromCloudFormation.getNumber(properties.Start)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_QueryParameterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",CfnRoute_HttpQueryParameterMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("name",cdk.requiredValidator)(properties.name)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "QueryParameterProperty"')}function cfnRouteQueryParameterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_QueryParameterPropertyValidator(properties).assertSuccess(),{Match:cfnRouteHttpQueryParameterMatchPropertyToCloudFormation(properties.match),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnRouteQueryParameterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteHttpQueryParameterMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_RouteSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpcRoute",CfnRoute_GrpcRoutePropertyValidator)(properties.grpcRoute)),errors.collect(cdk.propertyValidator("http2Route",CfnRoute_HttpRoutePropertyValidator)(properties.http2Route)),errors.collect(cdk.propertyValidator("httpRoute",CfnRoute_HttpRoutePropertyValidator)(properties.httpRoute)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("tcpRoute",CfnRoute_TcpRoutePropertyValidator)(properties.tcpRoute)),errors.wrap('supplied properties not correct for "RouteSpecProperty"')}function cfnRouteRouteSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_RouteSpecPropertyValidator(properties).assertSuccess(),{GrpcRoute:cfnRouteGrpcRoutePropertyToCloudFormation(properties.grpcRoute),Http2Route:cfnRouteHttpRoutePropertyToCloudFormation(properties.http2Route),HttpRoute:cfnRouteHttpRoutePropertyToCloudFormation(properties.httpRoute),Priority:cdk.numberToCloudFormation(properties.priority),TcpRoute:cfnRouteTcpRoutePropertyToCloudFormation(properties.tcpRoute)}):properties}function CfnRouteRouteSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpcRoute","GrpcRoute",properties.GrpcRoute!=null?CfnRouteGrpcRoutePropertyFromCloudFormation(properties.GrpcRoute):void 0),ret.addPropertyResult("http2Route","Http2Route",properties.Http2Route!=null?CfnRouteHttpRoutePropertyFromCloudFormation(properties.Http2Route):void 0),ret.addPropertyResult("httpRoute","HttpRoute",properties.HttpRoute!=null?CfnRouteHttpRoutePropertyFromCloudFormation(properties.HttpRoute):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("tcpRoute","TcpRoute",properties.TcpRoute!=null?CfnRouteTcpRoutePropertyFromCloudFormation(properties.TcpRoute):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("action",cdk.requiredValidator)(properties.action)),errors.collect(cdk.propertyValidator("action",CfnRoute_TcpRouteActionPropertyValidator)(properties.action)),errors.collect(cdk.propertyValidator("match",CfnRoute_TcpRouteMatchPropertyValidator)(properties.match)),errors.collect(cdk.propertyValidator("timeout",CfnRoute_TcpTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "TcpRouteProperty"')}function cfnRouteTcpRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpRoutePropertyValidator(properties).assertSuccess(),{Action:cfnRouteTcpRouteActionPropertyToCloudFormation(properties.action),Match:cfnRouteTcpRouteMatchPropertyToCloudFormation(properties.match),Timeout:cfnRouteTcpTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnRouteTcpRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("action","Action",CfnRouteTcpRouteActionPropertyFromCloudFormation(properties.Action)),ret.addPropertyResult("match","Match",properties.Match!=null?CfnRouteTcpRouteMatchPropertyFromCloudFormation(properties.Match):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnRouteTcpTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpRouteActionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("weightedTargets",cdk.requiredValidator)(properties.weightedTargets)),errors.collect(cdk.propertyValidator("weightedTargets",cdk.listValidator(CfnRoute_WeightedTargetPropertyValidator))(properties.weightedTargets)),errors.wrap('supplied properties not correct for "TcpRouteActionProperty"')}function cfnRouteTcpRouteActionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpRouteActionPropertyValidator(properties).assertSuccess(),{WeightedTargets:cdk.listMapper(cfnRouteWeightedTargetPropertyToCloudFormation)(properties.weightedTargets)}):properties}function CfnRouteTcpRouteActionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("weightedTargets","WeightedTargets",cfn_parse.FromCloudFormation.getArray(CfnRouteWeightedTargetPropertyFromCloudFormation)(properties.WeightedTargets)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpRouteMatchPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "TcpRouteMatchProperty"')}function cfnRouteTcpRouteMatchPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpRouteMatchPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port)}):properties}function CfnRouteTcpRouteMatchPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_TcpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnRoute_DurationPropertyValidator)(properties.idle)),errors.wrap('supplied properties not correct for "TcpTimeoutProperty"')}function cfnRouteTcpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_TcpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnRouteDurationPropertyToCloudFormation(properties.idle)}):properties}function CfnRouteTcpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnRouteDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRoute_WeightedTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("virtualNode",cdk.requiredValidator)(properties.virtualNode)),errors.collect(cdk.propertyValidator("virtualNode",cdk.validateString)(properties.virtualNode)),errors.collect(cdk.propertyValidator("weight",cdk.requiredValidator)(properties.weight)),errors.collect(cdk.propertyValidator("weight",cdk.validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "WeightedTargetProperty"')}function cfnRouteWeightedTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoute_WeightedTargetPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),VirtualNode:cdk.stringToCloudFormation(properties.virtualNode),Weight:cdk.numberToCloudFormation(properties.weight)}):properties}function CfnRouteWeightedTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("virtualNode","VirtualNode",cfn_parse.FromCloudFormation.getString(properties.VirtualNode)),ret.addPropertyResult("weight","Weight",cfn_parse.FromCloudFormation.getNumber(properties.Weight)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualGateway_VirtualGatewaySpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualGatewayName",cdk.validateString)(properties.virtualGatewayName)),errors.wrap('supplied properties not correct for "CfnVirtualGatewayProps"')}function cfnVirtualGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGatewayPropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualGatewayVirtualGatewaySpecPropertyToCloudFormation(properties.spec),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualGatewayName:cdk.stringToCloudFormation(properties.virtualGatewayName)}):properties}function CfnVirtualGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualGatewayVirtualGatewaySpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualGatewayName","VirtualGatewayName",properties.VirtualGatewayName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualGatewayName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualGateway),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualGatewayName=cdk.Token.asString(this.getAtt("VirtualGatewayName")),this.meshName=props.meshName,this.spec=props.spec,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualGateway",props.tags,{tagPropertyName:"tags"}),this.virtualGatewayName=props.virtualGatewayName}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnVirtualGateway(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,meshOwner:this.meshOwner,tags:this.tags.renderTags(),virtualGatewayName:this.virtualGatewayName}}renderProperties(props){return cfnVirtualGatewayPropsToCloudFormation(props)}}exports.CfnVirtualGateway=CfnVirtualGateway,_d=JSII_RTTI_SYMBOL_1,CfnVirtualGateway[_d]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualGateway",version:"2.51.1"},CfnVirtualGateway.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualGateway";function CfnVirtualGateway_JsonFormatRefPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("key",cdk.requiredValidator)(properties.key)),errors.collect(cdk.propertyValidator("key",cdk.validateString)(properties.key)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "JsonFormatRefProperty"')}function cfnVirtualGatewayJsonFormatRefPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_JsonFormatRefPropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnVirtualGatewayJsonFormatRefPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",cfn_parse.FromCloudFormation.getString(properties.Key)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getString(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_LoggingFormatPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("json",cdk.listValidator(CfnVirtualGateway_JsonFormatRefPropertyValidator))(properties.json)),errors.collect(cdk.propertyValidator("text",cdk.validateString)(properties.text)),errors.wrap('supplied properties not correct for "LoggingFormatProperty"')}function cfnVirtualGatewayLoggingFormatPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_LoggingFormatPropertyValidator(properties).assertSuccess(),{Json:cdk.listMapper(cfnVirtualGatewayJsonFormatRefPropertyToCloudFormation)(properties.json),Text:cdk.stringToCloudFormation(properties.text)}):properties}function CfnVirtualGatewayLoggingFormatPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("json","Json",properties.Json!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualGatewayJsonFormatRefPropertyFromCloudFormation)(properties.Json):void 0),ret.addPropertyResult("text","Text",properties.Text!=null?cfn_parse.FromCloudFormation.getString(properties.Text):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_SubjectAlternativeNameMatchersPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.listValidator(cdk.validateString))(properties.exact)),errors.wrap('supplied properties not correct for "SubjectAlternativeNameMatchersProperty"')}function cfnVirtualGatewaySubjectAlternativeNameMatchersPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_SubjectAlternativeNameMatchersPropertyValidator(properties).assertSuccess(),{Exact:cdk.listMapper(cdk.stringToCloudFormation)(properties.exact)}):properties}function CfnVirtualGatewaySubjectAlternativeNameMatchersPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnVirtualGateway_SubjectAlternativeNameMatchersPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "SubjectAlternativeNamesProperty"')}function cfnVirtualGatewaySubjectAlternativeNamesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator(properties).assertSuccess(),{Match:cfnVirtualGatewaySubjectAlternativeNameMatchersPropertyToCloudFormation(properties.match)}):properties}function CfnVirtualGatewaySubjectAlternativeNamesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",CfnVirtualGatewaySubjectAlternativeNameMatchersPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayAccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayFileAccessLogPropertyValidator)(properties.file)),errors.wrap('supplied properties not correct for "VirtualGatewayAccessLogProperty"')}function cfnVirtualGatewayVirtualGatewayAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayAccessLogPropertyValidator(properties).assertSuccess(),{File:cfnVirtualGatewayVirtualGatewayFileAccessLogPropertyToCloudFormation(properties.file)}):properties}function CfnVirtualGatewayVirtualGatewayAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayFileAccessLogPropertyFromCloudFormation(properties.File):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayBackendDefaultsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientPolicy",CfnVirtualGateway_VirtualGatewayClientPolicyPropertyValidator)(properties.clientPolicy)),errors.wrap('supplied properties not correct for "VirtualGatewayBackendDefaultsProperty"')}function cfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayBackendDefaultsPropertyValidator(properties).assertSuccess(),{ClientPolicy:cfnVirtualGatewayVirtualGatewayClientPolicyPropertyToCloudFormation(properties.clientPolicy)}):properties}function CfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientPolicy","ClientPolicy",properties.ClientPolicy!=null?CfnVirtualGatewayVirtualGatewayClientPolicyPropertyFromCloudFormation(properties.ClientPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayClientPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tls",CfnVirtualGateway_VirtualGatewayClientPolicyTlsPropertyValidator)(properties.tls)),errors.wrap('supplied properties not correct for "VirtualGatewayClientPolicyProperty"')}function cfnVirtualGatewayVirtualGatewayClientPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayClientPolicyPropertyValidator(properties).assertSuccess(),{TLS:cfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyToCloudFormation(properties.tls)}):properties}function CfnVirtualGatewayVirtualGatewayClientPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayClientPolicyTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",CfnVirtualGateway_VirtualGatewayClientTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("enforce",cdk.validateBoolean)(properties.enforce)),errors.collect(cdk.propertyValidator("ports",cdk.listValidator(cdk.validateNumber))(properties.ports)),errors.collect(cdk.propertyValidator("validation",cdk.requiredValidator)(properties.validation)),errors.collect(cdk.propertyValidator("validation",CfnVirtualGateway_VirtualGatewayTlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "VirtualGatewayClientPolicyTlsProperty"')}function cfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayClientPolicyTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyToCloudFormation(properties.certificate),Enforce:cdk.booleanToCloudFormation(properties.enforce),Ports:cdk.listMapper(cdk.numberToCloudFormation)(properties.ports),Validation:cfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualGatewayVirtualGatewayClientPolicyTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",properties.Certificate!=null?CfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyFromCloudFormation(properties.Certificate):void 0),ret.addPropertyResult("enforce","Enforce",properties.Enforce!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enforce):void 0),ret.addPropertyResult("ports","Ports",properties.Ports!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getNumber)(properties.Ports):void 0),ret.addPropertyResult("validation","Validation",CfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyFromCloudFormation(properties.Validation)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayClientTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayClientTlsCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayClientTlsCertificatePropertyValidator(properties).assertSuccess(),{File:cfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayClientTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpc",CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolPropertyValidator)(properties.grpc)),errors.collect(cdk.propertyValidator("http",CfnVirtualGateway_VirtualGatewayHttpConnectionPoolPropertyValidator)(properties.http)),errors.collect(cdk.propertyValidator("http2",CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolPropertyValidator)(properties.http2)),errors.wrap('supplied properties not correct for "VirtualGatewayConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayConnectionPoolPropertyValidator(properties).assertSuccess(),{GRPC:cfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyToCloudFormation(properties.grpc),HTTP:cfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyToCloudFormation(properties.http),HTTP2:cfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyToCloudFormation(properties.http2)}):properties}function CfnVirtualGatewayVirtualGatewayConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpc","GRPC",properties.GRPC!=null?CfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyFromCloudFormation(properties.GRPC):void 0),ret.addPropertyResult("http","HTTP",properties.HTTP!=null?CfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyFromCloudFormation(properties.HTTP):void 0),ret.addPropertyResult("http2","HTTP2",properties.HTTP2!=null?CfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyFromCloudFormation(properties.HTTP2):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayFileAccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("format",CfnVirtualGateway_LoggingFormatPropertyValidator)(properties.format)),errors.collect(cdk.propertyValidator("path",cdk.requiredValidator)(properties.path)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.wrap('supplied properties not correct for "VirtualGatewayFileAccessLogProperty"')}function cfnVirtualGatewayVirtualGatewayFileAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayFileAccessLogPropertyValidator(properties).assertSuccess(),{Format:cfnVirtualGatewayLoggingFormatPropertyToCloudFormation(properties.format),Path:cdk.stringToCloudFormation(properties.path)}):properties}function CfnVirtualGatewayVirtualGatewayFileAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("format","Format",properties.Format!=null?CfnVirtualGatewayLoggingFormatPropertyFromCloudFormation(properties.Format):void 0),ret.addPropertyResult("path","Path",cfn_parse.FromCloudFormation.getString(properties.Path)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualGatewayGrpcConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayGrpcConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualGatewayVirtualGatewayGrpcConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayHealthCheckPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.requiredValidator)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.validateNumber)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.requiredValidator)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.validateNumber)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.requiredValidator)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.validateNumber)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.requiredValidator)(properties.unhealthyThreshold)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.validateNumber)(properties.unhealthyThreshold)),errors.wrap('supplied properties not correct for "VirtualGatewayHealthCheckPolicyProperty"')}function cfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayHealthCheckPolicyPropertyValidator(properties).assertSuccess(),{HealthyThreshold:cdk.numberToCloudFormation(properties.healthyThreshold),IntervalMillis:cdk.numberToCloudFormation(properties.intervalMillis),Path:cdk.stringToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol),TimeoutMillis:cdk.numberToCloudFormation(properties.timeoutMillis),UnhealthyThreshold:cdk.numberToCloudFormation(properties.unhealthyThreshold)}):properties}function CfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("healthyThreshold","HealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.HealthyThreshold)),ret.addPropertyResult("intervalMillis","IntervalMillis",cfn_parse.FromCloudFormation.getNumber(properties.IntervalMillis)),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse.FromCloudFormation.getString(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addPropertyResult("timeoutMillis","TimeoutMillis",cfn_parse.FromCloudFormation.getNumber(properties.TimeoutMillis)),ret.addPropertyResult("unhealthyThreshold","UnhealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.UnhealthyThreshold)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualGatewayHttp2ConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayHttp2ConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualGatewayVirtualGatewayHttp2ConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayHttpConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxConnections",cdk.requiredValidator)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxConnections",cdk.validateNumber)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxPendingRequests",cdk.validateNumber)(properties.maxPendingRequests)),errors.wrap('supplied properties not correct for "VirtualGatewayHttpConnectionPoolProperty"')}function cfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayHttpConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxConnections:cdk.numberToCloudFormation(properties.maxConnections),MaxPendingRequests:cdk.numberToCloudFormation(properties.maxPendingRequests)}):properties}function CfnVirtualGatewayVirtualGatewayHttpConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxConnections","MaxConnections",cfn_parse.FromCloudFormation.getNumber(properties.MaxConnections)),ret.addPropertyResult("maxPendingRequests","MaxPendingRequests",properties.MaxPendingRequests!=null?cfn_parse.FromCloudFormation.getNumber(properties.MaxPendingRequests):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("connectionPool",CfnVirtualGateway_VirtualGatewayConnectionPoolPropertyValidator)(properties.connectionPool)),errors.collect(cdk.propertyValidator("healthCheck",CfnVirtualGateway_VirtualGatewayHealthCheckPolicyPropertyValidator)(properties.healthCheck)),errors.collect(cdk.propertyValidator("portMapping",cdk.requiredValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("portMapping",CfnVirtualGateway_VirtualGatewayPortMappingPropertyValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("tls",CfnVirtualGateway_VirtualGatewayListenerTlsPropertyValidator)(properties.tls)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerProperty"')}function cfnVirtualGatewayVirtualGatewayListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerPropertyValidator(properties).assertSuccess(),{ConnectionPool:cfnVirtualGatewayVirtualGatewayConnectionPoolPropertyToCloudFormation(properties.connectionPool),HealthCheck:cfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyToCloudFormation(properties.healthCheck),PortMapping:cfnVirtualGatewayVirtualGatewayPortMappingPropertyToCloudFormation(properties.portMapping),TLS:cfnVirtualGatewayVirtualGatewayListenerTlsPropertyToCloudFormation(properties.tls)}):properties}function CfnVirtualGatewayVirtualGatewayListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("connectionPool","ConnectionPool",properties.ConnectionPool!=null?CfnVirtualGatewayVirtualGatewayConnectionPoolPropertyFromCloudFormation(properties.ConnectionPool):void 0),ret.addPropertyResult("healthCheck","HealthCheck",properties.HealthCheck!=null?CfnVirtualGatewayVirtualGatewayHealthCheckPolicyPropertyFromCloudFormation(properties.HealthCheck):void 0),ret.addPropertyResult("portMapping","PortMapping",CfnVirtualGatewayVirtualGatewayPortMappingPropertyFromCloudFormation(properties.PortMapping)),ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualGatewayVirtualGatewayListenerTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",cdk.requiredValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("certificate",CfnVirtualGateway_VirtualGatewayListenerTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("mode",cdk.requiredValidator)(properties.mode)),errors.collect(cdk.propertyValidator("mode",cdk.validateString)(properties.mode)),errors.collect(cdk.propertyValidator("validation",CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyToCloudFormation(properties.certificate),Mode:cdk.stringToCloudFormation(properties.mode),Validation:cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",CfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyFromCloudFormation(properties.Certificate)),ret.addPropertyResult("mode","Mode",cfn_parse.FromCloudFormation.getString(properties.Mode)),ret.addPropertyResult("validation","Validation",properties.Validation!=null?CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyFromCloudFormation(properties.Validation):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateArn",cdk.requiredValidator)(properties.certificateArn)),errors.collect(cdk.propertyValidator("certificateArn",cdk.validateString)(properties.certificateArn)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsAcmCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificatePropertyValidator(properties).assertSuccess(),{CertificateArn:cdk.stringToCloudFormation(properties.certificateArn)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateArn","CertificateArn",cfn_parse.FromCloudFormation.getString(properties.CertificateArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualGateway_VirtualGatewayListenerTlsAcmCertificatePropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsCertificatePropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyToCloudFormation(properties.acm),File:cfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualGatewayVirtualGatewayListenerTlsAcmCertificatePropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.collect(cdk.propertyValidator("privateKey",cdk.requiredValidator)(properties.privateKey)),errors.collect(cdk.propertyValidator("privateKey",cdk.validateString)(properties.privateKey)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsFileCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsFileCertificatePropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain),PrivateKey:cdk.stringToCloudFormation(properties.privateKey)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsFileCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addPropertyResult("privateKey","PrivateKey",cfn_parse.FromCloudFormation.getString(properties.PrivateKey)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsSdsCertificateProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsSdsCertificatePropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsSdsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsValidationContextProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualGatewaySubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualGatewaySubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayListenerTlsValidationContextTrustProperty"')}function cfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayListenerTlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{File:cfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayListenerTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayLoggingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("accessLog",CfnVirtualGateway_VirtualGatewayAccessLogPropertyValidator)(properties.accessLog)),errors.wrap('supplied properties not correct for "VirtualGatewayLoggingProperty"')}function cfnVirtualGatewayVirtualGatewayLoggingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayLoggingPropertyValidator(properties).assertSuccess(),{AccessLog:cfnVirtualGatewayVirtualGatewayAccessLogPropertyToCloudFormation(properties.accessLog)}):properties}function CfnVirtualGatewayVirtualGatewayLoggingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("accessLog","AccessLog",properties.AccessLog!=null?CfnVirtualGatewayVirtualGatewayAccessLogPropertyFromCloudFormation(properties.AccessLog):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayPortMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.requiredValidator)(properties.port)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "VirtualGatewayPortMappingProperty"')}function cfnVirtualGatewayVirtualGatewayPortMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayPortMappingPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnVirtualGatewayVirtualGatewayPortMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",cfn_parse.FromCloudFormation.getNumber(properties.Port)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewaySpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("backendDefaults",CfnVirtualGateway_VirtualGatewayBackendDefaultsPropertyValidator)(properties.backendDefaults)),errors.collect(cdk.propertyValidator("listeners",cdk.requiredValidator)(properties.listeners)),errors.collect(cdk.propertyValidator("listeners",cdk.listValidator(CfnVirtualGateway_VirtualGatewayListenerPropertyValidator))(properties.listeners)),errors.collect(cdk.propertyValidator("logging",CfnVirtualGateway_VirtualGatewayLoggingPropertyValidator)(properties.logging)),errors.wrap('supplied properties not correct for "VirtualGatewaySpecProperty"')}function cfnVirtualGatewayVirtualGatewaySpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewaySpecPropertyValidator(properties).assertSuccess(),{BackendDefaults:cfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyToCloudFormation(properties.backendDefaults),Listeners:cdk.listMapper(cfnVirtualGatewayVirtualGatewayListenerPropertyToCloudFormation)(properties.listeners),Logging:cfnVirtualGatewayVirtualGatewayLoggingPropertyToCloudFormation(properties.logging)}):properties}function CfnVirtualGatewayVirtualGatewaySpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("backendDefaults","BackendDefaults",properties.BackendDefaults!=null?CfnVirtualGatewayVirtualGatewayBackendDefaultsPropertyFromCloudFormation(properties.BackendDefaults):void 0),ret.addPropertyResult("listeners","Listeners",cfn_parse.FromCloudFormation.getArray(CfnVirtualGatewayVirtualGatewayListenerPropertyFromCloudFormation)(properties.Listeners)),ret.addPropertyResult("logging","Logging",properties.Logging!=null?CfnVirtualGatewayVirtualGatewayLoggingPropertyFromCloudFormation(properties.Logging):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualGateway_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualGatewaySubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualGatewaySubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.requiredValidator)(properties.certificateAuthorityArns)),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.listValidator(cdk.validateString))(properties.certificateAuthorityArns)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextAcmTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustPropertyValidator(properties).assertSuccess(),{CertificateAuthorityArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.certificateAuthorityArns)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateAuthorityArns","CertificateAuthorityArns",cfn_parse.FromCloudFormation.getStringArray(properties.CertificateAuthorityArns)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextFileTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextSdsTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualGateway_VirtualGatewayTlsValidationContextAcmTrustPropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualGateway_VirtualGatewayTlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualGateway_VirtualGatewayTlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "VirtualGatewayTlsValidationContextTrustProperty"')}function cfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualGateway_VirtualGatewayTlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyToCloudFormation(properties.acm),File:cfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualGatewayVirtualGatewayTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextAcmTrustPropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualGatewayVirtualGatewayTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNodePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualNode_VirtualNodeSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualNodeName",cdk.validateString)(properties.virtualNodeName)),errors.wrap('supplied properties not correct for "CfnVirtualNodeProps"')}function cfnVirtualNodePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNodePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualNodeVirtualNodeSpecPropertyToCloudFormation(properties.spec),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualNodeName:cdk.stringToCloudFormation(properties.virtualNodeName)}):properties}function CfnVirtualNodePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualNodeVirtualNodeSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualNodeName","VirtualNodeName",properties.VirtualNodeName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualNodeName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualNode extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualNode.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualNodeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualNode),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualNodeName=cdk.Token.asString(this.getAtt("VirtualNodeName")),this.meshName=props.meshName,this.spec=props.spec,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualNode",props.tags,{tagPropertyName:"tags"}),this.virtualNodeName=props.virtualNodeName}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualNodePropsFromCloudFormation(resourceProperties),ret=new CfnVirtualNode(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualNode.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,meshOwner:this.meshOwner,tags:this.tags.renderTags(),virtualNodeName:this.virtualNodeName}}renderProperties(props){return cfnVirtualNodePropsToCloudFormation(props)}}exports.CfnVirtualNode=CfnVirtualNode,_e=JSII_RTTI_SYMBOL_1,CfnVirtualNode[_e]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualNode",version:"2.51.1"},CfnVirtualNode.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualNode";function CfnVirtualNode_AccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_FileAccessLogPropertyValidator)(properties.file)),errors.wrap('supplied properties not correct for "AccessLogProperty"')}function cfnVirtualNodeAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_AccessLogPropertyValidator(properties).assertSuccess(),{File:cfnVirtualNodeFileAccessLogPropertyToCloudFormation(properties.file)}):properties}function CfnVirtualNodeAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeFileAccessLogPropertyFromCloudFormation(properties.File):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_AwsCloudMapInstanceAttributePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("key",cdk.requiredValidator)(properties.key)),errors.collect(cdk.propertyValidator("key",cdk.validateString)(properties.key)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "AwsCloudMapInstanceAttributeProperty"')}function cfnVirtualNodeAwsCloudMapInstanceAttributePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_AwsCloudMapInstanceAttributePropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnVirtualNodeAwsCloudMapInstanceAttributePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",cfn_parse.FromCloudFormation.getString(properties.Key)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getString(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_AwsCloudMapServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attributes",cdk.listValidator(CfnVirtualNode_AwsCloudMapInstanceAttributePropertyValidator))(properties.attributes)),errors.collect(cdk.propertyValidator("ipPreference",cdk.validateString)(properties.ipPreference)),errors.collect(cdk.propertyValidator("namespaceName",cdk.requiredValidator)(properties.namespaceName)),errors.collect(cdk.propertyValidator("namespaceName",cdk.validateString)(properties.namespaceName)),errors.collect(cdk.propertyValidator("serviceName",cdk.requiredValidator)(properties.serviceName)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.wrap('supplied properties not correct for "AwsCloudMapServiceDiscoveryProperty"')}function cfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_AwsCloudMapServiceDiscoveryPropertyValidator(properties).assertSuccess(),{Attributes:cdk.listMapper(cfnVirtualNodeAwsCloudMapInstanceAttributePropertyToCloudFormation)(properties.attributes),IpPreference:cdk.stringToCloudFormation(properties.ipPreference),NamespaceName:cdk.stringToCloudFormation(properties.namespaceName),ServiceName:cdk.stringToCloudFormation(properties.serviceName)}):properties}function CfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attributes","Attributes",properties.Attributes!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeAwsCloudMapInstanceAttributePropertyFromCloudFormation)(properties.Attributes):void 0),ret.addPropertyResult("ipPreference","IpPreference",properties.IpPreference!=null?cfn_parse.FromCloudFormation.getString(properties.IpPreference):void 0),ret.addPropertyResult("namespaceName","NamespaceName",cfn_parse.FromCloudFormation.getString(properties.NamespaceName)),ret.addPropertyResult("serviceName","ServiceName",cfn_parse.FromCloudFormation.getString(properties.ServiceName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_BackendPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualService",CfnVirtualNode_VirtualServiceBackendPropertyValidator)(properties.virtualService)),errors.wrap('supplied properties not correct for "BackendProperty"')}function cfnVirtualNodeBackendPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_BackendPropertyValidator(properties).assertSuccess(),{VirtualService:cfnVirtualNodeVirtualServiceBackendPropertyToCloudFormation(properties.virtualService)}):properties}function CfnVirtualNodeBackendPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualService","VirtualService",properties.VirtualService!=null?CfnVirtualNodeVirtualServiceBackendPropertyFromCloudFormation(properties.VirtualService):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_BackendDefaultsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientPolicy",CfnVirtualNode_ClientPolicyPropertyValidator)(properties.clientPolicy)),errors.wrap('supplied properties not correct for "BackendDefaultsProperty"')}function cfnVirtualNodeBackendDefaultsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_BackendDefaultsPropertyValidator(properties).assertSuccess(),{ClientPolicy:cfnVirtualNodeClientPolicyPropertyToCloudFormation(properties.clientPolicy)}):properties}function CfnVirtualNodeBackendDefaultsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientPolicy","ClientPolicy",properties.ClientPolicy!=null?CfnVirtualNodeClientPolicyPropertyFromCloudFormation(properties.ClientPolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ClientPolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tls",CfnVirtualNode_ClientPolicyTlsPropertyValidator)(properties.tls)),errors.wrap('supplied properties not correct for "ClientPolicyProperty"')}function cfnVirtualNodeClientPolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ClientPolicyPropertyValidator(properties).assertSuccess(),{TLS:cfnVirtualNodeClientPolicyTlsPropertyToCloudFormation(properties.tls)}):properties}function CfnVirtualNodeClientPolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualNodeClientPolicyTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ClientPolicyTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",CfnVirtualNode_ClientTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("enforce",cdk.validateBoolean)(properties.enforce)),errors.collect(cdk.propertyValidator("ports",cdk.listValidator(cdk.validateNumber))(properties.ports)),errors.collect(cdk.propertyValidator("validation",cdk.requiredValidator)(properties.validation)),errors.collect(cdk.propertyValidator("validation",CfnVirtualNode_TlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "ClientPolicyTlsProperty"')}function cfnVirtualNodeClientPolicyTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ClientPolicyTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualNodeClientTlsCertificatePropertyToCloudFormation(properties.certificate),Enforce:cdk.booleanToCloudFormation(properties.enforce),Ports:cdk.listMapper(cdk.numberToCloudFormation)(properties.ports),Validation:cfnVirtualNodeTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualNodeClientPolicyTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",properties.Certificate!=null?CfnVirtualNodeClientTlsCertificatePropertyFromCloudFormation(properties.Certificate):void 0),ret.addPropertyResult("enforce","Enforce",properties.Enforce!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enforce):void 0),ret.addPropertyResult("ports","Ports",properties.Ports!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getNumber)(properties.Ports):void 0),ret.addPropertyResult("validation","Validation",CfnVirtualNodeTlsValidationContextPropertyFromCloudFormation(properties.Validation)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ClientTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "ClientTlsCertificateProperty"')}function cfnVirtualNodeClientTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ClientTlsCertificatePropertyValidator(properties).assertSuccess(),{File:cfnVirtualNodeListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeClientTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_DnsServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("hostname",cdk.requiredValidator)(properties.hostname)),errors.collect(cdk.propertyValidator("hostname",cdk.validateString)(properties.hostname)),errors.collect(cdk.propertyValidator("ipPreference",cdk.validateString)(properties.ipPreference)),errors.collect(cdk.propertyValidator("responseType",cdk.validateString)(properties.responseType)),errors.wrap('supplied properties not correct for "DnsServiceDiscoveryProperty"')}function cfnVirtualNodeDnsServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_DnsServiceDiscoveryPropertyValidator(properties).assertSuccess(),{Hostname:cdk.stringToCloudFormation(properties.hostname),IpPreference:cdk.stringToCloudFormation(properties.ipPreference),ResponseType:cdk.stringToCloudFormation(properties.responseType)}):properties}function CfnVirtualNodeDnsServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("hostname","Hostname",cfn_parse.FromCloudFormation.getString(properties.Hostname)),ret.addPropertyResult("ipPreference","IpPreference",properties.IpPreference!=null?cfn_parse.FromCloudFormation.getString(properties.IpPreference):void 0),ret.addPropertyResult("responseType","ResponseType",properties.ResponseType!=null?cfn_parse.FromCloudFormation.getString(properties.ResponseType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_DurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("unit",cdk.requiredValidator)(properties.unit)),errors.collect(cdk.propertyValidator("unit",cdk.validateString)(properties.unit)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "DurationProperty"')}function cfnVirtualNodeDurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_DurationPropertyValidator(properties).assertSuccess(),{Unit:cdk.stringToCloudFormation(properties.unit),Value:cdk.numberToCloudFormation(properties.value)}):properties}function CfnVirtualNodeDurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("unit","Unit",cfn_parse.FromCloudFormation.getString(properties.Unit)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getNumber(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_FileAccessLogPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("format",CfnVirtualNode_LoggingFormatPropertyValidator)(properties.format)),errors.collect(cdk.propertyValidator("path",cdk.requiredValidator)(properties.path)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.wrap('supplied properties not correct for "FileAccessLogProperty"')}function cfnVirtualNodeFileAccessLogPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_FileAccessLogPropertyValidator(properties).assertSuccess(),{Format:cfnVirtualNodeLoggingFormatPropertyToCloudFormation(properties.format),Path:cdk.stringToCloudFormation(properties.path)}):properties}function CfnVirtualNodeFileAccessLogPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("format","Format",properties.Format!=null?CfnVirtualNodeLoggingFormatPropertyFromCloudFormation(properties.Format):void 0),ret.addPropertyResult("path","Path",cfn_parse.FromCloudFormation.getString(properties.Path)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_GrpcTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnVirtualNode_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnVirtualNode_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "GrpcTimeoutProperty"')}function cfnVirtualNodeGrpcTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_GrpcTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnVirtualNodeDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnVirtualNodeDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnVirtualNodeGrpcTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_HealthCheckPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.requiredValidator)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("healthyThreshold",cdk.validateNumber)(properties.healthyThreshold)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.requiredValidator)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("intervalMillis",cdk.validateNumber)(properties.intervalMillis)),errors.collect(cdk.propertyValidator("path",cdk.validateString)(properties.path)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.requiredValidator)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("timeoutMillis",cdk.validateNumber)(properties.timeoutMillis)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.requiredValidator)(properties.unhealthyThreshold)),errors.collect(cdk.propertyValidator("unhealthyThreshold",cdk.validateNumber)(properties.unhealthyThreshold)),errors.wrap('supplied properties not correct for "HealthCheckProperty"')}function cfnVirtualNodeHealthCheckPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_HealthCheckPropertyValidator(properties).assertSuccess(),{HealthyThreshold:cdk.numberToCloudFormation(properties.healthyThreshold),IntervalMillis:cdk.numberToCloudFormation(properties.intervalMillis),Path:cdk.stringToCloudFormation(properties.path),Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol),TimeoutMillis:cdk.numberToCloudFormation(properties.timeoutMillis),UnhealthyThreshold:cdk.numberToCloudFormation(properties.unhealthyThreshold)}):properties}function CfnVirtualNodeHealthCheckPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("healthyThreshold","HealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.HealthyThreshold)),ret.addPropertyResult("intervalMillis","IntervalMillis",cfn_parse.FromCloudFormation.getNumber(properties.IntervalMillis)),ret.addPropertyResult("path","Path",properties.Path!=null?cfn_parse.FromCloudFormation.getString(properties.Path):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addPropertyResult("timeoutMillis","TimeoutMillis",cfn_parse.FromCloudFormation.getNumber(properties.TimeoutMillis)),ret.addPropertyResult("unhealthyThreshold","UnhealthyThreshold",cfn_parse.FromCloudFormation.getNumber(properties.UnhealthyThreshold)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_HttpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnVirtualNode_DurationPropertyValidator)(properties.idle)),errors.collect(cdk.propertyValidator("perRequest",CfnVirtualNode_DurationPropertyValidator)(properties.perRequest)),errors.wrap('supplied properties not correct for "HttpTimeoutProperty"')}function cfnVirtualNodeHttpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_HttpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnVirtualNodeDurationPropertyToCloudFormation(properties.idle),PerRequest:cfnVirtualNodeDurationPropertyToCloudFormation(properties.perRequest)}):properties}function CfnVirtualNodeHttpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addPropertyResult("perRequest","PerRequest",properties.PerRequest!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.PerRequest):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_JsonFormatRefPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("key",cdk.requiredValidator)(properties.key)),errors.collect(cdk.propertyValidator("key",cdk.validateString)(properties.key)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateString)(properties.value)),errors.wrap('supplied properties not correct for "JsonFormatRefProperty"')}function cfnVirtualNodeJsonFormatRefPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_JsonFormatRefPropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.stringToCloudFormation(properties.value)}):properties}function CfnVirtualNodeJsonFormatRefPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",cfn_parse.FromCloudFormation.getString(properties.Key)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getString(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("connectionPool",CfnVirtualNode_VirtualNodeConnectionPoolPropertyValidator)(properties.connectionPool)),errors.collect(cdk.propertyValidator("healthCheck",CfnVirtualNode_HealthCheckPropertyValidator)(properties.healthCheck)),errors.collect(cdk.propertyValidator("outlierDetection",CfnVirtualNode_OutlierDetectionPropertyValidator)(properties.outlierDetection)),errors.collect(cdk.propertyValidator("portMapping",cdk.requiredValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("portMapping",CfnVirtualNode_PortMappingPropertyValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("tls",CfnVirtualNode_ListenerTlsPropertyValidator)(properties.tls)),errors.collect(cdk.propertyValidator("timeout",CfnVirtualNode_ListenerTimeoutPropertyValidator)(properties.timeout)),errors.wrap('supplied properties not correct for "ListenerProperty"')}function cfnVirtualNodeListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerPropertyValidator(properties).assertSuccess(),{ConnectionPool:cfnVirtualNodeVirtualNodeConnectionPoolPropertyToCloudFormation(properties.connectionPool),HealthCheck:cfnVirtualNodeHealthCheckPropertyToCloudFormation(properties.healthCheck),OutlierDetection:cfnVirtualNodeOutlierDetectionPropertyToCloudFormation(properties.outlierDetection),PortMapping:cfnVirtualNodePortMappingPropertyToCloudFormation(properties.portMapping),TLS:cfnVirtualNodeListenerTlsPropertyToCloudFormation(properties.tls),Timeout:cfnVirtualNodeListenerTimeoutPropertyToCloudFormation(properties.timeout)}):properties}function CfnVirtualNodeListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("connectionPool","ConnectionPool",properties.ConnectionPool!=null?CfnVirtualNodeVirtualNodeConnectionPoolPropertyFromCloudFormation(properties.ConnectionPool):void 0),ret.addPropertyResult("healthCheck","HealthCheck",properties.HealthCheck!=null?CfnVirtualNodeHealthCheckPropertyFromCloudFormation(properties.HealthCheck):void 0),ret.addPropertyResult("outlierDetection","OutlierDetection",properties.OutlierDetection!=null?CfnVirtualNodeOutlierDetectionPropertyFromCloudFormation(properties.OutlierDetection):void 0),ret.addPropertyResult("portMapping","PortMapping",CfnVirtualNodePortMappingPropertyFromCloudFormation(properties.PortMapping)),ret.addPropertyResult("tls","TLS",properties.TLS!=null?CfnVirtualNodeListenerTlsPropertyFromCloudFormation(properties.TLS):void 0),ret.addPropertyResult("timeout","Timeout",properties.Timeout!=null?CfnVirtualNodeListenerTimeoutPropertyFromCloudFormation(properties.Timeout):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpc",CfnVirtualNode_GrpcTimeoutPropertyValidator)(properties.grpc)),errors.collect(cdk.propertyValidator("http",CfnVirtualNode_HttpTimeoutPropertyValidator)(properties.http)),errors.collect(cdk.propertyValidator("http2",CfnVirtualNode_HttpTimeoutPropertyValidator)(properties.http2)),errors.collect(cdk.propertyValidator("tcp",CfnVirtualNode_TcpTimeoutPropertyValidator)(properties.tcp)),errors.wrap('supplied properties not correct for "ListenerTimeoutProperty"')}function cfnVirtualNodeListenerTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTimeoutPropertyValidator(properties).assertSuccess(),{GRPC:cfnVirtualNodeGrpcTimeoutPropertyToCloudFormation(properties.grpc),HTTP:cfnVirtualNodeHttpTimeoutPropertyToCloudFormation(properties.http),HTTP2:cfnVirtualNodeHttpTimeoutPropertyToCloudFormation(properties.http2),TCP:cfnVirtualNodeTcpTimeoutPropertyToCloudFormation(properties.tcp)}):properties}function CfnVirtualNodeListenerTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpc","GRPC",properties.GRPC!=null?CfnVirtualNodeGrpcTimeoutPropertyFromCloudFormation(properties.GRPC):void 0),ret.addPropertyResult("http","HTTP",properties.HTTP!=null?CfnVirtualNodeHttpTimeoutPropertyFromCloudFormation(properties.HTTP):void 0),ret.addPropertyResult("http2","HTTP2",properties.HTTP2!=null?CfnVirtualNodeHttpTimeoutPropertyFromCloudFormation(properties.HTTP2):void 0),ret.addPropertyResult("tcp","TCP",properties.TCP!=null?CfnVirtualNodeTcpTimeoutPropertyFromCloudFormation(properties.TCP):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificate",cdk.requiredValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("certificate",CfnVirtualNode_ListenerTlsCertificatePropertyValidator)(properties.certificate)),errors.collect(cdk.propertyValidator("mode",cdk.requiredValidator)(properties.mode)),errors.collect(cdk.propertyValidator("mode",cdk.validateString)(properties.mode)),errors.collect(cdk.propertyValidator("validation",CfnVirtualNode_ListenerTlsValidationContextPropertyValidator)(properties.validation)),errors.wrap('supplied properties not correct for "ListenerTlsProperty"')}function cfnVirtualNodeListenerTlsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsPropertyValidator(properties).assertSuccess(),{Certificate:cfnVirtualNodeListenerTlsCertificatePropertyToCloudFormation(properties.certificate),Mode:cdk.stringToCloudFormation(properties.mode),Validation:cfnVirtualNodeListenerTlsValidationContextPropertyToCloudFormation(properties.validation)}):properties}function CfnVirtualNodeListenerTlsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificate","Certificate",CfnVirtualNodeListenerTlsCertificatePropertyFromCloudFormation(properties.Certificate)),ret.addPropertyResult("mode","Mode",cfn_parse.FromCloudFormation.getString(properties.Mode)),ret.addPropertyResult("validation","Validation",properties.Validation!=null?CfnVirtualNodeListenerTlsValidationContextPropertyFromCloudFormation(properties.Validation):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsAcmCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateArn",cdk.requiredValidator)(properties.certificateArn)),errors.collect(cdk.propertyValidator("certificateArn",cdk.validateString)(properties.certificateArn)),errors.wrap('supplied properties not correct for "ListenerTlsAcmCertificateProperty"')}function cfnVirtualNodeListenerTlsAcmCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsAcmCertificatePropertyValidator(properties).assertSuccess(),{CertificateArn:cdk.stringToCloudFormation(properties.certificateArn)}):properties}function CfnVirtualNodeListenerTlsAcmCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateArn","CertificateArn",cfn_parse.FromCloudFormation.getString(properties.CertificateArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualNode_ListenerTlsAcmCertificatePropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "ListenerTlsCertificateProperty"')}function cfnVirtualNodeListenerTlsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsCertificatePropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualNodeListenerTlsAcmCertificatePropertyToCloudFormation(properties.acm),File:cfnVirtualNodeListenerTlsFileCertificatePropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeListenerTlsSdsCertificatePropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeListenerTlsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualNodeListenerTlsAcmCertificatePropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeListenerTlsFileCertificatePropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeListenerTlsSdsCertificatePropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.collect(cdk.propertyValidator("privateKey",cdk.requiredValidator)(properties.privateKey)),errors.collect(cdk.propertyValidator("privateKey",cdk.validateString)(properties.privateKey)),errors.wrap('supplied properties not correct for "ListenerTlsFileCertificateProperty"')}function cfnVirtualNodeListenerTlsFileCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsFileCertificatePropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain),PrivateKey:cdk.stringToCloudFormation(properties.privateKey)}):properties}function CfnVirtualNodeListenerTlsFileCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addPropertyResult("privateKey","PrivateKey",cfn_parse.FromCloudFormation.getString(properties.PrivateKey)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "ListenerTlsSdsCertificateProperty"')}function cfnVirtualNodeListenerTlsSdsCertificatePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsSdsCertificatePropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualNodeListenerTlsSdsCertificatePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualNode_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualNode_ListenerTlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "ListenerTlsValidationContextProperty"')}function cfnVirtualNodeListenerTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualNodeSubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualNodeListenerTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualNodeListenerTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualNodeSubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualNodeListenerTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ListenerTlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "ListenerTlsValidationContextTrustProperty"')}function cfnVirtualNodeListenerTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ListenerTlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{File:cfnVirtualNodeTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeListenerTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_LoggingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("accessLog",CfnVirtualNode_AccessLogPropertyValidator)(properties.accessLog)),errors.wrap('supplied properties not correct for "LoggingProperty"')}function cfnVirtualNodeLoggingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_LoggingPropertyValidator(properties).assertSuccess(),{AccessLog:cfnVirtualNodeAccessLogPropertyToCloudFormation(properties.accessLog)}):properties}function CfnVirtualNodeLoggingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("accessLog","AccessLog",properties.AccessLog!=null?CfnVirtualNodeAccessLogPropertyFromCloudFormation(properties.AccessLog):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_LoggingFormatPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("json",cdk.listValidator(CfnVirtualNode_JsonFormatRefPropertyValidator))(properties.json)),errors.collect(cdk.propertyValidator("text",cdk.validateString)(properties.text)),errors.wrap('supplied properties not correct for "LoggingFormatProperty"')}function cfnVirtualNodeLoggingFormatPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_LoggingFormatPropertyValidator(properties).assertSuccess(),{Json:cdk.listMapper(cfnVirtualNodeJsonFormatRefPropertyToCloudFormation)(properties.json),Text:cdk.stringToCloudFormation(properties.text)}):properties}function CfnVirtualNodeLoggingFormatPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("json","Json",properties.Json!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeJsonFormatRefPropertyFromCloudFormation)(properties.Json):void 0),ret.addPropertyResult("text","Text",properties.Text!=null?cfn_parse.FromCloudFormation.getString(properties.Text):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_OutlierDetectionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("baseEjectionDuration",cdk.requiredValidator)(properties.baseEjectionDuration)),errors.collect(cdk.propertyValidator("baseEjectionDuration",CfnVirtualNode_DurationPropertyValidator)(properties.baseEjectionDuration)),errors.collect(cdk.propertyValidator("interval",cdk.requiredValidator)(properties.interval)),errors.collect(cdk.propertyValidator("interval",CfnVirtualNode_DurationPropertyValidator)(properties.interval)),errors.collect(cdk.propertyValidator("maxEjectionPercent",cdk.requiredValidator)(properties.maxEjectionPercent)),errors.collect(cdk.propertyValidator("maxEjectionPercent",cdk.validateNumber)(properties.maxEjectionPercent)),errors.collect(cdk.propertyValidator("maxServerErrors",cdk.requiredValidator)(properties.maxServerErrors)),errors.collect(cdk.propertyValidator("maxServerErrors",cdk.validateNumber)(properties.maxServerErrors)),errors.wrap('supplied properties not correct for "OutlierDetectionProperty"')}function cfnVirtualNodeOutlierDetectionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_OutlierDetectionPropertyValidator(properties).assertSuccess(),{BaseEjectionDuration:cfnVirtualNodeDurationPropertyToCloudFormation(properties.baseEjectionDuration),Interval:cfnVirtualNodeDurationPropertyToCloudFormation(properties.interval),MaxEjectionPercent:cdk.numberToCloudFormation(properties.maxEjectionPercent),MaxServerErrors:cdk.numberToCloudFormation(properties.maxServerErrors)}):properties}function CfnVirtualNodeOutlierDetectionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("baseEjectionDuration","BaseEjectionDuration",CfnVirtualNodeDurationPropertyFromCloudFormation(properties.BaseEjectionDuration)),ret.addPropertyResult("interval","Interval",CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Interval)),ret.addPropertyResult("maxEjectionPercent","MaxEjectionPercent",cfn_parse.FromCloudFormation.getNumber(properties.MaxEjectionPercent)),ret.addPropertyResult("maxServerErrors","MaxServerErrors",cfn_parse.FromCloudFormation.getNumber(properties.MaxServerErrors)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_PortMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.requiredValidator)(properties.port)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "PortMappingProperty"')}function cfnVirtualNodePortMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_PortMappingPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnVirtualNodePortMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",cfn_parse.FromCloudFormation.getNumber(properties.Port)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_ServiceDiscoveryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("awsCloudMap",CfnVirtualNode_AwsCloudMapServiceDiscoveryPropertyValidator)(properties.awsCloudMap)),errors.collect(cdk.propertyValidator("dns",CfnVirtualNode_DnsServiceDiscoveryPropertyValidator)(properties.dns)),errors.wrap('supplied properties not correct for "ServiceDiscoveryProperty"')}function cfnVirtualNodeServiceDiscoveryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_ServiceDiscoveryPropertyValidator(properties).assertSuccess(),{AWSCloudMap:cfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyToCloudFormation(properties.awsCloudMap),DNS:cfnVirtualNodeDnsServiceDiscoveryPropertyToCloudFormation(properties.dns)}):properties}function CfnVirtualNodeServiceDiscoveryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("awsCloudMap","AWSCloudMap",properties.AWSCloudMap!=null?CfnVirtualNodeAwsCloudMapServiceDiscoveryPropertyFromCloudFormation(properties.AWSCloudMap):void 0),ret.addPropertyResult("dns","DNS",properties.DNS!=null?CfnVirtualNodeDnsServiceDiscoveryPropertyFromCloudFormation(properties.DNS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_SubjectAlternativeNameMatchersPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("exact",cdk.listValidator(cdk.validateString))(properties.exact)),errors.wrap('supplied properties not correct for "SubjectAlternativeNameMatchersProperty"')}function cfnVirtualNodeSubjectAlternativeNameMatchersPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_SubjectAlternativeNameMatchersPropertyValidator(properties).assertSuccess(),{Exact:cdk.listMapper(cdk.stringToCloudFormation)(properties.exact)}):properties}function CfnVirtualNodeSubjectAlternativeNameMatchersPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("exact","Exact",properties.Exact!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Exact):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_SubjectAlternativeNamesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("match",cdk.requiredValidator)(properties.match)),errors.collect(cdk.propertyValidator("match",CfnVirtualNode_SubjectAlternativeNameMatchersPropertyValidator)(properties.match)),errors.wrap('supplied properties not correct for "SubjectAlternativeNamesProperty"')}function cfnVirtualNodeSubjectAlternativeNamesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_SubjectAlternativeNamesPropertyValidator(properties).assertSuccess(),{Match:cfnVirtualNodeSubjectAlternativeNameMatchersPropertyToCloudFormation(properties.match)}):properties}function CfnVirtualNodeSubjectAlternativeNamesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("match","Match",CfnVirtualNodeSubjectAlternativeNameMatchersPropertyFromCloudFormation(properties.Match)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TcpTimeoutPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("idle",CfnVirtualNode_DurationPropertyValidator)(properties.idle)),errors.wrap('supplied properties not correct for "TcpTimeoutProperty"')}function cfnVirtualNodeTcpTimeoutPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TcpTimeoutPropertyValidator(properties).assertSuccess(),{Idle:cfnVirtualNodeDurationPropertyToCloudFormation(properties.idle)}):properties}function CfnVirtualNodeTcpTimeoutPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("idle","Idle",properties.Idle!=null?CfnVirtualNodeDurationPropertyFromCloudFormation(properties.Idle):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subjectAlternativeNames",CfnVirtualNode_SubjectAlternativeNamesPropertyValidator)(properties.subjectAlternativeNames)),errors.collect(cdk.propertyValidator("trust",cdk.requiredValidator)(properties.trust)),errors.collect(cdk.propertyValidator("trust",CfnVirtualNode_TlsValidationContextTrustPropertyValidator)(properties.trust)),errors.wrap('supplied properties not correct for "TlsValidationContextProperty"')}function cfnVirtualNodeTlsValidationContextPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextPropertyValidator(properties).assertSuccess(),{SubjectAlternativeNames:cfnVirtualNodeSubjectAlternativeNamesPropertyToCloudFormation(properties.subjectAlternativeNames),Trust:cfnVirtualNodeTlsValidationContextTrustPropertyToCloudFormation(properties.trust)}):properties}function CfnVirtualNodeTlsValidationContextPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subjectAlternativeNames","SubjectAlternativeNames",properties.SubjectAlternativeNames!=null?CfnVirtualNodeSubjectAlternativeNamesPropertyFromCloudFormation(properties.SubjectAlternativeNames):void 0),ret.addPropertyResult("trust","Trust",CfnVirtualNodeTlsValidationContextTrustPropertyFromCloudFormation(properties.Trust)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextAcmTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.requiredValidator)(properties.certificateAuthorityArns)),errors.collect(cdk.propertyValidator("certificateAuthorityArns",cdk.listValidator(cdk.validateString))(properties.certificateAuthorityArns)),errors.wrap('supplied properties not correct for "TlsValidationContextAcmTrustProperty"')}function cfnVirtualNodeTlsValidationContextAcmTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextAcmTrustPropertyValidator(properties).assertSuccess(),{CertificateAuthorityArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.certificateAuthorityArns)}):properties}function CfnVirtualNodeTlsValidationContextAcmTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateAuthorityArns","CertificateAuthorityArns",cfn_parse.FromCloudFormation.getStringArray(properties.CertificateAuthorityArns)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("certificateChain",cdk.requiredValidator)(properties.certificateChain)),errors.collect(cdk.propertyValidator("certificateChain",cdk.validateString)(properties.certificateChain)),errors.wrap('supplied properties not correct for "TlsValidationContextFileTrustProperty"')}function cfnVirtualNodeTlsValidationContextFileTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator(properties).assertSuccess(),{CertificateChain:cdk.stringToCloudFormation(properties.certificateChain)}):properties}function CfnVirtualNodeTlsValidationContextFileTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("certificateChain","CertificateChain",cfn_parse.FromCloudFormation.getString(properties.CertificateChain)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("secretName",cdk.requiredValidator)(properties.secretName)),errors.collect(cdk.propertyValidator("secretName",cdk.validateString)(properties.secretName)),errors.wrap('supplied properties not correct for "TlsValidationContextSdsTrustProperty"')}function cfnVirtualNodeTlsValidationContextSdsTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator(properties).assertSuccess(),{SecretName:cdk.stringToCloudFormation(properties.secretName)}):properties}function CfnVirtualNodeTlsValidationContextSdsTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("secretName","SecretName",cfn_parse.FromCloudFormation.getString(properties.SecretName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_TlsValidationContextTrustPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acm",CfnVirtualNode_TlsValidationContextAcmTrustPropertyValidator)(properties.acm)),errors.collect(cdk.propertyValidator("file",CfnVirtualNode_TlsValidationContextFileTrustPropertyValidator)(properties.file)),errors.collect(cdk.propertyValidator("sds",CfnVirtualNode_TlsValidationContextSdsTrustPropertyValidator)(properties.sds)),errors.wrap('supplied properties not correct for "TlsValidationContextTrustProperty"')}function cfnVirtualNodeTlsValidationContextTrustPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_TlsValidationContextTrustPropertyValidator(properties).assertSuccess(),{ACM:cfnVirtualNodeTlsValidationContextAcmTrustPropertyToCloudFormation(properties.acm),File:cfnVirtualNodeTlsValidationContextFileTrustPropertyToCloudFormation(properties.file),SDS:cfnVirtualNodeTlsValidationContextSdsTrustPropertyToCloudFormation(properties.sds)}):properties}function CfnVirtualNodeTlsValidationContextTrustPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acm","ACM",properties.ACM!=null?CfnVirtualNodeTlsValidationContextAcmTrustPropertyFromCloudFormation(properties.ACM):void 0),ret.addPropertyResult("file","File",properties.File!=null?CfnVirtualNodeTlsValidationContextFileTrustPropertyFromCloudFormation(properties.File):void 0),ret.addPropertyResult("sds","SDS",properties.SDS!=null?CfnVirtualNodeTlsValidationContextSdsTrustPropertyFromCloudFormation(properties.SDS):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("grpc",CfnVirtualNode_VirtualNodeGrpcConnectionPoolPropertyValidator)(properties.grpc)),errors.collect(cdk.propertyValidator("http",CfnVirtualNode_VirtualNodeHttpConnectionPoolPropertyValidator)(properties.http)),errors.collect(cdk.propertyValidator("http2",CfnVirtualNode_VirtualNodeHttp2ConnectionPoolPropertyValidator)(properties.http2)),errors.collect(cdk.propertyValidator("tcp",CfnVirtualNode_VirtualNodeTcpConnectionPoolPropertyValidator)(properties.tcp)),errors.wrap('supplied properties not correct for "VirtualNodeConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeConnectionPoolPropertyValidator(properties).assertSuccess(),{GRPC:cfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyToCloudFormation(properties.grpc),HTTP:cfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyToCloudFormation(properties.http),HTTP2:cfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyToCloudFormation(properties.http2),TCP:cfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyToCloudFormation(properties.tcp)}):properties}function CfnVirtualNodeVirtualNodeConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("grpc","GRPC",properties.GRPC!=null?CfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyFromCloudFormation(properties.GRPC):void 0),ret.addPropertyResult("http","HTTP",properties.HTTP!=null?CfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyFromCloudFormation(properties.HTTP):void 0),ret.addPropertyResult("http2","HTTP2",properties.HTTP2!=null?CfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyFromCloudFormation(properties.HTTP2):void 0),ret.addPropertyResult("tcp","TCP",properties.TCP!=null?CfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyFromCloudFormation(properties.TCP):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeGrpcConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualNodeGrpcConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeGrpcConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualNodeVirtualNodeGrpcConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeHttp2ConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxRequests",cdk.requiredValidator)(properties.maxRequests)),errors.collect(cdk.propertyValidator("maxRequests",cdk.validateNumber)(properties.maxRequests)),errors.wrap('supplied properties not correct for "VirtualNodeHttp2ConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeHttp2ConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxRequests:cdk.numberToCloudFormation(properties.maxRequests)}):properties}function CfnVirtualNodeVirtualNodeHttp2ConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxRequests","MaxRequests",cfn_parse.FromCloudFormation.getNumber(properties.MaxRequests)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeHttpConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxConnections",cdk.requiredValidator)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxConnections",cdk.validateNumber)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxPendingRequests",cdk.validateNumber)(properties.maxPendingRequests)),errors.wrap('supplied properties not correct for "VirtualNodeHttpConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeHttpConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxConnections:cdk.numberToCloudFormation(properties.maxConnections),MaxPendingRequests:cdk.numberToCloudFormation(properties.maxPendingRequests)}):properties}function CfnVirtualNodeVirtualNodeHttpConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxConnections","MaxConnections",cfn_parse.FromCloudFormation.getNumber(properties.MaxConnections)),ret.addPropertyResult("maxPendingRequests","MaxPendingRequests",properties.MaxPendingRequests!=null?cfn_parse.FromCloudFormation.getNumber(properties.MaxPendingRequests):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("backendDefaults",CfnVirtualNode_BackendDefaultsPropertyValidator)(properties.backendDefaults)),errors.collect(cdk.propertyValidator("backends",cdk.listValidator(CfnVirtualNode_BackendPropertyValidator))(properties.backends)),errors.collect(cdk.propertyValidator("listeners",cdk.listValidator(CfnVirtualNode_ListenerPropertyValidator))(properties.listeners)),errors.collect(cdk.propertyValidator("logging",CfnVirtualNode_LoggingPropertyValidator)(properties.logging)),errors.collect(cdk.propertyValidator("serviceDiscovery",CfnVirtualNode_ServiceDiscoveryPropertyValidator)(properties.serviceDiscovery)),errors.wrap('supplied properties not correct for "VirtualNodeSpecProperty"')}function cfnVirtualNodeVirtualNodeSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeSpecPropertyValidator(properties).assertSuccess(),{BackendDefaults:cfnVirtualNodeBackendDefaultsPropertyToCloudFormation(properties.backendDefaults),Backends:cdk.listMapper(cfnVirtualNodeBackendPropertyToCloudFormation)(properties.backends),Listeners:cdk.listMapper(cfnVirtualNodeListenerPropertyToCloudFormation)(properties.listeners),Logging:cfnVirtualNodeLoggingPropertyToCloudFormation(properties.logging),ServiceDiscovery:cfnVirtualNodeServiceDiscoveryPropertyToCloudFormation(properties.serviceDiscovery)}):properties}function CfnVirtualNodeVirtualNodeSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("backendDefaults","BackendDefaults",properties.BackendDefaults!=null?CfnVirtualNodeBackendDefaultsPropertyFromCloudFormation(properties.BackendDefaults):void 0),ret.addPropertyResult("backends","Backends",properties.Backends!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeBackendPropertyFromCloudFormation)(properties.Backends):void 0),ret.addPropertyResult("listeners","Listeners",properties.Listeners!=null?cfn_parse.FromCloudFormation.getArray(CfnVirtualNodeListenerPropertyFromCloudFormation)(properties.Listeners):void 0),ret.addPropertyResult("logging","Logging",properties.Logging!=null?CfnVirtualNodeLoggingPropertyFromCloudFormation(properties.Logging):void 0),ret.addPropertyResult("serviceDiscovery","ServiceDiscovery",properties.ServiceDiscovery!=null?CfnVirtualNodeServiceDiscoveryPropertyFromCloudFormation(properties.ServiceDiscovery):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualNodeTcpConnectionPoolPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("maxConnections",cdk.requiredValidator)(properties.maxConnections)),errors.collect(cdk.propertyValidator("maxConnections",cdk.validateNumber)(properties.maxConnections)),errors.wrap('supplied properties not correct for "VirtualNodeTcpConnectionPoolProperty"')}function cfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualNodeTcpConnectionPoolPropertyValidator(properties).assertSuccess(),{MaxConnections:cdk.numberToCloudFormation(properties.maxConnections)}):properties}function CfnVirtualNodeVirtualNodeTcpConnectionPoolPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("maxConnections","MaxConnections",cfn_parse.FromCloudFormation.getNumber(properties.MaxConnections)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualNode_VirtualServiceBackendPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientPolicy",CfnVirtualNode_ClientPolicyPropertyValidator)(properties.clientPolicy)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.requiredValidator)(properties.virtualServiceName)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.validateString)(properties.virtualServiceName)),errors.wrap('supplied properties not correct for "VirtualServiceBackendProperty"')}function cfnVirtualNodeVirtualServiceBackendPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualNode_VirtualServiceBackendPropertyValidator(properties).assertSuccess(),{ClientPolicy:cfnVirtualNodeClientPolicyPropertyToCloudFormation(properties.clientPolicy),VirtualServiceName:cdk.stringToCloudFormation(properties.virtualServiceName)}):properties}function CfnVirtualNodeVirtualServiceBackendPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientPolicy","ClientPolicy",properties.ClientPolicy!=null?CfnVirtualNodeClientPolicyPropertyFromCloudFormation(properties.ClientPolicy):void 0),ret.addPropertyResult("virtualServiceName","VirtualServiceName",cfn_parse.FromCloudFormation.getString(properties.VirtualServiceName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualRouterPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualRouter_VirtualRouterSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.validateString)(properties.virtualRouterName)),errors.wrap('supplied properties not correct for "CfnVirtualRouterProps"')}function cfnVirtualRouterPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouterPropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualRouterVirtualRouterSpecPropertyToCloudFormation(properties.spec),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualRouterName:cdk.stringToCloudFormation(properties.virtualRouterName)}):properties}function CfnVirtualRouterPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualRouterVirtualRouterSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualRouterName","VirtualRouterName",properties.VirtualRouterName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualRouterName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualRouter extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualRouter.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualRouterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualRouter),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualRouterName=cdk.Token.asString(this.getAtt("VirtualRouterName")),this.meshName=props.meshName,this.spec=props.spec,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualRouter",props.tags,{tagPropertyName:"tags"}),this.virtualRouterName=props.virtualRouterName}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualRouterPropsFromCloudFormation(resourceProperties),ret=new CfnVirtualRouter(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualRouter.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,meshOwner:this.meshOwner,tags:this.tags.renderTags(),virtualRouterName:this.virtualRouterName}}renderProperties(props){return cfnVirtualRouterPropsToCloudFormation(props)}}exports.CfnVirtualRouter=CfnVirtualRouter,_f=JSII_RTTI_SYMBOL_1,CfnVirtualRouter[_f]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualRouter",version:"2.51.1"},CfnVirtualRouter.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualRouter";function CfnVirtualRouter_PortMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("port",cdk.requiredValidator)(properties.port)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "PortMappingProperty"')}function cfnVirtualRouterPortMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouter_PortMappingPropertyValidator(properties).assertSuccess(),{Port:cdk.numberToCloudFormation(properties.port),Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnVirtualRouterPortMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("port","Port",cfn_parse.FromCloudFormation.getNumber(properties.Port)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualRouter_VirtualRouterListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("portMapping",cdk.requiredValidator)(properties.portMapping)),errors.collect(cdk.propertyValidator("portMapping",CfnVirtualRouter_PortMappingPropertyValidator)(properties.portMapping)),errors.wrap('supplied properties not correct for "VirtualRouterListenerProperty"')}function cfnVirtualRouterVirtualRouterListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouter_VirtualRouterListenerPropertyValidator(properties).assertSuccess(),{PortMapping:cfnVirtualRouterPortMappingPropertyToCloudFormation(properties.portMapping)}):properties}function CfnVirtualRouterVirtualRouterListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("portMapping","PortMapping",CfnVirtualRouterPortMappingPropertyFromCloudFormation(properties.PortMapping)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualRouter_VirtualRouterSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("listeners",cdk.requiredValidator)(properties.listeners)),errors.collect(cdk.propertyValidator("listeners",cdk.listValidator(CfnVirtualRouter_VirtualRouterListenerPropertyValidator))(properties.listeners)),errors.wrap('supplied properties not correct for "VirtualRouterSpecProperty"')}function cfnVirtualRouterVirtualRouterSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualRouter_VirtualRouterSpecPropertyValidator(properties).assertSuccess(),{Listeners:cdk.listMapper(cfnVirtualRouterVirtualRouterListenerPropertyToCloudFormation)(properties.listeners)}):properties}function CfnVirtualRouterVirtualRouterSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("listeners","Listeners",cfn_parse.FromCloudFormation.getArray(CfnVirtualRouterVirtualRouterListenerPropertyFromCloudFormation)(properties.Listeners)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualServicePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("meshName",cdk.requiredValidator)(properties.meshName)),errors.collect(cdk.propertyValidator("meshName",cdk.validateString)(properties.meshName)),errors.collect(cdk.propertyValidator("meshOwner",cdk.validateString)(properties.meshOwner)),errors.collect(cdk.propertyValidator("spec",cdk.requiredValidator)(properties.spec)),errors.collect(cdk.propertyValidator("spec",CfnVirtualService_VirtualServiceSpecPropertyValidator)(properties.spec)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.requiredValidator)(properties.virtualServiceName)),errors.collect(cdk.propertyValidator("virtualServiceName",cdk.validateString)(properties.virtualServiceName)),errors.wrap('supplied properties not correct for "CfnVirtualServiceProps"')}function cfnVirtualServicePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualServicePropsValidator(properties).assertSuccess(),{MeshName:cdk.stringToCloudFormation(properties.meshName),Spec:cfnVirtualServiceVirtualServiceSpecPropertyToCloudFormation(properties.spec),VirtualServiceName:cdk.stringToCloudFormation(properties.virtualServiceName),MeshOwner:cdk.stringToCloudFormation(properties.meshOwner),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVirtualServicePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("meshName","MeshName",cfn_parse.FromCloudFormation.getString(properties.MeshName)),ret.addPropertyResult("spec","Spec",CfnVirtualServiceVirtualServiceSpecPropertyFromCloudFormation(properties.Spec)),ret.addPropertyResult("virtualServiceName","VirtualServiceName",cfn_parse.FromCloudFormation.getString(properties.VirtualServiceName)),ret.addPropertyResult("meshOwner","MeshOwner",properties.MeshOwner!=null?cfn_parse.FromCloudFormation.getString(properties.MeshOwner):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVirtualService extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVirtualService.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_appmesh_CfnVirtualServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVirtualService),error}cdk.requireProperty(props,"meshName",this),cdk.requireProperty(props,"spec",this),cdk.requireProperty(props,"virtualServiceName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrMeshName=cdk.Token.asString(this.getAtt("MeshName")),this.attrMeshOwner=cdk.Token.asString(this.getAtt("MeshOwner")),this.attrResourceOwner=cdk.Token.asString(this.getAtt("ResourceOwner")),this.attrUid=cdk.Token.asString(this.getAtt("Uid")),this.attrVirtualServiceName=cdk.Token.asString(this.getAtt("VirtualServiceName")),this.meshName=props.meshName,this.spec=props.spec,this.virtualServiceName=props.virtualServiceName,this.meshOwner=props.meshOwner,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::AppMesh::VirtualService",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVirtualServicePropsFromCloudFormation(resourceProperties),ret=new CfnVirtualService(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnVirtualService.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{meshName:this.meshName,spec:this.spec,virtualServiceName:this.virtualServiceName,meshOwner:this.meshOwner,tags:this.tags.renderTags()}}renderProperties(props){return cfnVirtualServicePropsToCloudFormation(props)}}exports.CfnVirtualService=CfnVirtualService,_g=JSII_RTTI_SYMBOL_1,CfnVirtualService[_g]={fqn:"aws-cdk-lib.aws_appmesh.CfnVirtualService",version:"2.51.1"},CfnVirtualService.CFN_RESOURCE_TYPE_NAME="AWS::AppMesh::VirtualService";function CfnVirtualService_VirtualNodeServiceProviderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualNodeName",cdk.requiredValidator)(properties.virtualNodeName)),errors.collect(cdk.propertyValidator("virtualNodeName",cdk.validateString)(properties.virtualNodeName)),errors.wrap('supplied properties not correct for "VirtualNodeServiceProviderProperty"')}function cfnVirtualServiceVirtualNodeServiceProviderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualNodeServiceProviderPropertyValidator(properties).assertSuccess(),{VirtualNodeName:cdk.stringToCloudFormation(properties.virtualNodeName)}):properties}function CfnVirtualServiceVirtualNodeServiceProviderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualNodeName","VirtualNodeName",cfn_parse.FromCloudFormation.getString(properties.VirtualNodeName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualService_VirtualRouterServiceProviderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.requiredValidator)(properties.virtualRouterName)),errors.collect(cdk.propertyValidator("virtualRouterName",cdk.validateString)(properties.virtualRouterName)),errors.wrap('supplied properties not correct for "VirtualRouterServiceProviderProperty"')}function cfnVirtualServiceVirtualRouterServiceProviderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualRouterServiceProviderPropertyValidator(properties).assertSuccess(),{VirtualRouterName:cdk.stringToCloudFormation(properties.virtualRouterName)}):properties}function CfnVirtualServiceVirtualRouterServiceProviderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualRouterName","VirtualRouterName",cfn_parse.FromCloudFormation.getString(properties.VirtualRouterName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualService_VirtualServiceProviderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("virtualNode",CfnVirtualService_VirtualNodeServiceProviderPropertyValidator)(properties.virtualNode)),errors.collect(cdk.propertyValidator("virtualRouter",CfnVirtualService_VirtualRouterServiceProviderPropertyValidator)(properties.virtualRouter)),errors.wrap('supplied properties not correct for "VirtualServiceProviderProperty"')}function cfnVirtualServiceVirtualServiceProviderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualServiceProviderPropertyValidator(properties).assertSuccess(),{VirtualNode:cfnVirtualServiceVirtualNodeServiceProviderPropertyToCloudFormation(properties.virtualNode),VirtualRouter:cfnVirtualServiceVirtualRouterServiceProviderPropertyToCloudFormation(properties.virtualRouter)}):properties}function CfnVirtualServiceVirtualServiceProviderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("virtualNode","VirtualNode",properties.VirtualNode!=null?CfnVirtualServiceVirtualNodeServiceProviderPropertyFromCloudFormation(properties.VirtualNode):void 0),ret.addPropertyResult("virtualRouter","VirtualRouter",properties.VirtualRouter!=null?CfnVirtualServiceVirtualRouterServiceProviderPropertyFromCloudFormation(properties.VirtualRouter):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVirtualService_VirtualServiceSpecPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("provider",CfnVirtualService_VirtualServiceProviderPropertyValidator)(properties.provider)),errors.wrap('supplied properties not correct for "VirtualServiceSpecProperty"')}function cfnVirtualServiceVirtualServiceSpecPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVirtualService_VirtualServiceSpecPropertyValidator(properties).assertSuccess(),{Provider:cfnVirtualServiceVirtualServiceProviderPropertyToCloudFormation(properties.provider)}):properties}function CfnVirtualServiceVirtualServiceSpecPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("provider","Provider",properties.Provider!=null?CfnVirtualServiceVirtualServiceProviderPropertyFromCloudFormation(properties.Provider):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}
2
2
  //# sourceMappingURL=appmesh.generated.js.map