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.
- package/.jsii.gz +0 -0
- package/alexa-ask/lib/ask.generated.js +1 -1
- package/assertions/lib/annotations.js +1 -1
- package/assertions/lib/capture.js +1 -1
- package/assertions/lib/match.js +1 -1
- package/assertions/lib/matcher.js +1 -1
- package/assertions/lib/template.js +1 -1
- package/assets/lib/staging.js +1 -1
- package/aws-accessanalyzer/lib/accessanalyzer.generated.js +1 -1
- package/aws-acmpca/lib/acmpca.generated.js +1 -1
- package/aws-acmpca/lib/certificate-authority.js +1 -1
- package/aws-amazonmq/lib/amazonmq.generated.js +1 -1
- package/aws-amplify/lib/amplify.generated.js +1 -1
- package/aws-amplifyuibuilder/lib/amplifyuibuilder.generated.js +1 -1
- package/aws-apigateway/lib/access-log.js +1 -1
- package/aws-apigateway/lib/api-definition.js +1 -1
- package/aws-apigateway/lib/api-key.js +1 -1
- package/aws-apigateway/lib/apigateway.generated.js +1 -1
- package/aws-apigateway/lib/apigatewayv2.js +1 -1
- package/aws-apigateway/lib/authorizer.js +1 -1
- package/aws-apigateway/lib/authorizers/cognito.js +1 -1
- package/aws-apigateway/lib/authorizers/identity-source.js +1 -1
- package/aws-apigateway/lib/authorizers/lambda.js +1 -1
- package/aws-apigateway/lib/base-path-mapping.js +1 -1
- package/aws-apigateway/lib/cors.js +1 -1
- package/aws-apigateway/lib/deployment.js +1 -1
- package/aws-apigateway/lib/domain-name.js +1 -1
- package/aws-apigateway/lib/gateway-response.js +1 -1
- package/aws-apigateway/lib/integration.js +1 -1
- package/aws-apigateway/lib/integrations/aws.js +1 -1
- package/aws-apigateway/lib/integrations/http.js +1 -1
- package/aws-apigateway/lib/integrations/lambda.js +1 -1
- package/aws-apigateway/lib/integrations/mock.js +1 -1
- package/aws-apigateway/lib/integrations/stepfunctions.js +1 -1
- package/aws-apigateway/lib/lambda-api.js +1 -1
- package/aws-apigateway/lib/method.js +1 -1
- package/aws-apigateway/lib/model.js +1 -1
- package/aws-apigateway/lib/requestvalidator.js +1 -1
- package/aws-apigateway/lib/resource.js +1 -1
- package/aws-apigateway/lib/restapi.js +1 -1
- package/aws-apigateway/lib/stage.js +1 -1
- package/aws-apigateway/lib/stepfunctions-api.js +1 -1
- package/aws-apigateway/lib/usage-plan.js +1 -1
- package/aws-apigateway/lib/vpc-link.js +1 -1
- package/aws-apigatewayv2/lib/apigatewayv2.generated.js +1 -1
- package/aws-appconfig/lib/appconfig.generated.js +1 -1
- package/aws-appflow/lib/appflow.generated.js +1 -1
- package/aws-appintegrations/lib/appintegrations.generated.js +1 -1
- package/aws-applicationautoscaling/lib/applicationautoscaling.generated.js +1 -1
- package/aws-applicationautoscaling/lib/base-scalable-attribute.js +1 -1
- package/aws-applicationautoscaling/lib/scalable-target.js +1 -1
- package/aws-applicationautoscaling/lib/schedule.js +1 -1
- package/aws-applicationautoscaling/lib/step-scaling-action.js +1 -1
- package/aws-applicationautoscaling/lib/step-scaling-policy.js +1 -1
- package/aws-applicationautoscaling/lib/target-tracking-scaling-policy.js +1 -1
- package/aws-applicationinsights/lib/applicationinsights.generated.js +1 -1
- package/aws-appmesh/lib/appmesh.generated.js +1 -1
- package/aws-appmesh/lib/gateway-route-spec.js +1 -1
- package/aws-appmesh/lib/gateway-route.js +1 -1
- package/aws-appmesh/lib/header-match.js +1 -1
- package/aws-appmesh/lib/health-checks.js +1 -1
- package/aws-appmesh/lib/http-route-path-match.js +1 -1
- package/aws-appmesh/lib/mesh.js +1 -1
- package/aws-appmesh/lib/query-parameter-match.js +1 -1
- package/aws-appmesh/lib/route-spec.js +1 -1
- package/aws-appmesh/lib/route.js +1 -1
- package/aws-appmesh/lib/service-discovery.js +1 -1
- package/aws-appmesh/lib/shared-interfaces.js +1 -1
- package/aws-appmesh/lib/tls-certificate.js +1 -1
- package/aws-appmesh/lib/tls-validation.js +1 -1
- package/aws-appmesh/lib/virtual-gateway-listener.js +1 -1
- package/aws-appmesh/lib/virtual-gateway.js +1 -1
- package/aws-appmesh/lib/virtual-node-listener.js +1 -1
- package/aws-appmesh/lib/virtual-node.js +1 -1
- package/aws-appmesh/lib/virtual-router-listener.js +1 -1
- package/aws-appmesh/lib/virtual-router.js +1 -1
- package/aws-appmesh/lib/virtual-service.js +1 -1
- package/aws-apprunner/lib/apprunner.generated.js +1 -1
- package/aws-appstream/lib/appstream.generated.js +1 -1
- package/aws-appsync/lib/appsync.generated.js +1 -1
- package/aws-aps/lib/aps.generated.js +1 -1
- package/aws-athena/lib/athena.generated.js +1 -1
- package/aws-auditmanager/lib/auditmanager.generated.js +1 -1
- package/aws-autoscaling/lib/aspects/require-imdsv2-aspect.js +1 -1
- package/aws-autoscaling/lib/auto-scaling-group.js +1 -1
- package/aws-autoscaling/lib/autoscaling.generated.js +1 -1
- package/aws-autoscaling/lib/lifecycle-hook.js +1 -1
- package/aws-autoscaling/lib/schedule.js +1 -1
- package/aws-autoscaling/lib/scheduled-action.js +1 -1
- package/aws-autoscaling/lib/step-scaling-action.js +1 -1
- package/aws-autoscaling/lib/step-scaling-policy.js +1 -1
- package/aws-autoscaling/lib/target-tracking-scaling-policy.js +1 -1
- package/aws-autoscaling/lib/volume.js +1 -1
- package/aws-autoscaling/lib/warm-pool.js +1 -1
- package/aws-autoscaling-hooktargets/lib/lambda-hook.js +1 -1
- package/aws-autoscaling-hooktargets/lib/queue-hook.js +1 -1
- package/aws-autoscaling-hooktargets/lib/topic-hook.js +1 -1
- package/aws-autoscalingplans/lib/autoscalingplans.generated.js +1 -1
- package/aws-backup/lib/backup.generated.js +1 -1
- package/aws-backup/lib/plan.js +1 -1
- package/aws-backup/lib/resource.js +1 -1
- package/aws-backup/lib/rule.js +1 -1
- package/aws-backup/lib/selection.js +1 -1
- package/aws-backup/lib/vault.js +1 -1
- package/aws-batch/lib/batch.generated.js +1 -1
- package/aws-billingconductor/lib/billingconductor.generated.js +1 -1
- package/aws-budgets/lib/budgets.generated.js +1 -1
- package/aws-cassandra/lib/cassandra.generated.js +1 -1
- package/aws-ce/lib/ce.generated.js +1 -1
- package/aws-certificatemanager/lib/certificate.js +1 -1
- package/aws-certificatemanager/lib/certificatemanager.generated.js +1 -1
- package/aws-certificatemanager/lib/dns-validated-certificate.js +1 -1
- package/aws-certificatemanager/lib/private-certificate.js +1 -1
- package/aws-chatbot/lib/chatbot.generated.js +1 -1
- package/aws-chatbot/lib/slack-channel-configuration.js +1 -1
- package/aws-cloud9/lib/cloud9.generated.js +1 -1
- package/aws-cloudformation/lib/cloudformation.generated.js +1 -1
- package/aws-cloudformation/lib/custom-resource.js +1 -1
- package/aws-cloudformation/lib/nested-stack.js +1 -1
- package/aws-cloudfront/lib/cache-policy.js +1 -1
- package/aws-cloudfront/lib/cloudfront.generated.js +1 -1
- package/aws-cloudfront/lib/distribution.js +1 -1
- package/aws-cloudfront/lib/experimental/edge-function.js +1 -1
- package/aws-cloudfront/lib/function.js +1 -1
- package/aws-cloudfront/lib/geo-restriction.js +1 -1
- package/aws-cloudfront/lib/key-group.js +1 -1
- package/aws-cloudfront/lib/origin-access-identity.js +1 -1
- package/aws-cloudfront/lib/origin-request-policy.js +1 -1
- package/aws-cloudfront/lib/origin.js +1 -1
- package/aws-cloudfront/lib/public-key.js +1 -1
- package/aws-cloudfront/lib/response-headers-policy.js +1 -1
- package/aws-cloudfront/lib/web-distribution.js +2 -2
- package/aws-cloudfront-origins/lib/http-origin.js +1 -1
- package/aws-cloudfront-origins/lib/load-balancer-origin.js +1 -1
- package/aws-cloudfront-origins/lib/origin-group.js +1 -1
- package/aws-cloudfront-origins/lib/rest-api-origin.js +1 -1
- package/aws-cloudfront-origins/lib/s3-origin.js +1 -1
- package/aws-cloudtrail/lib/cloudtrail.generated.js +1 -1
- package/aws-cloudtrail/lib/cloudtrail.js +1 -1
- package/aws-cloudwatch/lib/alarm-base.js +1 -1
- package/aws-cloudwatch/lib/alarm-rule.js +1 -1
- package/aws-cloudwatch/lib/alarm-status-widget.js +1 -1
- package/aws-cloudwatch/lib/alarm.js +1 -1
- package/aws-cloudwatch/lib/cloudwatch.generated.js +1 -1
- package/aws-cloudwatch/lib/composite-alarm.js +1 -1
- package/aws-cloudwatch/lib/dashboard.js +1 -1
- package/aws-cloudwatch/lib/graph.js +1 -1
- package/aws-cloudwatch/lib/layout.js +1 -1
- package/aws-cloudwatch/lib/log-query.js +1 -1
- package/aws-cloudwatch/lib/metric.js +1 -1
- package/aws-cloudwatch/lib/text.js +1 -1
- package/aws-cloudwatch/lib/widget.js +1 -1
- package/aws-cloudwatch-actions/lib/appscaling.js +1 -1
- package/aws-cloudwatch-actions/lib/autoscaling.js +1 -1
- package/aws-cloudwatch-actions/lib/ec2.js +1 -1
- package/aws-cloudwatch-actions/lib/sns.js +1 -1
- package/aws-cloudwatch-actions/lib/ssm.js +1 -1
- package/aws-codeartifact/lib/codeartifact.generated.js +1 -1
- package/aws-codebuild/lib/artifacts.js +1 -1
- package/aws-codebuild/lib/build-spec.js +1 -1
- package/aws-codebuild/lib/cache.js +1 -1
- package/aws-codebuild/lib/codebuild.generated.js +1 -1
- package/aws-codebuild/lib/events.js +1 -1
- package/aws-codebuild/lib/file-location.js +1 -1
- package/aws-codebuild/lib/linux-arm-build-image.js +1 -1
- package/aws-codebuild/lib/linux-gpu-build-image.js +1 -1
- package/aws-codebuild/lib/pipeline-project.js +1 -1
- package/aws-codebuild/lib/project.js +1 -1
- package/aws-codebuild/lib/report-group.js +1 -1
- package/aws-codebuild/lib/source-credentials.js +1 -1
- package/aws-codebuild/lib/source.js +1 -1
- package/aws-codebuild/lib/untrusted-code-boundary-policy.js +1 -1
- package/aws-codecommit/lib/code.js +1 -1
- package/aws-codecommit/lib/codecommit.generated.js +1 -1
- package/aws-codecommit/lib/events.js +1 -1
- package/aws-codecommit/lib/repository.js +1 -1
- package/aws-codedeploy/lib/base-deployment-config.js +1 -1
- package/aws-codedeploy/lib/codedeploy.generated.js +1 -1
- package/aws-codedeploy/lib/ecs/application.js +1 -1
- package/aws-codedeploy/lib/ecs/deployment-config.js +1 -1
- package/aws-codedeploy/lib/ecs/deployment-group.js +1 -1
- package/aws-codedeploy/lib/host-health-config.js +1 -1
- package/aws-codedeploy/lib/lambda/application.js +1 -1
- package/aws-codedeploy/lib/lambda/custom-deployment-config.js +1 -1
- package/aws-codedeploy/lib/lambda/deployment-config.js +1 -1
- package/aws-codedeploy/lib/lambda/deployment-group.js +1 -1
- package/aws-codedeploy/lib/server/application.js +1 -1
- package/aws-codedeploy/lib/server/deployment-config.js +1 -1
- package/aws-codedeploy/lib/server/deployment-group.js +1 -1
- package/aws-codedeploy/lib/server/load-balancer.js +1 -1
- package/aws-codedeploy/lib/traffic-routing-config.js +1 -1
- package/aws-codeguruprofiler/lib/codeguruprofiler.generated.js +1 -1
- package/aws-codeguruprofiler/lib/profiling-group.js +1 -1
- package/aws-codegurureviewer/lib/codegurureviewer.generated.js +1 -1
- package/aws-codepipeline/lib/action.js +1 -1
- package/aws-codepipeline/lib/artifact.js +1 -1
- package/aws-codepipeline/lib/codepipeline.generated.js +1 -1
- package/aws-codepipeline/lib/custom-action-registration.js +1 -1
- package/aws-codepipeline/lib/pipeline.js +1 -1
- package/aws-codepipeline-actions/lib/action.js +1 -1
- package/aws-codepipeline-actions/lib/alexa-ask/deploy-action.js +1 -1
- package/aws-codepipeline-actions/lib/bitbucket/source-action.js +1 -1
- package/aws-codepipeline-actions/lib/cloudformation/pipeline-actions.js +1 -1
- package/aws-codepipeline-actions/lib/cloudformation/stackinstances-action.js +1 -1
- package/aws-codepipeline-actions/lib/cloudformation/stackset-action.js +1 -1
- package/aws-codepipeline-actions/lib/cloudformation/stackset-types.js +1 -1
- package/aws-codepipeline-actions/lib/codebuild/build-action.js +1 -1
- package/aws-codepipeline-actions/lib/codecommit/source-action.js +1 -1
- package/aws-codepipeline-actions/lib/codedeploy/ecs-deploy-action.js +1 -1
- package/aws-codepipeline-actions/lib/codedeploy/server-deploy-action.js +1 -1
- package/aws-codepipeline-actions/lib/codestar-connections/source-action.js +1 -1
- package/aws-codepipeline-actions/lib/ecr/source-action.js +1 -1
- package/aws-codepipeline-actions/lib/ecs/deploy-action.js +1 -1
- package/aws-codepipeline-actions/lib/elastic-beanstalk/deploy-action.js +1 -1
- package/aws-codepipeline-actions/lib/github/source-action.js +1 -1
- package/aws-codepipeline-actions/lib/jenkins/jenkins-action.js +1 -1
- package/aws-codepipeline-actions/lib/jenkins/jenkins-provider.js +1 -1
- package/aws-codepipeline-actions/lib/lambda/invoke-action.js +1 -1
- package/aws-codepipeline-actions/lib/manual-approval-action.js +1 -1
- package/aws-codepipeline-actions/lib/s3/deploy-action.js +1 -1
- package/aws-codepipeline-actions/lib/s3/source-action.js +1 -1
- package/aws-codepipeline-actions/lib/servicecatalog/deploy-action-beta1.js +1 -1
- package/aws-codepipeline-actions/lib/stepfunctions/invoke-action.js +1 -1
- package/aws-codestar/lib/codestar.generated.js +1 -1
- package/aws-codestarconnections/lib/codestarconnections.generated.js +1 -1
- package/aws-codestarnotifications/lib/codestarnotifications.generated.js +1 -1
- package/aws-codestarnotifications/lib/notification-rule.js +1 -1
- package/aws-cognito/lib/cognito.generated.js +1 -1
- package/aws-cognito/lib/user-pool-attr.js +1 -1
- package/aws-cognito/lib/user-pool-client.js +1 -1
- package/aws-cognito/lib/user-pool-domain.js +1 -1
- package/aws-cognito/lib/user-pool-email.js +1 -1
- package/aws-cognito/lib/user-pool-idp.js +1 -1
- package/aws-cognito/lib/user-pool-idps/amazon.js +1 -1
- package/aws-cognito/lib/user-pool-idps/apple.js +1 -1
- package/aws-cognito/lib/user-pool-idps/base.js +1 -1
- package/aws-cognito/lib/user-pool-idps/facebook.js +1 -1
- package/aws-cognito/lib/user-pool-idps/google.js +1 -1
- package/aws-cognito/lib/user-pool-idps/oidc.js +1 -1
- package/aws-cognito/lib/user-pool-idps/saml.js +1 -1
- package/aws-cognito/lib/user-pool-resource-server.js +1 -1
- package/aws-cognito/lib/user-pool.js +1 -1
- package/aws-config/lib/config.generated.js +1 -1
- package/aws-config/lib/managed-rules.js +1 -1
- package/aws-config/lib/rule.js +1 -1
- package/aws-connect/lib/connect.generated.js +1 -1
- package/aws-connectcampaigns/lib/connectcampaigns.generated.js +1 -1
- package/aws-controltower/lib/controltower.generated.js +1 -1
- package/aws-cur/lib/cur.generated.js +1 -1
- package/aws-customerprofiles/lib/customerprofiles.generated.js +1 -1
- package/aws-databrew/lib/databrew.generated.js +1 -1
- package/aws-datapipeline/lib/datapipeline.generated.js +1 -1
- package/aws-datasync/lib/datasync.generated.js +1 -1
- package/aws-dax/lib/dax.generated.js +1 -1
- package/aws-detective/lib/detective.generated.js +1 -1
- package/aws-devopsguru/lib/devopsguru.generated.js +1 -1
- package/aws-directoryservice/lib/directoryservice.generated.js +1 -1
- package/aws-dlm/lib/dlm.generated.js +1 -1
- package/aws-dms/lib/dms.generated.js +1 -1
- package/aws-docdb/lib/cluster.js +1 -1
- package/aws-docdb/lib/database-secret.js +1 -1
- package/aws-docdb/lib/docdb.generated.js +1 -1
- package/aws-docdb/lib/endpoint.js +1 -1
- package/aws-docdb/lib/instance.js +1 -1
- package/aws-docdb/lib/parameter-group.js +1 -1
- package/aws-dynamodb/lib/dynamodb.generated.js +1 -1
- package/aws-dynamodb/lib/table.js +1 -1
- package/aws-ec2/lib/aspects/require-imdsv2-aspect.js +1 -1
- package/aws-ec2/lib/bastion-host.js +1 -1
- package/aws-ec2/lib/cfn-init-elements.js +1 -1
- package/aws-ec2/lib/cfn-init.js +1 -1
- package/aws-ec2/lib/client-vpn-authorization-rule.js +1 -1
- package/aws-ec2/lib/client-vpn-endpoint.js +1 -1
- package/aws-ec2/lib/client-vpn-route.js +1 -1
- package/aws-ec2/lib/connections.js +1 -1
- package/aws-ec2/lib/ec2.generated.js +1 -1
- package/aws-ec2/lib/instance-types.js +1 -1
- package/aws-ec2/lib/instance.js +1 -1
- package/aws-ec2/lib/ip-addresses.js +1 -1
- package/aws-ec2/lib/launch-template.js +1 -1
- package/aws-ec2/lib/machine-image.js +1 -1
- package/aws-ec2/lib/nat.js +1 -1
- package/aws-ec2/lib/network-acl-types.js +1 -1
- package/aws-ec2/lib/network-acl.js +1 -1
- package/aws-ec2/lib/peer.js +1 -1
- package/aws-ec2/lib/port.js +1 -1
- package/aws-ec2/lib/security-group.js +1 -1
- package/aws-ec2/lib/subnet.js +1 -1
- package/aws-ec2/lib/user-data.js +3 -3
- package/aws-ec2/lib/volume.js +1 -1
- package/aws-ec2/lib/vpc-endpoint-service.js +1 -1
- package/aws-ec2/lib/vpc-endpoint.js +1 -1
- package/aws-ec2/lib/vpc-flow-logs.js +1 -1
- package/aws-ec2/lib/vpc.js +1 -1
- package/aws-ec2/lib/vpn.js +1 -1
- package/aws-ecr/lib/auth-token.js +1 -1
- package/aws-ecr/lib/ecr.generated.js +1 -1
- package/aws-ecr/lib/repository.js +1 -1
- package/aws-ecr-assets/lib/image-asset.js +2 -2
- package/aws-ecr-assets/lib/tarball-asset.js +1 -1
- package/aws-ecs/lib/amis.js +1 -1
- package/aws-ecs/lib/base/base-service.js +1 -1
- package/aws-ecs/lib/base/scalable-task-count.js +1 -1
- package/aws-ecs/lib/base/task-definition.js +1 -1
- package/aws-ecs/lib/cluster.js +1 -1
- package/aws-ecs/lib/container-definition.js +1 -1
- package/aws-ecs/lib/container-image.js +1 -1
- package/aws-ecs/lib/ec2/ec2-service.js +1 -1
- package/aws-ecs/lib/ec2/ec2-task-definition.js +1 -1
- package/aws-ecs/lib/ecs.generated.js +1 -1
- package/aws-ecs/lib/environment-file.js +1 -1
- package/aws-ecs/lib/external/external-service.js +1 -1
- package/aws-ecs/lib/external/external-task-definition.js +1 -1
- package/aws-ecs/lib/fargate/fargate-service.js +1 -1
- package/aws-ecs/lib/fargate/fargate-task-definition.js +1 -1
- package/aws-ecs/lib/firelens-log-router.js +1 -1
- package/aws-ecs/lib/images/asset-image.js +1 -1
- package/aws-ecs/lib/images/ecr.js +1 -1
- package/aws-ecs/lib/images/repository.js +1 -1
- package/aws-ecs/lib/images/tag-parameter-container-image.js +1 -1
- package/aws-ecs/lib/linux-parameters.js +1 -1
- package/aws-ecs/lib/log-drivers/aws-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/firelens-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/fluentd-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/gelf-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/generic-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/journald-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/json-file-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/log-drivers.js +1 -1
- package/aws-ecs/lib/log-drivers/splunk-log-driver.js +1 -1
- package/aws-ecs/lib/log-drivers/syslog-log-driver.js +1 -1
- package/aws-ecs/lib/placement.js +1 -1
- package/aws-ecs/lib/proxy-configuration/app-mesh-proxy-configuration.js +1 -1
- package/aws-ecs/lib/proxy-configuration/proxy-configuration.js +1 -1
- package/aws-ecs/lib/proxy-configuration/proxy-configurations.js +1 -1
- package/aws-ecs/lib/runtime-platform.js +1 -1
- package/aws-ecs-patterns/lib/base/application-load-balanced-service-base.js +1 -1
- package/aws-ecs-patterns/lib/base/application-multiple-target-groups-service-base.js +1 -1
- package/aws-ecs-patterns/lib/base/network-load-balanced-service-base.js +1 -1
- package/aws-ecs-patterns/lib/base/network-multiple-target-groups-service-base.js +1 -1
- package/aws-ecs-patterns/lib/base/queue-processing-service-base.js +1 -1
- package/aws-ecs-patterns/lib/base/scheduled-task-base.js +1 -1
- package/aws-ecs-patterns/lib/ecs/application-load-balanced-ecs-service.js +1 -1
- package/aws-ecs-patterns/lib/ecs/application-multiple-target-groups-ecs-service.js +1 -1
- package/aws-ecs-patterns/lib/ecs/network-load-balanced-ecs-service.js +1 -1
- package/aws-ecs-patterns/lib/ecs/network-multiple-target-groups-ecs-service.js +1 -1
- package/aws-ecs-patterns/lib/ecs/queue-processing-ecs-service.js +1 -1
- package/aws-ecs-patterns/lib/ecs/scheduled-ecs-task.js +1 -1
- package/aws-ecs-patterns/lib/fargate/application-load-balanced-fargate-service.js +1 -1
- package/aws-ecs-patterns/lib/fargate/application-multiple-target-groups-fargate-service.js +1 -1
- package/aws-ecs-patterns/lib/fargate/network-load-balanced-fargate-service.js +1 -1
- package/aws-ecs-patterns/lib/fargate/network-multiple-target-groups-fargate-service.js +1 -1
- package/aws-ecs-patterns/lib/fargate/queue-processing-fargate-service.js +1 -1
- package/aws-ecs-patterns/lib/fargate/scheduled-fargate-task.js +1 -1
- package/aws-efs/lib/access-point.js +1 -1
- package/aws-efs/lib/efs-file-system.js +1 -1
- package/aws-efs/lib/efs.generated.js +1 -1
- package/aws-eks/lib/alb-controller.js +1 -1
- package/aws-eks/lib/aws-auth.js +1 -1
- package/aws-eks/lib/cluster.js +1 -1
- package/aws-eks/lib/eks.generated.js +1 -1
- package/aws-eks/lib/fargate-cluster.js +1 -1
- package/aws-eks/lib/fargate-profile.js +1 -1
- package/aws-eks/lib/helm-chart.js +1 -1
- package/aws-eks/lib/k8s-manifest.js +1 -1
- package/aws-eks/lib/k8s-object-value.js +1 -1
- package/aws-eks/lib/k8s-patch.js +1 -1
- package/aws-eks/lib/kubectl-provider.js +1 -1
- package/aws-eks/lib/managed-nodegroup.js +1 -1
- package/aws-eks/lib/oidc-provider.js +1 -1
- package/aws-eks/lib/service-account.js +1 -1
- package/aws-elasticache/lib/elasticache.generated.js +1 -1
- package/aws-elasticbeanstalk/lib/elasticbeanstalk.generated.js +1 -1
- package/aws-elasticloadbalancing/lib/elasticloadbalancing.generated.js +1 -1
- package/aws-elasticloadbalancing/lib/load-balancer.js +1 -1
- package/aws-elasticloadbalancingv2/lib/alb/application-listener-action.js +1 -1
- package/aws-elasticloadbalancingv2/lib/alb/application-listener-certificate.js +1 -1
- package/aws-elasticloadbalancingv2/lib/alb/application-listener-rule.js +1 -1
- package/aws-elasticloadbalancingv2/lib/alb/application-listener.js +1 -1
- package/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.js +1 -1
- package/aws-elasticloadbalancingv2/lib/alb/application-target-group.js +1 -1
- package/aws-elasticloadbalancingv2/lib/alb/conditions.js +1 -1
- package/aws-elasticloadbalancingv2/lib/elasticloadbalancingv2.generated.js +1 -1
- package/aws-elasticloadbalancingv2/lib/nlb/network-listener-action.js +1 -1
- package/aws-elasticloadbalancingv2/lib/nlb/network-listener.js +1 -1
- package/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.js +1 -1
- package/aws-elasticloadbalancingv2/lib/nlb/network-target-group.js +1 -1
- package/aws-elasticloadbalancingv2/lib/shared/base-listener.js +1 -1
- package/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.js +1 -1
- package/aws-elasticloadbalancingv2/lib/shared/base-target-group.js +1 -1
- package/aws-elasticloadbalancingv2/lib/shared/listener-certificate.js +1 -1
- package/aws-elasticloadbalancingv2/lib/shared/load-balancer-targets.js +1 -1
- package/aws-elasticloadbalancingv2-actions/lib/cognito-action.js +1 -1
- package/aws-elasticloadbalancingv2-targets/lib/alb-target.js +1 -1
- package/aws-elasticloadbalancingv2-targets/lib/instance-target.js +1 -1
- package/aws-elasticloadbalancingv2-targets/lib/ip-target.js +1 -1
- package/aws-elasticloadbalancingv2-targets/lib/lambda-target.js +1 -1
- package/aws-elasticsearch/lib/domain.js +1 -1
- package/aws-elasticsearch/lib/elasticsearch.generated.js +1 -1
- package/aws-emr/lib/emr.generated.js +1 -1
- package/aws-emrcontainers/lib/emrcontainers.generated.js +1 -1
- package/aws-emrserverless/lib/emrserverless.generated.js +1 -1
- package/aws-events/lib/api-destination.js +1 -1
- package/aws-events/lib/archive.js +1 -1
- package/aws-events/lib/connection.js +1 -1
- package/aws-events/lib/event-bus.js +1 -1
- package/aws-events/lib/event-pattern.js +1 -1
- package/aws-events/lib/events.generated.js +1 -1
- package/aws-events/lib/input.js +2 -2
- package/aws-events/lib/rule.js +1 -1
- package/aws-events/lib/schedule.js +1 -1
- package/aws-events-targets/lib/api-destination.js +1 -1
- package/aws-events-targets/lib/api-gateway.js +1 -1
- package/aws-events-targets/lib/aws-api.js +1 -1
- package/aws-events-targets/lib/batch.js +1 -1
- package/aws-events-targets/lib/codebuild.js +1 -1
- package/aws-events-targets/lib/codepipeline.js +1 -1
- package/aws-events-targets/lib/ecs-task.js +1 -1
- package/aws-events-targets/lib/event-bus.js +1 -1
- package/aws-events-targets/lib/kinesis-firehose-stream.js +1 -1
- package/aws-events-targets/lib/kinesis-stream.js +1 -1
- package/aws-events-targets/lib/lambda.js +1 -1
- package/aws-events-targets/lib/log-group.js +2 -2
- package/aws-events-targets/lib/sns.js +1 -1
- package/aws-events-targets/lib/sqs.js +1 -1
- package/aws-events-targets/lib/state-machine.js +1 -1
- package/aws-eventschemas/lib/eventschemas.generated.js +1 -1
- package/aws-evidently/lib/evidently.generated.js +1 -1
- package/aws-finspace/lib/finspace.generated.js +1 -1
- package/aws-fis/lib/fis.generated.js +1 -1
- package/aws-fms/lib/fms.generated.js +1 -1
- package/aws-forecast/lib/forecast.generated.js +1 -1
- package/aws-frauddetector/lib/frauddetector.generated.js +1 -1
- package/aws-fsx/lib/file-system.js +1 -1
- package/aws-fsx/lib/fsx.generated.js +1 -1
- package/aws-fsx/lib/lustre-file-system.js +1 -1
- package/aws-fsx/lib/maintenance-time.js +1 -1
- package/aws-gamelift/lib/gamelift.generated.js +1 -1
- package/aws-globalaccelerator/lib/accelerator.js +1 -1
- package/aws-globalaccelerator/lib/endpoint-group.js +1 -1
- package/aws-globalaccelerator/lib/endpoint.js +1 -1
- package/aws-globalaccelerator/lib/globalaccelerator.generated.js +1 -1
- package/aws-globalaccelerator/lib/listener.js +1 -1
- package/aws-globalaccelerator-endpoints/lib/alb.js +1 -1
- package/aws-globalaccelerator-endpoints/lib/eip.js +1 -1
- package/aws-globalaccelerator-endpoints/lib/instance.js +1 -1
- package/aws-globalaccelerator-endpoints/lib/nlb.js +1 -1
- package/aws-glue/lib/glue.generated.js +1 -1
- package/aws-greengrass/lib/greengrass.generated.js +1 -1
- package/aws-greengrassv2/lib/greengrassv2.generated.js +1 -1
- package/aws-groundstation/lib/groundstation.generated.js +1 -1
- package/aws-guardduty/lib/guardduty.generated.js +1 -1
- package/aws-healthlake/lib/healthlake.generated.js +1 -1
- package/aws-iam/lib/access-key.js +1 -1
- package/aws-iam/lib/grant.js +1 -1
- package/aws-iam/lib/group.js +1 -1
- package/aws-iam/lib/iam.generated.js +1 -1
- package/aws-iam/lib/lazy-role.js +1 -1
- package/aws-iam/lib/managed-policy.js +1 -1
- package/aws-iam/lib/oidc-provider.js +1 -1
- package/aws-iam/lib/permissions-boundary.js +1 -1
- package/aws-iam/lib/policy-document.js +1 -1
- package/aws-iam/lib/policy-statement.js +1 -1
- package/aws-iam/lib/policy.js +1 -1
- package/aws-iam/lib/principals.js +1 -1
- package/aws-iam/lib/role.js +1 -1
- package/aws-iam/lib/saml-provider.js +1 -1
- package/aws-iam/lib/unknown-principal.js +1 -1
- package/aws-iam/lib/user.js +1 -1
- package/aws-identitystore/lib/identitystore.generated.js +1 -1
- package/aws-imagebuilder/lib/imagebuilder.generated.js +1 -1
- package/aws-inspector/lib/inspector.generated.js +1 -1
- package/aws-inspectorv2/lib/inspectorv2.generated.js +1 -1
- package/aws-iot/lib/iot.generated.js +1 -1
- package/aws-iot1click/lib/iot1click.generated.js +1 -1
- package/aws-iotanalytics/lib/iotanalytics.generated.js +1 -1
- package/aws-iotcoredeviceadvisor/lib/iotcoredeviceadvisor.generated.js +1 -1
- package/aws-iotevents/lib/iotevents.generated.js +1 -1
- package/aws-iotfleethub/lib/iotfleethub.generated.js +1 -1
- package/aws-iotfleetwise/lib/iotfleetwise.generated.js +1 -1
- package/aws-iotsitewise/lib/iotsitewise.generated.js +1 -1
- package/aws-iotthingsgraph/lib/iotthingsgraph.generated.js +1 -1
- package/aws-iottwinmaker/lib/iottwinmaker.generated.js +1 -1
- package/aws-iotwireless/lib/iotwireless.generated.js +1 -1
- package/aws-ivs/lib/ivs.generated.js +1 -1
- package/aws-kafkaconnect/lib/kafkaconnect.generated.js +1 -1
- package/aws-kendra/lib/kendra.generated.js +1 -1
- package/aws-kinesis/lib/kinesis.generated.js +1 -1
- package/aws-kinesis/lib/stream.js +1 -1
- package/aws-kinesisanalytics/lib/kinesisanalytics.generated.js +1 -1
- package/aws-kinesisanalytics/lib/kinesisanalyticsv2.generated.js +1 -1
- package/aws-kinesisanalyticsv2/lib/kinesisanalyticsv2.generated.js +1 -1
- package/aws-kinesisfirehose/lib/kinesisfirehose.generated.js +1 -1
- package/aws-kinesisvideo/lib/kinesisvideo.generated.js +1 -1
- package/aws-kms/lib/alias.js +1 -1
- package/aws-kms/lib/key.js +1 -1
- package/aws-kms/lib/kms.generated.js +1 -1
- package/aws-kms/lib/via-service-principal.js +1 -1
- package/aws-lakeformation/lib/lakeformation.generated.js +1 -1
- package/aws-lambda/lib/alias.js +1 -1
- package/aws-lambda/lib/architecture.js +1 -1
- package/aws-lambda/lib/code-signing-config.js +1 -1
- package/aws-lambda/lib/code.js +1 -1
- package/aws-lambda/lib/event-invoke-config.js +1 -1
- package/aws-lambda/lib/event-source-filter.js +1 -1
- package/aws-lambda/lib/event-source-mapping.js +1 -1
- package/aws-lambda/lib/filesystem.js +1 -1
- package/aws-lambda/lib/function-base.js +1 -1
- package/aws-lambda/lib/function-url.js +1 -1
- package/aws-lambda/lib/function.js +1 -1
- package/aws-lambda/lib/handler.js +1 -1
- package/aws-lambda/lib/image-function.js +1 -1
- package/aws-lambda/lib/lambda-insights.js +1 -1
- package/aws-lambda/lib/lambda-version.js +1 -1
- package/aws-lambda/lib/lambda.generated.js +1 -1
- package/aws-lambda/lib/layers.js +1 -1
- package/aws-lambda/lib/log-retention.js +1 -1
- package/aws-lambda/lib/runtime.js +1 -1
- package/aws-lambda/lib/singleton-lambda.js +1 -1
- package/aws-lambda-destinations/lib/event-bridge.js +1 -1
- package/aws-lambda-destinations/lib/lambda.js +1 -1
- package/aws-lambda-destinations/lib/sns.js +1 -1
- package/aws-lambda-destinations/lib/sqs.js +1 -1
- package/aws-lambda-event-sources/lib/api.js +1 -1
- package/aws-lambda-event-sources/lib/dynamodb.js +1 -1
- package/aws-lambda-event-sources/lib/kafka.js +1 -1
- package/aws-lambda-event-sources/lib/kinesis.js +1 -1
- package/aws-lambda-event-sources/lib/s3.js +1 -1
- package/aws-lambda-event-sources/lib/sns-dlq.js +1 -1
- package/aws-lambda-event-sources/lib/sns.js +1 -1
- package/aws-lambda-event-sources/lib/sqs-dlq.js +1 -1
- package/aws-lambda-event-sources/lib/sqs.js +1 -1
- package/aws-lambda-event-sources/lib/stream.js +1 -1
- package/aws-lambda-nodejs/lib/function.js +1 -1
- package/aws-lex/lib/lex.generated.js +1 -1
- package/aws-licensemanager/lib/licensemanager.generated.js +1 -1
- package/aws-lightsail/lib/lightsail.generated.js +1 -1
- package/aws-location/lib/location.generated.js +1 -1
- package/aws-logs/lib/cross-account-destination.js +1 -1
- package/aws-logs/lib/log-group.js +1 -1
- package/aws-logs/lib/log-retention.js +1 -1
- package/aws-logs/lib/log-stream.js +1 -1
- package/aws-logs/lib/logs.generated.js +1 -1
- package/aws-logs/lib/metric-filter.js +1 -1
- package/aws-logs/lib/pattern.js +1 -1
- package/aws-logs/lib/policy.js +1 -1
- package/aws-logs/lib/query-definition.js +1 -1
- package/aws-logs/lib/subscription-filter.js +1 -1
- package/aws-logs-destinations/lib/kinesis.js +1 -1
- package/aws-logs-destinations/lib/lambda.js +1 -1
- package/aws-lookoutequipment/lib/lookoutequipment.generated.js +1 -1
- package/aws-lookoutmetrics/lib/lookoutmetrics.generated.js +1 -1
- package/aws-lookoutvision/lib/lookoutvision.generated.js +1 -1
- package/aws-m2/lib/m2.generated.js +1 -1
- package/aws-macie/lib/macie.generated.js +1 -1
- package/aws-managedblockchain/lib/managedblockchain.generated.js +1 -1
- package/aws-mediaconnect/lib/mediaconnect.generated.js +1 -1
- package/aws-mediaconvert/lib/mediaconvert.generated.js +1 -1
- package/aws-medialive/lib/medialive.generated.js +1 -1
- package/aws-mediapackage/lib/mediapackage.generated.js +1 -1
- package/aws-mediastore/lib/mediastore.generated.js +1 -1
- package/aws-mediatailor/lib/mediatailor.generated.js +1 -1
- package/aws-memorydb/lib/memorydb.generated.js +1 -1
- package/aws-msk/lib/msk.generated.js +1 -1
- package/aws-mwaa/lib/mwaa.generated.js +1 -1
- package/aws-neptune/lib/neptune.generated.js +1 -1
- package/aws-networkfirewall/lib/networkfirewall.generated.js +1 -1
- package/aws-networkmanager/lib/networkmanager.generated.js +1 -1
- package/aws-nimblestudio/lib/nimblestudio.generated.js +1 -1
- package/aws-opensearchservice/lib/domain.js +1 -1
- package/aws-opensearchservice/lib/opensearchservice.generated.js +1 -1
- package/aws-opensearchservice/lib/version.js +1 -1
- package/aws-opsworks/lib/opsworks.generated.js +1 -1
- package/aws-opsworkscm/lib/opsworkscm.generated.js +1 -1
- package/aws-organizations/lib/organizations.generated.js +1 -1
- package/aws-panorama/lib/panorama.generated.js +1 -1
- package/aws-personalize/lib/personalize.generated.js +1 -1
- package/aws-pinpoint/lib/pinpoint.generated.js +1 -1
- package/aws-pinpointemail/lib/pinpointemail.generated.js +1 -1
- package/aws-qldb/lib/qldb.generated.js +1 -1
- package/aws-quicksight/lib/quicksight.generated.js +1 -1
- package/aws-ram/lib/ram.generated.js +1 -1
- package/aws-rds/lib/cluster-engine.js +1 -1
- package/aws-rds/lib/cluster.js +1 -1
- package/aws-rds/lib/database-secret.js +1 -1
- package/aws-rds/lib/endpoint.js +1 -1
- package/aws-rds/lib/instance-engine.js +1 -1
- package/aws-rds/lib/instance.js +1 -1
- package/aws-rds/lib/option-group.js +1 -1
- package/aws-rds/lib/parameter-group.js +1 -1
- package/aws-rds/lib/props.js +1 -1
- package/aws-rds/lib/proxy.js +1 -1
- package/aws-rds/lib/rds.generated.js +1 -1
- package/aws-rds/lib/serverless-cluster.js +1 -1
- package/aws-rds/lib/subnet-group.js +1 -1
- package/aws-redshift/lib/redshift.generated.js +1 -1
- package/aws-redshiftserverless/lib/redshiftserverless.generated.js +1 -1
- package/aws-refactorspaces/lib/refactorspaces.generated.js +1 -1
- package/aws-rekognition/lib/rekognition.generated.js +1 -1
- package/aws-resiliencehub/lib/resiliencehub.generated.js +1 -1
- package/aws-resourceexplorer2/lib/resourceexplorer2.generated.js +1 -1
- package/aws-resourcegroups/lib/resourcegroups.generated.js +1 -1
- package/aws-robomaker/lib/robomaker.generated.js +1 -1
- package/aws-rolesanywhere/lib/rolesanywhere.generated.js +1 -1
- package/aws-route53/lib/hosted-zone.js +1 -1
- package/aws-route53/lib/record-set.js +1 -1
- package/aws-route53/lib/route53.generated.js +1 -1
- package/aws-route53/lib/vpc-endpoint-service-domain-name.js +1 -1
- package/aws-route53-patterns/lib/website-redirect.js +1 -1
- package/aws-route53-targets/lib/api-gateway-domain-name.js +1 -1
- package/aws-route53-targets/lib/api-gatewayv2-domain-name.js +1 -1
- package/aws-route53-targets/lib/bucket-website-target.js +1 -1
- package/aws-route53-targets/lib/classic-load-balancer-target.js +1 -1
- package/aws-route53-targets/lib/cloudfront-target.js +1 -1
- package/aws-route53-targets/lib/elastic-beanstalk-environment-target.js +1 -1
- package/aws-route53-targets/lib/global-accelerator-target.js +1 -1
- package/aws-route53-targets/lib/interface-vpc-endpoint-target.js +1 -1
- package/aws-route53-targets/lib/load-balancer-target.js +1 -1
- package/aws-route53-targets/lib/route53-record.js +1 -1
- package/aws-route53-targets/lib/userpool-domain.js +1 -1
- package/aws-route53recoverycontrol/lib/route53recoverycontrol.generated.js +1 -1
- package/aws-route53recoveryreadiness/lib/route53recoveryreadiness.generated.js +1 -1
- package/aws-route53resolver/lib/route53resolver.generated.js +1 -1
- package/aws-rum/lib/rum.generated.js +1 -1
- package/aws-s3/lib/bucket-policy.js +1 -1
- package/aws-s3/lib/bucket.js +1 -1
- package/aws-s3/lib/rule.js +1 -1
- package/aws-s3/lib/s3.generated.js +1 -1
- package/aws-s3-assets/lib/asset.js +1 -1
- package/aws-s3-deployment/lib/bucket-deployment.js +1 -1
- package/aws-s3-deployment/lib/source.js +1 -1
- package/aws-s3-notifications/lib/lambda.js +1 -1
- package/aws-s3-notifications/lib/sns.js +1 -1
- package/aws-s3-notifications/lib/sqs.js +1 -1
- package/aws-s3objectlambda/lib/s3objectlambda.generated.js +1 -1
- package/aws-s3outposts/lib/s3outposts.generated.js +1 -1
- package/aws-sagemaker/lib/sagemaker.generated.js +1 -1
- package/aws-sam/lib/sam.generated.js +1 -1
- package/aws-scheduler/lib/scheduler.generated.js +1 -1
- package/aws-sdb/lib/sdb.generated.js +1 -1
- package/aws-secretsmanager/lib/policy.js +1 -1
- package/aws-secretsmanager/lib/rotation-schedule.js +1 -1
- package/aws-secretsmanager/lib/secret-rotation.js +1 -1
- package/aws-secretsmanager/lib/secret.js +1 -1
- package/aws-secretsmanager/lib/secretsmanager.generated.js +1 -1
- package/aws-securityhub/lib/securityhub.generated.js +1 -1
- package/aws-servicecatalog/lib/cloudformation-template.js +1 -1
- package/aws-servicecatalog/lib/portfolio.js +1 -1
- package/aws-servicecatalog/lib/product-stack-history.js +1 -1
- package/aws-servicecatalog/lib/product-stack.js +1 -1
- package/aws-servicecatalog/lib/product.js +1 -1
- package/aws-servicecatalog/lib/servicecatalog.generated.js +1 -1
- package/aws-servicecatalog/lib/tag-options.js +1 -1
- package/aws-servicecatalogappregistry/lib/servicecatalogappregistry.generated.js +1 -1
- package/aws-servicediscovery/lib/alias-target-instance.js +1 -1
- package/aws-servicediscovery/lib/cname-instance.js +1 -1
- package/aws-servicediscovery/lib/http-namespace.js +1 -1
- package/aws-servicediscovery/lib/instance.js +1 -1
- package/aws-servicediscovery/lib/ip-instance.js +1 -1
- package/aws-servicediscovery/lib/non-ip-instance.js +1 -1
- package/aws-servicediscovery/lib/private-dns-namespace.js +1 -1
- package/aws-servicediscovery/lib/public-dns-namespace.js +1 -1
- package/aws-servicediscovery/lib/service.js +1 -1
- package/aws-servicediscovery/lib/servicediscovery.generated.js +1 -1
- package/aws-ses/lib/configuration-set.js +1 -1
- package/aws-ses/lib/dedicated-ip-pool.js +1 -1
- package/aws-ses/lib/email-identity.js +1 -1
- package/aws-ses/lib/receipt-filter.js +1 -1
- package/aws-ses/lib/receipt-rule-set.js +1 -1
- package/aws-ses/lib/receipt-rule.js +1 -1
- package/aws-ses/lib/ses.generated.js +1 -1
- package/aws-ses-actions/lib/add-header.js +1 -1
- package/aws-ses-actions/lib/bounce.js +1 -1
- package/aws-ses-actions/lib/lambda.js +1 -1
- package/aws-ses-actions/lib/s3.js +1 -1
- package/aws-ses-actions/lib/sns.js +1 -1
- package/aws-ses-actions/lib/stop.js +1 -1
- package/aws-signer/lib/signer.generated.js +1 -1
- package/aws-signer/lib/signing-profile.js +1 -1
- package/aws-sns/lib/policy.js +1 -1
- package/aws-sns/lib/sns.generated.js +1 -1
- package/aws-sns/lib/subscription-filter.js +1 -1
- package/aws-sns/lib/subscription.js +1 -1
- package/aws-sns/lib/topic-base.js +1 -1
- package/aws-sns/lib/topic.js +1 -1
- package/aws-sns-subscriptions/lib/email.js +1 -1
- package/aws-sns-subscriptions/lib/lambda.js +1 -1
- package/aws-sns-subscriptions/lib/sms.js +1 -1
- package/aws-sns-subscriptions/lib/sqs.js +1 -1
- package/aws-sns-subscriptions/lib/url.js +1 -1
- package/aws-sqs/lib/policy.js +1 -1
- package/aws-sqs/lib/queue-base.js +1 -1
- package/aws-sqs/lib/queue.js +1 -1
- package/aws-sqs/lib/sqs.generated.js +1 -1
- package/aws-ssm/lib/parameter.js +1 -1
- package/aws-ssm/lib/ssm.generated.js +1 -1
- package/aws-ssmcontacts/lib/ssmcontacts.generated.js +1 -1
- package/aws-ssmincidents/lib/ssmincidents.generated.js +1 -1
- package/aws-sso/lib/sso.generated.js +1 -1
- package/aws-stepfunctions/lib/activity.js +1 -1
- package/aws-stepfunctions/lib/chain.js +1 -1
- package/aws-stepfunctions/lib/condition.js +1 -1
- package/aws-stepfunctions/lib/fields.js +1 -1
- package/aws-stepfunctions/lib/input.js +1 -1
- package/aws-stepfunctions/lib/state-graph.js +1 -1
- package/aws-stepfunctions/lib/state-machine-fragment.js +1 -1
- package/aws-stepfunctions/lib/state-machine.js +1 -1
- package/aws-stepfunctions/lib/state-transition-metrics.js +1 -1
- package/aws-stepfunctions/lib/states/choice.js +1 -1
- package/aws-stepfunctions/lib/states/custom-state.js +1 -1
- package/aws-stepfunctions/lib/states/fail.js +1 -1
- package/aws-stepfunctions/lib/states/map.js +1 -1
- package/aws-stepfunctions/lib/states/parallel.js +1 -1
- package/aws-stepfunctions/lib/states/pass.js +1 -1
- package/aws-stepfunctions/lib/states/state.js +1 -1
- package/aws-stepfunctions/lib/states/succeed.js +1 -1
- package/aws-stepfunctions/lib/states/task-base.js +1 -1
- package/aws-stepfunctions/lib/states/task.js +1 -1
- package/aws-stepfunctions/lib/states/wait.js +1 -1
- package/aws-stepfunctions/lib/stepfunctions.generated.js +1 -1
- package/aws-stepfunctions/lib/types.js +1 -1
- package/aws-stepfunctions-tasks/lib/apigateway/call-http-api.js +1 -1
- package/aws-stepfunctions-tasks/lib/apigateway/call-rest-api.js +1 -1
- package/aws-stepfunctions-tasks/lib/athena/get-query-execution.js +1 -1
- package/aws-stepfunctions-tasks/lib/athena/get-query-results.js +1 -1
- package/aws-stepfunctions-tasks/lib/athena/start-query-execution.js +1 -1
- package/aws-stepfunctions-tasks/lib/athena/stop-query-execution.js +1 -1
- package/aws-stepfunctions-tasks/lib/aws-sdk/call-aws-service.js +1 -1
- package/aws-stepfunctions-tasks/lib/batch/run-batch-job.js +1 -1
- package/aws-stepfunctions-tasks/lib/batch/submit-job.js +1 -1
- package/aws-stepfunctions-tasks/lib/codebuild/start-build.js +1 -1
- package/aws-stepfunctions-tasks/lib/databrew/start-job-run.js +1 -1
- package/aws-stepfunctions-tasks/lib/dynamodb/delete-item.js +1 -1
- package/aws-stepfunctions-tasks/lib/dynamodb/get-item.js +1 -1
- package/aws-stepfunctions-tasks/lib/dynamodb/put-item.js +1 -1
- package/aws-stepfunctions-tasks/lib/dynamodb/shared-types.js +1 -1
- package/aws-stepfunctions-tasks/lib/dynamodb/update-item.js +1 -1
- package/aws-stepfunctions-tasks/lib/ecs/run-ecs-ec2-task.js +1 -1
- package/aws-stepfunctions-tasks/lib/ecs/run-ecs-fargate-task.js +1 -1
- package/aws-stepfunctions-tasks/lib/ecs/run-ecs-task-base.js +1 -1
- package/aws-stepfunctions-tasks/lib/ecs/run-task.js +1 -1
- package/aws-stepfunctions-tasks/lib/eks/call.js +1 -1
- package/aws-stepfunctions-tasks/lib/emr/emr-add-step.js +1 -1
- package/aws-stepfunctions-tasks/lib/emr/emr-cancel-step.js +1 -1
- package/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.js +1 -1
- package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-fleet-by-name.js +1 -1
- package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-group-by-name.js +1 -1
- package/aws-stepfunctions-tasks/lib/emr/emr-set-cluster-termination-protection.js +1 -1
- package/aws-stepfunctions-tasks/lib/emr/emr-terminate-cluster.js +1 -1
- package/aws-stepfunctions-tasks/lib/emrcontainers/create-virtual-cluster.js +1 -1
- package/aws-stepfunctions-tasks/lib/emrcontainers/delete-virtual-cluster.js +1 -1
- package/aws-stepfunctions-tasks/lib/emrcontainers/start-job-run.js +1 -1
- package/aws-stepfunctions-tasks/lib/evaluate-expression.js +1 -1
- package/aws-stepfunctions-tasks/lib/eventbridge/put-events.js +1 -1
- package/aws-stepfunctions-tasks/lib/glue/run-glue-job-task.js +1 -1
- package/aws-stepfunctions-tasks/lib/glue/start-job-run.js +1 -1
- package/aws-stepfunctions-tasks/lib/invoke-activity.js +1 -1
- package/aws-stepfunctions-tasks/lib/lambda/invoke-function.js +1 -1
- package/aws-stepfunctions-tasks/lib/lambda/invoke.js +1 -1
- package/aws-stepfunctions-tasks/lib/lambda/run-lambda-task.js +1 -1
- package/aws-stepfunctions-tasks/lib/sagemaker/base-types.js +1 -1
- package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint-config.js +1 -1
- package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint.js +1 -1
- package/aws-stepfunctions-tasks/lib/sagemaker/create-model.js +1 -1
- package/aws-stepfunctions-tasks/lib/sagemaker/create-training-job.js +1 -1
- package/aws-stepfunctions-tasks/lib/sagemaker/create-transform-job.js +1 -1
- package/aws-stepfunctions-tasks/lib/sagemaker/update-endpoint.js +1 -1
- package/aws-stepfunctions-tasks/lib/sns/publish-to-topic.js +1 -1
- package/aws-stepfunctions-tasks/lib/sns/publish.js +1 -1
- package/aws-stepfunctions-tasks/lib/sqs/send-message.js +1 -1
- package/aws-stepfunctions-tasks/lib/sqs/send-to-queue.js +1 -1
- package/aws-stepfunctions-tasks/lib/start-execution.js +1 -1
- package/aws-stepfunctions-tasks/lib/stepfunctions/invoke-activity.js +1 -1
- package/aws-stepfunctions-tasks/lib/stepfunctions/start-execution.js +1 -1
- package/aws-supportapp/lib/supportapp.generated.js +1 -1
- package/aws-synthetics/lib/synthetics.generated.js +1 -1
- package/aws-timestream/lib/timestream.generated.js +1 -1
- package/aws-transfer/lib/transfer.generated.js +1 -1
- package/aws-voiceid/lib/voiceid.generated.js +1 -1
- package/aws-waf/lib/waf.generated.js +1 -1
- package/aws-wafregional/lib/wafregional.generated.js +1 -1
- package/aws-wafv2/lib/wafv2.generated.js +1 -1
- package/aws-wisdom/lib/wisdom.generated.js +1 -1
- package/aws-workspaces/lib/workspaces.generated.js +1 -1
- package/aws-xray/lib/xray.generated.js +1 -1
- package/cloud-assembly-schema/lib/manifest.js +1 -1
- package/cloudformation-include/lib/cfn-include.js +1 -1
- package/core/lib/annotations.js +1 -1
- package/core/lib/app.js +1 -1
- package/core/lib/arn.js +1 -1
- package/core/lib/aspect.js +1 -1
- package/core/lib/asset-staging.js +1 -1
- package/core/lib/bundling.js +1 -1
- package/core/lib/cfn-codedeploy-blue-green-hook.js +1 -1
- package/core/lib/cfn-condition.js +1 -1
- package/core/lib/cfn-dynamic-reference.js +1 -1
- package/core/lib/cfn-element.js +1 -1
- package/core/lib/cfn-fn.js +1 -1
- package/core/lib/cfn-hook.js +1 -1
- package/core/lib/cfn-include.js +1 -1
- package/core/lib/cfn-json.js +1 -1
- package/core/lib/cfn-mapping.js +1 -1
- package/core/lib/cfn-output.js +1 -1
- package/core/lib/cfn-parameter.js +1 -1
- package/core/lib/cfn-pseudo.js +1 -1
- package/core/lib/cfn-resource.js +1 -1
- package/core/lib/cfn-rule.js +1 -1
- package/core/lib/cloudformation.generated.js +1 -1
- package/core/lib/context-provider.js +1 -1
- package/core/lib/custom-resource-provider/custom-resource-provider.js +1 -1
- package/core/lib/custom-resource.js +1 -1
- package/core/lib/duration.js +1 -1
- package/core/lib/expiration.js +1 -1
- package/core/lib/feature-flags.js +1 -1
- package/core/lib/fs/ignore.js +1 -1
- package/core/lib/fs/index.js +1 -1
- package/core/lib/lazy.js +1 -1
- package/core/lib/names.js +1 -1
- package/core/lib/nested-stack.js +1 -1
- package/core/lib/physical-name.js +1 -1
- package/core/lib/private/intrinsic.js +1 -1
- package/core/lib/reference.js +1 -1
- package/core/lib/resolvable.js +2 -2
- package/core/lib/resource.js +1 -1
- package/core/lib/runtime.js +2 -2
- package/core/lib/secret-value.js +1 -1
- package/core/lib/size.js +1 -1
- package/core/lib/stack-synthesizers/asset-manifest-builder.js +1 -1
- package/core/lib/stack-synthesizers/bootstrapless-synthesizer.js +1 -1
- package/core/lib/stack-synthesizers/cli-credentials-synthesizer.js +1 -1
- package/core/lib/stack-synthesizers/default-synthesizer.js +1 -1
- package/core/lib/stack-synthesizers/legacy.js +1 -1
- package/core/lib/stack-synthesizers/nested.js +1 -1
- package/core/lib/stack-synthesizers/stack-synthesizer.js +1 -1
- package/core/lib/stack.js +1 -1
- package/core/lib/stage.js +1 -1
- package/core/lib/string-fragments.js +1 -1
- package/core/lib/tag-aspect.js +1 -1
- package/core/lib/tag-manager.js +1 -1
- package/core/lib/token.js +1 -1
- package/core/lib/tree.js +1 -1
- package/custom-resources/lib/aws-custom-resource/aws-custom-resource.js +1 -1
- package/custom-resources/lib/provider-framework/provider.js +1 -1
- package/cx-api/lib/artifacts/asset-manifest-artifact.js +1 -1
- package/cx-api/lib/artifacts/cloudformation-artifact.js +1 -1
- package/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js +1 -1
- package/cx-api/lib/artifacts/tree-cloud-artifact.js +1 -1
- package/cx-api/lib/cloud-artifact.js +1 -1
- package/cx-api/lib/cloud-assembly.js +1 -1
- package/cx-api/lib/environment.js +1 -1
- package/cx-api/lib/placeholders.js +1 -1
- package/lambda-layer-awscli/lib/awscli-layer.js +1 -1
- package/lambda-layer-kubectl/lib/kubectl-layer.js +1 -1
- package/lambda-layer-node-proxy-agent/lib/node-proxy-agent-layer.js +1 -1
- package/package.json +253 -253
- package/pipelines/lib/blueprint/file-set.js +1 -1
- package/pipelines/lib/blueprint/manual-approval.js +1 -1
- package/pipelines/lib/blueprint/shell-step.js +1 -1
- package/pipelines/lib/blueprint/stack-deployment.js +1 -1
- package/pipelines/lib/blueprint/stage-deployment.js +1 -1
- package/pipelines/lib/blueprint/step.js +1 -1
- package/pipelines/lib/blueprint/wave.js +1 -1
- package/pipelines/lib/codepipeline/artifact-map.js +1 -1
- package/pipelines/lib/codepipeline/codebuild-step.js +1 -1
- package/pipelines/lib/codepipeline/codepipeline-source.js +1 -1
- package/pipelines/lib/codepipeline/codepipeline.js +1 -1
- package/pipelines/lib/codepipeline/confirm-permissions-broadening.js +1 -1
- package/pipelines/lib/docker-credentials.js +1 -1
- package/pipelines/lib/legacy/actions/deploy-cdk-stack-action.js +1 -1
- package/pipelines/lib/legacy/actions/publish-assets-action.js +1 -1
- package/pipelines/lib/legacy/actions/update-pipeline-action.js +1 -1
- package/pipelines/lib/legacy/pipeline.js +1 -1
- package/pipelines/lib/legacy/stage.js +1 -1
- package/pipelines/lib/legacy/synths/simple-synth-action.js +1 -1
- package/pipelines/lib/legacy/validation/shell-script-action.js +1 -1
- package/pipelines/lib/main/pipeline-base.js +1 -1
- package/region-info/lib/built-ins.generated.d.ts +1 -1
- package/region-info/lib/default.js +1 -1
- package/region-info/lib/fact.js +1 -1
- package/region-info/lib/region-info.js +1 -1
- package/triggers/lib/trigger-function.js +1 -1
- package/triggers/lib/trigger.js +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y,_z,_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnVolumeAttachment=exports.CfnVolume=exports.CfnVPNGatewayRoutePropagation=exports.CfnVPNGateway=exports.CfnVPNConnectionRoute=exports.CfnVPNConnection=exports.CfnVPCPeeringConnection=exports.CfnVPCGatewayAttachment=exports.CfnVPCEndpointServicePermissions=exports.CfnVPCEndpointService=exports.CfnVPCEndpointConnectionNotification=exports.CfnVPCEndpoint=exports.CfnVPCDHCPOptionsAssociation=exports.CfnVPCCidrBlock=exports.CfnVPC=exports.CfnTransitGatewayVpcAttachment=exports.CfnTransitGatewayRouteTablePropagation=exports.CfnTransitGatewayRouteTableAssociation=exports.CfnTransitGatewayRouteTable=exports.CfnTransitGatewayRoute=exports.CfnTransitGatewayPeeringAttachment=exports.CfnTransitGatewayMulticastGroupSource=exports.CfnTransitGatewayMulticastGroupMember=exports.CfnTransitGatewayMulticastDomainAssociation=exports.CfnTransitGatewayMulticastDomain=exports.CfnTransitGatewayConnect=exports.CfnTransitGatewayAttachment=exports.CfnTransitGateway=exports.CfnTrafficMirrorTarget=exports.CfnTrafficMirrorSession=exports.CfnTrafficMirrorFilterRule=exports.CfnTrafficMirrorFilter=exports.CfnSubnetRouteTableAssociation=exports.CfnSubnetNetworkAclAssociation=exports.CfnSubnetCidrBlock=exports.CfnSubnet=exports.CfnSpotFleet=exports.CfnSecurityGroupIngress=exports.CfnSecurityGroupEgress=exports.CfnSecurityGroup=exports.CfnRouteTable=exports.CfnRoute=exports.CfnPrefixList=exports.CfnPlacementGroup=exports.CfnNetworkInterfacePermission=exports.CfnNetworkInterfaceAttachment=exports.CfnNetworkInterface=exports.CfnNetworkInsightsPath=exports.CfnNetworkInsightsAnalysis=exports.CfnNetworkInsightsAccessScopeAnalysis=exports.CfnNetworkInsightsAccessScope=exports.CfnNetworkAclEntry=exports.CfnNetworkAcl=exports.CfnNatGateway=exports.CfnLocalGatewayRouteTableVPCAssociation=exports.CfnLocalGatewayRoute=exports.CfnLaunchTemplate=exports.CfnKeyPair=exports.CfnInternetGateway=exports.CfnInstance=exports.CfnIPAMScope=exports.CfnIPAMPool=exports.CfnIPAMAllocation=exports.CfnIPAM=exports.CfnHost=exports.CfnGatewayRouteTableAssociation=exports.CfnFlowLog=exports.CfnEnclaveCertificateIamRoleAssociation=exports.CfnEgressOnlyInternetGateway=exports.CfnEIPAssociation=exports.CfnEIP=exports.CfnEC2Fleet=exports.CfnDHCPOptions=exports.CfnCustomerGateway=exports.CfnClientVpnTargetNetworkAssociation=exports.CfnClientVpnRoute=exports.CfnClientVpnEndpoint=exports.CfnClientVpnAuthorizationRule=exports.CfnCarrierGateway=exports.CfnCapacityReservationFleet=exports.CfnCapacityReservation=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 CfnCapacityReservationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.requiredValidator)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("endDate",cdk.validateString)(properties.endDate)),errors.collect(cdk.propertyValidator("endDateType",cdk.validateString)(properties.endDateType)),errors.collect(cdk.propertyValidator("ephemeralStorage",cdk.validateBoolean)(properties.ephemeralStorage)),errors.collect(cdk.propertyValidator("instanceCount",cdk.requiredValidator)(properties.instanceCount)),errors.collect(cdk.propertyValidator("instanceCount",cdk.validateNumber)(properties.instanceCount)),errors.collect(cdk.propertyValidator("instanceMatchCriteria",cdk.validateString)(properties.instanceMatchCriteria)),errors.collect(cdk.propertyValidator("instancePlatform",cdk.requiredValidator)(properties.instancePlatform)),errors.collect(cdk.propertyValidator("instancePlatform",cdk.validateString)(properties.instancePlatform)),errors.collect(cdk.propertyValidator("instanceType",cdk.requiredValidator)(properties.instanceType)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("outPostArn",cdk.validateString)(properties.outPostArn)),errors.collect(cdk.propertyValidator("placementGroupArn",cdk.validateString)(properties.placementGroupArn)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnCapacityReservation_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "CfnCapacityReservationProps"')}function cfnCapacityReservationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),InstanceCount:cdk.numberToCloudFormation(properties.instanceCount),InstancePlatform:cdk.stringToCloudFormation(properties.instancePlatform),InstanceType:cdk.stringToCloudFormation(properties.instanceType),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),EndDate:cdk.stringToCloudFormation(properties.endDate),EndDateType:cdk.stringToCloudFormation(properties.endDateType),EphemeralStorage:cdk.booleanToCloudFormation(properties.ephemeralStorage),InstanceMatchCriteria:cdk.stringToCloudFormation(properties.instanceMatchCriteria),OutPostArn:cdk.stringToCloudFormation(properties.outPostArn),PlacementGroupArn:cdk.stringToCloudFormation(properties.placementGroupArn),TagSpecifications:cdk.listMapper(cfnCapacityReservationTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnCapacityReservationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone)),ret.addPropertyResult("instanceCount","InstanceCount",cfn_parse.FromCloudFormation.getNumber(properties.InstanceCount)),ret.addPropertyResult("instancePlatform","InstancePlatform",cfn_parse.FromCloudFormation.getString(properties.InstancePlatform)),ret.addPropertyResult("instanceType","InstanceType",cfn_parse.FromCloudFormation.getString(properties.InstanceType)),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("endDate","EndDate",properties.EndDate!=null?cfn_parse.FromCloudFormation.getString(properties.EndDate):void 0),ret.addPropertyResult("endDateType","EndDateType",properties.EndDateType!=null?cfn_parse.FromCloudFormation.getString(properties.EndDateType):void 0),ret.addPropertyResult("ephemeralStorage","EphemeralStorage",properties.EphemeralStorage!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EphemeralStorage):void 0),ret.addPropertyResult("instanceMatchCriteria","InstanceMatchCriteria",properties.InstanceMatchCriteria!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceMatchCriteria):void 0),ret.addPropertyResult("outPostArn","OutPostArn",properties.OutPostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutPostArn):void 0),ret.addPropertyResult("placementGroupArn","PlacementGroupArn",properties.PlacementGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.PlacementGroupArn):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnCapacityReservationTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCapacityReservation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCapacityReservationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityReservation),error}cdk.requireProperty(props,"availabilityZone",this),cdk.requireProperty(props,"instanceCount",this),cdk.requireProperty(props,"instancePlatform",this),cdk.requireProperty(props,"instanceType",this),this.attrAvailabilityZone=cdk.Token.asString(this.getAtt("AvailabilityZone")),this.attrAvailableInstanceCount=cdk.Token.asNumber(this.getAtt("AvailableInstanceCount")),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.attrInstanceType=cdk.Token.asString(this.getAtt("InstanceType")),this.attrTenancy=cdk.Token.asString(this.getAtt("Tenancy")),this.attrTotalInstanceCount=cdk.Token.asNumber(this.getAtt("TotalInstanceCount")),this.availabilityZone=props.availabilityZone,this.instanceCount=props.instanceCount,this.instancePlatform=props.instancePlatform,this.instanceType=props.instanceType,this.ebsOptimized=props.ebsOptimized,this.endDate=props.endDate,this.endDateType=props.endDateType,this.ephemeralStorage=props.ephemeralStorage,this.instanceMatchCriteria=props.instanceMatchCriteria,this.outPostArn=props.outPostArn,this.placementGroupArn=props.placementGroupArn,this.tagSpecifications=props.tagSpecifications,this.tenancy=props.tenancy}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityReservationPropsFromCloudFormation(resourceProperties),ret=new CfnCapacityReservation(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",CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{availabilityZone:this.availabilityZone,instanceCount:this.instanceCount,instancePlatform:this.instancePlatform,instanceType:this.instanceType,ebsOptimized:this.ebsOptimized,endDate:this.endDate,endDateType:this.endDateType,ephemeralStorage:this.ephemeralStorage,instanceMatchCriteria:this.instanceMatchCriteria,outPostArn:this.outPostArn,placementGroupArn:this.placementGroupArn,tagSpecifications:this.tagSpecifications,tenancy:this.tenancy}}renderProperties(props){return cfnCapacityReservationPropsToCloudFormation(props)}}exports.CfnCapacityReservation=CfnCapacityReservation,_a=JSII_RTTI_SYMBOL_1,CfnCapacityReservation[_a]={fqn:"aws-cdk-lib.aws_ec2.CfnCapacityReservation",version:"2.51.0"},CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CapacityReservation";function CfnCapacityReservation_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnCapacityReservationTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservation_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityReservationTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnCapacityReservationFleetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("endDate",cdk.validateString)(properties.endDate)),errors.collect(cdk.propertyValidator("instanceMatchCriteria",cdk.validateString)(properties.instanceMatchCriteria)),errors.collect(cdk.propertyValidator("instanceTypeSpecifications",cdk.listValidator(CfnCapacityReservationFleet_InstanceTypeSpecificationPropertyValidator))(properties.instanceTypeSpecifications)),errors.collect(cdk.propertyValidator("noRemoveEndDate",cdk.validateBoolean)(properties.noRemoveEndDate)),errors.collect(cdk.propertyValidator("removeEndDate",cdk.validateBoolean)(properties.removeEndDate)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnCapacityReservationFleet_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.collect(cdk.propertyValidator("totalTargetCapacity",cdk.validateNumber)(properties.totalTargetCapacity)),errors.wrap('supplied properties not correct for "CfnCapacityReservationFleetProps"')}function cfnCapacityReservationFleetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationFleetPropsValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),EndDate:cdk.stringToCloudFormation(properties.endDate),InstanceMatchCriteria:cdk.stringToCloudFormation(properties.instanceMatchCriteria),InstanceTypeSpecifications:cdk.listMapper(cfnCapacityReservationFleetInstanceTypeSpecificationPropertyToCloudFormation)(properties.instanceTypeSpecifications),NoRemoveEndDate:cdk.booleanToCloudFormation(properties.noRemoveEndDate),RemoveEndDate:cdk.booleanToCloudFormation(properties.removeEndDate),TagSpecifications:cdk.listMapper(cfnCapacityReservationFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),Tenancy:cdk.stringToCloudFormation(properties.tenancy),TotalTargetCapacity:cdk.numberToCloudFormation(properties.totalTargetCapacity)}):properties}function CfnCapacityReservationFleetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("endDate","EndDate",properties.EndDate!=null?cfn_parse.FromCloudFormation.getString(properties.EndDate):void 0),ret.addPropertyResult("instanceMatchCriteria","InstanceMatchCriteria",properties.InstanceMatchCriteria!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceMatchCriteria):void 0),ret.addPropertyResult("instanceTypeSpecifications","InstanceTypeSpecifications",properties.InstanceTypeSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnCapacityReservationFleetInstanceTypeSpecificationPropertyFromCloudFormation)(properties.InstanceTypeSpecifications):void 0),ret.addPropertyResult("noRemoveEndDate","NoRemoveEndDate",properties.NoRemoveEndDate!=null?cfn_parse.FromCloudFormation.getBoolean(properties.NoRemoveEndDate):void 0),ret.addPropertyResult("removeEndDate","RemoveEndDate",properties.RemoveEndDate!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RemoveEndDate):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnCapacityReservationFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addPropertyResult("totalTargetCapacity","TotalTargetCapacity",properties.TotalTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.TotalTargetCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCapacityReservationFleet extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCapacityReservationFleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityReservationFleet),error}this.attrCapacityReservationFleetId=cdk.Token.asString(this.getAtt("CapacityReservationFleetId")),this.allocationStrategy=props.allocationStrategy,this.endDate=props.endDate,this.instanceMatchCriteria=props.instanceMatchCriteria,this.instanceTypeSpecifications=props.instanceTypeSpecifications,this.noRemoveEndDate=props.noRemoveEndDate,this.removeEndDate=props.removeEndDate,this.tagSpecifications=props.tagSpecifications,this.tenancy=props.tenancy,this.totalTargetCapacity=props.totalTargetCapacity}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityReservationFleetPropsFromCloudFormation(resourceProperties),ret=new CfnCapacityReservationFleet(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",CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{allocationStrategy:this.allocationStrategy,endDate:this.endDate,instanceMatchCriteria:this.instanceMatchCriteria,instanceTypeSpecifications:this.instanceTypeSpecifications,noRemoveEndDate:this.noRemoveEndDate,removeEndDate:this.removeEndDate,tagSpecifications:this.tagSpecifications,tenancy:this.tenancy,totalTargetCapacity:this.totalTargetCapacity}}renderProperties(props){return cfnCapacityReservationFleetPropsToCloudFormation(props)}}exports.CfnCapacityReservationFleet=CfnCapacityReservationFleet,_b=JSII_RTTI_SYMBOL_1,CfnCapacityReservationFleet[_b]={fqn:"aws-cdk-lib.aws_ec2.CfnCapacityReservationFleet",version:"2.51.0"},CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CapacityReservationFleet";function CfnCapacityReservationFleet_InstanceTypeSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZoneId",cdk.validateString)(properties.availabilityZoneId)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("instancePlatform",cdk.validateString)(properties.instancePlatform)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("weight",cdk.validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "InstanceTypeSpecificationProperty"')}function cfnCapacityReservationFleetInstanceTypeSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationFleet_InstanceTypeSpecificationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk.stringToCloudFormation(properties.availabilityZoneId),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),InstancePlatform:cdk.stringToCloudFormation(properties.instancePlatform),InstanceType:cdk.stringToCloudFormation(properties.instanceType),Priority:cdk.numberToCloudFormation(properties.priority),Weight:cdk.numberToCloudFormation(properties.weight)}):properties}function CfnCapacityReservationFleetInstanceTypeSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("instancePlatform","InstancePlatform",properties.InstancePlatform!=null?cfn_parse.FromCloudFormation.getString(properties.InstancePlatform):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse.FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityReservationFleet_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnCapacityReservationFleetTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationFleet_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityReservationFleetTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnCarrierGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnCarrierGatewayProps"')}function cfnCarrierGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCarrierGatewayPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCarrierGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCarrierGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCarrierGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCarrierGateway),error}cdk.requireProperty(props,"vpcId",this),this.attrCarrierGatewayId=cdk.Token.asString(this.getAtt("CarrierGatewayId")),this.attrOwnerId=cdk.Token.asString(this.getAtt("OwnerId")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::CarrierGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCarrierGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnCarrierGateway(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",CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnCarrierGatewayPropsToCloudFormation(props)}}exports.CfnCarrierGateway=CfnCarrierGateway,_c=JSII_RTTI_SYMBOL_1,CfnCarrierGateway[_c]={fqn:"aws-cdk-lib.aws_ec2.CfnCarrierGateway",version:"2.51.0"},CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CarrierGateway";function CfnClientVpnAuthorizationRulePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("accessGroupId",cdk.validateString)(properties.accessGroupId)),errors.collect(cdk.propertyValidator("authorizeAllGroups",cdk.validateBoolean)(properties.authorizeAllGroups)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.validateString)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("targetNetworkCidr",cdk.requiredValidator)(properties.targetNetworkCidr)),errors.collect(cdk.propertyValidator("targetNetworkCidr",cdk.validateString)(properties.targetNetworkCidr)),errors.wrap('supplied properties not correct for "CfnClientVpnAuthorizationRuleProps"')}function cfnClientVpnAuthorizationRulePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnAuthorizationRulePropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk.stringToCloudFormation(properties.clientVpnEndpointId),TargetNetworkCidr:cdk.stringToCloudFormation(properties.targetNetworkCidr),AccessGroupId:cdk.stringToCloudFormation(properties.accessGroupId),AuthorizeAllGroups:cdk.booleanToCloudFormation(properties.authorizeAllGroups),Description:cdk.stringToCloudFormation(properties.description)}):properties}function CfnClientVpnAuthorizationRulePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientVpnEndpointId","ClientVpnEndpointId",cfn_parse.FromCloudFormation.getString(properties.ClientVpnEndpointId)),ret.addPropertyResult("targetNetworkCidr","TargetNetworkCidr",cfn_parse.FromCloudFormation.getString(properties.TargetNetworkCidr)),ret.addPropertyResult("accessGroupId","AccessGroupId",properties.AccessGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.AccessGroupId):void 0),ret.addPropertyResult("authorizeAllGroups","AuthorizeAllGroups",properties.AuthorizeAllGroups!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AuthorizeAllGroups):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnAuthorizationRule extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnAuthorizationRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnAuthorizationRule),error}cdk.requireProperty(props,"clientVpnEndpointId",this),cdk.requireProperty(props,"targetNetworkCidr",this),this.clientVpnEndpointId=props.clientVpnEndpointId,this.targetNetworkCidr=props.targetNetworkCidr,this.accessGroupId=props.accessGroupId,this.authorizeAllGroups=props.authorizeAllGroups,this.description=props.description}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnAuthorizationRulePropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnAuthorizationRule(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",CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{clientVpnEndpointId:this.clientVpnEndpointId,targetNetworkCidr:this.targetNetworkCidr,accessGroupId:this.accessGroupId,authorizeAllGroups:this.authorizeAllGroups,description:this.description}}renderProperties(props){return cfnClientVpnAuthorizationRulePropsToCloudFormation(props)}}exports.CfnClientVpnAuthorizationRule=CfnClientVpnAuthorizationRule,_d=JSII_RTTI_SYMBOL_1,CfnClientVpnAuthorizationRule[_d]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnAuthorizationRule",version:"2.51.0"},CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnAuthorizationRule";function CfnClientVpnEndpointPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("authenticationOptions",cdk.requiredValidator)(properties.authenticationOptions)),errors.collect(cdk.propertyValidator("authenticationOptions",cdk.listValidator(CfnClientVpnEndpoint_ClientAuthenticationRequestPropertyValidator))(properties.authenticationOptions)),errors.collect(cdk.propertyValidator("clientCidrBlock",cdk.requiredValidator)(properties.clientCidrBlock)),errors.collect(cdk.propertyValidator("clientCidrBlock",cdk.validateString)(properties.clientCidrBlock)),errors.collect(cdk.propertyValidator("clientConnectOptions",CfnClientVpnEndpoint_ClientConnectOptionsPropertyValidator)(properties.clientConnectOptions)),errors.collect(cdk.propertyValidator("clientLoginBannerOptions",CfnClientVpnEndpoint_ClientLoginBannerOptionsPropertyValidator)(properties.clientLoginBannerOptions)),errors.collect(cdk.propertyValidator("connectionLogOptions",cdk.requiredValidator)(properties.connectionLogOptions)),errors.collect(cdk.propertyValidator("connectionLogOptions",CfnClientVpnEndpoint_ConnectionLogOptionsPropertyValidator)(properties.connectionLogOptions)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("dnsServers",cdk.listValidator(cdk.validateString))(properties.dnsServers)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("selfServicePortal",cdk.validateString)(properties.selfServicePortal)),errors.collect(cdk.propertyValidator("serverCertificateArn",cdk.requiredValidator)(properties.serverCertificateArn)),errors.collect(cdk.propertyValidator("serverCertificateArn",cdk.validateString)(properties.serverCertificateArn)),errors.collect(cdk.propertyValidator("sessionTimeoutHours",cdk.validateNumber)(properties.sessionTimeoutHours)),errors.collect(cdk.propertyValidator("splitTunnel",cdk.validateBoolean)(properties.splitTunnel)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnClientVpnEndpoint_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("transportProtocol",cdk.validateString)(properties.transportProtocol)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpnPort",cdk.validateNumber)(properties.vpnPort)),errors.wrap('supplied properties not correct for "CfnClientVpnEndpointProps"')}function cfnClientVpnEndpointPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpointPropsValidator(properties).assertSuccess(),{AuthenticationOptions:cdk.listMapper(cfnClientVpnEndpointClientAuthenticationRequestPropertyToCloudFormation)(properties.authenticationOptions),ClientCidrBlock:cdk.stringToCloudFormation(properties.clientCidrBlock),ConnectionLogOptions:cfnClientVpnEndpointConnectionLogOptionsPropertyToCloudFormation(properties.connectionLogOptions),ServerCertificateArn:cdk.stringToCloudFormation(properties.serverCertificateArn),ClientConnectOptions:cfnClientVpnEndpointClientConnectOptionsPropertyToCloudFormation(properties.clientConnectOptions),ClientLoginBannerOptions:cfnClientVpnEndpointClientLoginBannerOptionsPropertyToCloudFormation(properties.clientLoginBannerOptions),Description:cdk.stringToCloudFormation(properties.description),DnsServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.dnsServers),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SelfServicePortal:cdk.stringToCloudFormation(properties.selfServicePortal),SessionTimeoutHours:cdk.numberToCloudFormation(properties.sessionTimeoutHours),SplitTunnel:cdk.booleanToCloudFormation(properties.splitTunnel),TagSpecifications:cdk.listMapper(cfnClientVpnEndpointTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TransportProtocol:cdk.stringToCloudFormation(properties.transportProtocol),VpcId:cdk.stringToCloudFormation(properties.vpcId),VpnPort:cdk.numberToCloudFormation(properties.vpnPort)}):properties}function CfnClientVpnEndpointPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("authenticationOptions","AuthenticationOptions",cfn_parse.FromCloudFormation.getArray(CfnClientVpnEndpointClientAuthenticationRequestPropertyFromCloudFormation)(properties.AuthenticationOptions)),ret.addPropertyResult("clientCidrBlock","ClientCidrBlock",cfn_parse.FromCloudFormation.getString(properties.ClientCidrBlock)),ret.addPropertyResult("connectionLogOptions","ConnectionLogOptions",CfnClientVpnEndpointConnectionLogOptionsPropertyFromCloudFormation(properties.ConnectionLogOptions)),ret.addPropertyResult("serverCertificateArn","ServerCertificateArn",cfn_parse.FromCloudFormation.getString(properties.ServerCertificateArn)),ret.addPropertyResult("clientConnectOptions","ClientConnectOptions",properties.ClientConnectOptions!=null?CfnClientVpnEndpointClientConnectOptionsPropertyFromCloudFormation(properties.ClientConnectOptions):void 0),ret.addPropertyResult("clientLoginBannerOptions","ClientLoginBannerOptions",properties.ClientLoginBannerOptions!=null?CfnClientVpnEndpointClientLoginBannerOptionsPropertyFromCloudFormation(properties.ClientLoginBannerOptions):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("dnsServers","DnsServers",properties.DnsServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DnsServers):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("selfServicePortal","SelfServicePortal",properties.SelfServicePortal!=null?cfn_parse.FromCloudFormation.getString(properties.SelfServicePortal):void 0),ret.addPropertyResult("sessionTimeoutHours","SessionTimeoutHours",properties.SessionTimeoutHours!=null?cfn_parse.FromCloudFormation.getNumber(properties.SessionTimeoutHours):void 0),ret.addPropertyResult("splitTunnel","SplitTunnel",properties.SplitTunnel!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SplitTunnel):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnClientVpnEndpointTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("transportProtocol","TransportProtocol",properties.TransportProtocol!=null?cfn_parse.FromCloudFormation.getString(properties.TransportProtocol):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcId):void 0),ret.addPropertyResult("vpnPort","VpnPort",properties.VpnPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.VpnPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnEndpoint extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnEndpoint),error}cdk.requireProperty(props,"authenticationOptions",this),cdk.requireProperty(props,"clientCidrBlock",this),cdk.requireProperty(props,"connectionLogOptions",this),cdk.requireProperty(props,"serverCertificateArn",this),this.authenticationOptions=props.authenticationOptions,this.clientCidrBlock=props.clientCidrBlock,this.connectionLogOptions=props.connectionLogOptions,this.serverCertificateArn=props.serverCertificateArn,this.clientConnectOptions=props.clientConnectOptions,this.clientLoginBannerOptions=props.clientLoginBannerOptions,this.description=props.description,this.dnsServers=props.dnsServers,this.securityGroupIds=props.securityGroupIds,this.selfServicePortal=props.selfServicePortal,this.sessionTimeoutHours=props.sessionTimeoutHours,this.splitTunnel=props.splitTunnel,this.tagSpecifications=props.tagSpecifications,this.transportProtocol=props.transportProtocol,this.vpcId=props.vpcId,this.vpnPort=props.vpnPort}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnEndpointPropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnEndpoint(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",CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{authenticationOptions:this.authenticationOptions,clientCidrBlock:this.clientCidrBlock,connectionLogOptions:this.connectionLogOptions,serverCertificateArn:this.serverCertificateArn,clientConnectOptions:this.clientConnectOptions,clientLoginBannerOptions:this.clientLoginBannerOptions,description:this.description,dnsServers:this.dnsServers,securityGroupIds:this.securityGroupIds,selfServicePortal:this.selfServicePortal,sessionTimeoutHours:this.sessionTimeoutHours,splitTunnel:this.splitTunnel,tagSpecifications:this.tagSpecifications,transportProtocol:this.transportProtocol,vpcId:this.vpcId,vpnPort:this.vpnPort}}renderProperties(props){return cfnClientVpnEndpointPropsToCloudFormation(props)}}exports.CfnClientVpnEndpoint=CfnClientVpnEndpoint,_e=JSII_RTTI_SYMBOL_1,CfnClientVpnEndpoint[_e]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnEndpoint",version:"2.51.0"},CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnEndpoint";function CfnClientVpnEndpoint_CertificateAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientRootCertificateChainArn",cdk.requiredValidator)(properties.clientRootCertificateChainArn)),errors.collect(cdk.propertyValidator("clientRootCertificateChainArn",cdk.validateString)(properties.clientRootCertificateChainArn)),errors.wrap('supplied properties not correct for "CertificateAuthenticationRequestProperty"')}function cfnClientVpnEndpointCertificateAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_CertificateAuthenticationRequestPropertyValidator(properties).assertSuccess(),{ClientRootCertificateChainArn:cdk.stringToCloudFormation(properties.clientRootCertificateChainArn)}):properties}function CfnClientVpnEndpointCertificateAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientRootCertificateChainArn","ClientRootCertificateChainArn",cfn_parse.FromCloudFormation.getString(properties.ClientRootCertificateChainArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ClientAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("activeDirectory",CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestPropertyValidator)(properties.activeDirectory)),errors.collect(cdk.propertyValidator("federatedAuthentication",CfnClientVpnEndpoint_FederatedAuthenticationRequestPropertyValidator)(properties.federatedAuthentication)),errors.collect(cdk.propertyValidator("mutualAuthentication",CfnClientVpnEndpoint_CertificateAuthenticationRequestPropertyValidator)(properties.mutualAuthentication)),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 "ClientAuthenticationRequestProperty"')}function cfnClientVpnEndpointClientAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ClientAuthenticationRequestPropertyValidator(properties).assertSuccess(),{ActiveDirectory:cfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyToCloudFormation(properties.activeDirectory),FederatedAuthentication:cfnClientVpnEndpointFederatedAuthenticationRequestPropertyToCloudFormation(properties.federatedAuthentication),MutualAuthentication:cfnClientVpnEndpointCertificateAuthenticationRequestPropertyToCloudFormation(properties.mutualAuthentication),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnClientVpnEndpointClientAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("activeDirectory","ActiveDirectory",properties.ActiveDirectory!=null?CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyFromCloudFormation(properties.ActiveDirectory):void 0),ret.addPropertyResult("federatedAuthentication","FederatedAuthentication",properties.FederatedAuthentication!=null?CfnClientVpnEndpointFederatedAuthenticationRequestPropertyFromCloudFormation(properties.FederatedAuthentication):void 0),ret.addPropertyResult("mutualAuthentication","MutualAuthentication",properties.MutualAuthentication!=null?CfnClientVpnEndpointCertificateAuthenticationRequestPropertyFromCloudFormation(properties.MutualAuthentication):void 0),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ClientConnectOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.collect(cdk.propertyValidator("lambdaFunctionArn",cdk.validateString)(properties.lambdaFunctionArn)),errors.wrap('supplied properties not correct for "ClientConnectOptionsProperty"')}function cfnClientVpnEndpointClientConnectOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ClientConnectOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled),LambdaFunctionArn:cdk.stringToCloudFormation(properties.lambdaFunctionArn)}):properties}function CfnClientVpnEndpointClientConnectOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addPropertyResult("lambdaFunctionArn","LambdaFunctionArn",properties.LambdaFunctionArn!=null?cfn_parse.FromCloudFormation.getString(properties.LambdaFunctionArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ClientLoginBannerOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("bannerText",cdk.validateString)(properties.bannerText)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ClientLoginBannerOptionsProperty"')}function cfnClientVpnEndpointClientLoginBannerOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ClientLoginBannerOptionsPropertyValidator(properties).assertSuccess(),{BannerText:cdk.stringToCloudFormation(properties.bannerText),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnClientVpnEndpointClientLoginBannerOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("bannerText","BannerText",properties.BannerText!=null?cfn_parse.FromCloudFormation.getString(properties.BannerText):void 0),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ConnectionLogOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cloudwatchLogGroup",cdk.validateString)(properties.cloudwatchLogGroup)),errors.collect(cdk.propertyValidator("cloudwatchLogStream",cdk.validateString)(properties.cloudwatchLogStream)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ConnectionLogOptionsProperty"')}function cfnClientVpnEndpointConnectionLogOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ConnectionLogOptionsPropertyValidator(properties).assertSuccess(),{CloudwatchLogGroup:cdk.stringToCloudFormation(properties.cloudwatchLogGroup),CloudwatchLogStream:cdk.stringToCloudFormation(properties.cloudwatchLogStream),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnClientVpnEndpointConnectionLogOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cloudwatchLogGroup","CloudwatchLogGroup",properties.CloudwatchLogGroup!=null?cfn_parse.FromCloudFormation.getString(properties.CloudwatchLogGroup):void 0),ret.addPropertyResult("cloudwatchLogStream","CloudwatchLogStream",properties.CloudwatchLogStream!=null?cfn_parse.FromCloudFormation.getString(properties.CloudwatchLogStream):void 0),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("directoryId",cdk.requiredValidator)(properties.directoryId)),errors.collect(cdk.propertyValidator("directoryId",cdk.validateString)(properties.directoryId)),errors.wrap('supplied properties not correct for "DirectoryServiceAuthenticationRequestProperty"')}function cfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestPropertyValidator(properties).assertSuccess(),{DirectoryId:cdk.stringToCloudFormation(properties.directoryId)}):properties}function CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("directoryId","DirectoryId",cfn_parse.FromCloudFormation.getString(properties.DirectoryId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_FederatedAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("samlProviderArn",cdk.requiredValidator)(properties.samlProviderArn)),errors.collect(cdk.propertyValidator("samlProviderArn",cdk.validateString)(properties.samlProviderArn)),errors.collect(cdk.propertyValidator("selfServiceSamlProviderArn",cdk.validateString)(properties.selfServiceSamlProviderArn)),errors.wrap('supplied properties not correct for "FederatedAuthenticationRequestProperty"')}function cfnClientVpnEndpointFederatedAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_FederatedAuthenticationRequestPropertyValidator(properties).assertSuccess(),{SAMLProviderArn:cdk.stringToCloudFormation(properties.samlProviderArn),SelfServiceSAMLProviderArn:cdk.stringToCloudFormation(properties.selfServiceSamlProviderArn)}):properties}function CfnClientVpnEndpointFederatedAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("samlProviderArn","SAMLProviderArn",cfn_parse.FromCloudFormation.getString(properties.SAMLProviderArn)),ret.addPropertyResult("selfServiceSamlProviderArn","SelfServiceSAMLProviderArn",properties.SelfServiceSAMLProviderArn!=null?cfn_parse.FromCloudFormation.getString(properties.SelfServiceSAMLProviderArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.requiredValidator)(properties.resourceType)),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.requiredValidator)(properties.tags)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnClientVpnEndpointTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnClientVpnEndpointTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",cfn_parse.FromCloudFormation.getString(properties.ResourceType)),ret.addPropertyResult("tags","Tags",cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.validateString)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("targetVpcSubnetId",cdk.requiredValidator)(properties.targetVpcSubnetId)),errors.collect(cdk.propertyValidator("targetVpcSubnetId",cdk.validateString)(properties.targetVpcSubnetId)),errors.wrap('supplied properties not correct for "CfnClientVpnRouteProps"')}function cfnClientVpnRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnRoutePropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk.stringToCloudFormation(properties.clientVpnEndpointId),DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),TargetVpcSubnetId:cdk.stringToCloudFormation(properties.targetVpcSubnetId),Description:cdk.stringToCloudFormation(properties.description)}):properties}function CfnClientVpnRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientVpnEndpointId","ClientVpnEndpointId",cfn_parse.FromCloudFormation.getString(properties.ClientVpnEndpointId)),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("targetVpcSubnetId","TargetVpcSubnetId",cfn_parse.FromCloudFormation.getString(properties.TargetVpcSubnetId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnRoute),error}cdk.requireProperty(props,"clientVpnEndpointId",this),cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"targetVpcSubnetId",this),this.clientVpnEndpointId=props.clientVpnEndpointId,this.destinationCidrBlock=props.destinationCidrBlock,this.targetVpcSubnetId=props.targetVpcSubnetId,this.description=props.description}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnRoutePropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnRoute(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",CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{clientVpnEndpointId:this.clientVpnEndpointId,destinationCidrBlock:this.destinationCidrBlock,targetVpcSubnetId:this.targetVpcSubnetId,description:this.description}}renderProperties(props){return cfnClientVpnRoutePropsToCloudFormation(props)}}exports.CfnClientVpnRoute=CfnClientVpnRoute,_f=JSII_RTTI_SYMBOL_1,CfnClientVpnRoute[_f]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnRoute",version:"2.51.0"},CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnRoute";function CfnClientVpnTargetNetworkAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.validateString)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnClientVpnTargetNetworkAssociationProps"')}function cfnClientVpnTargetNetworkAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnTargetNetworkAssociationPropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk.stringToCloudFormation(properties.clientVpnEndpointId),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnClientVpnTargetNetworkAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientVpnEndpointId","ClientVpnEndpointId",cfn_parse.FromCloudFormation.getString(properties.ClientVpnEndpointId)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnTargetNetworkAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnTargetNetworkAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnTargetNetworkAssociation),error}cdk.requireProperty(props,"clientVpnEndpointId",this),cdk.requireProperty(props,"subnetId",this),this.clientVpnEndpointId=props.clientVpnEndpointId,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnTargetNetworkAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnTargetNetworkAssociation(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",CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{clientVpnEndpointId:this.clientVpnEndpointId,subnetId:this.subnetId}}renderProperties(props){return cfnClientVpnTargetNetworkAssociationPropsToCloudFormation(props)}}exports.CfnClientVpnTargetNetworkAssociation=CfnClientVpnTargetNetworkAssociation,_g=JSII_RTTI_SYMBOL_1,CfnClientVpnTargetNetworkAssociation[_g]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnTargetNetworkAssociation",version:"2.51.0"},CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnTargetNetworkAssociation";function CfnCustomerGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("bgpAsn",cdk.requiredValidator)(properties.bgpAsn)),errors.collect(cdk.propertyValidator("bgpAsn",cdk.validateNumber)(properties.bgpAsn)),errors.collect(cdk.propertyValidator("ipAddress",cdk.requiredValidator)(properties.ipAddress)),errors.collect(cdk.propertyValidator("ipAddress",cdk.validateString)(properties.ipAddress)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),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 "CfnCustomerGatewayProps"')}function cfnCustomerGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCustomerGatewayPropsValidator(properties).assertSuccess(),{BgpAsn:cdk.numberToCloudFormation(properties.bgpAsn),IpAddress:cdk.stringToCloudFormation(properties.ipAddress),Type:cdk.stringToCloudFormation(properties.type),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCustomerGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("bgpAsn","BgpAsn",cfn_parse.FromCloudFormation.getNumber(properties.BgpAsn)),ret.addPropertyResult("ipAddress","IpAddress",cfn_parse.FromCloudFormation.getString(properties.IpAddress)),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCustomerGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCustomerGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCustomerGateway),error}cdk.requireProperty(props,"bgpAsn",this),cdk.requireProperty(props,"ipAddress",this),cdk.requireProperty(props,"type",this),this.attrCustomerGatewayId=cdk.Token.asString(this.getAtt("CustomerGatewayId")),this.bgpAsn=props.bgpAsn,this.ipAddress=props.ipAddress,this.type=props.type,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::CustomerGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCustomerGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnCustomerGateway(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",CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{bgpAsn:this.bgpAsn,ipAddress:this.ipAddress,type:this.type,tags:this.tags.renderTags()}}renderProperties(props){return cfnCustomerGatewayPropsToCloudFormation(props)}}exports.CfnCustomerGateway=CfnCustomerGateway,_h=JSII_RTTI_SYMBOL_1,CfnCustomerGateway[_h]={fqn:"aws-cdk-lib.aws_ec2.CfnCustomerGateway",version:"2.51.0"},CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CustomerGateway";function CfnDHCPOptionsPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("domainName",cdk.validateString)(properties.domainName)),errors.collect(cdk.propertyValidator("domainNameServers",cdk.listValidator(cdk.validateString))(properties.domainNameServers)),errors.collect(cdk.propertyValidator("netbiosNameServers",cdk.listValidator(cdk.validateString))(properties.netbiosNameServers)),errors.collect(cdk.propertyValidator("netbiosNodeType",cdk.validateNumber)(properties.netbiosNodeType)),errors.collect(cdk.propertyValidator("ntpServers",cdk.listValidator(cdk.validateString))(properties.ntpServers)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDHCPOptionsProps"')}function cfnDHCPOptionsPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnDHCPOptionsPropsValidator(properties).assertSuccess(),{DomainName:cdk.stringToCloudFormation(properties.domainName),DomainNameServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.domainNameServers),NetbiosNameServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.netbiosNameServers),NetbiosNodeType:cdk.numberToCloudFormation(properties.netbiosNodeType),NtpServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.ntpServers),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDHCPOptionsPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("domainName","DomainName",properties.DomainName!=null?cfn_parse.FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("domainNameServers","DomainNameServers",properties.DomainNameServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DomainNameServers):void 0),ret.addPropertyResult("netbiosNameServers","NetbiosNameServers",properties.NetbiosNameServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NetbiosNameServers):void 0),ret.addPropertyResult("netbiosNodeType","NetbiosNodeType",properties.NetbiosNodeType!=null?cfn_parse.FromCloudFormation.getNumber(properties.NetbiosNodeType):void 0),ret.addPropertyResult("ntpServers","NtpServers",properties.NtpServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NtpServers):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 CfnDHCPOptions extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnDHCPOptionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDHCPOptions),error}this.attrDhcpOptionsId=cdk.Token.asString(this.getAtt("DhcpOptionsId")),this.domainName=props.domainName,this.domainNameServers=props.domainNameServers,this.netbiosNameServers=props.netbiosNameServers,this.netbiosNodeType=props.netbiosNodeType,this.ntpServers=props.ntpServers,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::DHCPOptions",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDHCPOptionsPropsFromCloudFormation(resourceProperties),ret=new CfnDHCPOptions(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",CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{domainName:this.domainName,domainNameServers:this.domainNameServers,netbiosNameServers:this.netbiosNameServers,netbiosNodeType:this.netbiosNodeType,ntpServers:this.ntpServers,tags:this.tags.renderTags()}}renderProperties(props){return cfnDHCPOptionsPropsToCloudFormation(props)}}exports.CfnDHCPOptions=CfnDHCPOptions,_j=JSII_RTTI_SYMBOL_1,CfnDHCPOptions[_j]={fqn:"aws-cdk-lib.aws_ec2.CfnDHCPOptions",version:"2.51.0"},CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME="AWS::EC2::DHCPOptions";function CfnEC2FleetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("context",cdk.validateString)(properties.context)),errors.collect(cdk.propertyValidator("excessCapacityTerminationPolicy",cdk.validateString)(properties.excessCapacityTerminationPolicy)),errors.collect(cdk.propertyValidator("launchTemplateConfigs",cdk.requiredValidator)(properties.launchTemplateConfigs)),errors.collect(cdk.propertyValidator("launchTemplateConfigs",cdk.listValidator(CfnEC2Fleet_FleetLaunchTemplateConfigRequestPropertyValidator))(properties.launchTemplateConfigs)),errors.collect(cdk.propertyValidator("onDemandOptions",CfnEC2Fleet_OnDemandOptionsRequestPropertyValidator)(properties.onDemandOptions)),errors.collect(cdk.propertyValidator("replaceUnhealthyInstances",cdk.validateBoolean)(properties.replaceUnhealthyInstances)),errors.collect(cdk.propertyValidator("spotOptions",CfnEC2Fleet_SpotOptionsRequestPropertyValidator)(properties.spotOptions)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnEC2Fleet_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("targetCapacitySpecification",cdk.requiredValidator)(properties.targetCapacitySpecification)),errors.collect(cdk.propertyValidator("targetCapacitySpecification",CfnEC2Fleet_TargetCapacitySpecificationRequestPropertyValidator)(properties.targetCapacitySpecification)),errors.collect(cdk.propertyValidator("terminateInstancesWithExpiration",cdk.validateBoolean)(properties.terminateInstancesWithExpiration)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.collect(cdk.propertyValidator("validFrom",cdk.validateString)(properties.validFrom)),errors.collect(cdk.propertyValidator("validUntil",cdk.validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "CfnEC2FleetProps"')}function cfnEC2FleetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2FleetPropsValidator(properties).assertSuccess(),{LaunchTemplateConfigs:cdk.listMapper(cfnEC2FleetFleetLaunchTemplateConfigRequestPropertyToCloudFormation)(properties.launchTemplateConfigs),TargetCapacitySpecification:cfnEC2FleetTargetCapacitySpecificationRequestPropertyToCloudFormation(properties.targetCapacitySpecification),Context:cdk.stringToCloudFormation(properties.context),ExcessCapacityTerminationPolicy:cdk.stringToCloudFormation(properties.excessCapacityTerminationPolicy),OnDemandOptions:cfnEC2FleetOnDemandOptionsRequestPropertyToCloudFormation(properties.onDemandOptions),ReplaceUnhealthyInstances:cdk.booleanToCloudFormation(properties.replaceUnhealthyInstances),SpotOptions:cfnEC2FleetSpotOptionsRequestPropertyToCloudFormation(properties.spotOptions),TagSpecifications:cdk.listMapper(cfnEC2FleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TerminateInstancesWithExpiration:cdk.booleanToCloudFormation(properties.terminateInstancesWithExpiration),Type:cdk.stringToCloudFormation(properties.type),ValidFrom:cdk.stringToCloudFormation(properties.validFrom),ValidUntil:cdk.stringToCloudFormation(properties.validUntil)}):properties}function CfnEC2FleetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateConfigs","LaunchTemplateConfigs",cfn_parse.FromCloudFormation.getArray(CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyFromCloudFormation)(properties.LaunchTemplateConfigs)),ret.addPropertyResult("targetCapacitySpecification","TargetCapacitySpecification",CfnEC2FleetTargetCapacitySpecificationRequestPropertyFromCloudFormation(properties.TargetCapacitySpecification)),ret.addPropertyResult("context","Context",properties.Context!=null?cfn_parse.FromCloudFormation.getString(properties.Context):void 0),ret.addPropertyResult("excessCapacityTerminationPolicy","ExcessCapacityTerminationPolicy",properties.ExcessCapacityTerminationPolicy!=null?cfn_parse.FromCloudFormation.getString(properties.ExcessCapacityTerminationPolicy):void 0),ret.addPropertyResult("onDemandOptions","OnDemandOptions",properties.OnDemandOptions!=null?CfnEC2FleetOnDemandOptionsRequestPropertyFromCloudFormation(properties.OnDemandOptions):void 0),ret.addPropertyResult("replaceUnhealthyInstances","ReplaceUnhealthyInstances",properties.ReplaceUnhealthyInstances!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ReplaceUnhealthyInstances):void 0),ret.addPropertyResult("spotOptions","SpotOptions",properties.SpotOptions!=null?CfnEC2FleetSpotOptionsRequestPropertyFromCloudFormation(properties.SpotOptions):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnEC2FleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("terminateInstancesWithExpiration","TerminateInstancesWithExpiration",properties.TerminateInstancesWithExpiration!=null?cfn_parse.FromCloudFormation.getBoolean(properties.TerminateInstancesWithExpiration):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("validFrom","ValidFrom",properties.ValidFrom!=null?cfn_parse.FromCloudFormation.getString(properties.ValidFrom):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse.FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEC2Fleet extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEC2FleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEC2Fleet),error}cdk.requireProperty(props,"launchTemplateConfigs",this),cdk.requireProperty(props,"targetCapacitySpecification",this),this.attrFleetId=cdk.Token.asString(this.getAtt("FleetId")),this.launchTemplateConfigs=props.launchTemplateConfigs,this.targetCapacitySpecification=props.targetCapacitySpecification,this.context=props.context,this.excessCapacityTerminationPolicy=props.excessCapacityTerminationPolicy,this.onDemandOptions=props.onDemandOptions,this.replaceUnhealthyInstances=props.replaceUnhealthyInstances,this.spotOptions=props.spotOptions,this.tagSpecifications=props.tagSpecifications,this.terminateInstancesWithExpiration=props.terminateInstancesWithExpiration,this.type=props.type,this.validFrom=props.validFrom,this.validUntil=props.validUntil}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEC2FleetPropsFromCloudFormation(resourceProperties),ret=new CfnEC2Fleet(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",CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{launchTemplateConfigs:this.launchTemplateConfigs,targetCapacitySpecification:this.targetCapacitySpecification,context:this.context,excessCapacityTerminationPolicy:this.excessCapacityTerminationPolicy,onDemandOptions:this.onDemandOptions,replaceUnhealthyInstances:this.replaceUnhealthyInstances,spotOptions:this.spotOptions,tagSpecifications:this.tagSpecifications,terminateInstancesWithExpiration:this.terminateInstancesWithExpiration,type:this.type,validFrom:this.validFrom,validUntil:this.validUntil}}renderProperties(props){return cfnEC2FleetPropsToCloudFormation(props)}}exports.CfnEC2Fleet=CfnEC2Fleet,_k=JSII_RTTI_SYMBOL_1,CfnEC2Fleet[_k]={fqn:"aws-cdk-lib.aws_ec2.CfnEC2Fleet",version:"2.51.0"},CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EC2Fleet";function CfnEC2Fleet_AcceleratorCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountRequestProperty"')}function cfnEC2FleetAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_AcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetAcceleratorCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBRequestProperty"')}function cfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsRequestProperty"')}function cfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_CapacityRebalancePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("replacementStrategy",cdk.validateString)(properties.replacementStrategy)),errors.collect(cdk.propertyValidator("terminationDelay",cdk.validateNumber)(properties.terminationDelay)),errors.wrap('supplied properties not correct for "CapacityRebalanceProperty"')}function cfnEC2FleetCapacityRebalancePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_CapacityRebalancePropertyValidator(properties).assertSuccess(),{ReplacementStrategy:cdk.stringToCloudFormation(properties.replacementStrategy),TerminationDelay:cdk.numberToCloudFormation(properties.terminationDelay)}):properties}function CfnEC2FleetCapacityRebalancePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("replacementStrategy","ReplacementStrategy",properties.ReplacementStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.ReplacementStrategy):void 0),ret.addPropertyResult("terminationDelay","TerminationDelay",properties.TerminationDelay!=null?cfn_parse.FromCloudFormation.getNumber(properties.TerminationDelay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_CapacityReservationOptionsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("usageStrategy",cdk.validateString)(properties.usageStrategy)),errors.wrap('supplied properties not correct for "CapacityReservationOptionsRequestProperty"')}function cfnEC2FleetCapacityReservationOptionsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_CapacityReservationOptionsRequestPropertyValidator(properties).assertSuccess(),{UsageStrategy:cdk.stringToCloudFormation(properties.usageStrategy)}):properties}function CfnEC2FleetCapacityReservationOptionsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("usageStrategy","UsageStrategy",properties.UsageStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.UsageStrategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_FleetLaunchTemplateConfigRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateSpecification",CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk.propertyValidator("overrides",cdk.listValidator(CfnEC2Fleet_FleetLaunchTemplateOverridesRequestPropertyValidator))(properties.overrides)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateConfigRequestProperty"')}function cfnEC2FleetFleetLaunchTemplateConfigRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_FleetLaunchTemplateConfigRequestPropertyValidator(properties).assertSuccess(),{LaunchTemplateSpecification:cfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyToCloudFormation(properties.launchTemplateSpecification),Overrides:cdk.listMapper(cfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyToCloudFormation)(properties.overrides)}):properties}function CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("overrides","Overrides",properties.Overrides!=null?cfn_parse.FromCloudFormation.getArray(CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyFromCloudFormation)(properties.Overrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_FleetLaunchTemplateOverridesRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnEC2Fleet_InstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("maxPrice",cdk.validateString)(properties.maxPrice)),errors.collect(cdk.propertyValidator("placement",CfnEC2Fleet_PlacementPropertyValidator)(properties.placement)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("weightedCapacity",cdk.validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateOverridesRequestProperty"')}function cfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_FleetLaunchTemplateOverridesRequestPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),InstanceRequirements:cfnEC2FleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),MaxPrice:cdk.stringToCloudFormation(properties.maxPrice),Placement:cfnEC2FleetPlacementPropertyToCloudFormation(properties.placement),Priority:cdk.numberToCloudFormation(properties.priority),SubnetId:cdk.stringToCloudFormation(properties.subnetId),WeightedCapacity:cdk.numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnEC2FleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("maxPrice","MaxPrice",properties.MaxPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxPrice):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnEC2FleetPlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateId",cdk.validateString)(properties.launchTemplateId)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("version",cdk.requiredValidator)(properties.version)),errors.collect(cdk.propertyValidator("version",cdk.validateString)(properties.version)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateSpecificationRequestProperty"')}function cfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk.stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),Version:cdk.stringToCloudFormation(properties.version)}):properties}function CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",cfn_parse.FromCloudFormation.getString(properties.Version)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_InstanceRequirementsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceleratorCount",CfnEC2Fleet_AcceleratorCountRequestPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk.propertyValidator("acceleratorManufacturers",cdk.listValidator(cdk.validateString))(properties.acceleratorManufacturers)),errors.collect(cdk.propertyValidator("acceleratorNames",cdk.listValidator(cdk.validateString))(properties.acceleratorNames)),errors.collect(cdk.propertyValidator("acceleratorTotalMemoryMiB",CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk.propertyValidator("acceleratorTypes",cdk.listValidator(cdk.validateString))(properties.acceleratorTypes)),errors.collect(cdk.propertyValidator("allowedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.allowedInstanceTypes)),errors.collect(cdk.propertyValidator("bareMetal",cdk.validateString)(properties.bareMetal)),errors.collect(cdk.propertyValidator("baselineEbsBandwidthMbps",CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk.propertyValidator("burstablePerformance",cdk.validateString)(properties.burstablePerformance)),errors.collect(cdk.propertyValidator("cpuManufacturers",cdk.listValidator(cdk.validateString))(properties.cpuManufacturers)),errors.collect(cdk.propertyValidator("excludedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.excludedInstanceTypes)),errors.collect(cdk.propertyValidator("instanceGenerations",cdk.listValidator(cdk.validateString))(properties.instanceGenerations)),errors.collect(cdk.propertyValidator("localStorage",cdk.validateString)(properties.localStorage)),errors.collect(cdk.propertyValidator("localStorageTypes",cdk.listValidator(cdk.validateString))(properties.localStorageTypes)),errors.collect(cdk.propertyValidator("memoryGiBPerVCpu",CfnEC2Fleet_MemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk.propertyValidator("memoryMiB",CfnEC2Fleet_MemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk.propertyValidator("networkBandwidthGbps",CfnEC2Fleet_NetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk.propertyValidator("networkInterfaceCount",CfnEC2Fleet_NetworkInterfaceCountRequestPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk.propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("requireHibernateSupport",cdk.validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk.propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("totalLocalStorageGb",CfnEC2Fleet_TotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk.propertyValidator("vCpuCount",CfnEC2Fleet_VCpuCountRangeRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsRequestProperty"')}function cfnEC2FleetInstanceRequirementsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_InstanceRequirementsRequestPropertyValidator(properties).assertSuccess(),{AcceleratorCount:cfnEC2FleetAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:cfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk.stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:cfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BurstablePerformance:cdk.stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk.listMapper(cdk.stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk.stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.localStorageTypes),MemoryGiBPerVCpu:cfnEC2FleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:cfnEC2FleetMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:cfnEC2FleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:cfnEC2FleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk.booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:cfnEC2FleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:cfnEC2FleetVCpuCountRangeRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnEC2FleetInstanceRequirementsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnEC2FleetAcceleratorCountRequestPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse.FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse.FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse.FromCloudFormation.getStringArray(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse.FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.LocalStorageTypes):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnEC2FleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnEC2FleetMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnEC2FleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnEC2FleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnEC2FleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnEC2FleetVCpuCountRangeRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_MaintenanceStrategiesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityRebalance",CfnEC2Fleet_CapacityRebalancePropertyValidator)(properties.capacityRebalance)),errors.wrap('supplied properties not correct for "MaintenanceStrategiesProperty"')}function cfnEC2FleetMaintenanceStrategiesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_MaintenanceStrategiesPropertyValidator(properties).assertSuccess(),{CapacityRebalance:cfnEC2FleetCapacityRebalancePropertyToCloudFormation(properties.capacityRebalance)}):properties}function CfnEC2FleetMaintenanceStrategiesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityRebalance","CapacityRebalance",properties.CapacityRebalance!=null?CfnEC2FleetCapacityRebalancePropertyFromCloudFormation(properties.CapacityRebalance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_MemoryGiBPerVCpuRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuRequestProperty"')}function cfnEC2FleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_MemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_MemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBRequestProperty"')}function cfnEC2FleetMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_MemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_NetworkBandwidthGbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsRequestProperty"')}function cfnEC2FleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_NetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_NetworkInterfaceCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountRequestProperty"')}function cfnEC2FleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_NetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_OnDemandOptionsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("capacityReservationOptions",CfnEC2Fleet_CapacityReservationOptionsRequestPropertyValidator)(properties.capacityReservationOptions)),errors.collect(cdk.propertyValidator("maxTotalPrice",cdk.validateString)(properties.maxTotalPrice)),errors.collect(cdk.propertyValidator("minTargetCapacity",cdk.validateNumber)(properties.minTargetCapacity)),errors.collect(cdk.propertyValidator("singleAvailabilityZone",cdk.validateBoolean)(properties.singleAvailabilityZone)),errors.collect(cdk.propertyValidator("singleInstanceType",cdk.validateBoolean)(properties.singleInstanceType)),errors.wrap('supplied properties not correct for "OnDemandOptionsRequestProperty"')}function cfnEC2FleetOnDemandOptionsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_OnDemandOptionsRequestPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),CapacityReservationOptions:cfnEC2FleetCapacityReservationOptionsRequestPropertyToCloudFormation(properties.capacityReservationOptions),MaxTotalPrice:cdk.stringToCloudFormation(properties.maxTotalPrice),MinTargetCapacity:cdk.numberToCloudFormation(properties.minTargetCapacity),SingleAvailabilityZone:cdk.booleanToCloudFormation(properties.singleAvailabilityZone),SingleInstanceType:cdk.booleanToCloudFormation(properties.singleInstanceType)}):properties}function CfnEC2FleetOnDemandOptionsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("capacityReservationOptions","CapacityReservationOptions",properties.CapacityReservationOptions!=null?CfnEC2FleetCapacityReservationOptionsRequestPropertyFromCloudFormation(properties.CapacityReservationOptions):void 0),ret.addPropertyResult("maxTotalPrice","MaxTotalPrice",properties.MaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxTotalPrice):void 0),ret.addPropertyResult("minTargetCapacity","MinTargetCapacity",properties.MinTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.MinTargetCapacity):void 0),ret.addPropertyResult("singleAvailabilityZone","SingleAvailabilityZone",properties.SingleAvailabilityZone!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleAvailabilityZone):void 0),ret.addPropertyResult("singleInstanceType","SingleInstanceType",properties.SingleInstanceType!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleInstanceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_PlacementPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("affinity",cdk.validateString)(properties.affinity)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("hostId",cdk.validateString)(properties.hostId)),errors.collect(cdk.propertyValidator("hostResourceGroupArn",cdk.validateString)(properties.hostResourceGroupArn)),errors.collect(cdk.propertyValidator("partitionNumber",cdk.validateNumber)(properties.partitionNumber)),errors.collect(cdk.propertyValidator("spreadDomain",cdk.validateString)(properties.spreadDomain)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "PlacementProperty"')}function cfnEC2FleetPlacementPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_PlacementPropertyValidator(properties).assertSuccess(),{Affinity:cdk.stringToCloudFormation(properties.affinity),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),GroupName:cdk.stringToCloudFormation(properties.groupName),HostId:cdk.stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk.stringToCloudFormation(properties.hostResourceGroupArn),PartitionNumber:cdk.numberToCloudFormation(properties.partitionNumber),SpreadDomain:cdk.stringToCloudFormation(properties.spreadDomain),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnEC2FleetPlacementPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("affinity","Affinity",properties.Affinity!=null?cfn_parse.FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse.FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("partitionNumber","PartitionNumber",properties.PartitionNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.PartitionNumber):void 0),ret.addPropertyResult("spreadDomain","SpreadDomain",properties.SpreadDomain!=null?cfn_parse.FromCloudFormation.getString(properties.SpreadDomain):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_SpotOptionsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("instanceInterruptionBehavior",cdk.validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk.propertyValidator("instancePoolsToUseCount",cdk.validateNumber)(properties.instancePoolsToUseCount)),errors.collect(cdk.propertyValidator("maintenanceStrategies",CfnEC2Fleet_MaintenanceStrategiesPropertyValidator)(properties.maintenanceStrategies)),errors.collect(cdk.propertyValidator("maxTotalPrice",cdk.validateString)(properties.maxTotalPrice)),errors.collect(cdk.propertyValidator("minTargetCapacity",cdk.validateNumber)(properties.minTargetCapacity)),errors.collect(cdk.propertyValidator("singleAvailabilityZone",cdk.validateBoolean)(properties.singleAvailabilityZone)),errors.collect(cdk.propertyValidator("singleInstanceType",cdk.validateBoolean)(properties.singleInstanceType)),errors.wrap('supplied properties not correct for "SpotOptionsRequestProperty"')}function cfnEC2FleetSpotOptionsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_SpotOptionsRequestPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),InstanceInterruptionBehavior:cdk.stringToCloudFormation(properties.instanceInterruptionBehavior),InstancePoolsToUseCount:cdk.numberToCloudFormation(properties.instancePoolsToUseCount),MaintenanceStrategies:cfnEC2FleetMaintenanceStrategiesPropertyToCloudFormation(properties.maintenanceStrategies),MaxTotalPrice:cdk.stringToCloudFormation(properties.maxTotalPrice),MinTargetCapacity:cdk.numberToCloudFormation(properties.minTargetCapacity),SingleAvailabilityZone:cdk.booleanToCloudFormation(properties.singleAvailabilityZone),SingleInstanceType:cdk.booleanToCloudFormation(properties.singleInstanceType)}):properties}function CfnEC2FleetSpotOptionsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("instancePoolsToUseCount","InstancePoolsToUseCount",properties.InstancePoolsToUseCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.InstancePoolsToUseCount):void 0),ret.addPropertyResult("maintenanceStrategies","MaintenanceStrategies",properties.MaintenanceStrategies!=null?CfnEC2FleetMaintenanceStrategiesPropertyFromCloudFormation(properties.MaintenanceStrategies):void 0),ret.addPropertyResult("maxTotalPrice","MaxTotalPrice",properties.MaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxTotalPrice):void 0),ret.addPropertyResult("minTargetCapacity","MinTargetCapacity",properties.MinTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.MinTargetCapacity):void 0),ret.addPropertyResult("singleAvailabilityZone","SingleAvailabilityZone",properties.SingleAvailabilityZone!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleAvailabilityZone):void 0),ret.addPropertyResult("singleInstanceType","SingleInstanceType",properties.SingleInstanceType!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleInstanceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnEC2FleetTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnEC2FleetTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnEC2Fleet_TargetCapacitySpecificationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("defaultTargetCapacityType",cdk.validateString)(properties.defaultTargetCapacityType)),errors.collect(cdk.propertyValidator("onDemandTargetCapacity",cdk.validateNumber)(properties.onDemandTargetCapacity)),errors.collect(cdk.propertyValidator("spotTargetCapacity",cdk.validateNumber)(properties.spotTargetCapacity)),errors.collect(cdk.propertyValidator("targetCapacityUnitType",cdk.validateString)(properties.targetCapacityUnitType)),errors.collect(cdk.propertyValidator("totalTargetCapacity",cdk.requiredValidator)(properties.totalTargetCapacity)),errors.collect(cdk.propertyValidator("totalTargetCapacity",cdk.validateNumber)(properties.totalTargetCapacity)),errors.wrap('supplied properties not correct for "TargetCapacitySpecificationRequestProperty"')}function cfnEC2FleetTargetCapacitySpecificationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_TargetCapacitySpecificationRequestPropertyValidator(properties).assertSuccess(),{DefaultTargetCapacityType:cdk.stringToCloudFormation(properties.defaultTargetCapacityType),OnDemandTargetCapacity:cdk.numberToCloudFormation(properties.onDemandTargetCapacity),SpotTargetCapacity:cdk.numberToCloudFormation(properties.spotTargetCapacity),TargetCapacityUnitType:cdk.stringToCloudFormation(properties.targetCapacityUnitType),TotalTargetCapacity:cdk.numberToCloudFormation(properties.totalTargetCapacity)}):properties}function CfnEC2FleetTargetCapacitySpecificationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultTargetCapacityType","DefaultTargetCapacityType",properties.DefaultTargetCapacityType!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultTargetCapacityType):void 0),ret.addPropertyResult("onDemandTargetCapacity","OnDemandTargetCapacity",properties.OnDemandTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandTargetCapacity):void 0),ret.addPropertyResult("spotTargetCapacity","SpotTargetCapacity",properties.SpotTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotTargetCapacity):void 0),ret.addPropertyResult("targetCapacityUnitType","TargetCapacityUnitType",properties.TargetCapacityUnitType!=null?cfn_parse.FromCloudFormation.getString(properties.TargetCapacityUnitType):void 0),ret.addPropertyResult("totalTargetCapacity","TotalTargetCapacity",cfn_parse.FromCloudFormation.getNumber(properties.TotalTargetCapacity)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_TotalLocalStorageGBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBRequestProperty"')}function cfnEC2FleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_TotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_VCpuCountRangeRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountRangeRequestProperty"')}function cfnEC2FleetVCpuCountRangeRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_VCpuCountRangeRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetVCpuCountRangeRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEIPPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("domain",cdk.validateString)(properties.domain)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("networkBorderGroup",cdk.validateString)(properties.networkBorderGroup)),errors.collect(cdk.propertyValidator("publicIpv4Pool",cdk.validateString)(properties.publicIpv4Pool)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transferAddress",cdk.validateString)(properties.transferAddress)),errors.wrap('supplied properties not correct for "CfnEIPProps"')}function cfnEIPPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEIPPropsValidator(properties).assertSuccess(),{Domain:cdk.stringToCloudFormation(properties.domain),InstanceId:cdk.stringToCloudFormation(properties.instanceId),NetworkBorderGroup:cdk.stringToCloudFormation(properties.networkBorderGroup),PublicIpv4Pool:cdk.stringToCloudFormation(properties.publicIpv4Pool),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TransferAddress:cdk.stringToCloudFormation(properties.transferAddress)}):properties}function CfnEIPPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("domain","Domain",properties.Domain!=null?cfn_parse.FromCloudFormation.getString(properties.Domain):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("networkBorderGroup","NetworkBorderGroup",properties.NetworkBorderGroup!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkBorderGroup):void 0),ret.addPropertyResult("publicIpv4Pool","PublicIpv4Pool",properties.PublicIpv4Pool!=null?cfn_parse.FromCloudFormation.getString(properties.PublicIpv4Pool):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transferAddress","TransferAddress",properties.TransferAddress!=null?cfn_parse.FromCloudFormation.getString(properties.TransferAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEIP extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnEIP.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEIPProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEIP),error}this.attrAllocationId=cdk.Token.asString(this.getAtt("AllocationId")),this.attrPublicIp=cdk.Token.asString(this.getAtt("PublicIp")),this.domain=props.domain,this.instanceId=props.instanceId,this.networkBorderGroup=props.networkBorderGroup,this.publicIpv4Pool=props.publicIpv4Pool,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::EIP",props.tags,{tagPropertyName:"tags"}),this.transferAddress=props.transferAddress}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEIPPropsFromCloudFormation(resourceProperties),ret=new CfnEIP(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",CfnEIP.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{domain:this.domain,instanceId:this.instanceId,networkBorderGroup:this.networkBorderGroup,publicIpv4Pool:this.publicIpv4Pool,tags:this.tags.renderTags(),transferAddress:this.transferAddress}}renderProperties(props){return cfnEIPPropsToCloudFormation(props)}}exports.CfnEIP=CfnEIP,_l=JSII_RTTI_SYMBOL_1,CfnEIP[_l]={fqn:"aws-cdk-lib.aws_ec2.CfnEIP",version:"2.51.0"},CfnEIP.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EIP";function CfnEIPAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationId",cdk.validateString)(properties.allocationId)),errors.collect(cdk.propertyValidator("eip",cdk.validateString)(properties.eip)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "CfnEIPAssociationProps"')}function cfnEIPAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEIPAssociationPropsValidator(properties).assertSuccess(),{AllocationId:cdk.stringToCloudFormation(properties.allocationId),EIP:cdk.stringToCloudFormation(properties.eip),InstanceId:cdk.stringToCloudFormation(properties.instanceId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnEIPAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationId","AllocationId",properties.AllocationId!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationId):void 0),ret.addPropertyResult("eip","EIP",properties.EIP!=null?cfn_parse.FromCloudFormation.getString(properties.EIP):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEIPAssociation extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEIPAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEIPAssociation),error}this.allocationId=props.allocationId,this.eip=props.eip,this.instanceId=props.instanceId,this.networkInterfaceId=props.networkInterfaceId,this.privateIpAddress=props.privateIpAddress}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEIPAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnEIPAssociation(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",CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{allocationId:this.allocationId,eip:this.eip,instanceId:this.instanceId,networkInterfaceId:this.networkInterfaceId,privateIpAddress:this.privateIpAddress}}renderProperties(props){return cfnEIPAssociationPropsToCloudFormation(props)}}exports.CfnEIPAssociation=CfnEIPAssociation,_m=JSII_RTTI_SYMBOL_1,CfnEIPAssociation[_m]={fqn:"aws-cdk-lib.aws_ec2.CfnEIPAssociation",version:"2.51.0"},CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EIPAssociation";function CfnEgressOnlyInternetGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnEgressOnlyInternetGatewayProps"')}function cfnEgressOnlyInternetGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEgressOnlyInternetGatewayPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId)}):properties}function CfnEgressOnlyInternetGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEgressOnlyInternetGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEgressOnlyInternetGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEgressOnlyInternetGateway),error}cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.vpcId=props.vpcId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEgressOnlyInternetGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnEgressOnlyInternetGateway(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",CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId}}renderProperties(props){return cfnEgressOnlyInternetGatewayPropsToCloudFormation(props)}}exports.CfnEgressOnlyInternetGateway=CfnEgressOnlyInternetGateway,_o=JSII_RTTI_SYMBOL_1,CfnEgressOnlyInternetGateway[_o]={fqn:"aws-cdk-lib.aws_ec2.CfnEgressOnlyInternetGateway",version:"2.51.0"},CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EgressOnlyInternetGateway";function CfnEnclaveCertificateIamRoleAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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.collect(cdk.propertyValidator("roleArn",cdk.requiredValidator)(properties.roleArn)),errors.collect(cdk.propertyValidator("roleArn",cdk.validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CfnEnclaveCertificateIamRoleAssociationProps"')}function cfnEnclaveCertificateIamRoleAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEnclaveCertificateIamRoleAssociationPropsValidator(properties).assertSuccess(),{CertificateArn:cdk.stringToCloudFormation(properties.certificateArn),RoleArn:cdk.stringToCloudFormation(properties.roleArn)}):properties}function CfnEnclaveCertificateIamRoleAssociationPropsFromCloudFormation(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.addPropertyResult("roleArn","RoleArn",cfn_parse.FromCloudFormation.getString(properties.RoleArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEnclaveCertificateIamRoleAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEnclaveCertificateIamRoleAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEnclaveCertificateIamRoleAssociation),error}cdk.requireProperty(props,"certificateArn",this),cdk.requireProperty(props,"roleArn",this),this.attrCertificateS3BucketName=cdk.Token.asString(this.getAtt("CertificateS3BucketName")),this.attrCertificateS3ObjectKey=cdk.Token.asString(this.getAtt("CertificateS3ObjectKey")),this.attrEncryptionKmsKeyId=cdk.Token.asString(this.getAtt("EncryptionKmsKeyId")),this.certificateArn=props.certificateArn,this.roleArn=props.roleArn}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEnclaveCertificateIamRoleAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnEnclaveCertificateIamRoleAssociation(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",CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{certificateArn:this.certificateArn,roleArn:this.roleArn}}renderProperties(props){return cfnEnclaveCertificateIamRoleAssociationPropsToCloudFormation(props)}}exports.CfnEnclaveCertificateIamRoleAssociation=CfnEnclaveCertificateIamRoleAssociation,_p=JSII_RTTI_SYMBOL_1,CfnEnclaveCertificateIamRoleAssociation[_p]={fqn:"aws-cdk-lib.aws_ec2.CfnEnclaveCertificateIamRoleAssociation",version:"2.51.0"},CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EnclaveCertificateIamRoleAssociation";function CfnFlowLogPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deliverLogsPermissionArn",cdk.validateString)(properties.deliverLogsPermissionArn)),errors.collect(cdk.propertyValidator("destinationOptions",cdk.validateObject)(properties.destinationOptions)),errors.collect(cdk.propertyValidator("logDestination",cdk.validateString)(properties.logDestination)),errors.collect(cdk.propertyValidator("logDestinationType",cdk.validateString)(properties.logDestinationType)),errors.collect(cdk.propertyValidator("logFormat",cdk.validateString)(properties.logFormat)),errors.collect(cdk.propertyValidator("logGroupName",cdk.validateString)(properties.logGroupName)),errors.collect(cdk.propertyValidator("maxAggregationInterval",cdk.validateNumber)(properties.maxAggregationInterval)),errors.collect(cdk.propertyValidator("resourceId",cdk.requiredValidator)(properties.resourceId)),errors.collect(cdk.propertyValidator("resourceId",cdk.validateString)(properties.resourceId)),errors.collect(cdk.propertyValidator("resourceType",cdk.requiredValidator)(properties.resourceType)),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("trafficType",cdk.validateString)(properties.trafficType)),errors.wrap('supplied properties not correct for "CfnFlowLogProps"')}function cfnFlowLogPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnFlowLogPropsValidator(properties).assertSuccess(),{ResourceId:cdk.stringToCloudFormation(properties.resourceId),ResourceType:cdk.stringToCloudFormation(properties.resourceType),DeliverLogsPermissionArn:cdk.stringToCloudFormation(properties.deliverLogsPermissionArn),DestinationOptions:cdk.objectToCloudFormation(properties.destinationOptions),LogDestination:cdk.stringToCloudFormation(properties.logDestination),LogDestinationType:cdk.stringToCloudFormation(properties.logDestinationType),LogFormat:cdk.stringToCloudFormation(properties.logFormat),LogGroupName:cdk.stringToCloudFormation(properties.logGroupName),MaxAggregationInterval:cdk.numberToCloudFormation(properties.maxAggregationInterval),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TrafficType:cdk.stringToCloudFormation(properties.trafficType)}):properties}function CfnFlowLogPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceId","ResourceId",cfn_parse.FromCloudFormation.getString(properties.ResourceId)),ret.addPropertyResult("resourceType","ResourceType",cfn_parse.FromCloudFormation.getString(properties.ResourceType)),ret.addPropertyResult("deliverLogsPermissionArn","DeliverLogsPermissionArn",properties.DeliverLogsPermissionArn!=null?cfn_parse.FromCloudFormation.getString(properties.DeliverLogsPermissionArn):void 0),ret.addPropertyResult("destinationOptions","DestinationOptions",properties.DestinationOptions!=null?cfn_parse.FromCloudFormation.getAny(properties.DestinationOptions):void 0),ret.addPropertyResult("logDestination","LogDestination",properties.LogDestination!=null?cfn_parse.FromCloudFormation.getString(properties.LogDestination):void 0),ret.addPropertyResult("logDestinationType","LogDestinationType",properties.LogDestinationType!=null?cfn_parse.FromCloudFormation.getString(properties.LogDestinationType):void 0),ret.addPropertyResult("logFormat","LogFormat",properties.LogFormat!=null?cfn_parse.FromCloudFormation.getString(properties.LogFormat):void 0),ret.addPropertyResult("logGroupName","LogGroupName",properties.LogGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.LogGroupName):void 0),ret.addPropertyResult("maxAggregationInterval","MaxAggregationInterval",properties.MaxAggregationInterval!=null?cfn_parse.FromCloudFormation.getNumber(properties.MaxAggregationInterval):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trafficType","TrafficType",properties.TrafficType!=null?cfn_parse.FromCloudFormation.getString(properties.TrafficType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlowLog extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnFlowLog.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnFlowLogProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlowLog),error}cdk.requireProperty(props,"resourceId",this),cdk.requireProperty(props,"resourceType",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.resourceId=props.resourceId,this.resourceType=props.resourceType,this.deliverLogsPermissionArn=props.deliverLogsPermissionArn,this.destinationOptions=props.destinationOptions,this.logDestination=props.logDestination,this.logDestinationType=props.logDestinationType,this.logFormat=props.logFormat,this.logGroupName=props.logGroupName,this.maxAggregationInterval=props.maxAggregationInterval,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::FlowLog",props.tags,{tagPropertyName:"tags"}),this.trafficType=props.trafficType}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowLogPropsFromCloudFormation(resourceProperties),ret=new CfnFlowLog(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",CfnFlowLog.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{resourceId:this.resourceId,resourceType:this.resourceType,deliverLogsPermissionArn:this.deliverLogsPermissionArn,destinationOptions:this.destinationOptions,logDestination:this.logDestination,logDestinationType:this.logDestinationType,logFormat:this.logFormat,logGroupName:this.logGroupName,maxAggregationInterval:this.maxAggregationInterval,tags:this.tags.renderTags(),trafficType:this.trafficType}}renderProperties(props){return cfnFlowLogPropsToCloudFormation(props)}}exports.CfnFlowLog=CfnFlowLog,_q=JSII_RTTI_SYMBOL_1,CfnFlowLog[_q]={fqn:"aws-cdk-lib.aws_ec2.CfnFlowLog",version:"2.51.0"},CfnFlowLog.CFN_RESOURCE_TYPE_NAME="AWS::EC2::FlowLog";function CfnGatewayRouteTableAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("gatewayId",cdk.requiredValidator)(properties.gatewayId)),errors.collect(cdk.propertyValidator("gatewayId",cdk.validateString)(properties.gatewayId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.requiredValidator)(properties.routeTableId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.validateString)(properties.routeTableId)),errors.wrap('supplied properties not correct for "CfnGatewayRouteTableAssociationProps"')}function cfnGatewayRouteTableAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRouteTableAssociationPropsValidator(properties).assertSuccess(),{GatewayId:cdk.stringToCloudFormation(properties.gatewayId),RouteTableId:cdk.stringToCloudFormation(properties.routeTableId)}):properties}function CfnGatewayRouteTableAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("gatewayId","GatewayId",cfn_parse.FromCloudFormation.getString(properties.GatewayId)),ret.addPropertyResult("routeTableId","RouteTableId",cfn_parse.FromCloudFormation.getString(properties.RouteTableId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGatewayRouteTableAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnGatewayRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGatewayRouteTableAssociation),error}cdk.requireProperty(props,"gatewayId",this),cdk.requireProperty(props,"routeTableId",this),this.attrAssociationId=cdk.Token.asString(this.getAtt("AssociationId")),this.gatewayId=props.gatewayId,this.routeTableId=props.routeTableId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGatewayRouteTableAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnGatewayRouteTableAssociation(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",CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{gatewayId:this.gatewayId,routeTableId:this.routeTableId}}renderProperties(props){return cfnGatewayRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnGatewayRouteTableAssociation=CfnGatewayRouteTableAssociation,_r=JSII_RTTI_SYMBOL_1,CfnGatewayRouteTableAssociation[_r]={fqn:"aws-cdk-lib.aws_ec2.CfnGatewayRouteTableAssociation",version:"2.51.0"},CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::GatewayRouteTableAssociation";function CfnHostPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoPlacement",cdk.validateString)(properties.autoPlacement)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.requiredValidator)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("hostRecovery",cdk.validateString)(properties.hostRecovery)),errors.collect(cdk.propertyValidator("instanceFamily",cdk.validateString)(properties.instanceFamily)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("outpostArn",cdk.validateString)(properties.outpostArn)),errors.wrap('supplied properties not correct for "CfnHostProps"')}function cfnHostPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnHostPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AutoPlacement:cdk.stringToCloudFormation(properties.autoPlacement),HostRecovery:cdk.stringToCloudFormation(properties.hostRecovery),InstanceFamily:cdk.stringToCloudFormation(properties.instanceFamily),InstanceType:cdk.stringToCloudFormation(properties.instanceType),OutpostArn:cdk.stringToCloudFormation(properties.outpostArn)}):properties}function CfnHostPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone)),ret.addPropertyResult("autoPlacement","AutoPlacement",properties.AutoPlacement!=null?cfn_parse.FromCloudFormation.getString(properties.AutoPlacement):void 0),ret.addPropertyResult("hostRecovery","HostRecovery",properties.HostRecovery!=null?cfn_parse.FromCloudFormation.getString(properties.HostRecovery):void 0),ret.addPropertyResult("instanceFamily","InstanceFamily",properties.InstanceFamily!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceFamily):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnHost extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnHost.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnHostProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnHost),error}cdk.requireProperty(props,"availabilityZone",this),this.attrHostId=cdk.Token.asString(this.getAtt("HostId")),this.availabilityZone=props.availabilityZone,this.autoPlacement=props.autoPlacement,this.hostRecovery=props.hostRecovery,this.instanceFamily=props.instanceFamily,this.instanceType=props.instanceType,this.outpostArn=props.outpostArn}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnHostPropsFromCloudFormation(resourceProperties),ret=new CfnHost(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",CfnHost.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{availabilityZone:this.availabilityZone,autoPlacement:this.autoPlacement,hostRecovery:this.hostRecovery,instanceFamily:this.instanceFamily,instanceType:this.instanceType,outpostArn:this.outpostArn}}renderProperties(props){return cfnHostPropsToCloudFormation(props)}}exports.CfnHost=CfnHost,_s=JSII_RTTI_SYMBOL_1,CfnHost[_s]={fqn:"aws-cdk-lib.aws_ec2.CfnHost",version:"2.51.0"},CfnHost.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Host";function CfnIPAMPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("operatingRegions",cdk.listValidator(CfnIPAM_IpamOperatingRegionPropertyValidator))(properties.operatingRegions)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMProps"')}function cfnIPAMPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMPropsValidator(properties).assertSuccess(),{Description:cdk.stringToCloudFormation(properties.description),OperatingRegions:cdk.listMapper(cfnIPAMIpamOperatingRegionPropertyToCloudFormation)(properties.operatingRegions),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("operatingRegions","OperatingRegions",properties.OperatingRegions!=null?cfn_parse.FromCloudFormation.getArray(CfnIPAMIpamOperatingRegionPropertyFromCloudFormation)(properties.OperatingRegions):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 CfnIPAM extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnIPAM.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAM),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrIpamId=cdk.Token.asString(this.getAtt("IpamId")),this.attrPrivateDefaultScopeId=cdk.Token.asString(this.getAtt("PrivateDefaultScopeId")),this.attrPublicDefaultScopeId=cdk.Token.asString(this.getAtt("PublicDefaultScopeId")),this.attrScopeCount=cdk.Token.asNumber(this.getAtt("ScopeCount")),this.description=props.description,this.operatingRegions=props.operatingRegions,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::IPAM",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPropsFromCloudFormation(resourceProperties),ret=new CfnIPAM(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",CfnIPAM.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{description:this.description,operatingRegions:this.operatingRegions,tags:this.tags.renderTags()}}renderProperties(props){return cfnIPAMPropsToCloudFormation(props)}}exports.CfnIPAM=CfnIPAM,_t=JSII_RTTI_SYMBOL_1,CfnIPAM[_t]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAM",version:"2.51.0"},CfnIPAM.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAM";function CfnIPAM_IpamOperatingRegionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("regionName",cdk.requiredValidator)(properties.regionName)),errors.collect(cdk.propertyValidator("regionName",cdk.validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "IpamOperatingRegionProperty"')}function cfnIPAMIpamOperatingRegionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAM_IpamOperatingRegionPropertyValidator(properties).assertSuccess(),{RegionName:cdk.stringToCloudFormation(properties.regionName)}):properties}function CfnIPAMIpamOperatingRegionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("regionName","RegionName",cfn_parse.FromCloudFormation.getString(properties.RegionName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMAllocationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("ipamPoolId",cdk.requiredValidator)(properties.ipamPoolId)),errors.collect(cdk.propertyValidator("ipamPoolId",cdk.validateString)(properties.ipamPoolId)),errors.collect(cdk.propertyValidator("netmaskLength",cdk.validateNumber)(properties.netmaskLength)),errors.wrap('supplied properties not correct for "CfnIPAMAllocationProps"')}function cfnIPAMAllocationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMAllocationPropsValidator(properties).assertSuccess(),{IpamPoolId:cdk.stringToCloudFormation(properties.ipamPoolId),Cidr:cdk.stringToCloudFormation(properties.cidr),Description:cdk.stringToCloudFormation(properties.description),NetmaskLength:cdk.numberToCloudFormation(properties.netmaskLength)}):properties}function CfnIPAMAllocationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipamPoolId","IpamPoolId",cfn_parse.FromCloudFormation.getString(properties.IpamPoolId)),ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse.FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("netmaskLength","NetmaskLength",properties.NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.NetmaskLength):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnIPAMAllocation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMAllocationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMAllocation),error}cdk.requireProperty(props,"ipamPoolId",this),this.attrIpamPoolAllocationId=cdk.Token.asString(this.getAtt("IpamPoolAllocationId")),this.ipamPoolId=props.ipamPoolId,this.cidr=props.cidr,this.description=props.description,this.netmaskLength=props.netmaskLength}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMAllocationPropsFromCloudFormation(resourceProperties),ret=new CfnIPAMAllocation(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",CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipamPoolId:this.ipamPoolId,cidr:this.cidr,description:this.description,netmaskLength:this.netmaskLength}}renderProperties(props){return cfnIPAMAllocationPropsToCloudFormation(props)}}exports.CfnIPAMAllocation=CfnIPAMAllocation,_u=JSII_RTTI_SYMBOL_1,CfnIPAMAllocation[_u]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMAllocation",version:"2.51.0"},CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMAllocation";function CfnIPAMPoolPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("addressFamily",cdk.requiredValidator)(properties.addressFamily)),errors.collect(cdk.propertyValidator("addressFamily",cdk.validateString)(properties.addressFamily)),errors.collect(cdk.propertyValidator("allocationDefaultNetmaskLength",cdk.validateNumber)(properties.allocationDefaultNetmaskLength)),errors.collect(cdk.propertyValidator("allocationMaxNetmaskLength",cdk.validateNumber)(properties.allocationMaxNetmaskLength)),errors.collect(cdk.propertyValidator("allocationMinNetmaskLength",cdk.validateNumber)(properties.allocationMinNetmaskLength)),errors.collect(cdk.propertyValidator("allocationResourceTags",cdk.listValidator(cdk.validateCfnTag))(properties.allocationResourceTags)),errors.collect(cdk.propertyValidator("autoImport",cdk.validateBoolean)(properties.autoImport)),errors.collect(cdk.propertyValidator("awsService",cdk.validateString)(properties.awsService)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("ipamScopeId",cdk.requiredValidator)(properties.ipamScopeId)),errors.collect(cdk.propertyValidator("ipamScopeId",cdk.validateString)(properties.ipamScopeId)),errors.collect(cdk.propertyValidator("locale",cdk.validateString)(properties.locale)),errors.collect(cdk.propertyValidator("provisionedCidrs",cdk.listValidator(CfnIPAMPool_ProvisionedCidrPropertyValidator))(properties.provisionedCidrs)),errors.collect(cdk.propertyValidator("publiclyAdvertisable",cdk.validateBoolean)(properties.publiclyAdvertisable)),errors.collect(cdk.propertyValidator("sourceIpamPoolId",cdk.validateString)(properties.sourceIpamPoolId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMPoolProps"')}function cfnIPAMPoolPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMPoolPropsValidator(properties).assertSuccess(),{AddressFamily:cdk.stringToCloudFormation(properties.addressFamily),IpamScopeId:cdk.stringToCloudFormation(properties.ipamScopeId),AllocationDefaultNetmaskLength:cdk.numberToCloudFormation(properties.allocationDefaultNetmaskLength),AllocationMaxNetmaskLength:cdk.numberToCloudFormation(properties.allocationMaxNetmaskLength),AllocationMinNetmaskLength:cdk.numberToCloudFormation(properties.allocationMinNetmaskLength),AllocationResourceTags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.allocationResourceTags),AutoImport:cdk.booleanToCloudFormation(properties.autoImport),AwsService:cdk.stringToCloudFormation(properties.awsService),Description:cdk.stringToCloudFormation(properties.description),Locale:cdk.stringToCloudFormation(properties.locale),ProvisionedCidrs:cdk.listMapper(cfnIPAMPoolProvisionedCidrPropertyToCloudFormation)(properties.provisionedCidrs),PubliclyAdvertisable:cdk.booleanToCloudFormation(properties.publiclyAdvertisable),SourceIpamPoolId:cdk.stringToCloudFormation(properties.sourceIpamPoolId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMPoolPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("addressFamily","AddressFamily",cfn_parse.FromCloudFormation.getString(properties.AddressFamily)),ret.addPropertyResult("ipamScopeId","IpamScopeId",cfn_parse.FromCloudFormation.getString(properties.IpamScopeId)),ret.addPropertyResult("allocationDefaultNetmaskLength","AllocationDefaultNetmaskLength",properties.AllocationDefaultNetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.AllocationDefaultNetmaskLength):void 0),ret.addPropertyResult("allocationMaxNetmaskLength","AllocationMaxNetmaskLength",properties.AllocationMaxNetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.AllocationMaxNetmaskLength):void 0),ret.addPropertyResult("allocationMinNetmaskLength","AllocationMinNetmaskLength",properties.AllocationMinNetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.AllocationMinNetmaskLength):void 0),ret.addPropertyResult("allocationResourceTags","AllocationResourceTags",properties.AllocationResourceTags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.AllocationResourceTags):void 0),ret.addPropertyResult("autoImport","AutoImport",properties.AutoImport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AutoImport):void 0),ret.addPropertyResult("awsService","AwsService",properties.AwsService!=null?cfn_parse.FromCloudFormation.getString(properties.AwsService):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("locale","Locale",properties.Locale!=null?cfn_parse.FromCloudFormation.getString(properties.Locale):void 0),ret.addPropertyResult("provisionedCidrs","ProvisionedCidrs",properties.ProvisionedCidrs!=null?cfn_parse.FromCloudFormation.getArray(CfnIPAMPoolProvisionedCidrPropertyFromCloudFormation)(properties.ProvisionedCidrs):void 0),ret.addPropertyResult("publiclyAdvertisable","PubliclyAdvertisable",properties.PubliclyAdvertisable!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PubliclyAdvertisable):void 0),ret.addPropertyResult("sourceIpamPoolId","SourceIpamPoolId",properties.SourceIpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceIpamPoolId):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 CfnIPAMPool extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnIPAMPool.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMPoolProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMPool),error}cdk.requireProperty(props,"addressFamily",this),cdk.requireProperty(props,"ipamScopeId",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrIpamArn=cdk.Token.asString(this.getAtt("IpamArn")),this.attrIpamPoolId=cdk.Token.asString(this.getAtt("IpamPoolId")),this.attrIpamScopeArn=cdk.Token.asString(this.getAtt("IpamScopeArn")),this.attrIpamScopeType=cdk.Token.asString(this.getAtt("IpamScopeType")),this.attrPoolDepth=cdk.Token.asNumber(this.getAtt("PoolDepth")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrStateMessage=cdk.Token.asString(this.getAtt("StateMessage")),this.addressFamily=props.addressFamily,this.ipamScopeId=props.ipamScopeId,this.allocationDefaultNetmaskLength=props.allocationDefaultNetmaskLength,this.allocationMaxNetmaskLength=props.allocationMaxNetmaskLength,this.allocationMinNetmaskLength=props.allocationMinNetmaskLength,this.allocationResourceTags=props.allocationResourceTags,this.autoImport=props.autoImport,this.awsService=props.awsService,this.description=props.description,this.locale=props.locale,this.provisionedCidrs=props.provisionedCidrs,this.publiclyAdvertisable=props.publiclyAdvertisable,this.sourceIpamPoolId=props.sourceIpamPoolId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::IPAMPool",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPoolPropsFromCloudFormation(resourceProperties),ret=new CfnIPAMPool(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",CfnIPAMPool.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{addressFamily:this.addressFamily,ipamScopeId:this.ipamScopeId,allocationDefaultNetmaskLength:this.allocationDefaultNetmaskLength,allocationMaxNetmaskLength:this.allocationMaxNetmaskLength,allocationMinNetmaskLength:this.allocationMinNetmaskLength,allocationResourceTags:this.allocationResourceTags,autoImport:this.autoImport,awsService:this.awsService,description:this.description,locale:this.locale,provisionedCidrs:this.provisionedCidrs,publiclyAdvertisable:this.publiclyAdvertisable,sourceIpamPoolId:this.sourceIpamPoolId,tags:this.tags.renderTags()}}renderProperties(props){return cfnIPAMPoolPropsToCloudFormation(props)}}exports.CfnIPAMPool=CfnIPAMPool,_v=JSII_RTTI_SYMBOL_1,CfnIPAMPool[_v]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMPool",version:"2.51.0"},CfnIPAMPool.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMPool";function CfnIPAMPool_ProvisionedCidrPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.requiredValidator)(properties.cidr)),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.wrap('supplied properties not correct for "ProvisionedCidrProperty"')}function cfnIPAMPoolProvisionedCidrPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMPool_ProvisionedCidrPropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr)}):properties}function CfnIPAMPoolProvisionedCidrPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",cfn_parse.FromCloudFormation.getString(properties.Cidr)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMScopePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("ipamId",cdk.requiredValidator)(properties.ipamId)),errors.collect(cdk.propertyValidator("ipamId",cdk.validateString)(properties.ipamId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMScopeProps"')}function cfnIPAMScopePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMScopePropsValidator(properties).assertSuccess(),{IpamId:cdk.stringToCloudFormation(properties.ipamId),Description:cdk.stringToCloudFormation(properties.description),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMScopePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipamId","IpamId",cfn_parse.FromCloudFormation.getString(properties.IpamId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):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 CfnIPAMScope extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnIPAMScope.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMScopeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMScope),error}cdk.requireProperty(props,"ipamId",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrIpamArn=cdk.Token.asString(this.getAtt("IpamArn")),this.attrIpamScopeId=cdk.Token.asString(this.getAtt("IpamScopeId")),this.attrIpamScopeType=cdk.Token.asString(this.getAtt("IpamScopeType")),this.attrIsDefault=this.getAtt("IsDefault"),this.attrPoolCount=cdk.Token.asNumber(this.getAtt("PoolCount")),this.ipamId=props.ipamId,this.description=props.description,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::IPAMScope",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMScopePropsFromCloudFormation(resourceProperties),ret=new CfnIPAMScope(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",CfnIPAMScope.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipamId:this.ipamId,description:this.description,tags:this.tags.renderTags()}}renderProperties(props){return cfnIPAMScopePropsToCloudFormation(props)}}exports.CfnIPAMScope=CfnIPAMScope,_w=JSII_RTTI_SYMBOL_1,CfnIPAMScope[_w]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMScope",version:"2.51.0"},CfnIPAMScope.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMScope";function CfnInstancePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("additionalInfo",cdk.validateString)(properties.additionalInfo)),errors.collect(cdk.propertyValidator("affinity",cdk.validateString)(properties.affinity)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("blockDeviceMappings",cdk.listValidator(CfnInstance_BlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk.propertyValidator("cpuOptions",CfnInstance_CpuOptionsPropertyValidator)(properties.cpuOptions)),errors.collect(cdk.propertyValidator("creditSpecification",CfnInstance_CreditSpecificationPropertyValidator)(properties.creditSpecification)),errors.collect(cdk.propertyValidator("disableApiTermination",cdk.validateBoolean)(properties.disableApiTermination)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("elasticGpuSpecifications",cdk.listValidator(CfnInstance_ElasticGpuSpecificationPropertyValidator))(properties.elasticGpuSpecifications)),errors.collect(cdk.propertyValidator("elasticInferenceAccelerators",cdk.listValidator(CfnInstance_ElasticInferenceAcceleratorPropertyValidator))(properties.elasticInferenceAccelerators)),errors.collect(cdk.propertyValidator("enclaveOptions",CfnInstance_EnclaveOptionsPropertyValidator)(properties.enclaveOptions)),errors.collect(cdk.propertyValidator("hibernationOptions",CfnInstance_HibernationOptionsPropertyValidator)(properties.hibernationOptions)),errors.collect(cdk.propertyValidator("hostId",cdk.validateString)(properties.hostId)),errors.collect(cdk.propertyValidator("hostResourceGroupArn",cdk.validateString)(properties.hostResourceGroupArn)),errors.collect(cdk.propertyValidator("iamInstanceProfile",cdk.validateString)(properties.iamInstanceProfile)),errors.collect(cdk.propertyValidator("imageId",cdk.validateString)(properties.imageId)),errors.collect(cdk.propertyValidator("instanceInitiatedShutdownBehavior",cdk.validateString)(properties.instanceInitiatedShutdownBehavior)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnInstance_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("kernelId",cdk.validateString)(properties.kernelId)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("launchTemplate",CfnInstance_LaunchTemplateSpecificationPropertyValidator)(properties.launchTemplate)),errors.collect(cdk.propertyValidator("licenseSpecifications",cdk.listValidator(CfnInstance_LicenseSpecificationPropertyValidator))(properties.licenseSpecifications)),errors.collect(cdk.propertyValidator("monitoring",cdk.validateBoolean)(properties.monitoring)),errors.collect(cdk.propertyValidator("networkInterfaces",cdk.listValidator(CfnInstance_NetworkInterfacePropertyValidator))(properties.networkInterfaces)),errors.collect(cdk.propertyValidator("placementGroupName",cdk.validateString)(properties.placementGroupName)),errors.collect(cdk.propertyValidator("privateDnsNameOptions",CfnInstance_PrivateDnsNameOptionsPropertyValidator)(properties.privateDnsNameOptions)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("propagateTagsToVolumeOnCreation",cdk.validateBoolean)(properties.propagateTagsToVolumeOnCreation)),errors.collect(cdk.propertyValidator("ramdiskId",cdk.validateString)(properties.ramdiskId)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(cdk.validateString))(properties.securityGroups)),errors.collect(cdk.propertyValidator("sourceDestCheck",cdk.validateBoolean)(properties.sourceDestCheck)),errors.collect(cdk.propertyValidator("ssmAssociations",cdk.listValidator(CfnInstance_SsmAssociationPropertyValidator))(properties.ssmAssociations)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.collect(cdk.propertyValidator("userData",cdk.validateString)(properties.userData)),errors.collect(cdk.propertyValidator("volumes",cdk.listValidator(CfnInstance_VolumePropertyValidator))(properties.volumes)),errors.wrap('supplied properties not correct for "CfnInstanceProps"')}function cfnInstancePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstancePropsValidator(properties).assertSuccess(),{AdditionalInfo:cdk.stringToCloudFormation(properties.additionalInfo),Affinity:cdk.stringToCloudFormation(properties.affinity),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),BlockDeviceMappings:cdk.listMapper(cfnInstanceBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),CpuOptions:cfnInstanceCpuOptionsPropertyToCloudFormation(properties.cpuOptions),CreditSpecification:cfnInstanceCreditSpecificationPropertyToCloudFormation(properties.creditSpecification),DisableApiTermination:cdk.booleanToCloudFormation(properties.disableApiTermination),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),ElasticGpuSpecifications:cdk.listMapper(cfnInstanceElasticGpuSpecificationPropertyToCloudFormation)(properties.elasticGpuSpecifications),ElasticInferenceAccelerators:cdk.listMapper(cfnInstanceElasticInferenceAcceleratorPropertyToCloudFormation)(properties.elasticInferenceAccelerators),EnclaveOptions:cfnInstanceEnclaveOptionsPropertyToCloudFormation(properties.enclaveOptions),HibernationOptions:cfnInstanceHibernationOptionsPropertyToCloudFormation(properties.hibernationOptions),HostId:cdk.stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk.stringToCloudFormation(properties.hostResourceGroupArn),IamInstanceProfile:cdk.stringToCloudFormation(properties.iamInstanceProfile),ImageId:cdk.stringToCloudFormation(properties.imageId),InstanceInitiatedShutdownBehavior:cdk.stringToCloudFormation(properties.instanceInitiatedShutdownBehavior),InstanceType:cdk.stringToCloudFormation(properties.instanceType),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnInstanceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),KernelId:cdk.stringToCloudFormation(properties.kernelId),KeyName:cdk.stringToCloudFormation(properties.keyName),LaunchTemplate:cfnInstanceLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplate),LicenseSpecifications:cdk.listMapper(cfnInstanceLicenseSpecificationPropertyToCloudFormation)(properties.licenseSpecifications),Monitoring:cdk.booleanToCloudFormation(properties.monitoring),NetworkInterfaces:cdk.listMapper(cfnInstanceNetworkInterfacePropertyToCloudFormation)(properties.networkInterfaces),PlacementGroupName:cdk.stringToCloudFormation(properties.placementGroupName),PrivateDnsNameOptions:cfnInstancePrivateDnsNameOptionsPropertyToCloudFormation(properties.privateDnsNameOptions),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PropagateTagsToVolumeOnCreation:cdk.booleanToCloudFormation(properties.propagateTagsToVolumeOnCreation),RamdiskId:cdk.stringToCloudFormation(properties.ramdiskId),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SecurityGroups:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroups),SourceDestCheck:cdk.booleanToCloudFormation(properties.sourceDestCheck),SsmAssociations:cdk.listMapper(cfnInstanceSsmAssociationPropertyToCloudFormation)(properties.ssmAssociations),SubnetId:cdk.stringToCloudFormation(properties.subnetId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),Tenancy:cdk.stringToCloudFormation(properties.tenancy),UserData:cdk.stringToCloudFormation(properties.userData),Volumes:cdk.listMapper(cfnInstanceVolumePropertyToCloudFormation)(properties.volumes)}):properties}function CfnInstancePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("additionalInfo","AdditionalInfo",properties.AdditionalInfo!=null?cfn_parse.FromCloudFormation.getString(properties.AdditionalInfo):void 0),ret.addPropertyResult("affinity","Affinity",properties.Affinity!=null?cfn_parse.FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("cpuOptions","CpuOptions",properties.CpuOptions!=null?CfnInstanceCpuOptionsPropertyFromCloudFormation(properties.CpuOptions):void 0),ret.addPropertyResult("creditSpecification","CreditSpecification",properties.CreditSpecification!=null?CfnInstanceCreditSpecificationPropertyFromCloudFormation(properties.CreditSpecification):void 0),ret.addPropertyResult("disableApiTermination","DisableApiTermination",properties.DisableApiTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableApiTermination):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("elasticGpuSpecifications","ElasticGpuSpecifications",properties.ElasticGpuSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceElasticGpuSpecificationPropertyFromCloudFormation)(properties.ElasticGpuSpecifications):void 0),ret.addPropertyResult("elasticInferenceAccelerators","ElasticInferenceAccelerators",properties.ElasticInferenceAccelerators!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceElasticInferenceAcceleratorPropertyFromCloudFormation)(properties.ElasticInferenceAccelerators):void 0),ret.addPropertyResult("enclaveOptions","EnclaveOptions",properties.EnclaveOptions!=null?CfnInstanceEnclaveOptionsPropertyFromCloudFormation(properties.EnclaveOptions):void 0),ret.addPropertyResult("hibernationOptions","HibernationOptions",properties.HibernationOptions!=null?CfnInstanceHibernationOptionsPropertyFromCloudFormation(properties.HibernationOptions):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse.FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?cfn_parse.FromCloudFormation.getString(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse.FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceInitiatedShutdownBehavior","InstanceInitiatedShutdownBehavior",properties.InstanceInitiatedShutdownBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInitiatedShutdownBehavior):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse.FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse.FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("launchTemplate","LaunchTemplate",properties.LaunchTemplate!=null?CfnInstanceLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplate):void 0),ret.addPropertyResult("licenseSpecifications","LicenseSpecifications",properties.LicenseSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceLicenseSpecificationPropertyFromCloudFormation)(properties.LicenseSpecifications):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceNetworkInterfacePropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placementGroupName","PlacementGroupName",properties.PlacementGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.PlacementGroupName):void 0),ret.addPropertyResult("privateDnsNameOptions","PrivateDnsNameOptions",properties.PrivateDnsNameOptions!=null?CfnInstancePrivateDnsNameOptionsPropertyFromCloudFormation(properties.PrivateDnsNameOptions):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("propagateTagsToVolumeOnCreation","PropagateTagsToVolumeOnCreation",properties.PropagateTagsToVolumeOnCreation!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PropagateTagsToVolumeOnCreation):void 0),ret.addPropertyResult("ramdiskId","RamdiskId",properties.RamdiskId!=null?cfn_parse.FromCloudFormation.getString(properties.RamdiskId):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroups):void 0),ret.addPropertyResult("sourceDestCheck","SourceDestCheck",properties.SourceDestCheck!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SourceDestCheck):void 0),ret.addPropertyResult("ssmAssociations","SsmAssociations",properties.SsmAssociations!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceSsmAssociationPropertyFromCloudFormation)(properties.SsmAssociations):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse.FromCloudFormation.getString(properties.UserData):void 0),ret.addPropertyResult("volumes","Volumes",properties.Volumes!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceVolumePropertyFromCloudFormation)(properties.Volumes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInstance extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnInstance.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnInstanceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstance),error}this.attrAvailabilityZone=cdk.Token.asString(this.getAtt("AvailabilityZone")),this.attrPrivateDnsName=cdk.Token.asString(this.getAtt("PrivateDnsName")),this.attrPrivateIp=cdk.Token.asString(this.getAtt("PrivateIp")),this.attrPublicDnsName=cdk.Token.asString(this.getAtt("PublicDnsName")),this.attrPublicIp=cdk.Token.asString(this.getAtt("PublicIp")),this.additionalInfo=props.additionalInfo,this.affinity=props.affinity,this.availabilityZone=props.availabilityZone,this.blockDeviceMappings=props.blockDeviceMappings,this.cpuOptions=props.cpuOptions,this.creditSpecification=props.creditSpecification,this.disableApiTermination=props.disableApiTermination,this.ebsOptimized=props.ebsOptimized,this.elasticGpuSpecifications=props.elasticGpuSpecifications,this.elasticInferenceAccelerators=props.elasticInferenceAccelerators,this.enclaveOptions=props.enclaveOptions,this.hibernationOptions=props.hibernationOptions,this.hostId=props.hostId,this.hostResourceGroupArn=props.hostResourceGroupArn,this.iamInstanceProfile=props.iamInstanceProfile,this.imageId=props.imageId,this.instanceInitiatedShutdownBehavior=props.instanceInitiatedShutdownBehavior,this.instanceType=props.instanceType,this.ipv6AddressCount=props.ipv6AddressCount,this.ipv6Addresses=props.ipv6Addresses,this.kernelId=props.kernelId,this.keyName=props.keyName,this.launchTemplate=props.launchTemplate,this.licenseSpecifications=props.licenseSpecifications,this.monitoring=props.monitoring,this.networkInterfaces=props.networkInterfaces,this.placementGroupName=props.placementGroupName,this.privateDnsNameOptions=props.privateDnsNameOptions,this.privateIpAddress=props.privateIpAddress,this.propagateTagsToVolumeOnCreation=props.propagateTagsToVolumeOnCreation,this.ramdiskId=props.ramdiskId,this.securityGroupIds=props.securityGroupIds,this.securityGroups=props.securityGroups,this.sourceDestCheck=props.sourceDestCheck,this.ssmAssociations=props.ssmAssociations,this.subnetId=props.subnetId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::Instance",props.tags,{tagPropertyName:"tags"}),this.tenancy=props.tenancy,this.userData=props.userData,this.volumes=props.volumes}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInstancePropsFromCloudFormation(resourceProperties),ret=new CfnInstance(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",CfnInstance.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{additionalInfo:this.additionalInfo,affinity:this.affinity,availabilityZone:this.availabilityZone,blockDeviceMappings:this.blockDeviceMappings,cpuOptions:this.cpuOptions,creditSpecification:this.creditSpecification,disableApiTermination:this.disableApiTermination,ebsOptimized:this.ebsOptimized,elasticGpuSpecifications:this.elasticGpuSpecifications,elasticInferenceAccelerators:this.elasticInferenceAccelerators,enclaveOptions:this.enclaveOptions,hibernationOptions:this.hibernationOptions,hostId:this.hostId,hostResourceGroupArn:this.hostResourceGroupArn,iamInstanceProfile:this.iamInstanceProfile,imageId:this.imageId,instanceInitiatedShutdownBehavior:this.instanceInitiatedShutdownBehavior,instanceType:this.instanceType,ipv6AddressCount:this.ipv6AddressCount,ipv6Addresses:this.ipv6Addresses,kernelId:this.kernelId,keyName:this.keyName,launchTemplate:this.launchTemplate,licenseSpecifications:this.licenseSpecifications,monitoring:this.monitoring,networkInterfaces:this.networkInterfaces,placementGroupName:this.placementGroupName,privateDnsNameOptions:this.privateDnsNameOptions,privateIpAddress:this.privateIpAddress,propagateTagsToVolumeOnCreation:this.propagateTagsToVolumeOnCreation,ramdiskId:this.ramdiskId,securityGroupIds:this.securityGroupIds,securityGroups:this.securityGroups,sourceDestCheck:this.sourceDestCheck,ssmAssociations:this.ssmAssociations,subnetId:this.subnetId,tags:this.tags.renderTags(),tenancy:this.tenancy,userData:this.userData,volumes:this.volumes}}renderProperties(props){return cfnInstancePropsToCloudFormation(props)}}exports.CfnInstance=CfnInstance,_x=JSII_RTTI_SYMBOL_1,CfnInstance[_x]={fqn:"aws-cdk-lib.aws_ec2.CfnInstance",version:"2.51.0"},CfnInstance.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Instance";function CfnInstance_AssociationParameterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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.listValidator(cdk.validateString))(properties.value)),errors.wrap('supplied properties not correct for "AssociationParameterProperty"')}function cfnInstanceAssociationParameterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_AssociationParameterPropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.listMapper(cdk.stringToCloudFormation)(properties.value)}):properties}function CfnInstanceAssociationParameterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_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.getStringArray(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_BlockDeviceMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deviceName",cdk.requiredValidator)(properties.deviceName)),errors.collect(cdk.propertyValidator("deviceName",cdk.validateString)(properties.deviceName)),errors.collect(cdk.propertyValidator("ebs",CfnInstance_EbsPropertyValidator)(properties.ebs)),errors.collect(cdk.propertyValidator("noDevice",CfnInstance_NoDevicePropertyValidator)(properties.noDevice)),errors.collect(cdk.propertyValidator("virtualName",cdk.validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function cfnInstanceBlockDeviceMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_BlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk.stringToCloudFormation(properties.deviceName),Ebs:cfnInstanceEbsPropertyToCloudFormation(properties.ebs),NoDevice:cfnInstanceNoDevicePropertyToCloudFormation(properties.noDevice),VirtualName:cdk.stringToCloudFormation(properties.virtualName)}):properties}function CfnInstanceBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",cfn_parse.FromCloudFormation.getString(properties.DeviceName)),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnInstanceEbsPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?CfnInstanceNoDevicePropertyFromCloudFormation(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_CpuOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("coreCount",cdk.validateNumber)(properties.coreCount)),errors.collect(cdk.propertyValidator("threadsPerCore",cdk.validateNumber)(properties.threadsPerCore)),errors.wrap('supplied properties not correct for "CpuOptionsProperty"')}function cfnInstanceCpuOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_CpuOptionsPropertyValidator(properties).assertSuccess(),{CoreCount:cdk.numberToCloudFormation(properties.coreCount),ThreadsPerCore:cdk.numberToCloudFormation(properties.threadsPerCore)}):properties}function CfnInstanceCpuOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("coreCount","CoreCount",properties.CoreCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.CoreCount):void 0),ret.addPropertyResult("threadsPerCore","ThreadsPerCore",properties.ThreadsPerCore!=null?cfn_parse.FromCloudFormation.getNumber(properties.ThreadsPerCore):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_CreditSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cpuCredits",cdk.validateString)(properties.cpuCredits)),errors.wrap('supplied properties not correct for "CreditSpecificationProperty"')}function cfnInstanceCreditSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_CreditSpecificationPropertyValidator(properties).assertSuccess(),{CPUCredits:cdk.stringToCloudFormation(properties.cpuCredits)}):properties}function CfnInstanceCreditSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cpuCredits","CPUCredits",properties.CPUCredits!=null?cfn_parse.FromCloudFormation.getString(properties.CPUCredits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_EbsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("kmsKeyId",cdk.validateString)(properties.kmsKeyId)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("volumeSize",cdk.validateNumber)(properties.volumeSize)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsProperty"')}function cfnInstanceEbsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_EbsPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),KmsKeyId:cdk.stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),VolumeSize:cdk.numberToCloudFormation(properties.volumeSize),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnInstanceEbsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse.FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_ElasticGpuSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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 "ElasticGpuSpecificationProperty"')}function cfnInstanceElasticGpuSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_ElasticGpuSpecificationPropertyValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnInstanceElasticGpuSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_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 CfnInstance_ElasticInferenceAcceleratorPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("count",cdk.validateNumber)(properties.count)),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 "ElasticInferenceAcceleratorProperty"')}function cfnInstanceElasticInferenceAcceleratorPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_ElasticInferenceAcceleratorPropertyValidator(properties).assertSuccess(),{Count:cdk.numberToCloudFormation(properties.count),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnInstanceElasticInferenceAcceleratorPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse.FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_EnclaveOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "EnclaveOptionsProperty"')}function cfnInstanceEnclaveOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_EnclaveOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnInstanceEnclaveOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_HibernationOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("configured",cdk.validateBoolean)(properties.configured)),errors.wrap('supplied properties not correct for "HibernationOptionsProperty"')}function cfnInstanceHibernationOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_HibernationOptionsPropertyValidator(properties).assertSuccess(),{Configured:cdk.booleanToCloudFormation(properties.configured)}):properties}function CfnInstanceHibernationOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("configured","Configured",properties.Configured!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Configured):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_InstanceIpv6AddressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.requiredValidator)(properties.ipv6Address)),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function cfnInstanceInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_InstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",cfn_parse.FromCloudFormation.getString(properties.Ipv6Address)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_LaunchTemplateSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateId",cdk.validateString)(properties.launchTemplateId)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("version",cdk.requiredValidator)(properties.version)),errors.collect(cdk.propertyValidator("version",cdk.validateString)(properties.version)),errors.wrap('supplied properties not correct for "LaunchTemplateSpecificationProperty"')}function cfnInstanceLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_LaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk.stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),Version:cdk.stringToCloudFormation(properties.version)}):properties}function CfnInstanceLaunchTemplateSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",cfn_parse.FromCloudFormation.getString(properties.Version)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_LicenseSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("licenseConfigurationArn",cdk.requiredValidator)(properties.licenseConfigurationArn)),errors.collect(cdk.propertyValidator("licenseConfigurationArn",cdk.validateString)(properties.licenseConfigurationArn)),errors.wrap('supplied properties not correct for "LicenseSpecificationProperty"')}function cfnInstanceLicenseSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_LicenseSpecificationPropertyValidator(properties).assertSuccess(),{LicenseConfigurationArn:cdk.stringToCloudFormation(properties.licenseConfigurationArn)}):properties}function CfnInstanceLicenseSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("licenseConfigurationArn","LicenseConfigurationArn",cfn_parse.FromCloudFormation.getString(properties.LicenseConfigurationArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_NetworkInterfacePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associateCarrierIpAddress",cdk.validateBoolean)(properties.associateCarrierIpAddress)),errors.collect(cdk.propertyValidator("associatePublicIpAddress",cdk.validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.requiredValidator)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateString)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("groupSet",cdk.listValidator(cdk.validateString))(properties.groupSet)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnInstance_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnInstance_PrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "NetworkInterfaceProperty"')}function cfnInstanceNetworkInterfacePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_NetworkInterfacePropertyValidator(properties).assertSuccess(),{AssociateCarrierIpAddress:cdk.booleanToCloudFormation(properties.associateCarrierIpAddress),AssociatePublicIpAddress:cdk.booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Description:cdk.stringToCloudFormation(properties.description),DeviceIndex:cdk.stringToCloudFormation(properties.deviceIndex),GroupSet:cdk.listMapper(cdk.stringToCloudFormation)(properties.groupSet),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnInstanceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk.listMapper(cfnInstancePrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnInstanceNetworkInterfacePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associateCarrierIpAddress","AssociateCarrierIpAddress",properties.AssociateCarrierIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociateCarrierIpAddress):void 0),ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",cfn_parse.FromCloudFormation.getString(properties.DeviceIndex)),ret.addPropertyResult("groupSet","GroupSet",properties.GroupSet!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GroupSet):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnInstancePrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_NoDevicePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.wrap('supplied properties not correct for "NoDeviceProperty"')}function cfnInstanceNoDevicePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_NoDevicePropertyValidator(properties).assertSuccess(),{}):properties}function CfnInstanceNoDevicePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_PrivateDnsNameOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enableResourceNameDnsAaaaRecord",cdk.validateBoolean)(properties.enableResourceNameDnsAaaaRecord)),errors.collect(cdk.propertyValidator("enableResourceNameDnsARecord",cdk.validateBoolean)(properties.enableResourceNameDnsARecord)),errors.collect(cdk.propertyValidator("hostnameType",cdk.validateString)(properties.hostnameType)),errors.wrap('supplied properties not correct for "PrivateDnsNameOptionsProperty"')}function cfnInstancePrivateDnsNameOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_PrivateDnsNameOptionsPropertyValidator(properties).assertSuccess(),{EnableResourceNameDnsAAAARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsAaaaRecord),EnableResourceNameDnsARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsARecord),HostnameType:cdk.stringToCloudFormation(properties.hostnameType)}):properties}function CfnInstancePrivateDnsNameOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enableResourceNameDnsAaaaRecord","EnableResourceNameDnsAAAARecord",properties.EnableResourceNameDnsAAAARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsAAAARecord):void 0),ret.addPropertyResult("enableResourceNameDnsARecord","EnableResourceNameDnsARecord",properties.EnableResourceNameDnsARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsARecord):void 0),ret.addPropertyResult("hostnameType","HostnameType",properties.HostnameType!=null?cfn_parse.FromCloudFormation.getString(properties.HostnameType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_PrivateIpAddressSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.requiredValidator)(properties.primary)),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.requiredValidator)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function cfnInstancePrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_PrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnInstancePrivateIpAddressSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",cfn_parse.FromCloudFormation.getBoolean(properties.Primary)),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_SsmAssociationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associationParameters",cdk.listValidator(CfnInstance_AssociationParameterPropertyValidator))(properties.associationParameters)),errors.collect(cdk.propertyValidator("documentName",cdk.requiredValidator)(properties.documentName)),errors.collect(cdk.propertyValidator("documentName",cdk.validateString)(properties.documentName)),errors.wrap('supplied properties not correct for "SsmAssociationProperty"')}function cfnInstanceSsmAssociationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_SsmAssociationPropertyValidator(properties).assertSuccess(),{AssociationParameters:cdk.listMapper(cfnInstanceAssociationParameterPropertyToCloudFormation)(properties.associationParameters),DocumentName:cdk.stringToCloudFormation(properties.documentName)}):properties}function CfnInstanceSsmAssociationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associationParameters","AssociationParameters",properties.AssociationParameters!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceAssociationParameterPropertyFromCloudFormation)(properties.AssociationParameters):void 0),ret.addPropertyResult("documentName","DocumentName",cfn_parse.FromCloudFormation.getString(properties.DocumentName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_VolumePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("device",cdk.requiredValidator)(properties.device)),errors.collect(cdk.propertyValidator("device",cdk.validateString)(properties.device)),errors.collect(cdk.propertyValidator("volumeId",cdk.requiredValidator)(properties.volumeId)),errors.collect(cdk.propertyValidator("volumeId",cdk.validateString)(properties.volumeId)),errors.wrap('supplied properties not correct for "VolumeProperty"')}function cfnInstanceVolumePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_VolumePropertyValidator(properties).assertSuccess(),{Device:cdk.stringToCloudFormation(properties.device),VolumeId:cdk.stringToCloudFormation(properties.volumeId)}):properties}function CfnInstanceVolumePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("device","Device",cfn_parse.FromCloudFormation.getString(properties.Device)),ret.addPropertyResult("volumeId","VolumeId",cfn_parse.FromCloudFormation.getString(properties.VolumeId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInternetGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnInternetGatewayProps"')}function cfnInternetGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInternetGatewayPropsValidator(properties).assertSuccess(),{Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnInternetGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInternetGateway extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnInternetGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnInternetGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInternetGateway),error}this.attrInternetGatewayId=cdk.Token.asString(this.getAtt("InternetGatewayId")),this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::InternetGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInternetGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnInternetGateway(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",CfnInternetGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{tags:this.tags.renderTags()}}renderProperties(props){return cfnInternetGatewayPropsToCloudFormation(props)}}exports.CfnInternetGateway=CfnInternetGateway,_y=JSII_RTTI_SYMBOL_1,CfnInternetGateway[_y]={fqn:"aws-cdk-lib.aws_ec2.CfnInternetGateway",version:"2.51.0"},CfnInternetGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::InternetGateway";function CfnKeyPairPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("keyName",cdk.requiredValidator)(properties.keyName)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("keyType",cdk.validateString)(properties.keyType)),errors.collect(cdk.propertyValidator("publicKeyMaterial",cdk.validateString)(properties.publicKeyMaterial)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnKeyPairProps"')}function cfnKeyPairPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnKeyPairPropsValidator(properties).assertSuccess(),{KeyName:cdk.stringToCloudFormation(properties.keyName),KeyType:cdk.stringToCloudFormation(properties.keyType),PublicKeyMaterial:cdk.stringToCloudFormation(properties.publicKeyMaterial),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnKeyPairPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("keyName","KeyName",cfn_parse.FromCloudFormation.getString(properties.KeyName)),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse.FromCloudFormation.getString(properties.KeyType):void 0),ret.addPropertyResult("publicKeyMaterial","PublicKeyMaterial",properties.PublicKeyMaterial!=null?cfn_parse.FromCloudFormation.getString(properties.PublicKeyMaterial):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 CfnKeyPair extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnKeyPair.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnKeyPairProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnKeyPair),error}cdk.requireProperty(props,"keyName",this),this.attrKeyFingerprint=cdk.Token.asString(this.getAtt("KeyFingerprint")),this.attrKeyPairId=cdk.Token.asString(this.getAtt("KeyPairId")),this.keyName=props.keyName,this.keyType=props.keyType,this.publicKeyMaterial=props.publicKeyMaterial,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::KeyPair",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnKeyPairPropsFromCloudFormation(resourceProperties),ret=new CfnKeyPair(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",CfnKeyPair.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{keyName:this.keyName,keyType:this.keyType,publicKeyMaterial:this.publicKeyMaterial,tags:this.tags.renderTags()}}renderProperties(props){return cfnKeyPairPropsToCloudFormation(props)}}exports.CfnKeyPair=CfnKeyPair,_z=JSII_RTTI_SYMBOL_1,CfnKeyPair[_z]={fqn:"aws-cdk-lib.aws_ec2.CfnKeyPair",version:"2.51.0"},CfnKeyPair.CFN_RESOURCE_TYPE_NAME="AWS::EC2::KeyPair";function CfnLaunchTemplatePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateData",cdk.requiredValidator)(properties.launchTemplateData)),errors.collect(cdk.propertyValidator("launchTemplateData",CfnLaunchTemplate_LaunchTemplateDataPropertyValidator)(properties.launchTemplateData)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnLaunchTemplate_LaunchTemplateTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("versionDescription",cdk.validateString)(properties.versionDescription)),errors.wrap('supplied properties not correct for "CfnLaunchTemplateProps"')}function cfnLaunchTemplatePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplatePropsValidator(properties).assertSuccess(),{LaunchTemplateData:cfnLaunchTemplateLaunchTemplateDataPropertyToCloudFormation(properties.launchTemplateData),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),TagSpecifications:cdk.listMapper(cfnLaunchTemplateLaunchTemplateTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),VersionDescription:cdk.stringToCloudFormation(properties.versionDescription)}):properties}function CfnLaunchTemplatePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateData","LaunchTemplateData",CfnLaunchTemplateLaunchTemplateDataPropertyFromCloudFormation(properties.LaunchTemplateData)),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("versionDescription","VersionDescription",properties.VersionDescription!=null?cfn_parse.FromCloudFormation.getString(properties.VersionDescription):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLaunchTemplate extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnLaunchTemplateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLaunchTemplate),error}cdk.requireProperty(props,"launchTemplateData",this),this.attrDefaultVersionNumber=cdk.Token.asString(this.getAtt("DefaultVersionNumber")),this.attrLatestVersionNumber=cdk.Token.asString(this.getAtt("LatestVersionNumber")),this.launchTemplateData=props.launchTemplateData,this.launchTemplateName=props.launchTemplateName,this.tagSpecifications=props.tagSpecifications,this.versionDescription=props.versionDescription}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLaunchTemplatePropsFromCloudFormation(resourceProperties),ret=new CfnLaunchTemplate(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",CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{launchTemplateData:this.launchTemplateData,launchTemplateName:this.launchTemplateName,tagSpecifications:this.tagSpecifications,versionDescription:this.versionDescription}}renderProperties(props){return cfnLaunchTemplatePropsToCloudFormation(props)}}exports.CfnLaunchTemplate=CfnLaunchTemplate,_0=JSII_RTTI_SYMBOL_1,CfnLaunchTemplate[_0]={fqn:"aws-cdk-lib.aws_ec2.CfnLaunchTemplate",version:"2.51.0"},CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME="AWS::EC2::LaunchTemplate";function CfnLaunchTemplate_AcceleratorCountPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountProperty"')}function cfnLaunchTemplateAcceleratorCountPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_AcceleratorCountPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateAcceleratorCountPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_AcceleratorTotalMemoryMiBPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBProperty"')}function cfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_AcceleratorTotalMemoryMiBPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_BaselineEbsBandwidthMbpsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsProperty"')}function cfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_BaselineEbsBandwidthMbpsPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_BlockDeviceMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deviceName",cdk.validateString)(properties.deviceName)),errors.collect(cdk.propertyValidator("ebs",CfnLaunchTemplate_EbsPropertyValidator)(properties.ebs)),errors.collect(cdk.propertyValidator("noDevice",cdk.validateString)(properties.noDevice)),errors.collect(cdk.propertyValidator("virtualName",cdk.validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function cfnLaunchTemplateBlockDeviceMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_BlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk.stringToCloudFormation(properties.deviceName),Ebs:cfnLaunchTemplateEbsPropertyToCloudFormation(properties.ebs),NoDevice:cdk.stringToCloudFormation(properties.noDevice),VirtualName:cdk.stringToCloudFormation(properties.virtualName)}):properties}function CfnLaunchTemplateBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse.FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnLaunchTemplateEbsPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse.FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CapacityReservationSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityReservationPreference",cdk.validateString)(properties.capacityReservationPreference)),errors.collect(cdk.propertyValidator("capacityReservationTarget",CfnLaunchTemplate_CapacityReservationTargetPropertyValidator)(properties.capacityReservationTarget)),errors.wrap('supplied properties not correct for "CapacityReservationSpecificationProperty"')}function cfnLaunchTemplateCapacityReservationSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CapacityReservationSpecificationPropertyValidator(properties).assertSuccess(),{CapacityReservationPreference:cdk.stringToCloudFormation(properties.capacityReservationPreference),CapacityReservationTarget:cfnLaunchTemplateCapacityReservationTargetPropertyToCloudFormation(properties.capacityReservationTarget)}):properties}function CfnLaunchTemplateCapacityReservationSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityReservationPreference","CapacityReservationPreference",properties.CapacityReservationPreference!=null?cfn_parse.FromCloudFormation.getString(properties.CapacityReservationPreference):void 0),ret.addPropertyResult("capacityReservationTarget","CapacityReservationTarget",properties.CapacityReservationTarget!=null?CfnLaunchTemplateCapacityReservationTargetPropertyFromCloudFormation(properties.CapacityReservationTarget):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CapacityReservationTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityReservationId",cdk.validateString)(properties.capacityReservationId)),errors.collect(cdk.propertyValidator("capacityReservationResourceGroupArn",cdk.validateString)(properties.capacityReservationResourceGroupArn)),errors.wrap('supplied properties not correct for "CapacityReservationTargetProperty"')}function cfnLaunchTemplateCapacityReservationTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CapacityReservationTargetPropertyValidator(properties).assertSuccess(),{CapacityReservationId:cdk.stringToCloudFormation(properties.capacityReservationId),CapacityReservationResourceGroupArn:cdk.stringToCloudFormation(properties.capacityReservationResourceGroupArn)}):properties}function CfnLaunchTemplateCapacityReservationTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityReservationId","CapacityReservationId",properties.CapacityReservationId!=null?cfn_parse.FromCloudFormation.getString(properties.CapacityReservationId):void 0),ret.addPropertyResult("capacityReservationResourceGroupArn","CapacityReservationResourceGroupArn",properties.CapacityReservationResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.CapacityReservationResourceGroupArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CpuOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("coreCount",cdk.validateNumber)(properties.coreCount)),errors.collect(cdk.propertyValidator("threadsPerCore",cdk.validateNumber)(properties.threadsPerCore)),errors.wrap('supplied properties not correct for "CpuOptionsProperty"')}function cfnLaunchTemplateCpuOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CpuOptionsPropertyValidator(properties).assertSuccess(),{CoreCount:cdk.numberToCloudFormation(properties.coreCount),ThreadsPerCore:cdk.numberToCloudFormation(properties.threadsPerCore)}):properties}function CfnLaunchTemplateCpuOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("coreCount","CoreCount",properties.CoreCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.CoreCount):void 0),ret.addPropertyResult("threadsPerCore","ThreadsPerCore",properties.ThreadsPerCore!=null?cfn_parse.FromCloudFormation.getNumber(properties.ThreadsPerCore):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CreditSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cpuCredits",cdk.validateString)(properties.cpuCredits)),errors.wrap('supplied properties not correct for "CreditSpecificationProperty"')}function cfnLaunchTemplateCreditSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CreditSpecificationPropertyValidator(properties).assertSuccess(),{CpuCredits:cdk.stringToCloudFormation(properties.cpuCredits)}):properties}function CfnLaunchTemplateCreditSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cpuCredits","CpuCredits",properties.CpuCredits!=null?cfn_parse.FromCloudFormation.getString(properties.CpuCredits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_EbsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("kmsKeyId",cdk.validateString)(properties.kmsKeyId)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("throughput",cdk.validateNumber)(properties.throughput)),errors.collect(cdk.propertyValidator("volumeSize",cdk.validateNumber)(properties.volumeSize)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsProperty"')}function cfnLaunchTemplateEbsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_EbsPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),KmsKeyId:cdk.stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),Throughput:cdk.numberToCloudFormation(properties.throughput),VolumeSize:cdk.numberToCloudFormation(properties.volumeSize),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnLaunchTemplateEbsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse.FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse.FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_ElasticGpuSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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.validateString)(properties.type)),errors.wrap('supplied properties not correct for "ElasticGpuSpecificationProperty"')}function cfnLaunchTemplateElasticGpuSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_ElasticGpuSpecificationPropertyValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnLaunchTemplateElasticGpuSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_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",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_EnclaveOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "EnclaveOptionsProperty"')}function cfnLaunchTemplateEnclaveOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_EnclaveOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnLaunchTemplateEnclaveOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_HibernationOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("configured",cdk.validateBoolean)(properties.configured)),errors.wrap('supplied properties not correct for "HibernationOptionsProperty"')}function cfnLaunchTemplateHibernationOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_HibernationOptionsPropertyValidator(properties).assertSuccess(),{Configured:cdk.booleanToCloudFormation(properties.configured)}):properties}function CfnLaunchTemplateHibernationOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("configured","Configured",properties.Configured!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Configured):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_IamInstanceProfilePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "IamInstanceProfileProperty"')}function cfnLaunchTemplateIamInstanceProfilePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_IamInstanceProfilePropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnLaunchTemplateIamInstanceProfilePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse.FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse.FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_InstanceMarketOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("marketType",cdk.validateString)(properties.marketType)),errors.collect(cdk.propertyValidator("spotOptions",CfnLaunchTemplate_SpotOptionsPropertyValidator)(properties.spotOptions)),errors.wrap('supplied properties not correct for "InstanceMarketOptionsProperty"')}function cfnLaunchTemplateInstanceMarketOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_InstanceMarketOptionsPropertyValidator(properties).assertSuccess(),{MarketType:cdk.stringToCloudFormation(properties.marketType),SpotOptions:cfnLaunchTemplateSpotOptionsPropertyToCloudFormation(properties.spotOptions)}):properties}function CfnLaunchTemplateInstanceMarketOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("marketType","MarketType",properties.MarketType!=null?cfn_parse.FromCloudFormation.getString(properties.MarketType):void 0),ret.addPropertyResult("spotOptions","SpotOptions",properties.SpotOptions!=null?CfnLaunchTemplateSpotOptionsPropertyFromCloudFormation(properties.SpotOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_InstanceRequirementsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceleratorCount",CfnLaunchTemplate_AcceleratorCountPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk.propertyValidator("acceleratorManufacturers",cdk.listValidator(cdk.validateString))(properties.acceleratorManufacturers)),errors.collect(cdk.propertyValidator("acceleratorNames",cdk.listValidator(cdk.validateString))(properties.acceleratorNames)),errors.collect(cdk.propertyValidator("acceleratorTotalMemoryMiB",CfnLaunchTemplate_AcceleratorTotalMemoryMiBPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk.propertyValidator("acceleratorTypes",cdk.listValidator(cdk.validateString))(properties.acceleratorTypes)),errors.collect(cdk.propertyValidator("allowedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.allowedInstanceTypes)),errors.collect(cdk.propertyValidator("bareMetal",cdk.validateString)(properties.bareMetal)),errors.collect(cdk.propertyValidator("baselineEbsBandwidthMbps",CfnLaunchTemplate_BaselineEbsBandwidthMbpsPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk.propertyValidator("burstablePerformance",cdk.validateString)(properties.burstablePerformance)),errors.collect(cdk.propertyValidator("cpuManufacturers",cdk.listValidator(cdk.validateString))(properties.cpuManufacturers)),errors.collect(cdk.propertyValidator("excludedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.excludedInstanceTypes)),errors.collect(cdk.propertyValidator("instanceGenerations",cdk.listValidator(cdk.validateString))(properties.instanceGenerations)),errors.collect(cdk.propertyValidator("localStorage",cdk.validateString)(properties.localStorage)),errors.collect(cdk.propertyValidator("localStorageTypes",cdk.listValidator(cdk.validateString))(properties.localStorageTypes)),errors.collect(cdk.propertyValidator("memoryGiBPerVCpu",CfnLaunchTemplate_MemoryGiBPerVCpuPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk.propertyValidator("memoryMiB",CfnLaunchTemplate_MemoryMiBPropertyValidator)(properties.memoryMiB)),errors.collect(cdk.propertyValidator("networkBandwidthGbps",CfnLaunchTemplate_NetworkBandwidthGbpsPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk.propertyValidator("networkInterfaceCount",CfnLaunchTemplate_NetworkInterfaceCountPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk.propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("requireHibernateSupport",cdk.validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk.propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("totalLocalStorageGb",CfnLaunchTemplate_TotalLocalStorageGBPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk.propertyValidator("vCpuCount",CfnLaunchTemplate_VCpuCountPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsProperty"')}function cfnLaunchTemplateInstanceRequirementsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_InstanceRequirementsPropertyValidator(properties).assertSuccess(),{AcceleratorCount:cfnLaunchTemplateAcceleratorCountPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:cfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk.stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:cfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BurstablePerformance:cdk.stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk.listMapper(cdk.stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk.stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.localStorageTypes),MemoryGiBPerVCpu:cfnLaunchTemplateMemoryGiBPerVCpuPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:cfnLaunchTemplateMemoryMiBPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:cfnLaunchTemplateNetworkBandwidthGbpsPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:cfnLaunchTemplateNetworkInterfaceCountPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk.booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:cfnLaunchTemplateTotalLocalStorageGBPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:cfnLaunchTemplateVCpuCountPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnLaunchTemplateInstanceRequirementsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnLaunchTemplateAcceleratorCountPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse.FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse.FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse.FromCloudFormation.getStringArray(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse.FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.LocalStorageTypes):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnLaunchTemplateMemoryGiBPerVCpuPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnLaunchTemplateMemoryMiBPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnLaunchTemplateNetworkBandwidthGbpsPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnLaunchTemplateNetworkInterfaceCountPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnLaunchTemplateTotalLocalStorageGBPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnLaunchTemplateVCpuCountPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_Ipv4PrefixSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv4Prefix",cdk.validateString)(properties.ipv4Prefix)),errors.wrap('supplied properties not correct for "Ipv4PrefixSpecificationProperty"')}function cfnLaunchTemplateIpv4PrefixSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_Ipv4PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv4Prefix:cdk.stringToCloudFormation(properties.ipv4Prefix)}):properties}function CfnLaunchTemplateIpv4PrefixSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv4Prefix","Ipv4Prefix",properties.Ipv4Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv4Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_Ipv6AddPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "Ipv6AddProperty"')}function cfnLaunchTemplateIpv6AddPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_Ipv6AddPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnLaunchTemplateIpv6AddPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",properties.Ipv6Address!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6Address):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_Ipv6PrefixSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Prefix",cdk.validateString)(properties.ipv6Prefix)),errors.wrap('supplied properties not correct for "Ipv6PrefixSpecificationProperty"')}function cfnLaunchTemplateIpv6PrefixSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_Ipv6PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv6Prefix:cdk.stringToCloudFormation(properties.ipv6Prefix)}):properties}function CfnLaunchTemplateIpv6PrefixSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Prefix","Ipv6Prefix",properties.Ipv6Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_LaunchTemplateDataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blockDeviceMappings",cdk.listValidator(CfnLaunchTemplate_BlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk.propertyValidator("capacityReservationSpecification",CfnLaunchTemplate_CapacityReservationSpecificationPropertyValidator)(properties.capacityReservationSpecification)),errors.collect(cdk.propertyValidator("cpuOptions",CfnLaunchTemplate_CpuOptionsPropertyValidator)(properties.cpuOptions)),errors.collect(cdk.propertyValidator("creditSpecification",CfnLaunchTemplate_CreditSpecificationPropertyValidator)(properties.creditSpecification)),errors.collect(cdk.propertyValidator("disableApiStop",cdk.validateBoolean)(properties.disableApiStop)),errors.collect(cdk.propertyValidator("disableApiTermination",cdk.validateBoolean)(properties.disableApiTermination)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("elasticGpuSpecifications",cdk.listValidator(CfnLaunchTemplate_ElasticGpuSpecificationPropertyValidator))(properties.elasticGpuSpecifications)),errors.collect(cdk.propertyValidator("elasticInferenceAccelerators",cdk.listValidator(CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorPropertyValidator))(properties.elasticInferenceAccelerators)),errors.collect(cdk.propertyValidator("enclaveOptions",CfnLaunchTemplate_EnclaveOptionsPropertyValidator)(properties.enclaveOptions)),errors.collect(cdk.propertyValidator("hibernationOptions",CfnLaunchTemplate_HibernationOptionsPropertyValidator)(properties.hibernationOptions)),errors.collect(cdk.propertyValidator("iamInstanceProfile",CfnLaunchTemplate_IamInstanceProfilePropertyValidator)(properties.iamInstanceProfile)),errors.collect(cdk.propertyValidator("imageId",cdk.validateString)(properties.imageId)),errors.collect(cdk.propertyValidator("instanceInitiatedShutdownBehavior",cdk.validateString)(properties.instanceInitiatedShutdownBehavior)),errors.collect(cdk.propertyValidator("instanceMarketOptions",CfnLaunchTemplate_InstanceMarketOptionsPropertyValidator)(properties.instanceMarketOptions)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnLaunchTemplate_InstanceRequirementsPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("kernelId",cdk.validateString)(properties.kernelId)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("licenseSpecifications",cdk.listValidator(CfnLaunchTemplate_LicenseSpecificationPropertyValidator))(properties.licenseSpecifications)),errors.collect(cdk.propertyValidator("maintenanceOptions",CfnLaunchTemplate_MaintenanceOptionsPropertyValidator)(properties.maintenanceOptions)),errors.collect(cdk.propertyValidator("metadataOptions",CfnLaunchTemplate_MetadataOptionsPropertyValidator)(properties.metadataOptions)),errors.collect(cdk.propertyValidator("monitoring",CfnLaunchTemplate_MonitoringPropertyValidator)(properties.monitoring)),errors.collect(cdk.propertyValidator("networkInterfaces",cdk.listValidator(CfnLaunchTemplate_NetworkInterfacePropertyValidator))(properties.networkInterfaces)),errors.collect(cdk.propertyValidator("placement",CfnLaunchTemplate_PlacementPropertyValidator)(properties.placement)),errors.collect(cdk.propertyValidator("privateDnsNameOptions",CfnLaunchTemplate_PrivateDnsNameOptionsPropertyValidator)(properties.privateDnsNameOptions)),errors.collect(cdk.propertyValidator("ramDiskId",cdk.validateString)(properties.ramDiskId)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(cdk.validateString))(properties.securityGroups)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnLaunchTemplate_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("userData",cdk.validateString)(properties.userData)),errors.wrap('supplied properties not correct for "LaunchTemplateDataProperty"')}function cfnLaunchTemplateLaunchTemplateDataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LaunchTemplateDataPropertyValidator(properties).assertSuccess(),{BlockDeviceMappings:cdk.listMapper(cfnLaunchTemplateBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),CapacityReservationSpecification:cfnLaunchTemplateCapacityReservationSpecificationPropertyToCloudFormation(properties.capacityReservationSpecification),CpuOptions:cfnLaunchTemplateCpuOptionsPropertyToCloudFormation(properties.cpuOptions),CreditSpecification:cfnLaunchTemplateCreditSpecificationPropertyToCloudFormation(properties.creditSpecification),DisableApiStop:cdk.booleanToCloudFormation(properties.disableApiStop),DisableApiTermination:cdk.booleanToCloudFormation(properties.disableApiTermination),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),ElasticGpuSpecifications:cdk.listMapper(cfnLaunchTemplateElasticGpuSpecificationPropertyToCloudFormation)(properties.elasticGpuSpecifications),ElasticInferenceAccelerators:cdk.listMapper(cfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyToCloudFormation)(properties.elasticInferenceAccelerators),EnclaveOptions:cfnLaunchTemplateEnclaveOptionsPropertyToCloudFormation(properties.enclaveOptions),HibernationOptions:cfnLaunchTemplateHibernationOptionsPropertyToCloudFormation(properties.hibernationOptions),IamInstanceProfile:cfnLaunchTemplateIamInstanceProfilePropertyToCloudFormation(properties.iamInstanceProfile),ImageId:cdk.stringToCloudFormation(properties.imageId),InstanceInitiatedShutdownBehavior:cdk.stringToCloudFormation(properties.instanceInitiatedShutdownBehavior),InstanceMarketOptions:cfnLaunchTemplateInstanceMarketOptionsPropertyToCloudFormation(properties.instanceMarketOptions),InstanceRequirements:cfnLaunchTemplateInstanceRequirementsPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),KernelId:cdk.stringToCloudFormation(properties.kernelId),KeyName:cdk.stringToCloudFormation(properties.keyName),LicenseSpecifications:cdk.listMapper(cfnLaunchTemplateLicenseSpecificationPropertyToCloudFormation)(properties.licenseSpecifications),MaintenanceOptions:cfnLaunchTemplateMaintenanceOptionsPropertyToCloudFormation(properties.maintenanceOptions),MetadataOptions:cfnLaunchTemplateMetadataOptionsPropertyToCloudFormation(properties.metadataOptions),Monitoring:cfnLaunchTemplateMonitoringPropertyToCloudFormation(properties.monitoring),NetworkInterfaces:cdk.listMapper(cfnLaunchTemplateNetworkInterfacePropertyToCloudFormation)(properties.networkInterfaces),Placement:cfnLaunchTemplatePlacementPropertyToCloudFormation(properties.placement),PrivateDnsNameOptions:cfnLaunchTemplatePrivateDnsNameOptionsPropertyToCloudFormation(properties.privateDnsNameOptions),RamDiskId:cdk.stringToCloudFormation(properties.ramDiskId),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SecurityGroups:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroups),TagSpecifications:cdk.listMapper(cfnLaunchTemplateTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),UserData:cdk.stringToCloudFormation(properties.userData)}):properties}function CfnLaunchTemplateLaunchTemplateDataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("capacityReservationSpecification","CapacityReservationSpecification",properties.CapacityReservationSpecification!=null?CfnLaunchTemplateCapacityReservationSpecificationPropertyFromCloudFormation(properties.CapacityReservationSpecification):void 0),ret.addPropertyResult("cpuOptions","CpuOptions",properties.CpuOptions!=null?CfnLaunchTemplateCpuOptionsPropertyFromCloudFormation(properties.CpuOptions):void 0),ret.addPropertyResult("creditSpecification","CreditSpecification",properties.CreditSpecification!=null?CfnLaunchTemplateCreditSpecificationPropertyFromCloudFormation(properties.CreditSpecification):void 0),ret.addPropertyResult("disableApiStop","DisableApiStop",properties.DisableApiStop!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableApiStop):void 0),ret.addPropertyResult("disableApiTermination","DisableApiTermination",properties.DisableApiTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableApiTermination):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("elasticGpuSpecifications","ElasticGpuSpecifications",properties.ElasticGpuSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateElasticGpuSpecificationPropertyFromCloudFormation)(properties.ElasticGpuSpecifications):void 0),ret.addPropertyResult("elasticInferenceAccelerators","ElasticInferenceAccelerators",properties.ElasticInferenceAccelerators!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyFromCloudFormation)(properties.ElasticInferenceAccelerators):void 0),ret.addPropertyResult("enclaveOptions","EnclaveOptions",properties.EnclaveOptions!=null?CfnLaunchTemplateEnclaveOptionsPropertyFromCloudFormation(properties.EnclaveOptions):void 0),ret.addPropertyResult("hibernationOptions","HibernationOptions",properties.HibernationOptions!=null?CfnLaunchTemplateHibernationOptionsPropertyFromCloudFormation(properties.HibernationOptions):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?CfnLaunchTemplateIamInstanceProfilePropertyFromCloudFormation(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse.FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceInitiatedShutdownBehavior","InstanceInitiatedShutdownBehavior",properties.InstanceInitiatedShutdownBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInitiatedShutdownBehavior):void 0),ret.addPropertyResult("instanceMarketOptions","InstanceMarketOptions",properties.InstanceMarketOptions!=null?CfnLaunchTemplateInstanceMarketOptionsPropertyFromCloudFormation(properties.InstanceMarketOptions):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnLaunchTemplateInstanceRequirementsPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse.FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse.FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("licenseSpecifications","LicenseSpecifications",properties.LicenseSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateLicenseSpecificationPropertyFromCloudFormation)(properties.LicenseSpecifications):void 0),ret.addPropertyResult("maintenanceOptions","MaintenanceOptions",properties.MaintenanceOptions!=null?CfnLaunchTemplateMaintenanceOptionsPropertyFromCloudFormation(properties.MaintenanceOptions):void 0),ret.addPropertyResult("metadataOptions","MetadataOptions",properties.MetadataOptions!=null?CfnLaunchTemplateMetadataOptionsPropertyFromCloudFormation(properties.MetadataOptions):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?CfnLaunchTemplateMonitoringPropertyFromCloudFormation(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateNetworkInterfacePropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnLaunchTemplatePlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("privateDnsNameOptions","PrivateDnsNameOptions",properties.PrivateDnsNameOptions!=null?CfnLaunchTemplatePrivateDnsNameOptionsPropertyFromCloudFormation(properties.PrivateDnsNameOptions):void 0),ret.addPropertyResult("ramDiskId","RamDiskId",properties.RamDiskId!=null?cfn_parse.FromCloudFormation.getString(properties.RamDiskId):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroups):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse.FromCloudFormation.getString(properties.UserData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("count",cdk.validateNumber)(properties.count)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.wrap('supplied properties not correct for "LaunchTemplateElasticInferenceAcceleratorProperty"')}function cfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorPropertyValidator(properties).assertSuccess(),{Count:cdk.numberToCloudFormation(properties.count),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse.FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_LaunchTemplateTagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "LaunchTemplateTagSpecificationProperty"')}function cfnLaunchTemplateLaunchTemplateTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LaunchTemplateTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnLaunchTemplate_LicenseSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("licenseConfigurationArn",cdk.validateString)(properties.licenseConfigurationArn)),errors.wrap('supplied properties not correct for "LicenseSpecificationProperty"')}function cfnLaunchTemplateLicenseSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LicenseSpecificationPropertyValidator(properties).assertSuccess(),{LicenseConfigurationArn:cdk.stringToCloudFormation(properties.licenseConfigurationArn)}):properties}function CfnLaunchTemplateLicenseSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("licenseConfigurationArn","LicenseConfigurationArn",properties.LicenseConfigurationArn!=null?cfn_parse.FromCloudFormation.getString(properties.LicenseConfigurationArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MaintenanceOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoRecovery",cdk.validateString)(properties.autoRecovery)),errors.wrap('supplied properties not correct for "MaintenanceOptionsProperty"')}function cfnLaunchTemplateMaintenanceOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MaintenanceOptionsPropertyValidator(properties).assertSuccess(),{AutoRecovery:cdk.stringToCloudFormation(properties.autoRecovery)}):properties}function CfnLaunchTemplateMaintenanceOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("autoRecovery","AutoRecovery",properties.AutoRecovery!=null?cfn_parse.FromCloudFormation.getString(properties.AutoRecovery):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MemoryGiBPerVCpuPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuProperty"')}function cfnLaunchTemplateMemoryGiBPerVCpuPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MemoryGiBPerVCpuPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateMemoryGiBPerVCpuPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MemoryMiBPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBProperty"')}function cfnLaunchTemplateMemoryMiBPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MemoryMiBPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateMemoryMiBPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MetadataOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("httpEndpoint",cdk.validateString)(properties.httpEndpoint)),errors.collect(cdk.propertyValidator("httpProtocolIpv6",cdk.validateString)(properties.httpProtocolIpv6)),errors.collect(cdk.propertyValidator("httpPutResponseHopLimit",cdk.validateNumber)(properties.httpPutResponseHopLimit)),errors.collect(cdk.propertyValidator("httpTokens",cdk.validateString)(properties.httpTokens)),errors.collect(cdk.propertyValidator("instanceMetadataTags",cdk.validateString)(properties.instanceMetadataTags)),errors.wrap('supplied properties not correct for "MetadataOptionsProperty"')}function cfnLaunchTemplateMetadataOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MetadataOptionsPropertyValidator(properties).assertSuccess(),{HttpEndpoint:cdk.stringToCloudFormation(properties.httpEndpoint),HttpProtocolIpv6:cdk.stringToCloudFormation(properties.httpProtocolIpv6),HttpPutResponseHopLimit:cdk.numberToCloudFormation(properties.httpPutResponseHopLimit),HttpTokens:cdk.stringToCloudFormation(properties.httpTokens),InstanceMetadataTags:cdk.stringToCloudFormation(properties.instanceMetadataTags)}):properties}function CfnLaunchTemplateMetadataOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("httpEndpoint","HttpEndpoint",properties.HttpEndpoint!=null?cfn_parse.FromCloudFormation.getString(properties.HttpEndpoint):void 0),ret.addPropertyResult("httpProtocolIpv6","HttpProtocolIpv6",properties.HttpProtocolIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.HttpProtocolIpv6):void 0),ret.addPropertyResult("httpPutResponseHopLimit","HttpPutResponseHopLimit",properties.HttpPutResponseHopLimit!=null?cfn_parse.FromCloudFormation.getNumber(properties.HttpPutResponseHopLimit):void 0),ret.addPropertyResult("httpTokens","HttpTokens",properties.HttpTokens!=null?cfn_parse.FromCloudFormation.getString(properties.HttpTokens):void 0),ret.addPropertyResult("instanceMetadataTags","InstanceMetadataTags",properties.InstanceMetadataTags!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceMetadataTags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MonitoringPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "MonitoringProperty"')}function cfnLaunchTemplateMonitoringPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MonitoringPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnLaunchTemplateMonitoringPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_NetworkBandwidthGbpsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsProperty"')}function cfnLaunchTemplateNetworkBandwidthGbpsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_NetworkBandwidthGbpsPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateNetworkBandwidthGbpsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_NetworkInterfacePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associateCarrierIpAddress",cdk.validateBoolean)(properties.associateCarrierIpAddress)),errors.collect(cdk.propertyValidator("associatePublicIpAddress",cdk.validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateNumber)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("groups",cdk.listValidator(cdk.validateString))(properties.groups)),errors.collect(cdk.propertyValidator("interfaceType",cdk.validateString)(properties.interfaceType)),errors.collect(cdk.propertyValidator("ipv4PrefixCount",cdk.validateNumber)(properties.ipv4PrefixCount)),errors.collect(cdk.propertyValidator("ipv4Prefixes",cdk.listValidator(CfnLaunchTemplate_Ipv4PrefixSpecificationPropertyValidator))(properties.ipv4Prefixes)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnLaunchTemplate_Ipv6AddPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("ipv6PrefixCount",cdk.validateNumber)(properties.ipv6PrefixCount)),errors.collect(cdk.propertyValidator("ipv6Prefixes",cdk.listValidator(CfnLaunchTemplate_Ipv6PrefixSpecificationPropertyValidator))(properties.ipv6Prefixes)),errors.collect(cdk.propertyValidator("networkCardIndex",cdk.validateNumber)(properties.networkCardIndex)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnLaunchTemplate_PrivateIpAddPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "NetworkInterfaceProperty"')}function cfnLaunchTemplateNetworkInterfacePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_NetworkInterfacePropertyValidator(properties).assertSuccess(),{AssociateCarrierIpAddress:cdk.booleanToCloudFormation(properties.associateCarrierIpAddress),AssociatePublicIpAddress:cdk.booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Description:cdk.stringToCloudFormation(properties.description),DeviceIndex:cdk.numberToCloudFormation(properties.deviceIndex),Groups:cdk.listMapper(cdk.stringToCloudFormation)(properties.groups),InterfaceType:cdk.stringToCloudFormation(properties.interfaceType),Ipv4PrefixCount:cdk.numberToCloudFormation(properties.ipv4PrefixCount),Ipv4Prefixes:cdk.listMapper(cfnLaunchTemplateIpv4PrefixSpecificationPropertyToCloudFormation)(properties.ipv4Prefixes),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnLaunchTemplateIpv6AddPropertyToCloudFormation)(properties.ipv6Addresses),Ipv6PrefixCount:cdk.numberToCloudFormation(properties.ipv6PrefixCount),Ipv6Prefixes:cdk.listMapper(cfnLaunchTemplateIpv6PrefixSpecificationPropertyToCloudFormation)(properties.ipv6Prefixes),NetworkCardIndex:cdk.numberToCloudFormation(properties.networkCardIndex),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk.listMapper(cfnLaunchTemplatePrivateIpAddPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnLaunchTemplateNetworkInterfacePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associateCarrierIpAddress","AssociateCarrierIpAddress",properties.AssociateCarrierIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociateCarrierIpAddress):void 0),ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse.FromCloudFormation.getNumber(properties.DeviceIndex):void 0),ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Groups):void 0),ret.addPropertyResult("interfaceType","InterfaceType",properties.InterfaceType!=null?cfn_parse.FromCloudFormation.getString(properties.InterfaceType):void 0),ret.addPropertyResult("ipv4PrefixCount","Ipv4PrefixCount",properties.Ipv4PrefixCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv4PrefixCount):void 0),ret.addPropertyResult("ipv4Prefixes","Ipv4Prefixes",properties.Ipv4Prefixes!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateIpv4PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv4Prefixes):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateIpv6AddPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("ipv6PrefixCount","Ipv6PrefixCount",properties.Ipv6PrefixCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6PrefixCount):void 0),ret.addPropertyResult("ipv6Prefixes","Ipv6Prefixes",properties.Ipv6Prefixes!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateIpv6PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv6Prefixes):void 0),ret.addPropertyResult("networkCardIndex","NetworkCardIndex",properties.NetworkCardIndex!=null?cfn_parse.FromCloudFormation.getNumber(properties.NetworkCardIndex):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplatePrivateIpAddPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_NetworkInterfaceCountPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountProperty"')}function cfnLaunchTemplateNetworkInterfaceCountPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_NetworkInterfaceCountPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateNetworkInterfaceCountPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_PlacementPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("affinity",cdk.validateString)(properties.affinity)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("hostId",cdk.validateString)(properties.hostId)),errors.collect(cdk.propertyValidator("hostResourceGroupArn",cdk.validateString)(properties.hostResourceGroupArn)),errors.collect(cdk.propertyValidator("partitionNumber",cdk.validateNumber)(properties.partitionNumber)),errors.collect(cdk.propertyValidator("spreadDomain",cdk.validateString)(properties.spreadDomain)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "PlacementProperty"')}function cfnLaunchTemplatePlacementPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_PlacementPropertyValidator(properties).assertSuccess(),{Affinity:cdk.stringToCloudFormation(properties.affinity),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),GroupId:cdk.stringToCloudFormation(properties.groupId),GroupName:cdk.stringToCloudFormation(properties.groupName),HostId:cdk.stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk.stringToCloudFormation(properties.hostResourceGroupArn),PartitionNumber:cdk.numberToCloudFormation(properties.partitionNumber),SpreadDomain:cdk.stringToCloudFormation(properties.spreadDomain),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnLaunchTemplatePlacementPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("affinity","Affinity",properties.Affinity!=null?cfn_parse.FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupId","GroupId",properties.GroupId!=null?cfn_parse.FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse.FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("partitionNumber","PartitionNumber",properties.PartitionNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.PartitionNumber):void 0),ret.addPropertyResult("spreadDomain","SpreadDomain",properties.SpreadDomain!=null?cfn_parse.FromCloudFormation.getString(properties.SpreadDomain):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_PrivateDnsNameOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enableResourceNameDnsAaaaRecord",cdk.validateBoolean)(properties.enableResourceNameDnsAaaaRecord)),errors.collect(cdk.propertyValidator("enableResourceNameDnsARecord",cdk.validateBoolean)(properties.enableResourceNameDnsARecord)),errors.collect(cdk.propertyValidator("hostnameType",cdk.validateString)(properties.hostnameType)),errors.wrap('supplied properties not correct for "PrivateDnsNameOptionsProperty"')}function cfnLaunchTemplatePrivateDnsNameOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_PrivateDnsNameOptionsPropertyValidator(properties).assertSuccess(),{EnableResourceNameDnsAAAARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsAaaaRecord),EnableResourceNameDnsARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsARecord),HostnameType:cdk.stringToCloudFormation(properties.hostnameType)}):properties}function CfnLaunchTemplatePrivateDnsNameOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enableResourceNameDnsAaaaRecord","EnableResourceNameDnsAAAARecord",properties.EnableResourceNameDnsAAAARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsAAAARecord):void 0),ret.addPropertyResult("enableResourceNameDnsARecord","EnableResourceNameDnsARecord",properties.EnableResourceNameDnsARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsARecord):void 0),ret.addPropertyResult("hostnameType","HostnameType",properties.HostnameType!=null?cfn_parse.FromCloudFormation.getString(properties.HostnameType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_PrivateIpAddPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddProperty"')}function cfnLaunchTemplatePrivateIpAddPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_PrivateIpAddPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnLaunchTemplatePrivateIpAddPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",properties.Primary!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_SpotOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blockDurationMinutes",cdk.validateNumber)(properties.blockDurationMinutes)),errors.collect(cdk.propertyValidator("instanceInterruptionBehavior",cdk.validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk.propertyValidator("maxPrice",cdk.validateString)(properties.maxPrice)),errors.collect(cdk.propertyValidator("spotInstanceType",cdk.validateString)(properties.spotInstanceType)),errors.collect(cdk.propertyValidator("validUntil",cdk.validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "SpotOptionsProperty"')}function cfnLaunchTemplateSpotOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_SpotOptionsPropertyValidator(properties).assertSuccess(),{BlockDurationMinutes:cdk.numberToCloudFormation(properties.blockDurationMinutes),InstanceInterruptionBehavior:cdk.stringToCloudFormation(properties.instanceInterruptionBehavior),MaxPrice:cdk.stringToCloudFormation(properties.maxPrice),SpotInstanceType:cdk.stringToCloudFormation(properties.spotInstanceType),ValidUntil:cdk.stringToCloudFormation(properties.validUntil)}):properties}function CfnLaunchTemplateSpotOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDurationMinutes","BlockDurationMinutes",properties.BlockDurationMinutes!=null?cfn_parse.FromCloudFormation.getNumber(properties.BlockDurationMinutes):void 0),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("maxPrice","MaxPrice",properties.MaxPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxPrice):void 0),ret.addPropertyResult("spotInstanceType","SpotInstanceType",properties.SpotInstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.SpotInstanceType):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse.FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnLaunchTemplateTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLaunchTemplateTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnLaunchTemplate_TotalLocalStorageGBPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBProperty"')}function cfnLaunchTemplateTotalLocalStorageGBPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_TotalLocalStorageGBPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateTotalLocalStorageGBPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_VCpuCountPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountProperty"')}function cfnLaunchTemplateVCpuCountPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_VCpuCountPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateVCpuCountPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLocalGatewayRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.requiredValidator)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.validateString)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("localGatewayVirtualInterfaceGroupId",cdk.validateString)(properties.localGatewayVirtualInterfaceGroupId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteProps"')}function cfnLocalGatewayRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLocalGatewayRoutePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),LocalGatewayRouteTableId:cdk.stringToCloudFormation(properties.localGatewayRouteTableId),LocalGatewayVirtualInterfaceGroupId:cdk.stringToCloudFormation(properties.localGatewayVirtualInterfaceGroupId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId)}):properties}function CfnLocalGatewayRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("localGatewayRouteTableId","LocalGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.LocalGatewayRouteTableId)),ret.addPropertyResult("localGatewayVirtualInterfaceGroupId","LocalGatewayVirtualInterfaceGroupId",properties.LocalGatewayVirtualInterfaceGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.LocalGatewayVirtualInterfaceGroupId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRoute),error}cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"localGatewayRouteTableId",this),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrType=cdk.Token.asString(this.getAtt("Type")),this.destinationCidrBlock=props.destinationCidrBlock,this.localGatewayRouteTableId=props.localGatewayRouteTableId,this.localGatewayVirtualInterfaceGroupId=props.localGatewayVirtualInterfaceGroupId,this.networkInterfaceId=props.networkInterfaceId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRoutePropsFromCloudFormation(resourceProperties),ret=new CfnLocalGatewayRoute(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",CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destinationCidrBlock:this.destinationCidrBlock,localGatewayRouteTableId:this.localGatewayRouteTableId,localGatewayVirtualInterfaceGroupId:this.localGatewayVirtualInterfaceGroupId,networkInterfaceId:this.networkInterfaceId}}renderProperties(props){return cfnLocalGatewayRoutePropsToCloudFormation(props)}}exports.CfnLocalGatewayRoute=CfnLocalGatewayRoute,_1=JSII_RTTI_SYMBOL_1,CfnLocalGatewayRoute[_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRoute",version:"2.51.0"},CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRoute";function CfnLocalGatewayRouteTableVPCAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.requiredValidator)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.validateString)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteTableVPCAssociationProps"')}function cfnLocalGatewayRouteTableVPCAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLocalGatewayRouteTableVPCAssociationPropsValidator(properties).assertSuccess(),{LocalGatewayRouteTableId:cdk.stringToCloudFormation(properties.localGatewayRouteTableId),VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLocalGatewayRouteTableVPCAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("localGatewayRouteTableId","LocalGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.LocalGatewayRouteTableId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayRouteTableVPCAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteTableVPCAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRouteTableVPCAssociation),error}cdk.requireProperty(props,"localGatewayRouteTableId",this),cdk.requireProperty(props,"vpcId",this),this.attrLocalGatewayId=cdk.Token.asString(this.getAtt("LocalGatewayId")),this.attrLocalGatewayRouteTableVpcAssociationId=cdk.Token.asString(this.getAtt("LocalGatewayRouteTableVpcAssociationId")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.localGatewayRouteTableId=props.localGatewayRouteTableId,this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::LocalGatewayRouteTableVPCAssociation",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRouteTableVPCAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnLocalGatewayRouteTableVPCAssociation(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",CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{localGatewayRouteTableId:this.localGatewayRouteTableId,vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnLocalGatewayRouteTableVPCAssociationPropsToCloudFormation(props)}}exports.CfnLocalGatewayRouteTableVPCAssociation=CfnLocalGatewayRouteTableVPCAssociation,_2=JSII_RTTI_SYMBOL_1,CfnLocalGatewayRouteTableVPCAssociation[_2]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRouteTableVPCAssociation",version:"2.51.0"},CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRouteTableVPCAssociation";function CfnNatGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationId",cdk.validateString)(properties.allocationId)),errors.collect(cdk.propertyValidator("connectivityType",cdk.validateString)(properties.connectivityType)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNatGatewayProps"')}function cfnNatGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNatGatewayPropsValidator(properties).assertSuccess(),{SubnetId:cdk.stringToCloudFormation(properties.subnetId),AllocationId:cdk.stringToCloudFormation(properties.allocationId),ConnectivityType:cdk.stringToCloudFormation(properties.connectivityType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNatGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addPropertyResult("allocationId","AllocationId",properties.AllocationId!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationId):void 0),ret.addPropertyResult("connectivityType","ConnectivityType",properties.ConnectivityType!=null?cfn_parse.FromCloudFormation.getString(properties.ConnectivityType):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 CfnNatGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNatGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNatGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNatGateway),error}cdk.requireProperty(props,"subnetId",this),this.attrNatGatewayId=cdk.Token.asString(this.getAtt("NatGatewayId")),this.subnetId=props.subnetId,this.allocationId=props.allocationId,this.connectivityType=props.connectivityType,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NatGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNatGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnNatGateway(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",CfnNatGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetId:this.subnetId,allocationId:this.allocationId,connectivityType:this.connectivityType,tags:this.tags.renderTags()}}renderProperties(props){return cfnNatGatewayPropsToCloudFormation(props)}}exports.CfnNatGateway=CfnNatGateway,_3=JSII_RTTI_SYMBOL_1,CfnNatGateway[_3]={fqn:"aws-cdk-lib.aws_ec2.CfnNatGateway",version:"2.51.0"},CfnNatGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NatGateway";function CfnNetworkAclPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnNetworkAclProps"')}function cfnNetworkAclPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkAclPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkAcl extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkAclProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkAcl),error}cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkAcl",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkAclPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkAcl(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",CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkAclPropsToCloudFormation(props)}}exports.CfnNetworkAcl=CfnNetworkAcl,_4=JSII_RTTI_SYMBOL_1,CfnNetworkAcl[_4]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkAcl",version:"2.51.0"},CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkAcl";function CfnNetworkAclEntryPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("egress",cdk.validateBoolean)(properties.egress)),errors.collect(cdk.propertyValidator("icmp",CfnNetworkAclEntry_IcmpPropertyValidator)(properties.icmp)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("networkAclId",cdk.requiredValidator)(properties.networkAclId)),errors.collect(cdk.propertyValidator("networkAclId",cdk.validateString)(properties.networkAclId)),errors.collect(cdk.propertyValidator("portRange",CfnNetworkAclEntry_PortRangePropertyValidator)(properties.portRange)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateNumber)(properties.protocol)),errors.collect(cdk.propertyValidator("ruleAction",cdk.requiredValidator)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleAction",cdk.validateString)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.requiredValidator)(properties.ruleNumber)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.validateNumber)(properties.ruleNumber)),errors.wrap('supplied properties not correct for "CfnNetworkAclEntryProps"')}function cfnNetworkAclEntryPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclEntryPropsValidator(properties).assertSuccess(),{NetworkAclId:cdk.stringToCloudFormation(properties.networkAclId),Protocol:cdk.numberToCloudFormation(properties.protocol),RuleAction:cdk.stringToCloudFormation(properties.ruleAction),RuleNumber:cdk.numberToCloudFormation(properties.ruleNumber),CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),Egress:cdk.booleanToCloudFormation(properties.egress),Icmp:cfnNetworkAclEntryIcmpPropertyToCloudFormation(properties.icmp),Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),PortRange:cfnNetworkAclEntryPortRangePropertyToCloudFormation(properties.portRange)}):properties}function CfnNetworkAclEntryPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkAclId","NetworkAclId",cfn_parse.FromCloudFormation.getString(properties.NetworkAclId)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getNumber(properties.Protocol)),ret.addPropertyResult("ruleAction","RuleAction",cfn_parse.FromCloudFormation.getString(properties.RuleAction)),ret.addPropertyResult("ruleNumber","RuleNumber",cfn_parse.FromCloudFormation.getNumber(properties.RuleNumber)),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("egress","Egress",properties.Egress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Egress):void 0),ret.addPropertyResult("icmp","Icmp",properties.Icmp!=null?CfnNetworkAclEntryIcmpPropertyFromCloudFormation(properties.Icmp):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkAclEntryPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkAclEntry extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkAclEntryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkAclEntry),error}cdk.requireProperty(props,"networkAclId",this),cdk.requireProperty(props,"protocol",this),cdk.requireProperty(props,"ruleAction",this),cdk.requireProperty(props,"ruleNumber",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.networkAclId=props.networkAclId,this.protocol=props.protocol,this.ruleAction=props.ruleAction,this.ruleNumber=props.ruleNumber,this.cidrBlock=props.cidrBlock,this.egress=props.egress,this.icmp=props.icmp,this.ipv6CidrBlock=props.ipv6CidrBlock,this.portRange=props.portRange}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkAclEntryPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkAclEntry(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",CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkAclId:this.networkAclId,protocol:this.protocol,ruleAction:this.ruleAction,ruleNumber:this.ruleNumber,cidrBlock:this.cidrBlock,egress:this.egress,icmp:this.icmp,ipv6CidrBlock:this.ipv6CidrBlock,portRange:this.portRange}}renderProperties(props){return cfnNetworkAclEntryPropsToCloudFormation(props)}}exports.CfnNetworkAclEntry=CfnNetworkAclEntry,_5=JSII_RTTI_SYMBOL_1,CfnNetworkAclEntry[_5]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkAclEntry",version:"2.51.0"},CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkAclEntry";function CfnNetworkAclEntry_IcmpPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("code",cdk.validateNumber)(properties.code)),errors.collect(cdk.propertyValidator("type",cdk.validateNumber)(properties.type)),errors.wrap('supplied properties not correct for "IcmpProperty"')}function cfnNetworkAclEntryIcmpPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclEntry_IcmpPropertyValidator(properties).assertSuccess(),{Code:cdk.numberToCloudFormation(properties.code),Type:cdk.numberToCloudFormation(properties.type)}):properties}function CfnNetworkAclEntryIcmpPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("code","Code",properties.Code!=null?cfn_parse.FromCloudFormation.getNumber(properties.Code):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getNumber(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkAclEntry_PortRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("from",cdk.validateNumber)(properties.from)),errors.collect(cdk.propertyValidator("to",cdk.validateNumber)(properties.to)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function cfnNetworkAclEntryPortRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclEntry_PortRangePropertyValidator(properties).assertSuccess(),{From:cdk.numberToCloudFormation(properties.from),To:cdk.numberToCloudFormation(properties.to)}):properties}function CfnNetworkAclEntryPortRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("from","From",properties.From!=null?cfn_parse.FromCloudFormation.getNumber(properties.From):void 0),ret.addPropertyResult("to","To",properties.To!=null?cfn_parse.FromCloudFormation.getNumber(properties.To):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("excludePaths",cdk.listValidator(CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator))(properties.excludePaths)),errors.collect(cdk.propertyValidator("matchPaths",cdk.listValidator(CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator))(properties.matchPaths)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAccessScopeProps"')}function cfnNetworkInsightsAccessScopePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScopePropsValidator(properties).assertSuccess(),{ExcludePaths:cdk.listMapper(cfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation)(properties.excludePaths),MatchPaths:cdk.listMapper(cfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation)(properties.matchPaths),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAccessScopePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("excludePaths","ExcludePaths",properties.ExcludePaths!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation)(properties.ExcludePaths):void 0),ret.addPropertyResult("matchPaths","MatchPaths",properties.MatchPaths!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation)(properties.MatchPaths):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 CfnNetworkInsightsAccessScope extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsAccessScopeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAccessScope),error}this.attrCreatedDate=cdk.Token.asString(this.getAtt("CreatedDate")),this.attrNetworkInsightsAccessScopeArn=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeArn")),this.attrNetworkInsightsAccessScopeId=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeId")),this.attrUpdatedDate=cdk.Token.asString(this.getAtt("UpdatedDate")),this.excludePaths=props.excludePaths,this.matchPaths=props.matchPaths,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsAccessScope",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAccessScopePropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsAccessScope(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",CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{excludePaths:this.excludePaths,matchPaths:this.matchPaths,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsAccessScopePropsToCloudFormation(props)}}exports.CfnNetworkInsightsAccessScope=CfnNetworkInsightsAccessScope,_6=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsAccessScope[_6]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAccessScope",version:"2.51.0"},CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAccessScope";function CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destination",CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator)(properties.destination)),errors.collect(cdk.propertyValidator("source",CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator)(properties.source)),errors.collect(cdk.propertyValidator("throughResources",cdk.listValidator(CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestPropertyValidator))(properties.throughResources)),errors.wrap('supplied properties not correct for "AccessScopePathRequestProperty"')}function cfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator(properties).assertSuccess(),{Destination:cfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties.destination),Source:cfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties.source),ThroughResources:cdk.listMapper(cfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyToCloudFormation)(properties.throughResources)}):properties}function CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destination","Destination",properties.Destination!=null?CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties.Destination):void 0),ret.addPropertyResult("source","Source",properties.Source!=null?CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties.Source):void 0),ret.addPropertyResult("throughResources","ThroughResources",properties.ThroughResources!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyFromCloudFormation)(properties.ThroughResources):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationAddresses",cdk.listValidator(cdk.validateString))(properties.destinationAddresses)),errors.collect(cdk.propertyValidator("destinationPorts",cdk.listValidator(cdk.validateString))(properties.destinationPorts)),errors.collect(cdk.propertyValidator("destinationPrefixLists",cdk.listValidator(cdk.validateString))(properties.destinationPrefixLists)),errors.collect(cdk.propertyValidator("protocols",cdk.listValidator(cdk.validateString))(properties.protocols)),errors.collect(cdk.propertyValidator("sourceAddresses",cdk.listValidator(cdk.validateString))(properties.sourceAddresses)),errors.collect(cdk.propertyValidator("sourcePorts",cdk.listValidator(cdk.validateString))(properties.sourcePorts)),errors.collect(cdk.propertyValidator("sourcePrefixLists",cdk.listValidator(cdk.validateString))(properties.sourcePrefixLists)),errors.wrap('supplied properties not correct for "PacketHeaderStatementRequestProperty"')}function cfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestPropertyValidator(properties).assertSuccess(),{DestinationAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationAddresses),DestinationPorts:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationPorts),DestinationPrefixLists:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationPrefixLists),Protocols:cdk.listMapper(cdk.stringToCloudFormation)(properties.protocols),SourceAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourceAddresses),SourcePorts:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourcePorts),SourcePrefixLists:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourcePrefixLists)}):properties}function CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationAddresses","DestinationAddresses",properties.DestinationAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationAddresses):void 0),ret.addPropertyResult("destinationPorts","DestinationPorts",properties.DestinationPorts!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationPorts):void 0),ret.addPropertyResult("destinationPrefixLists","DestinationPrefixLists",properties.DestinationPrefixLists!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationPrefixLists):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Protocols):void 0),ret.addPropertyResult("sourceAddresses","SourceAddresses",properties.SourceAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourceAddresses):void 0),ret.addPropertyResult("sourcePorts","SourcePorts",properties.SourcePorts!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourcePorts):void 0),ret.addPropertyResult("sourcePrefixLists","SourcePrefixLists",properties.SourcePrefixLists!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourcePrefixLists):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("packetHeaderStatement",CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestPropertyValidator)(properties.packetHeaderStatement)),errors.collect(cdk.propertyValidator("resourceStatement",CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator)(properties.resourceStatement)),errors.wrap('supplied properties not correct for "PathStatementRequestProperty"')}function cfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator(properties).assertSuccess(),{PacketHeaderStatement:cfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyToCloudFormation(properties.packetHeaderStatement),ResourceStatement:cfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties.resourceStatement)}):properties}function CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("packetHeaderStatement","PacketHeaderStatement",properties.PacketHeaderStatement!=null?CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyFromCloudFormation(properties.PacketHeaderStatement):void 0),ret.addPropertyResult("resourceStatement","ResourceStatement",properties.ResourceStatement!=null?CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties.ResourceStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceTypes",cdk.listValidator(cdk.validateString))(properties.resourceTypes)),errors.collect(cdk.propertyValidator("resources",cdk.listValidator(cdk.validateString))(properties.resources)),errors.wrap('supplied properties not correct for "ResourceStatementRequestProperty"')}function cfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator(properties).assertSuccess(),{ResourceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.resourceTypes),Resources:cdk.listMapper(cdk.stringToCloudFormation)(properties.resources)}):properties}function CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceTypes","ResourceTypes",properties.ResourceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ResourceTypes):void 0),ret.addPropertyResult("resources","Resources",properties.Resources!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Resources):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceStatement",CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator)(properties.resourceStatement)),errors.wrap('supplied properties not correct for "ThroughResourcesStatementRequestProperty"')}function cfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestPropertyValidator(properties).assertSuccess(),{ResourceStatement:cfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties.resourceStatement)}):properties}function CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceStatement","ResourceStatement",properties.ResourceStatement!=null?CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties.ResourceStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopeAnalysisPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("networkInsightsAccessScopeId",cdk.requiredValidator)(properties.networkInsightsAccessScopeId)),errors.collect(cdk.propertyValidator("networkInsightsAccessScopeId",cdk.validateString)(properties.networkInsightsAccessScopeId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAccessScopeAnalysisProps"')}function cfnNetworkInsightsAccessScopeAnalysisPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScopeAnalysisPropsValidator(properties).assertSuccess(),{NetworkInsightsAccessScopeId:cdk.stringToCloudFormation(properties.networkInsightsAccessScopeId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAccessScopeAnalysisPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInsightsAccessScopeId","NetworkInsightsAccessScopeId",cfn_parse.FromCloudFormation.getString(properties.NetworkInsightsAccessScopeId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInsightsAccessScopeAnalysis extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsAccessScopeAnalysisProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAccessScopeAnalysis),error}cdk.requireProperty(props,"networkInsightsAccessScopeId",this),this.attrAnalyzedEniCount=cdk.Token.asNumber(this.getAtt("AnalyzedEniCount")),this.attrEndDate=cdk.Token.asString(this.getAtt("EndDate")),this.attrFindingsFound=cdk.Token.asString(this.getAtt("FindingsFound")),this.attrNetworkInsightsAccessScopeAnalysisArn=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeAnalysisArn")),this.attrNetworkInsightsAccessScopeAnalysisId=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeAnalysisId")),this.attrStartDate=cdk.Token.asString(this.getAtt("StartDate")),this.attrStatus=cdk.Token.asString(this.getAtt("Status")),this.attrStatusMessage=cdk.Token.asString(this.getAtt("StatusMessage")),this.networkInsightsAccessScopeId=props.networkInsightsAccessScopeId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsAccessScopeAnalysis",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAccessScopeAnalysisPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsAccessScopeAnalysis(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",CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkInsightsAccessScopeId:this.networkInsightsAccessScopeId,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsAccessScopeAnalysisPropsToCloudFormation(props)}}exports.CfnNetworkInsightsAccessScopeAnalysis=CfnNetworkInsightsAccessScopeAnalysis,_7=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsAccessScopeAnalysis[_7]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAccessScopeAnalysis",version:"2.51.0"},CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAccessScopeAnalysis";function CfnNetworkInsightsAnalysisPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("filterInArns",cdk.listValidator(cdk.validateString))(properties.filterInArns)),errors.collect(cdk.propertyValidator("networkInsightsPathId",cdk.requiredValidator)(properties.networkInsightsPathId)),errors.collect(cdk.propertyValidator("networkInsightsPathId",cdk.validateString)(properties.networkInsightsPathId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAnalysisProps"')}function cfnNetworkInsightsAnalysisPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysisPropsValidator(properties).assertSuccess(),{NetworkInsightsPathId:cdk.stringToCloudFormation(properties.networkInsightsPathId),FilterInArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.filterInArns),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAnalysisPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInsightsPathId","NetworkInsightsPathId",cfn_parse.FromCloudFormation.getString(properties.NetworkInsightsPathId)),ret.addPropertyResult("filterInArns","FilterInArns",properties.FilterInArns!=null?cfn_parse.FromCloudFormation.getStringArray(properties.FilterInArns):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 CfnNetworkInsightsAnalysis extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsAnalysisProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAnalysis),error}cdk.requireProperty(props,"networkInsightsPathId",this),this.attrAlternatePathHints=this.getAtt("AlternatePathHints"),this.attrExplanations=this.getAtt("Explanations"),this.attrForwardPathComponents=this.getAtt("ForwardPathComponents"),this.attrNetworkInsightsAnalysisArn=cdk.Token.asString(this.getAtt("NetworkInsightsAnalysisArn")),this.attrNetworkInsightsAnalysisId=cdk.Token.asString(this.getAtt("NetworkInsightsAnalysisId")),this.attrNetworkPathFound=this.getAtt("NetworkPathFound"),this.attrReturnPathComponents=this.getAtt("ReturnPathComponents"),this.attrStartDate=cdk.Token.asString(this.getAtt("StartDate")),this.attrStatus=cdk.Token.asString(this.getAtt("Status")),this.attrStatusMessage=cdk.Token.asString(this.getAtt("StatusMessage")),this.networkInsightsPathId=props.networkInsightsPathId,this.filterInArns=props.filterInArns,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsAnalysis",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAnalysisPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsAnalysis(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",CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkInsightsPathId:this.networkInsightsPathId,filterInArns:this.filterInArns,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsAnalysisPropsToCloudFormation(props)}}exports.CfnNetworkInsightsAnalysis=CfnNetworkInsightsAnalysis,_8=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsAnalysis[_8]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAnalysis",version:"2.51.0"},CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAnalysis";function CfnNetworkInsightsAnalysis_AdditionalDetailPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("additionalDetailType",cdk.validateString)(properties.additionalDetailType)),errors.collect(cdk.propertyValidator("component",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.component)),errors.wrap('supplied properties not correct for "AdditionalDetailProperty"')}function cfnNetworkInsightsAnalysisAdditionalDetailPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AdditionalDetailPropertyValidator(properties).assertSuccess(),{AdditionalDetailType:cdk.stringToCloudFormation(properties.additionalDetailType),Component:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component)}):properties}function CfnNetworkInsightsAnalysisAdditionalDetailPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("additionalDetailType","AdditionalDetailType",properties.AdditionalDetailType!=null?cfn_parse.FromCloudFormation.getString(properties.AdditionalDetailType):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AlternatePathHintPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("componentArn",cdk.validateString)(properties.componentArn)),errors.collect(cdk.propertyValidator("componentId",cdk.validateString)(properties.componentId)),errors.wrap('supplied properties not correct for "AlternatePathHintProperty"')}function cfnNetworkInsightsAnalysisAlternatePathHintPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AlternatePathHintPropertyValidator(properties).assertSuccess(),{ComponentArn:cdk.stringToCloudFormation(properties.componentArn),ComponentId:cdk.stringToCloudFormation(properties.componentId)}):properties}function CfnNetworkInsightsAnalysisAlternatePathHintPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("componentArn","ComponentArn",properties.ComponentArn!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentArn):void 0),ret.addPropertyResult("componentId","ComponentId",properties.ComponentId!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("egress",cdk.validateBoolean)(properties.egress)),errors.collect(cdk.propertyValidator("portRange",CfnNetworkInsightsAnalysis_PortRangePropertyValidator)(properties.portRange)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("ruleAction",cdk.validateString)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.validateNumber)(properties.ruleNumber)),errors.wrap('supplied properties not correct for "AnalysisAclRuleProperty"')}function cfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr),Egress:cdk.booleanToCloudFormation(properties.egress),PortRange:cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties.portRange),Protocol:cdk.stringToCloudFormation(properties.protocol),RuleAction:cdk.stringToCloudFormation(properties.ruleAction),RuleNumber:cdk.numberToCloudFormation(properties.ruleNumber)}):properties}function CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse.FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("egress","Egress",properties.Egress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Egress):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("ruleAction","RuleAction",properties.RuleAction!=null?cfn_parse.FromCloudFormation.getString(properties.RuleAction):void 0),ret.addPropertyResult("ruleNumber","RuleNumber",properties.RuleNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.RuleNumber):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.collect(cdk.propertyValidator("id",cdk.validateString)(properties.id)),errors.wrap('supplied properties not correct for "AnalysisComponentProperty"')}function cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn),Id:cdk.stringToCloudFormation(properties.id)}):properties}function CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse.FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse.FromCloudFormation.getString(properties.Id):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("instancePort",cdk.validateNumber)(properties.instancePort)),errors.collect(cdk.propertyValidator("loadBalancerPort",cdk.validateNumber)(properties.loadBalancerPort)),errors.wrap('supplied properties not correct for "AnalysisLoadBalancerListenerProperty"')}function cfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerPropertyValidator(properties).assertSuccess(),{InstancePort:cdk.numberToCloudFormation(properties.instancePort),LoadBalancerPort:cdk.numberToCloudFormation(properties.loadBalancerPort)}):properties}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("instancePort","InstancePort",properties.InstancePort!=null?cfn_parse.FromCloudFormation.getNumber(properties.InstancePort):void 0),ret.addPropertyResult("loadBalancerPort","LoadBalancerPort",properties.LoadBalancerPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.LoadBalancerPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("address",cdk.validateString)(properties.address)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("instance",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.instance)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "AnalysisLoadBalancerTargetProperty"')}function cfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetPropertyValidator(properties).assertSuccess(),{Address:cdk.stringToCloudFormation(properties.address),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),Instance:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.instance),Port:cdk.numberToCloudFormation(properties.port)}):properties}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("address","Address",properties.Address!=null?cfn_parse.FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("instance","Instance",properties.Instance!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Instance):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationAddresses",cdk.listValidator(cdk.validateString))(properties.destinationAddresses)),errors.collect(cdk.propertyValidator("destinationPortRanges",cdk.listValidator(CfnNetworkInsightsAnalysis_PortRangePropertyValidator))(properties.destinationPortRanges)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("sourceAddresses",cdk.listValidator(cdk.validateString))(properties.sourceAddresses)),errors.collect(cdk.propertyValidator("sourcePortRanges",cdk.listValidator(CfnNetworkInsightsAnalysis_PortRangePropertyValidator))(properties.sourcePortRanges)),errors.wrap('supplied properties not correct for "AnalysisPacketHeaderProperty"')}function cfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator(properties).assertSuccess(),{DestinationAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationAddresses),DestinationPortRanges:cdk.listMapper(cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.destinationPortRanges),Protocol:cdk.stringToCloudFormation(properties.protocol),SourceAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourceAddresses),SourcePortRanges:cdk.listMapper(cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.sourcePortRanges)}):properties}function CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationAddresses","DestinationAddresses",properties.DestinationAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationAddresses):void 0),ret.addPropertyResult("destinationPortRanges","DestinationPortRanges",properties.DestinationPortRanges!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.DestinationPortRanges):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("sourceAddresses","SourceAddresses",properties.SourceAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourceAddresses):void 0),ret.addPropertyResult("sourcePortRanges","SourcePortRanges",properties.SourcePortRanges!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.SourcePortRanges):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("natGatewayId",cdk.validateString)(properties.natGatewayId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("origin",cdk.validateString)(properties.origin)),errors.collect(cdk.propertyValidator("state",cdk.validateString)(properties.state)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcPeeringConnectionId",cdk.validateString)(properties.vpcPeeringConnectionId)),errors.collect(cdk.propertyValidator("destinationCidr",cdk.validateString)(properties.destinationCidr)),errors.collect(cdk.propertyValidator("destinationPrefixListId",cdk.validateString)(properties.destinationPrefixListId)),errors.collect(cdk.propertyValidator("egressOnlyInternetGatewayId",cdk.validateString)(properties.egressOnlyInternetGatewayId)),errors.collect(cdk.propertyValidator("gatewayId",cdk.validateString)(properties.gatewayId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.wrap('supplied properties not correct for "AnalysisRouteTableRouteProperty"')}function cfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator(properties).assertSuccess(),{NatGatewayId:cdk.stringToCloudFormation(properties.natGatewayId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),Origin:cdk.stringToCloudFormation(properties.origin),State:cdk.stringToCloudFormation(properties.state),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcPeeringConnectionId:cdk.stringToCloudFormation(properties.vpcPeeringConnectionId),destinationCidr:cdk.stringToCloudFormation(properties.destinationCidr),destinationPrefixListId:cdk.stringToCloudFormation(properties.destinationPrefixListId),egressOnlyInternetGatewayId:cdk.stringToCloudFormation(properties.egressOnlyInternetGatewayId),gatewayId:cdk.stringToCloudFormation(properties.gatewayId),instanceId:cdk.stringToCloudFormation(properties.instanceId)}):properties}function CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("natGatewayId","NatGatewayId",properties.NatGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.NatGatewayId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("origin","Origin",properties.Origin!=null?cfn_parse.FromCloudFormation.getString(properties.Origin):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse.FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcPeeringConnectionId","VpcPeeringConnectionId",properties.VpcPeeringConnectionId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcPeeringConnectionId):void 0),ret.addPropertyResult("destinationCidr","destinationCidr",properties.destinationCidr!=null?cfn_parse.FromCloudFormation.getString(properties.destinationCidr):void 0),ret.addPropertyResult("destinationPrefixListId","destinationPrefixListId",properties.destinationPrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.destinationPrefixListId):void 0),ret.addPropertyResult("egressOnlyInternetGatewayId","egressOnlyInternetGatewayId",properties.egressOnlyInternetGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.egressOnlyInternetGatewayId):void 0),ret.addPropertyResult("gatewayId","gatewayId",properties.gatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.gatewayId):void 0),ret.addPropertyResult("instanceId","instanceId",properties.instanceId!=null?cfn_parse.FromCloudFormation.getString(properties.instanceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("direction",cdk.validateString)(properties.direction)),errors.collect(cdk.propertyValidator("portRange",CfnNetworkInsightsAnalysis_PortRangePropertyValidator)(properties.portRange)),errors.collect(cdk.propertyValidator("prefixListId",cdk.validateString)(properties.prefixListId)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("securityGroupId",cdk.validateString)(properties.securityGroupId)),errors.wrap('supplied properties not correct for "AnalysisSecurityGroupRuleProperty"')}function cfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr),Direction:cdk.stringToCloudFormation(properties.direction),PortRange:cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties.portRange),PrefixListId:cdk.stringToCloudFormation(properties.prefixListId),Protocol:cdk.stringToCloudFormation(properties.protocol),SecurityGroupId:cdk.stringToCloudFormation(properties.securityGroupId)}):properties}function CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse.FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("direction","Direction",properties.Direction!=null?cfn_parse.FromCloudFormation.getString(properties.Direction):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addPropertyResult("prefixListId","PrefixListId",properties.PrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.PrefixListId):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("securityGroupId","SecurityGroupId",properties.SecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.SecurityGroupId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_ExplanationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acl",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.acl)),errors.collect(cdk.propertyValidator("aclRule",CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator)(properties.aclRule)),errors.collect(cdk.propertyValidator("address",cdk.validateString)(properties.address)),errors.collect(cdk.propertyValidator("addresses",cdk.listValidator(cdk.validateString))(properties.addresses)),errors.collect(cdk.propertyValidator("attachedTo",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.attachedTo)),errors.collect(cdk.propertyValidator("availabilityZones",cdk.listValidator(cdk.validateString))(properties.availabilityZones)),errors.collect(cdk.propertyValidator("cidrs",cdk.listValidator(cdk.validateString))(properties.cidrs)),errors.collect(cdk.propertyValidator("classicLoadBalancerListener",CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerPropertyValidator)(properties.classicLoadBalancerListener)),errors.collect(cdk.propertyValidator("component",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.component)),errors.collect(cdk.propertyValidator("componentAccount",cdk.validateString)(properties.componentAccount)),errors.collect(cdk.propertyValidator("componentRegion",cdk.validateString)(properties.componentRegion)),errors.collect(cdk.propertyValidator("customerGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.customerGateway)),errors.collect(cdk.propertyValidator("destination",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.destination)),errors.collect(cdk.propertyValidator("destinationVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.destinationVpc)),errors.collect(cdk.propertyValidator("direction",cdk.validateString)(properties.direction)),errors.collect(cdk.propertyValidator("elasticLoadBalancerListener",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.elasticLoadBalancerListener)),errors.collect(cdk.propertyValidator("explanationCode",cdk.validateString)(properties.explanationCode)),errors.collect(cdk.propertyValidator("ingressRouteTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.ingressRouteTable)),errors.collect(cdk.propertyValidator("internetGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.internetGateway)),errors.collect(cdk.propertyValidator("loadBalancerArn",cdk.validateString)(properties.loadBalancerArn)),errors.collect(cdk.propertyValidator("loadBalancerListenerPort",cdk.validateNumber)(properties.loadBalancerListenerPort)),errors.collect(cdk.propertyValidator("loadBalancerTarget",CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetPropertyValidator)(properties.loadBalancerTarget)),errors.collect(cdk.propertyValidator("loadBalancerTargetGroup",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.loadBalancerTargetGroup)),errors.collect(cdk.propertyValidator("loadBalancerTargetGroups",cdk.listValidator(CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator))(properties.loadBalancerTargetGroups)),errors.collect(cdk.propertyValidator("loadBalancerTargetPort",cdk.validateNumber)(properties.loadBalancerTargetPort)),errors.collect(cdk.propertyValidator("missingComponent",cdk.validateString)(properties.missingComponent)),errors.collect(cdk.propertyValidator("natGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.natGateway)),errors.collect(cdk.propertyValidator("networkInterface",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.networkInterface)),errors.collect(cdk.propertyValidator("packetField",cdk.validateString)(properties.packetField)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("portRanges",cdk.listValidator(CfnNetworkInsightsAnalysis_PortRangePropertyValidator))(properties.portRanges)),errors.collect(cdk.propertyValidator("prefixList",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.prefixList)),errors.collect(cdk.propertyValidator("protocols",cdk.listValidator(cdk.validateString))(properties.protocols)),errors.collect(cdk.propertyValidator("routeTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.routeTable)),errors.collect(cdk.propertyValidator("routeTableRoute",CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator)(properties.routeTableRoute)),errors.collect(cdk.propertyValidator("securityGroup",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.securityGroup)),errors.collect(cdk.propertyValidator("securityGroupRule",CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator)(properties.securityGroupRule)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator))(properties.securityGroups)),errors.collect(cdk.propertyValidator("sourceVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.sourceVpc)),errors.collect(cdk.propertyValidator("state",cdk.validateString)(properties.state)),errors.collect(cdk.propertyValidator("subnet",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.subnet)),errors.collect(cdk.propertyValidator("subnetRouteTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.subnetRouteTable)),errors.collect(cdk.propertyValidator("transitGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGateway)),errors.collect(cdk.propertyValidator("transitGatewayAttachment",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGatewayAttachment)),errors.collect(cdk.propertyValidator("transitGatewayRouteTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGatewayRouteTable)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableRoute",CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator)(properties.transitGatewayRouteTableRoute)),errors.collect(cdk.propertyValidator("vpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpc)),errors.collect(cdk.propertyValidator("vpcPeeringConnection",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpcPeeringConnection)),errors.collect(cdk.propertyValidator("vpnConnection",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpnConnection)),errors.collect(cdk.propertyValidator("vpnGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpnGateway)),errors.collect(cdk.propertyValidator("vpcEndpoint",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpcEndpoint)),errors.wrap('supplied properties not correct for "ExplanationProperty"')}function cfnNetworkInsightsAnalysisExplanationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_ExplanationPropertyValidator(properties).assertSuccess(),{Acl:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.acl),AclRule:cfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties.aclRule),Address:cdk.stringToCloudFormation(properties.address),Addresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.addresses),AttachedTo:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.attachedTo),AvailabilityZones:cdk.listMapper(cdk.stringToCloudFormation)(properties.availabilityZones),Cidrs:cdk.listMapper(cdk.stringToCloudFormation)(properties.cidrs),ClassicLoadBalancerListener:cfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyToCloudFormation(properties.classicLoadBalancerListener),Component:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component),ComponentAccount:cdk.stringToCloudFormation(properties.componentAccount),ComponentRegion:cdk.stringToCloudFormation(properties.componentRegion),CustomerGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.customerGateway),Destination:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destination),DestinationVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destinationVpc),Direction:cdk.stringToCloudFormation(properties.direction),ElasticLoadBalancerListener:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.elasticLoadBalancerListener),ExplanationCode:cdk.stringToCloudFormation(properties.explanationCode),IngressRouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.ingressRouteTable),InternetGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.internetGateway),LoadBalancerArn:cdk.stringToCloudFormation(properties.loadBalancerArn),LoadBalancerListenerPort:cdk.numberToCloudFormation(properties.loadBalancerListenerPort),LoadBalancerTarget:cfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyToCloudFormation(properties.loadBalancerTarget),LoadBalancerTargetGroup:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.loadBalancerTargetGroup),LoadBalancerTargetGroups:cdk.listMapper(cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation)(properties.loadBalancerTargetGroups),LoadBalancerTargetPort:cdk.numberToCloudFormation(properties.loadBalancerTargetPort),MissingComponent:cdk.stringToCloudFormation(properties.missingComponent),NatGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.natGateway),NetworkInterface:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.networkInterface),PacketField:cdk.stringToCloudFormation(properties.packetField),Port:cdk.numberToCloudFormation(properties.port),PortRanges:cdk.listMapper(cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.portRanges),PrefixList:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.prefixList),Protocols:cdk.listMapper(cdk.stringToCloudFormation)(properties.protocols),RouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.routeTable),RouteTableRoute:cfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties.routeTableRoute),SecurityGroup:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.securityGroup),SecurityGroupRule:cfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties.securityGroupRule),SecurityGroups:cdk.listMapper(cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation)(properties.securityGroups),SourceVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.sourceVpc),State:cdk.stringToCloudFormation(properties.state),Subnet:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnet),SubnetRouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnetRouteTable),TransitGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGateway),TransitGatewayAttachment:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGatewayAttachment),TransitGatewayRouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGatewayRouteTable),TransitGatewayRouteTableRoute:cfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties.transitGatewayRouteTableRoute),Vpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpc),VpcPeeringConnection:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpcPeeringConnection),VpnConnection:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpnConnection),VpnGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpnGateway),vpcEndpoint:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpcEndpoint)}):properties}function CfnNetworkInsightsAnalysisExplanationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acl","Acl",properties.Acl!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Acl):void 0),ret.addPropertyResult("aclRule","AclRule",properties.AclRule!=null?CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties.AclRule):void 0),ret.addPropertyResult("address","Address",properties.Address!=null?cfn_parse.FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("addresses","Addresses",properties.Addresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Addresses):void 0),ret.addPropertyResult("attachedTo","AttachedTo",properties.AttachedTo!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.AttachedTo):void 0),ret.addPropertyResult("availabilityZones","AvailabilityZones",properties.AvailabilityZones!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AvailabilityZones):void 0),ret.addPropertyResult("cidrs","Cidrs",properties.Cidrs!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Cidrs):void 0),ret.addPropertyResult("classicLoadBalancerListener","ClassicLoadBalancerListener",properties.ClassicLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyFromCloudFormation(properties.ClassicLoadBalancerListener):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addPropertyResult("componentAccount","ComponentAccount",properties.ComponentAccount!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentAccount):void 0),ret.addPropertyResult("componentRegion","ComponentRegion",properties.ComponentRegion!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentRegion):void 0),ret.addPropertyResult("customerGateway","CustomerGateway",properties.CustomerGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.CustomerGateway):void 0),ret.addPropertyResult("destination","Destination",properties.Destination!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Destination):void 0),ret.addPropertyResult("destinationVpc","DestinationVpc",properties.DestinationVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.DestinationVpc):void 0),ret.addPropertyResult("direction","Direction",properties.Direction!=null?cfn_parse.FromCloudFormation.getString(properties.Direction):void 0),ret.addPropertyResult("elasticLoadBalancerListener","ElasticLoadBalancerListener",properties.ElasticLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.ElasticLoadBalancerListener):void 0),ret.addPropertyResult("explanationCode","ExplanationCode",properties.ExplanationCode!=null?cfn_parse.FromCloudFormation.getString(properties.ExplanationCode):void 0),ret.addPropertyResult("ingressRouteTable","IngressRouteTable",properties.IngressRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.IngressRouteTable):void 0),ret.addPropertyResult("internetGateway","InternetGateway",properties.InternetGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.InternetGateway):void 0),ret.addPropertyResult("loadBalancerArn","LoadBalancerArn",properties.LoadBalancerArn!=null?cfn_parse.FromCloudFormation.getString(properties.LoadBalancerArn):void 0),ret.addPropertyResult("loadBalancerListenerPort","LoadBalancerListenerPort",properties.LoadBalancerListenerPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.LoadBalancerListenerPort):void 0),ret.addPropertyResult("loadBalancerTarget","LoadBalancerTarget",properties.LoadBalancerTarget!=null?CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyFromCloudFormation(properties.LoadBalancerTarget):void 0),ret.addPropertyResult("loadBalancerTargetGroup","LoadBalancerTargetGroup",properties.LoadBalancerTargetGroup!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.LoadBalancerTargetGroup):void 0),ret.addPropertyResult("loadBalancerTargetGroups","LoadBalancerTargetGroups",properties.LoadBalancerTargetGroups!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation)(properties.LoadBalancerTargetGroups):void 0),ret.addPropertyResult("loadBalancerTargetPort","LoadBalancerTargetPort",properties.LoadBalancerTargetPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.LoadBalancerTargetPort):void 0),ret.addPropertyResult("missingComponent","MissingComponent",properties.MissingComponent!=null?cfn_parse.FromCloudFormation.getString(properties.MissingComponent):void 0),ret.addPropertyResult("natGateway","NatGateway",properties.NatGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.NatGateway):void 0),ret.addPropertyResult("networkInterface","NetworkInterface",properties.NetworkInterface!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.NetworkInterface):void 0),ret.addPropertyResult("packetField","PacketField",properties.PacketField!=null?cfn_parse.FromCloudFormation.getString(properties.PacketField):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("portRanges","PortRanges",properties.PortRanges!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.PortRanges):void 0),ret.addPropertyResult("prefixList","PrefixList",properties.PrefixList!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.PrefixList):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Protocols):void 0),ret.addPropertyResult("routeTable","RouteTable",properties.RouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.RouteTable):void 0),ret.addPropertyResult("routeTableRoute","RouteTableRoute",properties.RouteTableRoute!=null?CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties.RouteTableRoute):void 0),ret.addPropertyResult("securityGroup","SecurityGroup",properties.SecurityGroup!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SecurityGroup):void 0),ret.addPropertyResult("securityGroupRule","SecurityGroupRule",properties.SecurityGroupRule!=null?CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties.SecurityGroupRule):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation)(properties.SecurityGroups):void 0),ret.addPropertyResult("sourceVpc","SourceVpc",properties.SourceVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SourceVpc):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse.FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("subnet","Subnet",properties.Subnet!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Subnet):void 0),ret.addPropertyResult("subnetRouteTable","SubnetRouteTable",properties.SubnetRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SubnetRouteTable):void 0),ret.addPropertyResult("transitGateway","TransitGateway",properties.TransitGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGateway):void 0),ret.addPropertyResult("transitGatewayAttachment","TransitGatewayAttachment",properties.TransitGatewayAttachment!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGatewayAttachment):void 0),ret.addPropertyResult("transitGatewayRouteTable","TransitGatewayRouteTable",properties.TransitGatewayRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGatewayRouteTable):void 0),ret.addPropertyResult("transitGatewayRouteTableRoute","TransitGatewayRouteTableRoute",properties.TransitGatewayRouteTableRoute!=null?CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties.TransitGatewayRouteTableRoute):void 0),ret.addPropertyResult("vpc","Vpc",properties.Vpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Vpc):void 0),ret.addPropertyResult("vpcPeeringConnection","VpcPeeringConnection",properties.VpcPeeringConnection!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpcPeeringConnection):void 0),ret.addPropertyResult("vpnConnection","VpnConnection",properties.VpnConnection!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpnConnection):void 0),ret.addPropertyResult("vpnGateway","VpnGateway",properties.VpnGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpnGateway):void 0),ret.addPropertyResult("vpcEndpoint","vpcEndpoint",properties.vpcEndpoint!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.vpcEndpoint):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_PathComponentPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("aclRule",CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator)(properties.aclRule)),errors.collect(cdk.propertyValidator("additionalDetails",cdk.listValidator(CfnNetworkInsightsAnalysis_AdditionalDetailPropertyValidator))(properties.additionalDetails)),errors.collect(cdk.propertyValidator("component",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.component)),errors.collect(cdk.propertyValidator("destinationVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.destinationVpc)),errors.collect(cdk.propertyValidator("elasticLoadBalancerListener",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.elasticLoadBalancerListener)),errors.collect(cdk.propertyValidator("explanations",cdk.listValidator(CfnNetworkInsightsAnalysis_ExplanationPropertyValidator))(properties.explanations)),errors.collect(cdk.propertyValidator("inboundHeader",CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator)(properties.inboundHeader)),errors.collect(cdk.propertyValidator("outboundHeader",CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator)(properties.outboundHeader)),errors.collect(cdk.propertyValidator("routeTableRoute",CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator)(properties.routeTableRoute)),errors.collect(cdk.propertyValidator("securityGroupRule",CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator)(properties.securityGroupRule)),errors.collect(cdk.propertyValidator("sequenceNumber",cdk.validateNumber)(properties.sequenceNumber)),errors.collect(cdk.propertyValidator("sourceVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.sourceVpc)),errors.collect(cdk.propertyValidator("subnet",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.subnet)),errors.collect(cdk.propertyValidator("transitGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGateway)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableRoute",CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator)(properties.transitGatewayRouteTableRoute)),errors.collect(cdk.propertyValidator("vpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpc)),errors.wrap('supplied properties not correct for "PathComponentProperty"')}function cfnNetworkInsightsAnalysisPathComponentPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_PathComponentPropertyValidator(properties).assertSuccess(),{AclRule:cfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties.aclRule),AdditionalDetails:cdk.listMapper(cfnNetworkInsightsAnalysisAdditionalDetailPropertyToCloudFormation)(properties.additionalDetails),Component:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component),DestinationVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destinationVpc),ElasticLoadBalancerListener:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.elasticLoadBalancerListener),Explanations:cdk.listMapper(cfnNetworkInsightsAnalysisExplanationPropertyToCloudFormation)(properties.explanations),InboundHeader:cfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties.inboundHeader),OutboundHeader:cfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties.outboundHeader),RouteTableRoute:cfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties.routeTableRoute),SecurityGroupRule:cfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties.securityGroupRule),SequenceNumber:cdk.numberToCloudFormation(properties.sequenceNumber),SourceVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.sourceVpc),Subnet:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnet),TransitGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGateway),TransitGatewayRouteTableRoute:cfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties.transitGatewayRouteTableRoute),Vpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpc)}):properties}function CfnNetworkInsightsAnalysisPathComponentPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("aclRule","AclRule",properties.AclRule!=null?CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties.AclRule):void 0),ret.addPropertyResult("additionalDetails","AdditionalDetails",properties.AdditionalDetails!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAdditionalDetailPropertyFromCloudFormation)(properties.AdditionalDetails):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addPropertyResult("destinationVpc","DestinationVpc",properties.DestinationVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.DestinationVpc):void 0),ret.addPropertyResult("elasticLoadBalancerListener","ElasticLoadBalancerListener",properties.ElasticLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.ElasticLoadBalancerListener):void 0),ret.addPropertyResult("explanations","Explanations",properties.Explanations!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisExplanationPropertyFromCloudFormation)(properties.Explanations):void 0),ret.addPropertyResult("inboundHeader","InboundHeader",properties.InboundHeader!=null?CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties.InboundHeader):void 0),ret.addPropertyResult("outboundHeader","OutboundHeader",properties.OutboundHeader!=null?CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties.OutboundHeader):void 0),ret.addPropertyResult("routeTableRoute","RouteTableRoute",properties.RouteTableRoute!=null?CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties.RouteTableRoute):void 0),ret.addPropertyResult("securityGroupRule","SecurityGroupRule",properties.SecurityGroupRule!=null?CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties.SecurityGroupRule):void 0),ret.addPropertyResult("sequenceNumber","SequenceNumber",properties.SequenceNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.SequenceNumber):void 0),ret.addPropertyResult("sourceVpc","SourceVpc",properties.SourceVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SourceVpc):void 0),ret.addPropertyResult("subnet","Subnet",properties.Subnet!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Subnet):void 0),ret.addPropertyResult("transitGateway","TransitGateway",properties.TransitGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGateway):void 0),ret.addPropertyResult("transitGatewayRouteTableRoute","TransitGatewayRouteTableRoute",properties.TransitGatewayRouteTableRoute!=null?CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties.TransitGatewayRouteTableRoute):void 0),ret.addPropertyResult("vpc","Vpc",properties.Vpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Vpc):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_PortRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("from",cdk.validateNumber)(properties.from)),errors.collect(cdk.propertyValidator("to",cdk.validateNumber)(properties.to)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_PortRangePropertyValidator(properties).assertSuccess(),{From:cdk.numberToCloudFormation(properties.from),To:cdk.numberToCloudFormation(properties.to)}):properties}function CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("from","From",properties.From!=null?cfn_parse.FromCloudFormation.getNumber(properties.From):void 0),ret.addPropertyResult("to","To",properties.To!=null?cfn_parse.FromCloudFormation.getNumber(properties.To):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attachmentId",cdk.validateString)(properties.attachmentId)),errors.collect(cdk.propertyValidator("destinationCidr",cdk.validateString)(properties.destinationCidr)),errors.collect(cdk.propertyValidator("prefixListId",cdk.validateString)(properties.prefixListId)),errors.collect(cdk.propertyValidator("resourceId",cdk.validateString)(properties.resourceId)),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("routeOrigin",cdk.validateString)(properties.routeOrigin)),errors.collect(cdk.propertyValidator("state",cdk.validateString)(properties.state)),errors.wrap('supplied properties not correct for "TransitGatewayRouteTableRouteProperty"')}function cfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator(properties).assertSuccess(),{AttachmentId:cdk.stringToCloudFormation(properties.attachmentId),DestinationCidr:cdk.stringToCloudFormation(properties.destinationCidr),PrefixListId:cdk.stringToCloudFormation(properties.prefixListId),ResourceId:cdk.stringToCloudFormation(properties.resourceId),ResourceType:cdk.stringToCloudFormation(properties.resourceType),RouteOrigin:cdk.stringToCloudFormation(properties.routeOrigin),State:cdk.stringToCloudFormation(properties.state)}):properties}function CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentId","AttachmentId",properties.AttachmentId!=null?cfn_parse.FromCloudFormation.getString(properties.AttachmentId):void 0),ret.addPropertyResult("destinationCidr","DestinationCidr",properties.DestinationCidr!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationCidr):void 0),ret.addPropertyResult("prefixListId","PrefixListId",properties.PrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.PrefixListId):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):void 0),ret.addPropertyResult("routeOrigin","RouteOrigin",properties.RouteOrigin!=null?cfn_parse.FromCloudFormation.getString(properties.RouteOrigin):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse.FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsPathPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destination",cdk.requiredValidator)(properties.destination)),errors.collect(cdk.propertyValidator("destination",cdk.validateString)(properties.destination)),errors.collect(cdk.propertyValidator("destinationIp",cdk.validateString)(properties.destinationIp)),errors.collect(cdk.propertyValidator("destinationPort",cdk.validateNumber)(properties.destinationPort)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("source",cdk.requiredValidator)(properties.source)),errors.collect(cdk.propertyValidator("source",cdk.validateString)(properties.source)),errors.collect(cdk.propertyValidator("sourceIp",cdk.validateString)(properties.sourceIp)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsPathProps"')}function cfnNetworkInsightsPathPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsPathPropsValidator(properties).assertSuccess(),{Destination:cdk.stringToCloudFormation(properties.destination),Protocol:cdk.stringToCloudFormation(properties.protocol),Source:cdk.stringToCloudFormation(properties.source),DestinationIp:cdk.stringToCloudFormation(properties.destinationIp),DestinationPort:cdk.numberToCloudFormation(properties.destinationPort),SourceIp:cdk.stringToCloudFormation(properties.sourceIp),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsPathPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destination","Destination",cfn_parse.FromCloudFormation.getString(properties.Destination)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addPropertyResult("source","Source",cfn_parse.FromCloudFormation.getString(properties.Source)),ret.addPropertyResult("destinationIp","DestinationIp",properties.DestinationIp!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationIp):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.DestinationPort):void 0),ret.addPropertyResult("sourceIp","SourceIp",properties.SourceIp!=null?cfn_parse.FromCloudFormation.getString(properties.SourceIp):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 CfnNetworkInsightsPath extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsPathProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsPath),error}cdk.requireProperty(props,"destination",this),cdk.requireProperty(props,"protocol",this),cdk.requireProperty(props,"source",this),this.attrCreatedDate=cdk.Token.asString(this.getAtt("CreatedDate")),this.attrNetworkInsightsPathArn=cdk.Token.asString(this.getAtt("NetworkInsightsPathArn")),this.attrNetworkInsightsPathId=cdk.Token.asString(this.getAtt("NetworkInsightsPathId")),this.destination=props.destination,this.protocol=props.protocol,this.source=props.source,this.destinationIp=props.destinationIp,this.destinationPort=props.destinationPort,this.sourceIp=props.sourceIp,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsPath",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsPathPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsPath(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",CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destination:this.destination,protocol:this.protocol,source:this.source,destinationIp:this.destinationIp,destinationPort:this.destinationPort,sourceIp:this.sourceIp,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsPathPropsToCloudFormation(props)}}exports.CfnNetworkInsightsPath=CfnNetworkInsightsPath,_9=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsPath[_9]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsPath",version:"2.51.0"},CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsPath";function CfnNetworkInterfacePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("groupSet",cdk.listValidator(cdk.validateString))(properties.groupSet)),errors.collect(cdk.propertyValidator("interfaceType",cdk.validateString)(properties.interfaceType)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnNetworkInterface_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnNetworkInterface_PrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("sourceDestCheck",cdk.validateBoolean)(properties.sourceDestCheck)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInterfaceProps"')}function cfnNetworkInterfacePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterfacePropsValidator(properties).assertSuccess(),{SubnetId:cdk.stringToCloudFormation(properties.subnetId),Description:cdk.stringToCloudFormation(properties.description),GroupSet:cdk.listMapper(cdk.stringToCloudFormation)(properties.groupSet),InterfaceType:cdk.stringToCloudFormation(properties.interfaceType),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnNetworkInterfaceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk.listMapper(cfnNetworkInterfacePrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SourceDestCheck:cdk.booleanToCloudFormation(properties.sourceDestCheck),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInterfacePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("groupSet","GroupSet",properties.GroupSet!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GroupSet):void 0),ret.addPropertyResult("interfaceType","InterfaceType",properties.InterfaceType!=null?cfn_parse.FromCloudFormation.getString(properties.InterfaceType):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInterfaceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInterfacePrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("sourceDestCheck","SourceDestCheck",properties.SourceDestCheck!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SourceDestCheck):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 CfnNetworkInterface extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInterfaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterface),error}cdk.requireProperty(props,"subnetId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.attrPrimaryPrivateIpAddress=cdk.Token.asString(this.getAtt("PrimaryPrivateIpAddress")),this.attrSecondaryPrivateIpAddresses=cdk.Token.asList(this.getAtt("SecondaryPrivateIpAddresses")),this.subnetId=props.subnetId,this.description=props.description,this.groupSet=props.groupSet,this.interfaceType=props.interfaceType,this.ipv6AddressCount=props.ipv6AddressCount,this.ipv6Addresses=props.ipv6Addresses,this.privateIpAddress=props.privateIpAddress,this.privateIpAddresses=props.privateIpAddresses,this.secondaryPrivateIpAddressCount=props.secondaryPrivateIpAddressCount,this.sourceDestCheck=props.sourceDestCheck,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInterface",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfacePropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInterface(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",CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetId:this.subnetId,description:this.description,groupSet:this.groupSet,interfaceType:this.interfaceType,ipv6AddressCount:this.ipv6AddressCount,ipv6Addresses:this.ipv6Addresses,privateIpAddress:this.privateIpAddress,privateIpAddresses:this.privateIpAddresses,secondaryPrivateIpAddressCount:this.secondaryPrivateIpAddressCount,sourceDestCheck:this.sourceDestCheck,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInterfacePropsToCloudFormation(props)}}exports.CfnNetworkInterface=CfnNetworkInterface,_10=JSII_RTTI_SYMBOL_1,CfnNetworkInterface[_10]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterface",version:"2.51.0"},CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterface";function CfnNetworkInterface_InstanceIpv6AddressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.requiredValidator)(properties.ipv6Address)),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function cfnNetworkInterfaceInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterface_InstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnNetworkInterfaceInstanceIpv6AddressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",cfn_parse.FromCloudFormation.getString(properties.Ipv6Address)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterface_PrivateIpAddressSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.requiredValidator)(properties.primary)),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.requiredValidator)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function cfnNetworkInterfacePrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterface_PrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnNetworkInterfacePrivateIpAddressSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",cfn_parse.FromCloudFormation.getBoolean(properties.Primary)),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.requiredValidator)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateString)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("instanceId",cdk.requiredValidator)(properties.instanceId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.wrap('supplied properties not correct for "CfnNetworkInterfaceAttachmentProps"')}function cfnNetworkInterfaceAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterfaceAttachmentPropsValidator(properties).assertSuccess(),{DeviceIndex:cdk.stringToCloudFormation(properties.deviceIndex),InstanceId:cdk.stringToCloudFormation(properties.instanceId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination)}):properties}function CfnNetworkInterfaceAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceIndex","DeviceIndex",cfn_parse.FromCloudFormation.getString(properties.DeviceIndex)),ret.addPropertyResult("instanceId","InstanceId",cfn_parse.FromCloudFormation.getString(properties.InstanceId)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInterfaceAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInterfaceAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterfaceAttachment),error}cdk.requireProperty(props,"deviceIndex",this),cdk.requireProperty(props,"instanceId",this),cdk.requireProperty(props,"networkInterfaceId",this),this.deviceIndex=props.deviceIndex,this.instanceId=props.instanceId,this.networkInterfaceId=props.networkInterfaceId,this.deleteOnTermination=props.deleteOnTermination}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfaceAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInterfaceAttachment(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",CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{deviceIndex:this.deviceIndex,instanceId:this.instanceId,networkInterfaceId:this.networkInterfaceId,deleteOnTermination:this.deleteOnTermination}}renderProperties(props){return cfnNetworkInterfaceAttachmentPropsToCloudFormation(props)}}exports.CfnNetworkInterfaceAttachment=CfnNetworkInterfaceAttachment,_11=JSII_RTTI_SYMBOL_1,CfnNetworkInterfaceAttachment[_11]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterfaceAttachment",version:"2.51.0"},CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterfaceAttachment";function CfnNetworkInterfacePermissionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("awsAccountId",cdk.requiredValidator)(properties.awsAccountId)),errors.collect(cdk.propertyValidator("awsAccountId",cdk.validateString)(properties.awsAccountId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("permission",cdk.requiredValidator)(properties.permission)),errors.collect(cdk.propertyValidator("permission",cdk.validateString)(properties.permission)),errors.wrap('supplied properties not correct for "CfnNetworkInterfacePermissionProps"')}function cfnNetworkInterfacePermissionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterfacePermissionPropsValidator(properties).assertSuccess(),{AwsAccountId:cdk.stringToCloudFormation(properties.awsAccountId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),Permission:cdk.stringToCloudFormation(properties.permission)}):properties}function CfnNetworkInterfacePermissionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("awsAccountId","AwsAccountId",cfn_parse.FromCloudFormation.getString(properties.AwsAccountId)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("permission","Permission",cfn_parse.FromCloudFormation.getString(properties.Permission)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInterfacePermission extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInterfacePermissionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterfacePermission),error}cdk.requireProperty(props,"awsAccountId",this),cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"permission",this),this.awsAccountId=props.awsAccountId,this.networkInterfaceId=props.networkInterfaceId,this.permission=props.permission}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfacePermissionPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInterfacePermission(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",CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{awsAccountId:this.awsAccountId,networkInterfaceId:this.networkInterfaceId,permission:this.permission}}renderProperties(props){return cfnNetworkInterfacePermissionPropsToCloudFormation(props)}}exports.CfnNetworkInterfacePermission=CfnNetworkInterfacePermission,_12=JSII_RTTI_SYMBOL_1,CfnNetworkInterfacePermission[_12]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterfacePermission",version:"2.51.0"},CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterfacePermission";function CfnPlacementGroupPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("spreadLevel",cdk.validateString)(properties.spreadLevel)),errors.collect(cdk.propertyValidator("strategy",cdk.validateString)(properties.strategy)),errors.wrap('supplied properties not correct for "CfnPlacementGroupProps"')}function cfnPlacementGroupPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPlacementGroupPropsValidator(properties).assertSuccess(),{SpreadLevel:cdk.stringToCloudFormation(properties.spreadLevel),Strategy:cdk.stringToCloudFormation(properties.strategy)}):properties}function CfnPlacementGroupPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("spreadLevel","SpreadLevel",properties.SpreadLevel!=null?cfn_parse.FromCloudFormation.getString(properties.SpreadLevel):void 0),ret.addPropertyResult("strategy","Strategy",properties.Strategy!=null?cfn_parse.FromCloudFormation.getString(properties.Strategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPlacementGroup extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnPlacementGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPlacementGroup),error}this.attrGroupName=cdk.Token.asString(this.getAtt("GroupName")),this.spreadLevel=props.spreadLevel,this.strategy=props.strategy}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPlacementGroupPropsFromCloudFormation(resourceProperties),ret=new CfnPlacementGroup(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",CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{spreadLevel:this.spreadLevel,strategy:this.strategy}}renderProperties(props){return cfnPlacementGroupPropsToCloudFormation(props)}}exports.CfnPlacementGroup=CfnPlacementGroup,_13=JSII_RTTI_SYMBOL_1,CfnPlacementGroup[_13]={fqn:"aws-cdk-lib.aws_ec2.CfnPlacementGroup",version:"2.51.0"},CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME="AWS::EC2::PlacementGroup";function CfnPrefixListPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("addressFamily",cdk.requiredValidator)(properties.addressFamily)),errors.collect(cdk.propertyValidator("addressFamily",cdk.validateString)(properties.addressFamily)),errors.collect(cdk.propertyValidator("entries",cdk.listValidator(CfnPrefixList_EntryPropertyValidator))(properties.entries)),errors.collect(cdk.propertyValidator("maxEntries",cdk.requiredValidator)(properties.maxEntries)),errors.collect(cdk.propertyValidator("maxEntries",cdk.validateNumber)(properties.maxEntries)),errors.collect(cdk.propertyValidator("prefixListName",cdk.requiredValidator)(properties.prefixListName)),errors.collect(cdk.propertyValidator("prefixListName",cdk.validateString)(properties.prefixListName)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnPrefixListProps"')}function cfnPrefixListPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPrefixListPropsValidator(properties).assertSuccess(),{AddressFamily:cdk.stringToCloudFormation(properties.addressFamily),MaxEntries:cdk.numberToCloudFormation(properties.maxEntries),PrefixListName:cdk.stringToCloudFormation(properties.prefixListName),Entries:cdk.listMapper(cfnPrefixListEntryPropertyToCloudFormation)(properties.entries),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnPrefixListPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("addressFamily","AddressFamily",cfn_parse.FromCloudFormation.getString(properties.AddressFamily)),ret.addPropertyResult("maxEntries","MaxEntries",cfn_parse.FromCloudFormation.getNumber(properties.MaxEntries)),ret.addPropertyResult("prefixListName","PrefixListName",cfn_parse.FromCloudFormation.getString(properties.PrefixListName)),ret.addPropertyResult("entries","Entries",properties.Entries!=null?cfn_parse.FromCloudFormation.getArray(CfnPrefixListEntryPropertyFromCloudFormation)(properties.Entries):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 CfnPrefixList extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnPrefixList.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnPrefixListProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPrefixList),error}cdk.requireProperty(props,"addressFamily",this),cdk.requireProperty(props,"maxEntries",this),cdk.requireProperty(props,"prefixListName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrOwnerId=cdk.Token.asString(this.getAtt("OwnerId")),this.attrPrefixListId=cdk.Token.asString(this.getAtt("PrefixListId")),this.attrVersion=cdk.Token.asNumber(this.getAtt("Version")),this.addressFamily=props.addressFamily,this.maxEntries=props.maxEntries,this.prefixListName=props.prefixListName,this.entries=props.entries,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::PrefixList",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPrefixListPropsFromCloudFormation(resourceProperties),ret=new CfnPrefixList(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",CfnPrefixList.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{addressFamily:this.addressFamily,maxEntries:this.maxEntries,prefixListName:this.prefixListName,entries:this.entries,tags:this.tags.renderTags()}}renderProperties(props){return cfnPrefixListPropsToCloudFormation(props)}}exports.CfnPrefixList=CfnPrefixList,_14=JSII_RTTI_SYMBOL_1,CfnPrefixList[_14]={fqn:"aws-cdk-lib.aws_ec2.CfnPrefixList",version:"2.51.0"},CfnPrefixList.CFN_RESOURCE_TYPE_NAME="AWS::EC2::PrefixList";function CfnPrefixList_EntryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.requiredValidator)(properties.cidr)),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.wrap('supplied properties not correct for "EntryProperty"')}function cfnPrefixListEntryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPrefixList_EntryPropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr),Description:cdk.stringToCloudFormation(properties.description)}):properties}function CfnPrefixListEntryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",cfn_parse.FromCloudFormation.getString(properties.Cidr)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):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("carrierGatewayId",cdk.validateString)(properties.carrierGatewayId)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationIpv6CidrBlock",cdk.validateString)(properties.destinationIpv6CidrBlock)),errors.collect(cdk.propertyValidator("egressOnlyInternetGatewayId",cdk.validateString)(properties.egressOnlyInternetGatewayId)),errors.collect(cdk.propertyValidator("gatewayId",cdk.validateString)(properties.gatewayId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("localGatewayId",cdk.validateString)(properties.localGatewayId)),errors.collect(cdk.propertyValidator("natGatewayId",cdk.validateString)(properties.natGatewayId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.requiredValidator)(properties.routeTableId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.validateString)(properties.routeTableId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcEndpointId",cdk.validateString)(properties.vpcEndpointId)),errors.collect(cdk.propertyValidator("vpcPeeringConnectionId",cdk.validateString)(properties.vpcPeeringConnectionId)),errors.wrap('supplied properties not correct for "CfnRouteProps"')}function cfnRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoutePropsValidator(properties).assertSuccess(),{RouteTableId:cdk.stringToCloudFormation(properties.routeTableId),CarrierGatewayId:cdk.stringToCloudFormation(properties.carrierGatewayId),DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),DestinationIpv6CidrBlock:cdk.stringToCloudFormation(properties.destinationIpv6CidrBlock),EgressOnlyInternetGatewayId:cdk.stringToCloudFormation(properties.egressOnlyInternetGatewayId),GatewayId:cdk.stringToCloudFormation(properties.gatewayId),InstanceId:cdk.stringToCloudFormation(properties.instanceId),LocalGatewayId:cdk.stringToCloudFormation(properties.localGatewayId),NatGatewayId:cdk.stringToCloudFormation(properties.natGatewayId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcEndpointId:cdk.stringToCloudFormation(properties.vpcEndpointId),VpcPeeringConnectionId:cdk.stringToCloudFormation(properties.vpcPeeringConnectionId)}):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("routeTableId","RouteTableId",cfn_parse.FromCloudFormation.getString(properties.RouteTableId)),ret.addPropertyResult("carrierGatewayId","CarrierGatewayId",properties.CarrierGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.CarrierGatewayId):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("destinationIpv6CidrBlock","DestinationIpv6CidrBlock",properties.DestinationIpv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationIpv6CidrBlock):void 0),ret.addPropertyResult("egressOnlyInternetGatewayId","EgressOnlyInternetGatewayId",properties.EgressOnlyInternetGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.EgressOnlyInternetGatewayId):void 0),ret.addPropertyResult("gatewayId","GatewayId",properties.GatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.GatewayId):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("localGatewayId","LocalGatewayId",properties.LocalGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.LocalGatewayId):void 0),ret.addPropertyResult("natGatewayId","NatGatewayId",properties.NatGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.NatGatewayId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcEndpointId","VpcEndpointId",properties.VpcEndpointId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcEndpointId):void 0),ret.addPropertyResult("vpcPeeringConnectionId","VpcPeeringConnectionId",properties.VpcPeeringConnectionId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcPeeringConnectionId):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_ec2_CfnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRoute),error}cdk.requireProperty(props,"routeTableId",this),this.routeTableId=props.routeTableId,this.carrierGatewayId=props.carrierGatewayId,this.destinationCidrBlock=props.destinationCidrBlock,this.destinationIpv6CidrBlock=props.destinationIpv6CidrBlock,this.egressOnlyInternetGatewayId=props.egressOnlyInternetGatewayId,this.gatewayId=props.gatewayId,this.instanceId=props.instanceId,this.localGatewayId=props.localGatewayId,this.natGatewayId=props.natGatewayId,this.networkInterfaceId=props.networkInterfaceId,this.transitGatewayId=props.transitGatewayId,this.vpcEndpointId=props.vpcEndpointId,this.vpcPeeringConnectionId=props.vpcPeeringConnectionId}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{routeTableId:this.routeTableId,carrierGatewayId:this.carrierGatewayId,destinationCidrBlock:this.destinationCidrBlock,destinationIpv6CidrBlock:this.destinationIpv6CidrBlock,egressOnlyInternetGatewayId:this.egressOnlyInternetGatewayId,gatewayId:this.gatewayId,instanceId:this.instanceId,localGatewayId:this.localGatewayId,natGatewayId:this.natGatewayId,networkInterfaceId:this.networkInterfaceId,transitGatewayId:this.transitGatewayId,vpcEndpointId:this.vpcEndpointId,vpcPeeringConnectionId:this.vpcPeeringConnectionId}}renderProperties(props){return cfnRoutePropsToCloudFormation(props)}}exports.CfnRoute=CfnRoute,_15=JSII_RTTI_SYMBOL_1,CfnRoute[_15]={fqn:"aws-cdk-lib.aws_ec2.CfnRoute",version:"2.51.0"},CfnRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Route";function CfnRouteTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnRouteTableProps"')}function cfnRouteTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRouteTablePropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRouteTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouteTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnRouteTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnRouteTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteTable),error}cdk.requireProperty(props,"vpcId",this),this.attrRouteTableId=cdk.Token.asString(this.getAtt("RouteTableId")),this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::RouteTable",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteTablePropsFromCloudFormation(resourceProperties),ret=new CfnRouteTable(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",CfnRouteTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnRouteTablePropsToCloudFormation(props)}}exports.CfnRouteTable=CfnRouteTable,_16=JSII_RTTI_SYMBOL_1,CfnRouteTable[_16]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteTable",version:"2.51.0"},CfnRouteTable.CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteTable";function CfnSecurityGroupPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupDescription",cdk.requiredValidator)(properties.groupDescription)),errors.collect(cdk.propertyValidator("groupDescription",cdk.validateString)(properties.groupDescription)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("securityGroupEgress",cdk.listValidator(CfnSecurityGroup_EgressPropertyValidator))(properties.securityGroupEgress)),errors.collect(cdk.propertyValidator("securityGroupIngress",cdk.listValidator(CfnSecurityGroup_IngressPropertyValidator))(properties.securityGroupIngress)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnSecurityGroupProps"')}function cfnSecurityGroupPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroupPropsValidator(properties).assertSuccess(),{GroupDescription:cdk.stringToCloudFormation(properties.groupDescription),GroupName:cdk.stringToCloudFormation(properties.groupName),SecurityGroupEgress:cdk.listMapper(cfnSecurityGroupEgressPropertyToCloudFormation)(properties.securityGroupEgress),SecurityGroupIngress:cdk.listMapper(cfnSecurityGroupIngressPropertyToCloudFormation)(properties.securityGroupIngress),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VpcId:cdk.stringToCloudFormation(properties.vpcId)}):properties}function CfnSecurityGroupPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupDescription","GroupDescription",cfn_parse.FromCloudFormation.getString(properties.GroupDescription)),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("securityGroupEgress","SecurityGroupEgress",properties.SecurityGroupEgress!=null?cfn_parse.FromCloudFormation.getArray(CfnSecurityGroupEgressPropertyFromCloudFormation)(properties.SecurityGroupEgress):void 0),ret.addPropertyResult("securityGroupIngress","SecurityGroupIngress",properties.SecurityGroupIngress!=null?cfn_parse.FromCloudFormation.getArray(CfnSecurityGroupIngressPropertyFromCloudFormation)(properties.SecurityGroupIngress):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroup extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSecurityGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroup),error}cdk.requireProperty(props,"groupDescription",this),this.attrGroupId=cdk.Token.asString(this.getAtt("GroupId")),this.attrVpcId=cdk.Token.asString(this.getAtt("VpcId")),this.groupDescription=props.groupDescription,this.groupName=props.groupName,this.securityGroupEgress=props.securityGroupEgress,this.securityGroupIngress=props.securityGroupIngress,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::SecurityGroup",props.tags,{tagPropertyName:"tags"}),this.vpcId=props.vpcId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupPropsFromCloudFormation(resourceProperties),ret=new CfnSecurityGroup(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",CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupDescription:this.groupDescription,groupName:this.groupName,securityGroupEgress:this.securityGroupEgress,securityGroupIngress:this.securityGroupIngress,tags:this.tags.renderTags(),vpcId:this.vpcId}}renderProperties(props){return cfnSecurityGroupPropsToCloudFormation(props)}}exports.CfnSecurityGroup=CfnSecurityGroup,_17=JSII_RTTI_SYMBOL_1,CfnSecurityGroup[_17]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroup",version:"2.51.0"},CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroup";function CfnSecurityGroup_EgressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationPrefixListId",cdk.validateString)(properties.destinationPrefixListId)),errors.collect(cdk.propertyValidator("destinationSecurityGroupId",cdk.validateString)(properties.destinationSecurityGroupId)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "EgressProperty"')}function cfnSecurityGroupEgressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroup_EgressPropertyValidator(properties).assertSuccess(),{CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),DestinationPrefixListId:cdk.stringToCloudFormation(properties.destinationPrefixListId),DestinationSecurityGroupId:cdk.stringToCloudFormation(properties.destinationSecurityGroupId),FromPort:cdk.numberToCloudFormation(properties.fromPort),IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupEgressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPrefixListId","DestinationPrefixListId",properties.DestinationPrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationPrefixListId):void 0),ret.addPropertyResult("destinationSecurityGroupId","DestinationSecurityGroupId",properties.DestinationSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationSecurityGroupId):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityGroup_IngressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("sourcePrefixListId",cdk.validateString)(properties.sourcePrefixListId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupId",cdk.validateString)(properties.sourceSecurityGroupId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupName",cdk.validateString)(properties.sourceSecurityGroupName)),errors.collect(cdk.propertyValidator("sourceSecurityGroupOwnerId",cdk.validateString)(properties.sourceSecurityGroupOwnerId)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "IngressProperty"')}function cfnSecurityGroupIngressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroup_IngressPropertyValidator(properties).assertSuccess(),{CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),FromPort:cdk.numberToCloudFormation(properties.fromPort),IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),SourcePrefixListId:cdk.stringToCloudFormation(properties.sourcePrefixListId),SourceSecurityGroupId:cdk.stringToCloudFormation(properties.sourceSecurityGroupId),SourceSecurityGroupName:cdk.stringToCloudFormation(properties.sourceSecurityGroupName),SourceSecurityGroupOwnerId:cdk.stringToCloudFormation(properties.sourceSecurityGroupOwnerId),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupIngressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("sourcePrefixListId","SourcePrefixListId",properties.SourcePrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.SourcePrefixListId):void 0),ret.addPropertyResult("sourceSecurityGroupId","SourceSecurityGroupId",properties.SourceSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupId):void 0),ret.addPropertyResult("sourceSecurityGroupName","SourceSecurityGroupName",properties.SourceSecurityGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupName):void 0),ret.addPropertyResult("sourceSecurityGroupOwnerId","SourceSecurityGroupOwnerId",properties.SourceSecurityGroupOwnerId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupOwnerId):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityGroupEgressPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationPrefixListId",cdk.validateString)(properties.destinationPrefixListId)),errors.collect(cdk.propertyValidator("destinationSecurityGroupId",cdk.validateString)(properties.destinationSecurityGroupId)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("groupId",cdk.requiredValidator)(properties.groupId)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "CfnSecurityGroupEgressProps"')}function cfnSecurityGroupEgressPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroupEgressPropsValidator(properties).assertSuccess(),{GroupId:cdk.stringToCloudFormation(properties.groupId),IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),DestinationPrefixListId:cdk.stringToCloudFormation(properties.destinationPrefixListId),DestinationSecurityGroupId:cdk.stringToCloudFormation(properties.destinationSecurityGroupId),FromPort:cdk.numberToCloudFormation(properties.fromPort),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupEgressPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupId","GroupId",cfn_parse.FromCloudFormation.getString(properties.GroupId)),ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPrefixListId","DestinationPrefixListId",properties.DestinationPrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationPrefixListId):void 0),ret.addPropertyResult("destinationSecurityGroupId","DestinationSecurityGroupId",properties.DestinationSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationSecurityGroupId):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroupEgress extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSecurityGroupEgressProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroupEgress),error}cdk.requireProperty(props,"groupId",this),cdk.requireProperty(props,"ipProtocol",this),this.groupId=props.groupId,this.ipProtocol=props.ipProtocol,this.cidrIp=props.cidrIp,this.cidrIpv6=props.cidrIpv6,this.description=props.description,this.destinationPrefixListId=props.destinationPrefixListId,this.destinationSecurityGroupId=props.destinationSecurityGroupId,this.fromPort=props.fromPort,this.toPort=props.toPort}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupEgressPropsFromCloudFormation(resourceProperties),ret=new CfnSecurityGroupEgress(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",CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupId:this.groupId,ipProtocol:this.ipProtocol,cidrIp:this.cidrIp,cidrIpv6:this.cidrIpv6,description:this.description,destinationPrefixListId:this.destinationPrefixListId,destinationSecurityGroupId:this.destinationSecurityGroupId,fromPort:this.fromPort,toPort:this.toPort}}renderProperties(props){return cfnSecurityGroupEgressPropsToCloudFormation(props)}}exports.CfnSecurityGroupEgress=CfnSecurityGroupEgress,_18=JSII_RTTI_SYMBOL_1,CfnSecurityGroupEgress[_18]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroupEgress",version:"2.51.0"},CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroupEgress";function CfnSecurityGroupIngressPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("sourcePrefixListId",cdk.validateString)(properties.sourcePrefixListId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupId",cdk.validateString)(properties.sourceSecurityGroupId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupName",cdk.validateString)(properties.sourceSecurityGroupName)),errors.collect(cdk.propertyValidator("sourceSecurityGroupOwnerId",cdk.validateString)(properties.sourceSecurityGroupOwnerId)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "CfnSecurityGroupIngressProps"')}function cfnSecurityGroupIngressPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroupIngressPropsValidator(properties).assertSuccess(),{IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),FromPort:cdk.numberToCloudFormation(properties.fromPort),GroupId:cdk.stringToCloudFormation(properties.groupId),GroupName:cdk.stringToCloudFormation(properties.groupName),SourcePrefixListId:cdk.stringToCloudFormation(properties.sourcePrefixListId),SourceSecurityGroupId:cdk.stringToCloudFormation(properties.sourceSecurityGroupId),SourceSecurityGroupName:cdk.stringToCloudFormation(properties.sourceSecurityGroupName),SourceSecurityGroupOwnerId:cdk.stringToCloudFormation(properties.sourceSecurityGroupOwnerId),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupIngressPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("groupId","GroupId",properties.GroupId!=null?cfn_parse.FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("sourcePrefixListId","SourcePrefixListId",properties.SourcePrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.SourcePrefixListId):void 0),ret.addPropertyResult("sourceSecurityGroupId","SourceSecurityGroupId",properties.SourceSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupId):void 0),ret.addPropertyResult("sourceSecurityGroupName","SourceSecurityGroupName",properties.SourceSecurityGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupName):void 0),ret.addPropertyResult("sourceSecurityGroupOwnerId","SourceSecurityGroupOwnerId",properties.SourceSecurityGroupOwnerId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupOwnerId):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroupIngress extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSecurityGroupIngressProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroupIngress),error}cdk.requireProperty(props,"ipProtocol",this),this.ipProtocol=props.ipProtocol,this.cidrIp=props.cidrIp,this.cidrIpv6=props.cidrIpv6,this.description=props.description,this.fromPort=props.fromPort,this.groupId=props.groupId,this.groupName=props.groupName,this.sourcePrefixListId=props.sourcePrefixListId,this.sourceSecurityGroupId=props.sourceSecurityGroupId,this.sourceSecurityGroupName=props.sourceSecurityGroupName,this.sourceSecurityGroupOwnerId=props.sourceSecurityGroupOwnerId,this.toPort=props.toPort}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupIngressPropsFromCloudFormation(resourceProperties),ret=new CfnSecurityGroupIngress(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",CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipProtocol:this.ipProtocol,cidrIp:this.cidrIp,cidrIpv6:this.cidrIpv6,description:this.description,fromPort:this.fromPort,groupId:this.groupId,groupName:this.groupName,sourcePrefixListId:this.sourcePrefixListId,sourceSecurityGroupId:this.sourceSecurityGroupId,sourceSecurityGroupName:this.sourceSecurityGroupName,sourceSecurityGroupOwnerId:this.sourceSecurityGroupOwnerId,toPort:this.toPort}}renderProperties(props){return cfnSecurityGroupIngressPropsToCloudFormation(props)}}exports.CfnSecurityGroupIngress=CfnSecurityGroupIngress,_19=JSII_RTTI_SYMBOL_1,CfnSecurityGroupIngress[_19]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress",version:"2.51.0"},CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroupIngress";function CfnSpotFleetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("spotFleetRequestConfigData",cdk.requiredValidator)(properties.spotFleetRequestConfigData)),errors.collect(cdk.propertyValidator("spotFleetRequestConfigData",CfnSpotFleet_SpotFleetRequestConfigDataPropertyValidator)(properties.spotFleetRequestConfigData)),errors.wrap('supplied properties not correct for "CfnSpotFleetProps"')}function cfnSpotFleetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleetPropsValidator(properties).assertSuccess(),{SpotFleetRequestConfigData:cfnSpotFleetSpotFleetRequestConfigDataPropertyToCloudFormation(properties.spotFleetRequestConfigData)}):properties}function CfnSpotFleetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("spotFleetRequestConfigData","SpotFleetRequestConfigData",CfnSpotFleetSpotFleetRequestConfigDataPropertyFromCloudFormation(properties.SpotFleetRequestConfigData)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSpotFleet extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSpotFleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSpotFleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSpotFleet),error}cdk.requireProperty(props,"spotFleetRequestConfigData",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.spotFleetRequestConfigData=props.spotFleetRequestConfigData}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSpotFleetPropsFromCloudFormation(resourceProperties),ret=new CfnSpotFleet(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",CfnSpotFleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{spotFleetRequestConfigData:this.spotFleetRequestConfigData}}renderProperties(props){return cfnSpotFleetPropsToCloudFormation(props)}}exports.CfnSpotFleet=CfnSpotFleet,_20=JSII_RTTI_SYMBOL_1,CfnSpotFleet[_20]={fqn:"aws-cdk-lib.aws_ec2.CfnSpotFleet",version:"2.51.0"},CfnSpotFleet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SpotFleet";function CfnSpotFleet_AcceleratorCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountRequestProperty"')}function cfnSpotFleetAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_AcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetAcceleratorCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBRequestProperty"')}function cfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsRequestProperty"')}function cfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_BlockDeviceMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deviceName",cdk.requiredValidator)(properties.deviceName)),errors.collect(cdk.propertyValidator("deviceName",cdk.validateString)(properties.deviceName)),errors.collect(cdk.propertyValidator("ebs",CfnSpotFleet_EbsBlockDevicePropertyValidator)(properties.ebs)),errors.collect(cdk.propertyValidator("noDevice",cdk.validateString)(properties.noDevice)),errors.collect(cdk.propertyValidator("virtualName",cdk.validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function cfnSpotFleetBlockDeviceMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_BlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk.stringToCloudFormation(properties.deviceName),Ebs:cfnSpotFleetEbsBlockDevicePropertyToCloudFormation(properties.ebs),NoDevice:cdk.stringToCloudFormation(properties.noDevice),VirtualName:cdk.stringToCloudFormation(properties.virtualName)}):properties}function CfnSpotFleetBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",cfn_parse.FromCloudFormation.getString(properties.DeviceName)),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnSpotFleetEbsBlockDevicePropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse.FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_ClassicLoadBalancerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),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 "ClassicLoadBalancerProperty"')}function cfnSpotFleetClassicLoadBalancerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_ClassicLoadBalancerPropertyValidator(properties).assertSuccess(),{Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnSpotFleetClassicLoadBalancerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_ClassicLoadBalancersConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("classicLoadBalancers",cdk.requiredValidator)(properties.classicLoadBalancers)),errors.collect(cdk.propertyValidator("classicLoadBalancers",cdk.listValidator(CfnSpotFleet_ClassicLoadBalancerPropertyValidator))(properties.classicLoadBalancers)),errors.wrap('supplied properties not correct for "ClassicLoadBalancersConfigProperty"')}function cfnSpotFleetClassicLoadBalancersConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_ClassicLoadBalancersConfigPropertyValidator(properties).assertSuccess(),{ClassicLoadBalancers:cdk.listMapper(cfnSpotFleetClassicLoadBalancerPropertyToCloudFormation)(properties.classicLoadBalancers)}):properties}function CfnSpotFleetClassicLoadBalancersConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("classicLoadBalancers","ClassicLoadBalancers",cfn_parse.FromCloudFormation.getArray(CfnSpotFleetClassicLoadBalancerPropertyFromCloudFormation)(properties.ClassicLoadBalancers)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_EbsBlockDevicePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("volumeSize",cdk.validateNumber)(properties.volumeSize)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsBlockDeviceProperty"')}function cfnSpotFleetEbsBlockDevicePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_EbsBlockDevicePropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),VolumeSize:cdk.numberToCloudFormation(properties.volumeSize),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnSpotFleetEbsBlockDevicePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse.FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_FleetLaunchTemplateSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateId",cdk.validateString)(properties.launchTemplateId)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("version",cdk.requiredValidator)(properties.version)),errors.collect(cdk.propertyValidator("version",cdk.validateString)(properties.version)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateSpecificationProperty"')}function cfnSpotFleetFleetLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_FleetLaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk.stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),Version:cdk.stringToCloudFormation(properties.version)}):properties}function CfnSpotFleetFleetLaunchTemplateSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",cfn_parse.FromCloudFormation.getString(properties.Version)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_GroupIdentifierPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupId",cdk.requiredValidator)(properties.groupId)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.wrap('supplied properties not correct for "GroupIdentifierProperty"')}function cfnSpotFleetGroupIdentifierPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_GroupIdentifierPropertyValidator(properties).assertSuccess(),{GroupId:cdk.stringToCloudFormation(properties.groupId)}):properties}function CfnSpotFleetGroupIdentifierPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupId","GroupId",cfn_parse.FromCloudFormation.getString(properties.GroupId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_IamInstanceProfileSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.wrap('supplied properties not correct for "IamInstanceProfileSpecificationProperty"')}function cfnSpotFleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_IamInstanceProfileSpecificationPropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn)}):properties}function CfnSpotFleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse.FromCloudFormation.getString(properties.Arn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_InstanceIpv6AddressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.requiredValidator)(properties.ipv6Address)),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function cfnSpotFleetInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_InstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnSpotFleetInstanceIpv6AddressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",cfn_parse.FromCloudFormation.getString(properties.Ipv6Address)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_InstanceNetworkInterfaceSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associatePublicIpAddress",cdk.validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateNumber)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("groups",cdk.listValidator(cdk.validateString))(properties.groups)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnSpotFleet_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnSpotFleet_PrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "InstanceNetworkInterfaceSpecificationProperty"')}function cfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_InstanceNetworkInterfaceSpecificationPropertyValidator(properties).assertSuccess(),{AssociatePublicIpAddress:cdk.booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Description:cdk.stringToCloudFormation(properties.description),DeviceIndex:cdk.numberToCloudFormation(properties.deviceIndex),Groups:cdk.listMapper(cdk.stringToCloudFormation)(properties.groups),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnSpotFleetInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddresses:cdk.listMapper(cfnSpotFleetPrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse.FromCloudFormation.getNumber(properties.DeviceIndex):void 0),ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Groups):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetPrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_InstanceRequirementsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceleratorCount",CfnSpotFleet_AcceleratorCountRequestPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk.propertyValidator("acceleratorManufacturers",cdk.listValidator(cdk.validateString))(properties.acceleratorManufacturers)),errors.collect(cdk.propertyValidator("acceleratorNames",cdk.listValidator(cdk.validateString))(properties.acceleratorNames)),errors.collect(cdk.propertyValidator("acceleratorTotalMemoryMiB",CfnSpotFleet_AcceleratorTotalMemoryMiBRequestPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk.propertyValidator("acceleratorTypes",cdk.listValidator(cdk.validateString))(properties.acceleratorTypes)),errors.collect(cdk.propertyValidator("allowedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.allowedInstanceTypes)),errors.collect(cdk.propertyValidator("bareMetal",cdk.validateString)(properties.bareMetal)),errors.collect(cdk.propertyValidator("baselineEbsBandwidthMbps",CfnSpotFleet_BaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk.propertyValidator("burstablePerformance",cdk.validateString)(properties.burstablePerformance)),errors.collect(cdk.propertyValidator("cpuManufacturers",cdk.listValidator(cdk.validateString))(properties.cpuManufacturers)),errors.collect(cdk.propertyValidator("excludedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.excludedInstanceTypes)),errors.collect(cdk.propertyValidator("instanceGenerations",cdk.listValidator(cdk.validateString))(properties.instanceGenerations)),errors.collect(cdk.propertyValidator("localStorage",cdk.validateString)(properties.localStorage)),errors.collect(cdk.propertyValidator("localStorageTypes",cdk.listValidator(cdk.validateString))(properties.localStorageTypes)),errors.collect(cdk.propertyValidator("memoryGiBPerVCpu",CfnSpotFleet_MemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk.propertyValidator("memoryMiB",CfnSpotFleet_MemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk.propertyValidator("networkBandwidthGbps",CfnSpotFleet_NetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk.propertyValidator("networkInterfaceCount",CfnSpotFleet_NetworkInterfaceCountRequestPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk.propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("requireHibernateSupport",cdk.validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk.propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("totalLocalStorageGb",CfnSpotFleet_TotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk.propertyValidator("vCpuCount",CfnSpotFleet_VCpuCountRangeRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsRequestProperty"')}function cfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_InstanceRequirementsRequestPropertyValidator(properties).assertSuccess(),{AcceleratorCount:cfnSpotFleetAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:cfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk.stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:cfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BurstablePerformance:cdk.stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk.listMapper(cdk.stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk.stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.localStorageTypes),MemoryGiBPerVCpu:cfnSpotFleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:cfnSpotFleetMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:cfnSpotFleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:cfnSpotFleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk.booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:cfnSpotFleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:cfnSpotFleetVCpuCountRangeRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnSpotFleetAcceleratorCountRequestPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse.FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse.FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse.FromCloudFormation.getStringArray(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse.FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.LocalStorageTypes):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnSpotFleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnSpotFleetMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnSpotFleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnSpotFleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnSpotFleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnSpotFleetVCpuCountRangeRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_LaunchTemplateConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateSpecification",CfnSpotFleet_FleetLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk.propertyValidator("overrides",cdk.listValidator(CfnSpotFleet_LaunchTemplateOverridesPropertyValidator))(properties.overrides)),errors.wrap('supplied properties not correct for "LaunchTemplateConfigProperty"')}function cfnSpotFleetLaunchTemplateConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_LaunchTemplateConfigPropertyValidator(properties).assertSuccess(),{LaunchTemplateSpecification:cfnSpotFleetFleetLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplateSpecification),Overrides:cdk.listMapper(cfnSpotFleetLaunchTemplateOverridesPropertyToCloudFormation)(properties.overrides)}):properties}function CfnSpotFleetLaunchTemplateConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnSpotFleetFleetLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("overrides","Overrides",properties.Overrides!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetLaunchTemplateOverridesPropertyFromCloudFormation)(properties.Overrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_LaunchTemplateOverridesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnSpotFleet_InstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("spotPrice",cdk.validateString)(properties.spotPrice)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("weightedCapacity",cdk.validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "LaunchTemplateOverridesProperty"')}function cfnSpotFleetLaunchTemplateOverridesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_LaunchTemplateOverridesPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),InstanceRequirements:cfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),Priority:cdk.numberToCloudFormation(properties.priority),SpotPrice:cdk.stringToCloudFormation(properties.spotPrice),SubnetId:cdk.stringToCloudFormation(properties.subnetId),WeightedCapacity:cdk.numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnSpotFleetLaunchTemplateOverridesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_LoadBalancersConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("classicLoadBalancersConfig",CfnSpotFleet_ClassicLoadBalancersConfigPropertyValidator)(properties.classicLoadBalancersConfig)),errors.collect(cdk.propertyValidator("targetGroupsConfig",CfnSpotFleet_TargetGroupsConfigPropertyValidator)(properties.targetGroupsConfig)),errors.wrap('supplied properties not correct for "LoadBalancersConfigProperty"')}function cfnSpotFleetLoadBalancersConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_LoadBalancersConfigPropertyValidator(properties).assertSuccess(),{ClassicLoadBalancersConfig:cfnSpotFleetClassicLoadBalancersConfigPropertyToCloudFormation(properties.classicLoadBalancersConfig),TargetGroupsConfig:cfnSpotFleetTargetGroupsConfigPropertyToCloudFormation(properties.targetGroupsConfig)}):properties}function CfnSpotFleetLoadBalancersConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("classicLoadBalancersConfig","ClassicLoadBalancersConfig",properties.ClassicLoadBalancersConfig!=null?CfnSpotFleetClassicLoadBalancersConfigPropertyFromCloudFormation(properties.ClassicLoadBalancersConfig):void 0),ret.addPropertyResult("targetGroupsConfig","TargetGroupsConfig",properties.TargetGroupsConfig!=null?CfnSpotFleetTargetGroupsConfigPropertyFromCloudFormation(properties.TargetGroupsConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_MemoryGiBPerVCpuRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuRequestProperty"')}function cfnSpotFleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_MemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_MemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBRequestProperty"')}function cfnSpotFleetMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_MemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_NetworkBandwidthGbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsRequestProperty"')}function cfnSpotFleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_NetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_NetworkInterfaceCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountRequestProperty"')}function cfnSpotFleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_NetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_PrivateIpAddressSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.requiredValidator)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function cfnSpotFleetPrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_PrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnSpotFleetPrivateIpAddressSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",properties.Primary!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotCapacityRebalancePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("replacementStrategy",cdk.validateString)(properties.replacementStrategy)),errors.collect(cdk.propertyValidator("terminationDelay",cdk.validateNumber)(properties.terminationDelay)),errors.wrap('supplied properties not correct for "SpotCapacityRebalanceProperty"')}function cfnSpotFleetSpotCapacityRebalancePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotCapacityRebalancePropertyValidator(properties).assertSuccess(),{ReplacementStrategy:cdk.stringToCloudFormation(properties.replacementStrategy),TerminationDelay:cdk.numberToCloudFormation(properties.terminationDelay)}):properties}function CfnSpotFleetSpotCapacityRebalancePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("replacementStrategy","ReplacementStrategy",properties.ReplacementStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.ReplacementStrategy):void 0),ret.addPropertyResult("terminationDelay","TerminationDelay",properties.TerminationDelay!=null?cfn_parse.FromCloudFormation.getNumber(properties.TerminationDelay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetLaunchSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blockDeviceMappings",cdk.listValidator(CfnSpotFleet_BlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("iamInstanceProfile",CfnSpotFleet_IamInstanceProfileSpecificationPropertyValidator)(properties.iamInstanceProfile)),errors.collect(cdk.propertyValidator("imageId",cdk.requiredValidator)(properties.imageId)),errors.collect(cdk.propertyValidator("imageId",cdk.validateString)(properties.imageId)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnSpotFleet_InstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("kernelId",cdk.validateString)(properties.kernelId)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("monitoring",CfnSpotFleet_SpotFleetMonitoringPropertyValidator)(properties.monitoring)),errors.collect(cdk.propertyValidator("networkInterfaces",cdk.listValidator(CfnSpotFleet_InstanceNetworkInterfaceSpecificationPropertyValidator))(properties.networkInterfaces)),errors.collect(cdk.propertyValidator("placement",CfnSpotFleet_SpotPlacementPropertyValidator)(properties.placement)),errors.collect(cdk.propertyValidator("ramdiskId",cdk.validateString)(properties.ramdiskId)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(CfnSpotFleet_GroupIdentifierPropertyValidator))(properties.securityGroups)),errors.collect(cdk.propertyValidator("spotPrice",cdk.validateString)(properties.spotPrice)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("userData",cdk.validateString)(properties.userData)),errors.collect(cdk.propertyValidator("weightedCapacity",cdk.validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "SpotFleetLaunchSpecificationProperty"')}function cfnSpotFleetSpotFleetLaunchSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetLaunchSpecificationPropertyValidator(properties).assertSuccess(),{BlockDeviceMappings:cdk.listMapper(cfnSpotFleetBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),IamInstanceProfile:cfnSpotFleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties.iamInstanceProfile),ImageId:cdk.stringToCloudFormation(properties.imageId),InstanceRequirements:cfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),KernelId:cdk.stringToCloudFormation(properties.kernelId),KeyName:cdk.stringToCloudFormation(properties.keyName),Monitoring:cfnSpotFleetSpotFleetMonitoringPropertyToCloudFormation(properties.monitoring),NetworkInterfaces:cdk.listMapper(cfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyToCloudFormation)(properties.networkInterfaces),Placement:cfnSpotFleetSpotPlacementPropertyToCloudFormation(properties.placement),RamdiskId:cdk.stringToCloudFormation(properties.ramdiskId),SecurityGroups:cdk.listMapper(cfnSpotFleetGroupIdentifierPropertyToCloudFormation)(properties.securityGroups),SpotPrice:cdk.stringToCloudFormation(properties.spotPrice),SubnetId:cdk.stringToCloudFormation(properties.subnetId),TagSpecifications:cdk.listMapper(cfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),UserData:cdk.stringToCloudFormation(properties.userData),WeightedCapacity:cdk.numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnSpotFleetSpotFleetLaunchSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?CfnSpotFleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",cfn_parse.FromCloudFormation.getString(properties.ImageId)),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse.FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse.FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?CfnSpotFleetSpotFleetMonitoringPropertyFromCloudFormation(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnSpotFleetSpotPlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("ramdiskId","RamdiskId",properties.RamdiskId!=null?cfn_parse.FromCloudFormation.getString(properties.RamdiskId):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetGroupIdentifierPropertyFromCloudFormation)(properties.SecurityGroups):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse.FromCloudFormation.getString(properties.UserData):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetMonitoringPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "SpotFleetMonitoringProperty"')}function cfnSpotFleetSpotFleetMonitoringPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetMonitoringPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnSpotFleetSpotFleetMonitoringPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetRequestConfigDataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("context",cdk.validateString)(properties.context)),errors.collect(cdk.propertyValidator("excessCapacityTerminationPolicy",cdk.validateString)(properties.excessCapacityTerminationPolicy)),errors.collect(cdk.propertyValidator("iamFleetRole",cdk.requiredValidator)(properties.iamFleetRole)),errors.collect(cdk.propertyValidator("iamFleetRole",cdk.validateString)(properties.iamFleetRole)),errors.collect(cdk.propertyValidator("instanceInterruptionBehavior",cdk.validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk.propertyValidator("instancePoolsToUseCount",cdk.validateNumber)(properties.instancePoolsToUseCount)),errors.collect(cdk.propertyValidator("launchSpecifications",cdk.listValidator(CfnSpotFleet_SpotFleetLaunchSpecificationPropertyValidator))(properties.launchSpecifications)),errors.collect(cdk.propertyValidator("launchTemplateConfigs",cdk.listValidator(CfnSpotFleet_LaunchTemplateConfigPropertyValidator))(properties.launchTemplateConfigs)),errors.collect(cdk.propertyValidator("loadBalancersConfig",CfnSpotFleet_LoadBalancersConfigPropertyValidator)(properties.loadBalancersConfig)),errors.collect(cdk.propertyValidator("onDemandAllocationStrategy",cdk.validateString)(properties.onDemandAllocationStrategy)),errors.collect(cdk.propertyValidator("onDemandMaxTotalPrice",cdk.validateString)(properties.onDemandMaxTotalPrice)),errors.collect(cdk.propertyValidator("onDemandTargetCapacity",cdk.validateNumber)(properties.onDemandTargetCapacity)),errors.collect(cdk.propertyValidator("replaceUnhealthyInstances",cdk.validateBoolean)(properties.replaceUnhealthyInstances)),errors.collect(cdk.propertyValidator("spotMaintenanceStrategies",CfnSpotFleet_SpotMaintenanceStrategiesPropertyValidator)(properties.spotMaintenanceStrategies)),errors.collect(cdk.propertyValidator("spotMaxTotalPrice",cdk.validateString)(properties.spotMaxTotalPrice)),errors.collect(cdk.propertyValidator("spotPrice",cdk.validateString)(properties.spotPrice)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("targetCapacity",cdk.requiredValidator)(properties.targetCapacity)),errors.collect(cdk.propertyValidator("targetCapacity",cdk.validateNumber)(properties.targetCapacity)),errors.collect(cdk.propertyValidator("targetCapacityUnitType",cdk.validateString)(properties.targetCapacityUnitType)),errors.collect(cdk.propertyValidator("terminateInstancesWithExpiration",cdk.validateBoolean)(properties.terminateInstancesWithExpiration)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.collect(cdk.propertyValidator("validFrom",cdk.validateString)(properties.validFrom)),errors.collect(cdk.propertyValidator("validUntil",cdk.validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "SpotFleetRequestConfigDataProperty"')}function cfnSpotFleetSpotFleetRequestConfigDataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetRequestConfigDataPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),Context:cdk.stringToCloudFormation(properties.context),ExcessCapacityTerminationPolicy:cdk.stringToCloudFormation(properties.excessCapacityTerminationPolicy),IamFleetRole:cdk.stringToCloudFormation(properties.iamFleetRole),InstanceInterruptionBehavior:cdk.stringToCloudFormation(properties.instanceInterruptionBehavior),InstancePoolsToUseCount:cdk.numberToCloudFormation(properties.instancePoolsToUseCount),LaunchSpecifications:cdk.listMapper(cfnSpotFleetSpotFleetLaunchSpecificationPropertyToCloudFormation)(properties.launchSpecifications),LaunchTemplateConfigs:cdk.listMapper(cfnSpotFleetLaunchTemplateConfigPropertyToCloudFormation)(properties.launchTemplateConfigs),LoadBalancersConfig:cfnSpotFleetLoadBalancersConfigPropertyToCloudFormation(properties.loadBalancersConfig),OnDemandAllocationStrategy:cdk.stringToCloudFormation(properties.onDemandAllocationStrategy),OnDemandMaxTotalPrice:cdk.stringToCloudFormation(properties.onDemandMaxTotalPrice),OnDemandTargetCapacity:cdk.numberToCloudFormation(properties.onDemandTargetCapacity),ReplaceUnhealthyInstances:cdk.booleanToCloudFormation(properties.replaceUnhealthyInstances),SpotMaintenanceStrategies:cfnSpotFleetSpotMaintenanceStrategiesPropertyToCloudFormation(properties.spotMaintenanceStrategies),SpotMaxTotalPrice:cdk.stringToCloudFormation(properties.spotMaxTotalPrice),SpotPrice:cdk.stringToCloudFormation(properties.spotPrice),TagSpecifications:cdk.listMapper(cfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TargetCapacity:cdk.numberToCloudFormation(properties.targetCapacity),TargetCapacityUnitType:cdk.stringToCloudFormation(properties.targetCapacityUnitType),TerminateInstancesWithExpiration:cdk.booleanToCloudFormation(properties.terminateInstancesWithExpiration),Type:cdk.stringToCloudFormation(properties.type),ValidFrom:cdk.stringToCloudFormation(properties.validFrom),ValidUntil:cdk.stringToCloudFormation(properties.validUntil)}):properties}function CfnSpotFleetSpotFleetRequestConfigDataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("context","Context",properties.Context!=null?cfn_parse.FromCloudFormation.getString(properties.Context):void 0),ret.addPropertyResult("excessCapacityTerminationPolicy","ExcessCapacityTerminationPolicy",properties.ExcessCapacityTerminationPolicy!=null?cfn_parse.FromCloudFormation.getString(properties.ExcessCapacityTerminationPolicy):void 0),ret.addPropertyResult("iamFleetRole","IamFleetRole",cfn_parse.FromCloudFormation.getString(properties.IamFleetRole)),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("instancePoolsToUseCount","InstancePoolsToUseCount",properties.InstancePoolsToUseCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.InstancePoolsToUseCount):void 0),ret.addPropertyResult("launchSpecifications","LaunchSpecifications",properties.LaunchSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetSpotFleetLaunchSpecificationPropertyFromCloudFormation)(properties.LaunchSpecifications):void 0),ret.addPropertyResult("launchTemplateConfigs","LaunchTemplateConfigs",properties.LaunchTemplateConfigs!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetLaunchTemplateConfigPropertyFromCloudFormation)(properties.LaunchTemplateConfigs):void 0),ret.addPropertyResult("loadBalancersConfig","LoadBalancersConfig",properties.LoadBalancersConfig!=null?CfnSpotFleetLoadBalancersConfigPropertyFromCloudFormation(properties.LoadBalancersConfig):void 0),ret.addPropertyResult("onDemandAllocationStrategy","OnDemandAllocationStrategy",properties.OnDemandAllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.OnDemandAllocationStrategy):void 0),ret.addPropertyResult("onDemandMaxTotalPrice","OnDemandMaxTotalPrice",properties.OnDemandMaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.OnDemandMaxTotalPrice):void 0),ret.addPropertyResult("onDemandTargetCapacity","OnDemandTargetCapacity",properties.OnDemandTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandTargetCapacity):void 0),ret.addPropertyResult("replaceUnhealthyInstances","ReplaceUnhealthyInstances",properties.ReplaceUnhealthyInstances!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ReplaceUnhealthyInstances):void 0),ret.addPropertyResult("spotMaintenanceStrategies","SpotMaintenanceStrategies",properties.SpotMaintenanceStrategies!=null?CfnSpotFleetSpotMaintenanceStrategiesPropertyFromCloudFormation(properties.SpotMaintenanceStrategies):void 0),ret.addPropertyResult("spotMaxTotalPrice","SpotMaxTotalPrice",properties.SpotMaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotMaxTotalPrice):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("targetCapacity","TargetCapacity",cfn_parse.FromCloudFormation.getNumber(properties.TargetCapacity)),ret.addPropertyResult("targetCapacityUnitType","TargetCapacityUnitType",properties.TargetCapacityUnitType!=null?cfn_parse.FromCloudFormation.getString(properties.TargetCapacityUnitType):void 0),ret.addPropertyResult("terminateInstancesWithExpiration","TerminateInstancesWithExpiration",properties.TerminateInstancesWithExpiration!=null?cfn_parse.FromCloudFormation.getBoolean(properties.TerminateInstancesWithExpiration):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("validFrom","ValidFrom",properties.ValidFrom!=null?cfn_parse.FromCloudFormation.getString(properties.ValidFrom):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse.FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "SpotFleetTagSpecificationProperty"')}function cfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnSpotFleet_SpotMaintenanceStrategiesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityRebalance",CfnSpotFleet_SpotCapacityRebalancePropertyValidator)(properties.capacityRebalance)),errors.wrap('supplied properties not correct for "SpotMaintenanceStrategiesProperty"')}function cfnSpotFleetSpotMaintenanceStrategiesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotMaintenanceStrategiesPropertyValidator(properties).assertSuccess(),{CapacityRebalance:cfnSpotFleetSpotCapacityRebalancePropertyToCloudFormation(properties.capacityRebalance)}):properties}function CfnSpotFleetSpotMaintenanceStrategiesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityRebalance","CapacityRebalance",properties.CapacityRebalance!=null?CfnSpotFleetSpotCapacityRebalancePropertyFromCloudFormation(properties.CapacityRebalance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotPlacementPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "SpotPlacementProperty"')}function cfnSpotFleetSpotPlacementPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotPlacementPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),GroupName:cdk.stringToCloudFormation(properties.groupName),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnSpotFleetSpotPlacementPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_TargetGroupPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.requiredValidator)(properties.arn)),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.wrap('supplied properties not correct for "TargetGroupProperty"')}function cfnSpotFleetTargetGroupPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_TargetGroupPropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn)}):properties}function CfnSpotFleetTargetGroupPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",cfn_parse.FromCloudFormation.getString(properties.Arn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_TargetGroupsConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("targetGroups",cdk.requiredValidator)(properties.targetGroups)),errors.collect(cdk.propertyValidator("targetGroups",cdk.listValidator(CfnSpotFleet_TargetGroupPropertyValidator))(properties.targetGroups)),errors.wrap('supplied properties not correct for "TargetGroupsConfigProperty"')}function cfnSpotFleetTargetGroupsConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_TargetGroupsConfigPropertyValidator(properties).assertSuccess(),{TargetGroups:cdk.listMapper(cfnSpotFleetTargetGroupPropertyToCloudFormation)(properties.targetGroups)}):properties}function CfnSpotFleetTargetGroupsConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("targetGroups","TargetGroups",cfn_parse.FromCloudFormation.getArray(CfnSpotFleetTargetGroupPropertyFromCloudFormation)(properties.TargetGroups)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_TotalLocalStorageGBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBRequestProperty"')}function cfnSpotFleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_TotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_VCpuCountRangeRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountRangeRequestProperty"')}function cfnSpotFleetVCpuCountRangeRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_VCpuCountRangeRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetVCpuCountRangeRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSubnetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("assignIpv6AddressOnCreation",cdk.validateBoolean)(properties.assignIpv6AddressOnCreation)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZoneId",cdk.validateString)(properties.availabilityZoneId)),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("enableDns64",cdk.validateBoolean)(properties.enableDns64)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("ipv6Native",cdk.validateBoolean)(properties.ipv6Native)),errors.collect(cdk.propertyValidator("mapPublicIpOnLaunch",cdk.validateBoolean)(properties.mapPublicIpOnLaunch)),errors.collect(cdk.propertyValidator("outpostArn",cdk.validateString)(properties.outpostArn)),errors.collect(cdk.propertyValidator("privateDnsNameOptionsOnLaunch",cdk.validateObject)(properties.privateDnsNameOptionsOnLaunch)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnSubnetProps"')}function cfnSubnetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),AssignIpv6AddressOnCreation:cdk.booleanToCloudFormation(properties.assignIpv6AddressOnCreation),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk.stringToCloudFormation(properties.availabilityZoneId),CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),EnableDns64:cdk.booleanToCloudFormation(properties.enableDns64),Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),Ipv6Native:cdk.booleanToCloudFormation(properties.ipv6Native),MapPublicIpOnLaunch:cdk.booleanToCloudFormation(properties.mapPublicIpOnLaunch),OutpostArn:cdk.stringToCloudFormation(properties.outpostArn),PrivateDnsNameOptionsOnLaunch:cdk.objectToCloudFormation(properties.privateDnsNameOptionsOnLaunch),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSubnetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("assignIpv6AddressOnCreation","AssignIpv6AddressOnCreation",properties.AssignIpv6AddressOnCreation!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssignIpv6AddressOnCreation):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("enableDns64","EnableDns64",properties.EnableDns64!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableDns64):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("ipv6Native","Ipv6Native",properties.Ipv6Native!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Ipv6Native):void 0),ret.addPropertyResult("mapPublicIpOnLaunch","MapPublicIpOnLaunch",properties.MapPublicIpOnLaunch!=null?cfn_parse.FromCloudFormation.getBoolean(properties.MapPublicIpOnLaunch):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addPropertyResult("privateDnsNameOptionsOnLaunch","PrivateDnsNameOptionsOnLaunch",properties.PrivateDnsNameOptionsOnLaunch!=null?cfn_parse.FromCloudFormation.getAny(properties.PrivateDnsNameOptionsOnLaunch):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 CfnSubnet extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnet),error}cdk.requireProperty(props,"vpcId",this),this.attrAvailabilityZone=cdk.Token.asString(this.getAtt("AvailabilityZone")),this.attrIpv6CidrBlocks=cdk.Token.asList(this.getAtt("Ipv6CidrBlocks")),this.attrNetworkAclAssociationId=cdk.Token.asString(this.getAtt("NetworkAclAssociationId")),this.attrOutpostArn=cdk.Token.asString(this.getAtt("OutpostArn")),this.attrSubnetId=cdk.Token.asString(this.getAtt("SubnetId")),this.attrVpcId=cdk.Token.asString(this.getAtt("VpcId")),this.vpcId=props.vpcId,this.assignIpv6AddressOnCreation=props.assignIpv6AddressOnCreation,this.availabilityZone=props.availabilityZone,this.availabilityZoneId=props.availabilityZoneId,this.cidrBlock=props.cidrBlock,this.enableDns64=props.enableDns64,this.ipv6CidrBlock=props.ipv6CidrBlock,this.ipv6Native=props.ipv6Native,this.mapPublicIpOnLaunch=props.mapPublicIpOnLaunch,this.outpostArn=props.outpostArn,this.privateDnsNameOptionsOnLaunch=props.privateDnsNameOptionsOnLaunch,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::Subnet",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetPropsFromCloudFormation(resourceProperties),ret=new CfnSubnet(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",CfnSubnet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,assignIpv6AddressOnCreation:this.assignIpv6AddressOnCreation,availabilityZone:this.availabilityZone,availabilityZoneId:this.availabilityZoneId,cidrBlock:this.cidrBlock,enableDns64:this.enableDns64,ipv6CidrBlock:this.ipv6CidrBlock,ipv6Native:this.ipv6Native,mapPublicIpOnLaunch:this.mapPublicIpOnLaunch,outpostArn:this.outpostArn,privateDnsNameOptionsOnLaunch:this.privateDnsNameOptionsOnLaunch,tags:this.tags.renderTags()}}renderProperties(props){return cfnSubnetPropsToCloudFormation(props)}}exports.CfnSubnet=CfnSubnet,_21=JSII_RTTI_SYMBOL_1,CfnSubnet[_21]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnet",version:"2.51.0"},CfnSubnet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Subnet";function CfnSubnetCidrBlockPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.requiredValidator)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetCidrBlockProps"')}function cfnSubnetCidrBlockPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetCidrBlockPropsValidator(properties).assertSuccess(),{Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetCidrBlockPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetCidrBlock extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetCidrBlockProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetCidrBlock),error}cdk.requireProperty(props,"ipv6CidrBlock",this),cdk.requireProperty(props,"subnetId",this),this.ipv6CidrBlock=props.ipv6CidrBlock,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetCidrBlockPropsFromCloudFormation(resourceProperties),ret=new CfnSubnetCidrBlock(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",CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipv6CidrBlock:this.ipv6CidrBlock,subnetId:this.subnetId}}renderProperties(props){return cfnSubnetCidrBlockPropsToCloudFormation(props)}}exports.CfnSubnetCidrBlock=CfnSubnetCidrBlock,_22=JSII_RTTI_SYMBOL_1,CfnSubnetCidrBlock[_22]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetCidrBlock",version:"2.51.0"},CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetCidrBlock";function CfnSubnetNetworkAclAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("networkAclId",cdk.requiredValidator)(properties.networkAclId)),errors.collect(cdk.propertyValidator("networkAclId",cdk.validateString)(properties.networkAclId)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetNetworkAclAssociationProps"')}function cfnSubnetNetworkAclAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetNetworkAclAssociationPropsValidator(properties).assertSuccess(),{NetworkAclId:cdk.stringToCloudFormation(properties.networkAclId),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetNetworkAclAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkAclId","NetworkAclId",cfn_parse.FromCloudFormation.getString(properties.NetworkAclId)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetNetworkAclAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetNetworkAclAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetNetworkAclAssociation),error}cdk.requireProperty(props,"networkAclId",this),cdk.requireProperty(props,"subnetId",this),this.attrAssociationId=cdk.Token.asString(this.getAtt("AssociationId")),this.networkAclId=props.networkAclId,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetNetworkAclAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnSubnetNetworkAclAssociation(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",CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkAclId:this.networkAclId,subnetId:this.subnetId}}renderProperties(props){return cfnSubnetNetworkAclAssociationPropsToCloudFormation(props)}}exports.CfnSubnetNetworkAclAssociation=CfnSubnetNetworkAclAssociation,_23=JSII_RTTI_SYMBOL_1,CfnSubnetNetworkAclAssociation[_23]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetNetworkAclAssociation",version:"2.51.0"},CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetNetworkAclAssociation";function CfnSubnetRouteTableAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("routeTableId",cdk.requiredValidator)(properties.routeTableId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.validateString)(properties.routeTableId)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetRouteTableAssociationProps"')}function cfnSubnetRouteTableAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetRouteTableAssociationPropsValidator(properties).assertSuccess(),{RouteTableId:cdk.stringToCloudFormation(properties.routeTableId),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetRouteTableAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("routeTableId","RouteTableId",cfn_parse.FromCloudFormation.getString(properties.RouteTableId)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetRouteTableAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetRouteTableAssociation),error}cdk.requireProperty(props,"routeTableId",this),cdk.requireProperty(props,"subnetId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.routeTableId=props.routeTableId,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetRouteTableAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnSubnetRouteTableAssociation(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",CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{routeTableId:this.routeTableId,subnetId:this.subnetId}}renderProperties(props){return cfnSubnetRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnSubnetRouteTableAssociation=CfnSubnetRouteTableAssociation,_24=JSII_RTTI_SYMBOL_1,CfnSubnetRouteTableAssociation[_24]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation",version:"2.51.0"},CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetRouteTableAssociation";function CfnTrafficMirrorFilterPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("networkServices",cdk.listValidator(cdk.validateString))(properties.networkServices)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorFilterProps"')}function cfnTrafficMirrorFilterPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorFilterPropsValidator(properties).assertSuccess(),{Description:cdk.stringToCloudFormation(properties.description),NetworkServices:cdk.listMapper(cdk.stringToCloudFormation)(properties.networkServices),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTrafficMirrorFilterPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("networkServices","NetworkServices",properties.NetworkServices!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NetworkServices):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 CfnTrafficMirrorFilter extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorFilterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorFilter),error}this.description=props.description,this.networkServices=props.networkServices,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TrafficMirrorFilter",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorFilterPropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorFilter(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",CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{description:this.description,networkServices:this.networkServices,tags:this.tags.renderTags()}}renderProperties(props){return cfnTrafficMirrorFilterPropsToCloudFormation(props)}}exports.CfnTrafficMirrorFilter=CfnTrafficMirrorFilter,_25=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorFilter[_25]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorFilter",version:"2.51.0"},CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorFilter";function CfnTrafficMirrorFilterRulePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationPortRange",CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator)(properties.destinationPortRange)),errors.collect(cdk.propertyValidator("protocol",cdk.validateNumber)(properties.protocol)),errors.collect(cdk.propertyValidator("ruleAction",cdk.requiredValidator)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleAction",cdk.validateString)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.requiredValidator)(properties.ruleNumber)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.validateNumber)(properties.ruleNumber)),errors.collect(cdk.propertyValidator("sourceCidrBlock",cdk.requiredValidator)(properties.sourceCidrBlock)),errors.collect(cdk.propertyValidator("sourceCidrBlock",cdk.validateString)(properties.sourceCidrBlock)),errors.collect(cdk.propertyValidator("sourcePortRange",CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator)(properties.sourcePortRange)),errors.collect(cdk.propertyValidator("trafficDirection",cdk.requiredValidator)(properties.trafficDirection)),errors.collect(cdk.propertyValidator("trafficDirection",cdk.validateString)(properties.trafficDirection)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.requiredValidator)(properties.trafficMirrorFilterId)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.validateString)(properties.trafficMirrorFilterId)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorFilterRuleProps"')}function cfnTrafficMirrorFilterRulePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorFilterRulePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),RuleAction:cdk.stringToCloudFormation(properties.ruleAction),RuleNumber:cdk.numberToCloudFormation(properties.ruleNumber),SourceCidrBlock:cdk.stringToCloudFormation(properties.sourceCidrBlock),TrafficDirection:cdk.stringToCloudFormation(properties.trafficDirection),TrafficMirrorFilterId:cdk.stringToCloudFormation(properties.trafficMirrorFilterId),Description:cdk.stringToCloudFormation(properties.description),DestinationPortRange:cfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties.destinationPortRange),Protocol:cdk.numberToCloudFormation(properties.protocol),SourcePortRange:cfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties.sourcePortRange)}):properties}function CfnTrafficMirrorFilterRulePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("ruleAction","RuleAction",cfn_parse.FromCloudFormation.getString(properties.RuleAction)),ret.addPropertyResult("ruleNumber","RuleNumber",cfn_parse.FromCloudFormation.getNumber(properties.RuleNumber)),ret.addPropertyResult("sourceCidrBlock","SourceCidrBlock",cfn_parse.FromCloudFormation.getString(properties.SourceCidrBlock)),ret.addPropertyResult("trafficDirection","TrafficDirection",cfn_parse.FromCloudFormation.getString(properties.TrafficDirection)),ret.addPropertyResult("trafficMirrorFilterId","TrafficMirrorFilterId",cfn_parse.FromCloudFormation.getString(properties.TrafficMirrorFilterId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPortRange","DestinationPortRange",properties.DestinationPortRange!=null?CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties.DestinationPortRange):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getNumber(properties.Protocol):void 0),ret.addPropertyResult("sourcePortRange","SourcePortRange",properties.SourcePortRange!=null?CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties.SourcePortRange):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTrafficMirrorFilterRule extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorFilterRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorFilterRule),error}cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"ruleAction",this),cdk.requireProperty(props,"ruleNumber",this),cdk.requireProperty(props,"sourceCidrBlock",this),cdk.requireProperty(props,"trafficDirection",this),cdk.requireProperty(props,"trafficMirrorFilterId",this),this.destinationCidrBlock=props.destinationCidrBlock,this.ruleAction=props.ruleAction,this.ruleNumber=props.ruleNumber,this.sourceCidrBlock=props.sourceCidrBlock,this.trafficDirection=props.trafficDirection,this.trafficMirrorFilterId=props.trafficMirrorFilterId,this.description=props.description,this.destinationPortRange=props.destinationPortRange,this.protocol=props.protocol,this.sourcePortRange=props.sourcePortRange}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorFilterRulePropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorFilterRule(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",CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destinationCidrBlock:this.destinationCidrBlock,ruleAction:this.ruleAction,ruleNumber:this.ruleNumber,sourceCidrBlock:this.sourceCidrBlock,trafficDirection:this.trafficDirection,trafficMirrorFilterId:this.trafficMirrorFilterId,description:this.description,destinationPortRange:this.destinationPortRange,protocol:this.protocol,sourcePortRange:this.sourcePortRange}}renderProperties(props){return cfnTrafficMirrorFilterRulePropsToCloudFormation(props)}}exports.CfnTrafficMirrorFilterRule=CfnTrafficMirrorFilterRule,_26=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorFilterRule[_26]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorFilterRule",version:"2.51.0"},CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorFilterRule";function CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("fromPort",cdk.requiredValidator)(properties.fromPort)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("toPort",cdk.requiredValidator)(properties.toPort)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "TrafficMirrorPortRangeProperty"')}function cfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator(properties).assertSuccess(),{FromPort:cdk.numberToCloudFormation(properties.fromPort),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("fromPort","FromPort",cfn_parse.FromCloudFormation.getNumber(properties.FromPort)),ret.addPropertyResult("toPort","ToPort",cfn_parse.FromCloudFormation.getNumber(properties.ToPort)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTrafficMirrorSessionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("packetLength",cdk.validateNumber)(properties.packetLength)),errors.collect(cdk.propertyValidator("sessionNumber",cdk.requiredValidator)(properties.sessionNumber)),errors.collect(cdk.propertyValidator("sessionNumber",cdk.validateNumber)(properties.sessionNumber)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.requiredValidator)(properties.trafficMirrorFilterId)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.validateString)(properties.trafficMirrorFilterId)),errors.collect(cdk.propertyValidator("trafficMirrorTargetId",cdk.requiredValidator)(properties.trafficMirrorTargetId)),errors.collect(cdk.propertyValidator("trafficMirrorTargetId",cdk.validateString)(properties.trafficMirrorTargetId)),errors.collect(cdk.propertyValidator("virtualNetworkId",cdk.validateNumber)(properties.virtualNetworkId)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorSessionProps"')}function cfnTrafficMirrorSessionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorSessionPropsValidator(properties).assertSuccess(),{NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),SessionNumber:cdk.numberToCloudFormation(properties.sessionNumber),TrafficMirrorFilterId:cdk.stringToCloudFormation(properties.trafficMirrorFilterId),TrafficMirrorTargetId:cdk.stringToCloudFormation(properties.trafficMirrorTargetId),Description:cdk.stringToCloudFormation(properties.description),PacketLength:cdk.numberToCloudFormation(properties.packetLength),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualNetworkId:cdk.numberToCloudFormation(properties.virtualNetworkId)}):properties}function CfnTrafficMirrorSessionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("sessionNumber","SessionNumber",cfn_parse.FromCloudFormation.getNumber(properties.SessionNumber)),ret.addPropertyResult("trafficMirrorFilterId","TrafficMirrorFilterId",cfn_parse.FromCloudFormation.getString(properties.TrafficMirrorFilterId)),ret.addPropertyResult("trafficMirrorTargetId","TrafficMirrorTargetId",cfn_parse.FromCloudFormation.getString(properties.TrafficMirrorTargetId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("packetLength","PacketLength",properties.PacketLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.PacketLength):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualNetworkId","VirtualNetworkId",properties.VirtualNetworkId!=null?cfn_parse.FromCloudFormation.getNumber(properties.VirtualNetworkId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTrafficMirrorSession extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorSessionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorSession),error}cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"sessionNumber",this),cdk.requireProperty(props,"trafficMirrorFilterId",this),cdk.requireProperty(props,"trafficMirrorTargetId",this),this.networkInterfaceId=props.networkInterfaceId,this.sessionNumber=props.sessionNumber,this.trafficMirrorFilterId=props.trafficMirrorFilterId,this.trafficMirrorTargetId=props.trafficMirrorTargetId,this.description=props.description,this.packetLength=props.packetLength,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TrafficMirrorSession",props.tags,{tagPropertyName:"tags"}),this.virtualNetworkId=props.virtualNetworkId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorSessionPropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorSession(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",CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkInterfaceId:this.networkInterfaceId,sessionNumber:this.sessionNumber,trafficMirrorFilterId:this.trafficMirrorFilterId,trafficMirrorTargetId:this.trafficMirrorTargetId,description:this.description,packetLength:this.packetLength,tags:this.tags.renderTags(),virtualNetworkId:this.virtualNetworkId}}renderProperties(props){return cfnTrafficMirrorSessionPropsToCloudFormation(props)}}exports.CfnTrafficMirrorSession=CfnTrafficMirrorSession,_27=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorSession[_27]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorSession",version:"2.51.0"},CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorSession";function CfnTrafficMirrorTargetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("gatewayLoadBalancerEndpointId",cdk.validateString)(properties.gatewayLoadBalancerEndpointId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkLoadBalancerArn",cdk.validateString)(properties.networkLoadBalancerArn)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorTargetProps"')}function cfnTrafficMirrorTargetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorTargetPropsValidator(properties).assertSuccess(),{Description:cdk.stringToCloudFormation(properties.description),GatewayLoadBalancerEndpointId:cdk.stringToCloudFormation(properties.gatewayLoadBalancerEndpointId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),NetworkLoadBalancerArn:cdk.stringToCloudFormation(properties.networkLoadBalancerArn),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTrafficMirrorTargetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("gatewayLoadBalancerEndpointId","GatewayLoadBalancerEndpointId",properties.GatewayLoadBalancerEndpointId!=null?cfn_parse.FromCloudFormation.getString(properties.GatewayLoadBalancerEndpointId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("networkLoadBalancerArn","NetworkLoadBalancerArn",properties.NetworkLoadBalancerArn!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkLoadBalancerArn):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 CfnTrafficMirrorTarget extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorTargetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorTarget),error}this.description=props.description,this.gatewayLoadBalancerEndpointId=props.gatewayLoadBalancerEndpointId,this.networkInterfaceId=props.networkInterfaceId,this.networkLoadBalancerArn=props.networkLoadBalancerArn,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TrafficMirrorTarget",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorTargetPropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorTarget(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",CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{description:this.description,gatewayLoadBalancerEndpointId:this.gatewayLoadBalancerEndpointId,networkInterfaceId:this.networkInterfaceId,networkLoadBalancerArn:this.networkLoadBalancerArn,tags:this.tags.renderTags()}}renderProperties(props){return cfnTrafficMirrorTargetPropsToCloudFormation(props)}}exports.CfnTrafficMirrorTarget=CfnTrafficMirrorTarget,_28=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorTarget[_28]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorTarget",version:"2.51.0"},CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorTarget";function CfnTransitGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("amazonSideAsn",cdk.validateNumber)(properties.amazonSideAsn)),errors.collect(cdk.propertyValidator("associationDefaultRouteTableId",cdk.validateString)(properties.associationDefaultRouteTableId)),errors.collect(cdk.propertyValidator("autoAcceptSharedAttachments",cdk.validateString)(properties.autoAcceptSharedAttachments)),errors.collect(cdk.propertyValidator("defaultRouteTableAssociation",cdk.validateString)(properties.defaultRouteTableAssociation)),errors.collect(cdk.propertyValidator("defaultRouteTablePropagation",cdk.validateString)(properties.defaultRouteTablePropagation)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("dnsSupport",cdk.validateString)(properties.dnsSupport)),errors.collect(cdk.propertyValidator("multicastSupport",cdk.validateString)(properties.multicastSupport)),errors.collect(cdk.propertyValidator("propagationDefaultRouteTableId",cdk.validateString)(properties.propagationDefaultRouteTableId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayCidrBlocks",cdk.listValidator(cdk.validateString))(properties.transitGatewayCidrBlocks)),errors.collect(cdk.propertyValidator("vpnEcmpSupport",cdk.validateString)(properties.vpnEcmpSupport)),errors.wrap('supplied properties not correct for "CfnTransitGatewayProps"')}function cfnTransitGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayPropsValidator(properties).assertSuccess(),{AmazonSideAsn:cdk.numberToCloudFormation(properties.amazonSideAsn),AssociationDefaultRouteTableId:cdk.stringToCloudFormation(properties.associationDefaultRouteTableId),AutoAcceptSharedAttachments:cdk.stringToCloudFormation(properties.autoAcceptSharedAttachments),DefaultRouteTableAssociation:cdk.stringToCloudFormation(properties.defaultRouteTableAssociation),DefaultRouteTablePropagation:cdk.stringToCloudFormation(properties.defaultRouteTablePropagation),Description:cdk.stringToCloudFormation(properties.description),DnsSupport:cdk.stringToCloudFormation(properties.dnsSupport),MulticastSupport:cdk.stringToCloudFormation(properties.multicastSupport),PropagationDefaultRouteTableId:cdk.stringToCloudFormation(properties.propagationDefaultRouteTableId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TransitGatewayCidrBlocks:cdk.listMapper(cdk.stringToCloudFormation)(properties.transitGatewayCidrBlocks),VpnEcmpSupport:cdk.stringToCloudFormation(properties.vpnEcmpSupport)}):properties}function CfnTransitGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("amazonSideAsn","AmazonSideAsn",properties.AmazonSideAsn!=null?cfn_parse.FromCloudFormation.getNumber(properties.AmazonSideAsn):void 0),ret.addPropertyResult("associationDefaultRouteTableId","AssociationDefaultRouteTableId",properties.AssociationDefaultRouteTableId!=null?cfn_parse.FromCloudFormation.getString(properties.AssociationDefaultRouteTableId):void 0),ret.addPropertyResult("autoAcceptSharedAttachments","AutoAcceptSharedAttachments",properties.AutoAcceptSharedAttachments!=null?cfn_parse.FromCloudFormation.getString(properties.AutoAcceptSharedAttachments):void 0),ret.addPropertyResult("defaultRouteTableAssociation","DefaultRouteTableAssociation",properties.DefaultRouteTableAssociation!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultRouteTableAssociation):void 0),ret.addPropertyResult("defaultRouteTablePropagation","DefaultRouteTablePropagation",properties.DefaultRouteTablePropagation!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultRouteTablePropagation):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("dnsSupport","DnsSupport",properties.DnsSupport!=null?cfn_parse.FromCloudFormation.getString(properties.DnsSupport):void 0),ret.addPropertyResult("multicastSupport","MulticastSupport",properties.MulticastSupport!=null?cfn_parse.FromCloudFormation.getString(properties.MulticastSupport):void 0),ret.addPropertyResult("propagationDefaultRouteTableId","PropagationDefaultRouteTableId",properties.PropagationDefaultRouteTableId!=null?cfn_parse.FromCloudFormation.getString(properties.PropagationDefaultRouteTableId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayCidrBlocks","TransitGatewayCidrBlocks",properties.TransitGatewayCidrBlocks!=null?cfn_parse.FromCloudFormation.getStringArray(properties.TransitGatewayCidrBlocks):void 0),ret.addPropertyResult("vpnEcmpSupport","VpnEcmpSupport",properties.VpnEcmpSupport!=null?cfn_parse.FromCloudFormation.getString(properties.VpnEcmpSupport):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGateway extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnTransitGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGateway),error}this.attrId=cdk.Token.asString(this.getAtt("Id")),this.amazonSideAsn=props.amazonSideAsn,this.associationDefaultRouteTableId=props.associationDefaultRouteTableId,this.autoAcceptSharedAttachments=props.autoAcceptSharedAttachments,this.defaultRouteTableAssociation=props.defaultRouteTableAssociation,this.defaultRouteTablePropagation=props.defaultRouteTablePropagation,this.description=props.description,this.dnsSupport=props.dnsSupport,this.multicastSupport=props.multicastSupport,this.propagationDefaultRouteTableId=props.propagationDefaultRouteTableId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGateway",props.tags,{tagPropertyName:"tags"}),this.transitGatewayCidrBlocks=props.transitGatewayCidrBlocks,this.vpnEcmpSupport=props.vpnEcmpSupport}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGateway(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",CfnTransitGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{amazonSideAsn:this.amazonSideAsn,associationDefaultRouteTableId:this.associationDefaultRouteTableId,autoAcceptSharedAttachments:this.autoAcceptSharedAttachments,defaultRouteTableAssociation:this.defaultRouteTableAssociation,defaultRouteTablePropagation:this.defaultRouteTablePropagation,description:this.description,dnsSupport:this.dnsSupport,multicastSupport:this.multicastSupport,propagationDefaultRouteTableId:this.propagationDefaultRouteTableId,tags:this.tags.renderTags(),transitGatewayCidrBlocks:this.transitGatewayCidrBlocks,vpnEcmpSupport:this.vpnEcmpSupport}}renderProperties(props){return cfnTransitGatewayPropsToCloudFormation(props)}}exports.CfnTransitGateway=CfnTransitGateway,_29=JSII_RTTI_SYMBOL_1,CfnTransitGateway[_29]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGateway",version:"2.51.0"},CfnTransitGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGateway";function CfnTransitGatewayAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("options",cdk.validateObject)(properties.options)),errors.collect(cdk.propertyValidator("subnetIds",cdk.requiredValidator)(properties.subnetIds)),errors.collect(cdk.propertyValidator("subnetIds",cdk.listValidator(cdk.validateString))(properties.subnetIds)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayAttachmentProps"')}function cfnTransitGatewayAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayAttachmentPropsValidator(properties).assertSuccess(),{SubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.subnetIds),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcId:cdk.stringToCloudFormation(properties.vpcId),Options:cdk.objectToCloudFormation(properties.options),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetIds","SubnetIds",cfn_parse.FromCloudFormation.getStringArray(properties.SubnetIds)),ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse.FromCloudFormation.getAny(properties.Options):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 CfnTransitGatewayAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayAttachment),error}cdk.requireProperty(props,"subnetIds",this),cdk.requireProperty(props,"transitGatewayId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.subnetIds=props.subnetIds,this.transitGatewayId=props.transitGatewayId,this.vpcId=props.vpcId,this.options=props.options,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayAttachment",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayAttachment(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",CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetIds:this.subnetIds,transitGatewayId:this.transitGatewayId,vpcId:this.vpcId,options:this.options,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayAttachment=CfnTransitGatewayAttachment,_30=JSII_RTTI_SYMBOL_1,CfnTransitGatewayAttachment[_30]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayAttachment",version:"2.51.0"},CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayAttachment";function CfnTransitGatewayConnectPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("options",cdk.requiredValidator)(properties.options)),errors.collect(cdk.propertyValidator("options",CfnTransitGatewayConnect_TransitGatewayConnectOptionsPropertyValidator)(properties.options)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transportTransitGatewayAttachmentId",cdk.requiredValidator)(properties.transportTransitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transportTransitGatewayAttachmentId",cdk.validateString)(properties.transportTransitGatewayAttachmentId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayConnectProps"')}function cfnTransitGatewayConnectPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayConnectPropsValidator(properties).assertSuccess(),{Options:cfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyToCloudFormation(properties.options),TransportTransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transportTransitGatewayAttachmentId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayConnectPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("options","Options",CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyFromCloudFormation(properties.Options)),ret.addPropertyResult("transportTransitGatewayAttachmentId","TransportTransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransportTransitGatewayAttachmentId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayConnect extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayConnectProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayConnect),error}cdk.requireProperty(props,"options",this),cdk.requireProperty(props,"transportTransitGatewayAttachmentId",this),this.attrCreationTime=cdk.Token.asString(this.getAtt("CreationTime")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.attrTransitGatewayId=cdk.Token.asString(this.getAtt("TransitGatewayId")),this.options=props.options,this.transportTransitGatewayAttachmentId=props.transportTransitGatewayAttachmentId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayConnect",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayConnectPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayConnect(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",CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{options:this.options,transportTransitGatewayAttachmentId:this.transportTransitGatewayAttachmentId,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayConnectPropsToCloudFormation(props)}}exports.CfnTransitGatewayConnect=CfnTransitGatewayConnect,_31=JSII_RTTI_SYMBOL_1,CfnTransitGatewayConnect[_31]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayConnect",version:"2.51.0"},CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayConnect";function CfnTransitGatewayConnect_TransitGatewayConnectOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "TransitGatewayConnectOptionsProperty"')}function cfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayConnect_TransitGatewayConnectOptionsPropertyValidator(properties).assertSuccess(),{Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayMulticastDomainPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("options",cdk.validateObject)(properties.options)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastDomainProps"')}function cfnTransitGatewayMulticastDomainPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastDomainPropsValidator(properties).assertSuccess(),{TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),Options:cdk.objectToCloudFormation(properties.options),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayMulticastDomainPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse.FromCloudFormation.getAny(properties.Options):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 CfnTransitGatewayMulticastDomain extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastDomainProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastDomain),error}cdk.requireProperty(props,"transitGatewayId",this),this.attrCreationTime=cdk.Token.asString(this.getAtt("CreationTime")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrTransitGatewayMulticastDomainArn=cdk.Token.asString(this.getAtt("TransitGatewayMulticastDomainArn")),this.attrTransitGatewayMulticastDomainId=cdk.Token.asString(this.getAtt("TransitGatewayMulticastDomainId")),this.transitGatewayId=props.transitGatewayId,this.options=props.options,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayMulticastDomain",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastDomainPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastDomain(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",CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayId:this.transitGatewayId,options:this.options,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayMulticastDomainPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastDomain=CfnTransitGatewayMulticastDomain,_32=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastDomain[_32]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastDomain",version:"2.51.0"},CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastDomain";function CfnTransitGatewayMulticastDomainAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastDomainAssociationProps"')}function cfnTransitGatewayMulticastDomainAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastDomainAssociationPropsValidator(properties).assertSuccess(),{SubnetId:cdk.stringToCloudFormation(properties.subnetId),TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayMulticastDomainId:cdk.stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastDomainAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId)),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastDomainAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastDomainAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastDomainAssociation),error}cdk.requireProperty(props,"subnetId",this),cdk.requireProperty(props,"transitGatewayAttachmentId",this),cdk.requireProperty(props,"transitGatewayMulticastDomainId",this),this.attrResourceId=cdk.Token.asString(this.getAtt("ResourceId")),this.attrResourceType=cdk.Token.asString(this.getAtt("ResourceType")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.subnetId=props.subnetId,this.transitGatewayAttachmentId=props.transitGatewayAttachmentId,this.transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastDomainAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastDomainAssociation(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",CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetId:this.subnetId,transitGatewayAttachmentId:this.transitGatewayAttachmentId,transitGatewayMulticastDomainId:this.transitGatewayMulticastDomainId}}renderProperties(props){return cfnTransitGatewayMulticastDomainAssociationPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastDomainAssociation=CfnTransitGatewayMulticastDomainAssociation,_33=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastDomainAssociation[_33]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastDomainAssociation",version:"2.51.0"},CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastDomainAssociation";function CfnTransitGatewayMulticastGroupMemberPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.requiredValidator)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.validateString)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastGroupMemberProps"')}function cfnTransitGatewayMulticastGroupMemberPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastGroupMemberPropsValidator(properties).assertSuccess(),{GroupIpAddress:cdk.stringToCloudFormation(properties.groupIpAddress),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),TransitGatewayMulticastDomainId:cdk.stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastGroupMemberPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupIpAddress","GroupIpAddress",cfn_parse.FromCloudFormation.getString(properties.GroupIpAddress)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastGroupMember extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastGroupMemberProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastGroupMember),error}cdk.requireProperty(props,"groupIpAddress",this),cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"transitGatewayMulticastDomainId",this),this.attrGroupMember=this.getAtt("GroupMember"),this.attrGroupSource=this.getAtt("GroupSource"),this.attrMemberType=cdk.Token.asString(this.getAtt("MemberType")),this.attrResourceId=cdk.Token.asString(this.getAtt("ResourceId")),this.attrResourceType=cdk.Token.asString(this.getAtt("ResourceType")),this.attrSourceType=cdk.Token.asString(this.getAtt("SourceType")),this.attrSubnetId=cdk.Token.asString(this.getAtt("SubnetId")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.groupIpAddress=props.groupIpAddress,this.networkInterfaceId=props.networkInterfaceId,this.transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastGroupMemberPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastGroupMember(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",CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupIpAddress:this.groupIpAddress,networkInterfaceId:this.networkInterfaceId,transitGatewayMulticastDomainId:this.transitGatewayMulticastDomainId}}renderProperties(props){return cfnTransitGatewayMulticastGroupMemberPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastGroupMember=CfnTransitGatewayMulticastGroupMember,_34=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastGroupMember[_34]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastGroupMember",version:"2.51.0"},CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastGroupMember";function CfnTransitGatewayMulticastGroupSourcePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.requiredValidator)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.validateString)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastGroupSourceProps"')}function cfnTransitGatewayMulticastGroupSourcePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastGroupSourcePropsValidator(properties).assertSuccess(),{GroupIpAddress:cdk.stringToCloudFormation(properties.groupIpAddress),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),TransitGatewayMulticastDomainId:cdk.stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastGroupSourcePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupIpAddress","GroupIpAddress",cfn_parse.FromCloudFormation.getString(properties.GroupIpAddress)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastGroupSource extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastGroupSourceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastGroupSource),error}cdk.requireProperty(props,"groupIpAddress",this),cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"transitGatewayMulticastDomainId",this),this.attrGroupMember=this.getAtt("GroupMember"),this.attrGroupSource=this.getAtt("GroupSource"),this.attrMemberType=cdk.Token.asString(this.getAtt("MemberType")),this.attrResourceId=cdk.Token.asString(this.getAtt("ResourceId")),this.attrResourceType=cdk.Token.asString(this.getAtt("ResourceType")),this.attrSourceType=cdk.Token.asString(this.getAtt("SourceType")),this.attrSubnetId=cdk.Token.asString(this.getAtt("SubnetId")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.groupIpAddress=props.groupIpAddress,this.networkInterfaceId=props.networkInterfaceId,this.transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastGroupSourcePropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastGroupSource(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",CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupIpAddress:this.groupIpAddress,networkInterfaceId:this.networkInterfaceId,transitGatewayMulticastDomainId:this.transitGatewayMulticastDomainId}}renderProperties(props){return cfnTransitGatewayMulticastGroupSourcePropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastGroupSource=CfnTransitGatewayMulticastGroupSource,_35=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastGroupSource[_35]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastGroupSource",version:"2.51.0"},CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastGroupSource";function CfnTransitGatewayPeeringAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("peerAccountId",cdk.requiredValidator)(properties.peerAccountId)),errors.collect(cdk.propertyValidator("peerAccountId",cdk.validateString)(properties.peerAccountId)),errors.collect(cdk.propertyValidator("peerRegion",cdk.requiredValidator)(properties.peerRegion)),errors.collect(cdk.propertyValidator("peerRegion",cdk.validateString)(properties.peerRegion)),errors.collect(cdk.propertyValidator("peerTransitGatewayId",cdk.requiredValidator)(properties.peerTransitGatewayId)),errors.collect(cdk.propertyValidator("peerTransitGatewayId",cdk.validateString)(properties.peerTransitGatewayId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayPeeringAttachmentProps"')}function cfnTransitGatewayPeeringAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayPeeringAttachmentPropsValidator(properties).assertSuccess(),{PeerAccountId:cdk.stringToCloudFormation(properties.peerAccountId),PeerRegion:cdk.stringToCloudFormation(properties.peerRegion),PeerTransitGatewayId:cdk.stringToCloudFormation(properties.peerTransitGatewayId),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayPeeringAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("peerAccountId","PeerAccountId",cfn_parse.FromCloudFormation.getString(properties.PeerAccountId)),ret.addPropertyResult("peerRegion","PeerRegion",cfn_parse.FromCloudFormation.getString(properties.PeerRegion)),ret.addPropertyResult("peerTransitGatewayId","PeerTransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.PeerTransitGatewayId)),ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayPeeringAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayPeeringAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayPeeringAttachment),error}cdk.requireProperty(props,"peerAccountId",this),cdk.requireProperty(props,"peerRegion",this),cdk.requireProperty(props,"peerTransitGatewayId",this),cdk.requireProperty(props,"transitGatewayId",this),this.attrCreationTime=cdk.Token.asString(this.getAtt("CreationTime")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.peerAccountId=props.peerAccountId,this.peerRegion=props.peerRegion,this.peerTransitGatewayId=props.peerTransitGatewayId,this.transitGatewayId=props.transitGatewayId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayPeeringAttachment",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayPeeringAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayPeeringAttachment(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",CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{peerAccountId:this.peerAccountId,peerRegion:this.peerRegion,peerTransitGatewayId:this.peerTransitGatewayId,transitGatewayId:this.transitGatewayId,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayPeeringAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayPeeringAttachment=CfnTransitGatewayPeeringAttachment,_36=JSII_RTTI_SYMBOL_1,CfnTransitGatewayPeeringAttachment[_36]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayPeeringAttachment",version:"2.51.0"},CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayPeeringAttachment";function CfnTransitGatewayRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blackhole",cdk.validateBoolean)(properties.blackhole)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteProps"')}function cfnTransitGatewayRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRoutePropsValidator(properties).assertSuccess(),{TransitGatewayRouteTableId:cdk.stringToCloudFormation(properties.transitGatewayRouteTableId),Blackhole:cdk.booleanToCloudFormation(properties.blackhole),DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId)}):properties}function CfnTransitGatewayRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayRouteTableId)),ret.addPropertyResult("blackhole","Blackhole",properties.Blackhole!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Blackhole):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",properties.TransitGatewayAttachmentId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRoute),error}cdk.requireProperty(props,"transitGatewayRouteTableId",this),this.transitGatewayRouteTableId=props.transitGatewayRouteTableId,this.blackhole=props.blackhole,this.destinationCidrBlock=props.destinationCidrBlock,this.transitGatewayAttachmentId=props.transitGatewayAttachmentId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRoutePropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRoute(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",CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayRouteTableId:this.transitGatewayRouteTableId,blackhole:this.blackhole,destinationCidrBlock:this.destinationCidrBlock,transitGatewayAttachmentId:this.transitGatewayAttachmentId}}renderProperties(props){return cfnTransitGatewayRoutePropsToCloudFormation(props)}}exports.CfnTransitGatewayRoute=CfnTransitGatewayRoute,_37=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRoute[_37]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRoute",version:"2.51.0"},CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRoute";function CfnTransitGatewayRouteTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTableProps"')}function cfnTransitGatewayRouteTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRouteTablePropsValidator(properties).assertSuccess(),{TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayRouteTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTable),error}cdk.requireProperty(props,"transitGatewayId",this),this.transitGatewayId=props.transitGatewayId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayRouteTable",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTablePropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRouteTable(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",CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayId:this.transitGatewayId,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayRouteTablePropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTable=CfnTransitGatewayRouteTable,_38=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRouteTable[_38]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTable",version:"2.51.0"},CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTable";function CfnTransitGatewayRouteTableAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTableAssociationProps"')}function cfnTransitGatewayRouteTableAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRouteTableAssociationPropsValidator(properties).assertSuccess(),{TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayRouteTableId:cdk.stringToCloudFormation(properties.transitGatewayRouteTableId)}):properties}function CfnTransitGatewayRouteTableAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId)),ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayRouteTableId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTableAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTableAssociation),error}cdk.requireProperty(props,"transitGatewayAttachmentId",this),cdk.requireProperty(props,"transitGatewayRouteTableId",this),this.transitGatewayAttachmentId=props.transitGatewayAttachmentId,this.transitGatewayRouteTableId=props.transitGatewayRouteTableId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTableAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRouteTableAssociation(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",CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayAttachmentId:this.transitGatewayAttachmentId,transitGatewayRouteTableId:this.transitGatewayRouteTableId}}renderProperties(props){return cfnTransitGatewayRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTableAssociation=CfnTransitGatewayRouteTableAssociation,_39=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRouteTableAssociation[_39]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTableAssociation",version:"2.51.0"},CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTableAssociation";function CfnTransitGatewayRouteTablePropagationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTablePropagationProps"')}function cfnTransitGatewayRouteTablePropagationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRouteTablePropagationPropsValidator(properties).assertSuccess(),{TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayRouteTableId:cdk.stringToCloudFormation(properties.transitGatewayRouteTableId)}):properties}function CfnTransitGatewayRouteTablePropagationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId)),ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayRouteTableId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTablePropagation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTablePropagationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTablePropagation),error}cdk.requireProperty(props,"transitGatewayAttachmentId",this),cdk.requireProperty(props,"transitGatewayRouteTableId",this),this.transitGatewayAttachmentId=props.transitGatewayAttachmentId,this.transitGatewayRouteTableId=props.transitGatewayRouteTableId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTablePropagationPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRouteTablePropagation(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",CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayAttachmentId:this.transitGatewayAttachmentId,transitGatewayRouteTableId:this.transitGatewayRouteTableId}}renderProperties(props){return cfnTransitGatewayRouteTablePropagationPropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTablePropagation=CfnTransitGatewayRouteTablePropagation,_40=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRouteTablePropagation[_40]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTablePropagation",version:"2.51.0"},CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTablePropagation";function CfnTransitGatewayVpcAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("addSubnetIds",cdk.listValidator(cdk.validateString))(properties.addSubnetIds)),errors.collect(cdk.propertyValidator("options",cdk.validateObject)(properties.options)),errors.collect(cdk.propertyValidator("removeSubnetIds",cdk.listValidator(cdk.validateString))(properties.removeSubnetIds)),errors.collect(cdk.propertyValidator("subnetIds",cdk.requiredValidator)(properties.subnetIds)),errors.collect(cdk.propertyValidator("subnetIds",cdk.listValidator(cdk.validateString))(properties.subnetIds)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayVpcAttachmentProps"')}function cfnTransitGatewayVpcAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayVpcAttachmentPropsValidator(properties).assertSuccess(),{SubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.subnetIds),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcId:cdk.stringToCloudFormation(properties.vpcId),AddSubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.addSubnetIds),Options:cdk.objectToCloudFormation(properties.options),RemoveSubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.removeSubnetIds),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayVpcAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetIds","SubnetIds",cfn_parse.FromCloudFormation.getStringArray(properties.SubnetIds)),ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("addSubnetIds","AddSubnetIds",properties.AddSubnetIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AddSubnetIds):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse.FromCloudFormation.getAny(properties.Options):void 0),ret.addPropertyResult("removeSubnetIds","RemoveSubnetIds",properties.RemoveSubnetIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.RemoveSubnetIds):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 CfnTransitGatewayVpcAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayVpcAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayVpcAttachment),error}cdk.requireProperty(props,"subnetIds",this),cdk.requireProperty(props,"transitGatewayId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.subnetIds=props.subnetIds,this.transitGatewayId=props.transitGatewayId,this.vpcId=props.vpcId,this.addSubnetIds=props.addSubnetIds,this.options=props.options,this.removeSubnetIds=props.removeSubnetIds,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayVpcAttachment",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayVpcAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayVpcAttachment(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",CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetIds:this.subnetIds,transitGatewayId:this.transitGatewayId,vpcId:this.vpcId,addSubnetIds:this.addSubnetIds,options:this.options,removeSubnetIds:this.removeSubnetIds,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayVpcAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayVpcAttachment=CfnTransitGatewayVpcAttachment,_41=JSII_RTTI_SYMBOL_1,CfnTransitGatewayVpcAttachment[_41]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayVpcAttachment",version:"2.51.0"},CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayVpcAttachment";function CfnVPCPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("enableDnsHostnames",cdk.validateBoolean)(properties.enableDnsHostnames)),errors.collect(cdk.propertyValidator("enableDnsSupport",cdk.validateBoolean)(properties.enableDnsSupport)),errors.collect(cdk.propertyValidator("instanceTenancy",cdk.validateString)(properties.instanceTenancy)),errors.collect(cdk.propertyValidator("ipv4IpamPoolId",cdk.validateString)(properties.ipv4IpamPoolId)),errors.collect(cdk.propertyValidator("ipv4NetmaskLength",cdk.validateNumber)(properties.ipv4NetmaskLength)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnVPCProps"')}function cfnVPCPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCPropsValidator(properties).assertSuccess(),{CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),EnableDnsHostnames:cdk.booleanToCloudFormation(properties.enableDnsHostnames),EnableDnsSupport:cdk.booleanToCloudFormation(properties.enableDnsSupport),InstanceTenancy:cdk.stringToCloudFormation(properties.instanceTenancy),Ipv4IpamPoolId:cdk.stringToCloudFormation(properties.ipv4IpamPoolId),Ipv4NetmaskLength:cdk.numberToCloudFormation(properties.ipv4NetmaskLength),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPCPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("enableDnsHostnames","EnableDnsHostnames",properties.EnableDnsHostnames!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableDnsHostnames):void 0),ret.addPropertyResult("enableDnsSupport","EnableDnsSupport",properties.EnableDnsSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableDnsSupport):void 0),ret.addPropertyResult("instanceTenancy","InstanceTenancy",properties.InstanceTenancy!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceTenancy):void 0),ret.addPropertyResult("ipv4IpamPoolId","Ipv4IpamPoolId",properties.Ipv4IpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv4IpamPoolId):void 0),ret.addPropertyResult("ipv4NetmaskLength","Ipv4NetmaskLength",properties.Ipv4NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv4NetmaskLength):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 CfnVPC extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnVPC.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPC),error}this.attrCidrBlock=cdk.Token.asString(this.getAtt("CidrBlock")),this.attrCidrBlockAssociations=cdk.Token.asList(this.getAtt("CidrBlockAssociations")),this.attrDefaultNetworkAcl=cdk.Token.asString(this.getAtt("DefaultNetworkAcl")),this.attrDefaultSecurityGroup=cdk.Token.asString(this.getAtt("DefaultSecurityGroup")),this.attrIpv6CidrBlocks=cdk.Token.asList(this.getAtt("Ipv6CidrBlocks")),this.attrVpcId=cdk.Token.asString(this.getAtt("VpcId")),this.cidrBlock=props.cidrBlock,this.enableDnsHostnames=props.enableDnsHostnames,this.enableDnsSupport=props.enableDnsSupport,this.instanceTenancy=props.instanceTenancy,this.ipv4IpamPoolId=props.ipv4IpamPoolId,this.ipv4NetmaskLength=props.ipv4NetmaskLength,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPC",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCPropsFromCloudFormation(resourceProperties),ret=new CfnVPC(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",CfnVPC.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{cidrBlock:this.cidrBlock,enableDnsHostnames:this.enableDnsHostnames,enableDnsSupport:this.enableDnsSupport,instanceTenancy:this.instanceTenancy,ipv4IpamPoolId:this.ipv4IpamPoolId,ipv4NetmaskLength:this.ipv4NetmaskLength,tags:this.tags.renderTags()}}renderProperties(props){return cfnVPCPropsToCloudFormation(props)}}exports.CfnVPC=CfnVPC,_42=JSII_RTTI_SYMBOL_1,CfnVPC[_42]={fqn:"aws-cdk-lib.aws_ec2.CfnVPC",version:"2.51.0"},CfnVPC.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPC";function CfnVPCCidrBlockPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("amazonProvidedIpv6CidrBlock",cdk.validateBoolean)(properties.amazonProvidedIpv6CidrBlock)),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("ipv4IpamPoolId",cdk.validateString)(properties.ipv4IpamPoolId)),errors.collect(cdk.propertyValidator("ipv4NetmaskLength",cdk.validateNumber)(properties.ipv4NetmaskLength)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("ipv6IpamPoolId",cdk.validateString)(properties.ipv6IpamPoolId)),errors.collect(cdk.propertyValidator("ipv6NetmaskLength",cdk.validateNumber)(properties.ipv6NetmaskLength)),errors.collect(cdk.propertyValidator("ipv6Pool",cdk.validateString)(properties.ipv6Pool)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCCidrBlockProps"')}function cfnVPCCidrBlockPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCCidrBlockPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),AmazonProvidedIpv6CidrBlock:cdk.booleanToCloudFormation(properties.amazonProvidedIpv6CidrBlock),CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),Ipv4IpamPoolId:cdk.stringToCloudFormation(properties.ipv4IpamPoolId),Ipv4NetmaskLength:cdk.numberToCloudFormation(properties.ipv4NetmaskLength),Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),Ipv6IpamPoolId:cdk.stringToCloudFormation(properties.ipv6IpamPoolId),Ipv6NetmaskLength:cdk.numberToCloudFormation(properties.ipv6NetmaskLength),Ipv6Pool:cdk.stringToCloudFormation(properties.ipv6Pool)}):properties}function CfnVPCCidrBlockPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("amazonProvidedIpv6CidrBlock","AmazonProvidedIpv6CidrBlock",properties.AmazonProvidedIpv6CidrBlock!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AmazonProvidedIpv6CidrBlock):void 0),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("ipv4IpamPoolId","Ipv4IpamPoolId",properties.Ipv4IpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv4IpamPoolId):void 0),ret.addPropertyResult("ipv4NetmaskLength","Ipv4NetmaskLength",properties.Ipv4NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv4NetmaskLength):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("ipv6IpamPoolId","Ipv6IpamPoolId",properties.Ipv6IpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6IpamPoolId):void 0),ret.addPropertyResult("ipv6NetmaskLength","Ipv6NetmaskLength",properties.Ipv6NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6NetmaskLength):void 0),ret.addPropertyResult("ipv6Pool","Ipv6Pool",properties.Ipv6Pool!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6Pool):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCCidrBlock extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCCidrBlockProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCCidrBlock),error}cdk.requireProperty(props,"vpcId",this),this.vpcId=props.vpcId,this.amazonProvidedIpv6CidrBlock=props.amazonProvidedIpv6CidrBlock,this.cidrBlock=props.cidrBlock,this.ipv4IpamPoolId=props.ipv4IpamPoolId,this.ipv4NetmaskLength=props.ipv4NetmaskLength,this.ipv6CidrBlock=props.ipv6CidrBlock,this.ipv6IpamPoolId=props.ipv6IpamPoolId,this.ipv6NetmaskLength=props.ipv6NetmaskLength,this.ipv6Pool=props.ipv6Pool}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCCidrBlockPropsFromCloudFormation(resourceProperties),ret=new CfnVPCCidrBlock(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",CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,amazonProvidedIpv6CidrBlock:this.amazonProvidedIpv6CidrBlock,cidrBlock:this.cidrBlock,ipv4IpamPoolId:this.ipv4IpamPoolId,ipv4NetmaskLength:this.ipv4NetmaskLength,ipv6CidrBlock:this.ipv6CidrBlock,ipv6IpamPoolId:this.ipv6IpamPoolId,ipv6NetmaskLength:this.ipv6NetmaskLength,ipv6Pool:this.ipv6Pool}}renderProperties(props){return cfnVPCCidrBlockPropsToCloudFormation(props)}}exports.CfnVPCCidrBlock=CfnVPCCidrBlock,_43=JSII_RTTI_SYMBOL_1,CfnVPCCidrBlock[_43]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCCidrBlock",version:"2.51.0"},CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCCidrBlock";function CfnVPCDHCPOptionsAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("dhcpOptionsId",cdk.requiredValidator)(properties.dhcpOptionsId)),errors.collect(cdk.propertyValidator("dhcpOptionsId",cdk.validateString)(properties.dhcpOptionsId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCDHCPOptionsAssociationProps"')}function cfnVPCDHCPOptionsAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCDHCPOptionsAssociationPropsValidator(properties).assertSuccess(),{DhcpOptionsId:cdk.stringToCloudFormation(properties.dhcpOptionsId),VpcId:cdk.stringToCloudFormation(properties.vpcId)}):properties}function CfnVPCDHCPOptionsAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("dhcpOptionsId","DhcpOptionsId",cfn_parse.FromCloudFormation.getString(properties.DhcpOptionsId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCDHCPOptionsAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCDHCPOptionsAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCDHCPOptionsAssociation),error}cdk.requireProperty(props,"dhcpOptionsId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.dhcpOptionsId=props.dhcpOptionsId,this.vpcId=props.vpcId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCDHCPOptionsAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnVPCDHCPOptionsAssociation(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",CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{dhcpOptionsId:this.dhcpOptionsId,vpcId:this.vpcId}}renderProperties(props){return cfnVPCDHCPOptionsAssociationPropsToCloudFormation(props)}}exports.CfnVPCDHCPOptionsAssociation=CfnVPCDHCPOptionsAssociation,_44=JSII_RTTI_SYMBOL_1,CfnVPCDHCPOptionsAssociation[_44]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCDHCPOptionsAssociation",version:"2.51.0"},CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCDHCPOptionsAssociation";function CfnVPCEndpointPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("policyDocument",cdk.validateObject)(properties.policyDocument)),errors.collect(cdk.propertyValidator("privateDnsEnabled",cdk.validateBoolean)(properties.privateDnsEnabled)),errors.collect(cdk.propertyValidator("routeTableIds",cdk.listValidator(cdk.validateString))(properties.routeTableIds)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("serviceName",cdk.requiredValidator)(properties.serviceName)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.collect(cdk.propertyValidator("subnetIds",cdk.listValidator(cdk.validateString))(properties.subnetIds)),errors.collect(cdk.propertyValidator("vpcEndpointType",cdk.validateString)(properties.vpcEndpointType)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointProps"')}function cfnVPCEndpointPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointPropsValidator(properties).assertSuccess(),{ServiceName:cdk.stringToCloudFormation(properties.serviceName),VpcId:cdk.stringToCloudFormation(properties.vpcId),PolicyDocument:cdk.objectToCloudFormation(properties.policyDocument),PrivateDnsEnabled:cdk.booleanToCloudFormation(properties.privateDnsEnabled),RouteTableIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.routeTableIds),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.subnetIds),VpcEndpointType:cdk.stringToCloudFormation(properties.vpcEndpointType)}):properties}function CfnVPCEndpointPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("serviceName","ServiceName",cfn_parse.FromCloudFormation.getString(properties.ServiceName)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse.FromCloudFormation.getAny(properties.PolicyDocument):void 0),ret.addPropertyResult("privateDnsEnabled","PrivateDnsEnabled",properties.PrivateDnsEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PrivateDnsEnabled):void 0),ret.addPropertyResult("routeTableIds","RouteTableIds",properties.RouteTableIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.RouteTableIds):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SubnetIds):void 0),ret.addPropertyResult("vpcEndpointType","VpcEndpointType",properties.VpcEndpointType!=null?cfn_parse.FromCloudFormation.getString(properties.VpcEndpointType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpoint extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpoint),error}cdk.requireProperty(props,"serviceName",this),cdk.requireProperty(props,"vpcId",this),this.attrCreationTimestamp=cdk.Token.asString(this.getAtt("CreationTimestamp")),this.attrDnsEntries=cdk.Token.asList(this.getAtt("DnsEntries")),this.attrNetworkInterfaceIds=cdk.Token.asList(this.getAtt("NetworkInterfaceIds")),this.serviceName=props.serviceName,this.vpcId=props.vpcId,this.policyDocument=props.policyDocument,this.privateDnsEnabled=props.privateDnsEnabled,this.routeTableIds=props.routeTableIds,this.securityGroupIds=props.securityGroupIds,this.subnetIds=props.subnetIds,this.vpcEndpointType=props.vpcEndpointType}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointPropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpoint(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",CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{serviceName:this.serviceName,vpcId:this.vpcId,policyDocument:this.policyDocument,privateDnsEnabled:this.privateDnsEnabled,routeTableIds:this.routeTableIds,securityGroupIds:this.securityGroupIds,subnetIds:this.subnetIds,vpcEndpointType:this.vpcEndpointType}}renderProperties(props){return cfnVPCEndpointPropsToCloudFormation(props)}}exports.CfnVPCEndpoint=CfnVPCEndpoint,_45=JSII_RTTI_SYMBOL_1,CfnVPCEndpoint[_45]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpoint",version:"2.51.0"},CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpoint";function CfnVPCEndpointConnectionNotificationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("connectionEvents",cdk.requiredValidator)(properties.connectionEvents)),errors.collect(cdk.propertyValidator("connectionEvents",cdk.listValidator(cdk.validateString))(properties.connectionEvents)),errors.collect(cdk.propertyValidator("connectionNotificationArn",cdk.requiredValidator)(properties.connectionNotificationArn)),errors.collect(cdk.propertyValidator("connectionNotificationArn",cdk.validateString)(properties.connectionNotificationArn)),errors.collect(cdk.propertyValidator("serviceId",cdk.validateString)(properties.serviceId)),errors.collect(cdk.propertyValidator("vpcEndpointId",cdk.validateString)(properties.vpcEndpointId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointConnectionNotificationProps"')}function cfnVPCEndpointConnectionNotificationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointConnectionNotificationPropsValidator(properties).assertSuccess(),{ConnectionEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.connectionEvents),ConnectionNotificationArn:cdk.stringToCloudFormation(properties.connectionNotificationArn),ServiceId:cdk.stringToCloudFormation(properties.serviceId),VPCEndpointId:cdk.stringToCloudFormation(properties.vpcEndpointId)}):properties}function CfnVPCEndpointConnectionNotificationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("connectionEvents","ConnectionEvents",cfn_parse.FromCloudFormation.getStringArray(properties.ConnectionEvents)),ret.addPropertyResult("connectionNotificationArn","ConnectionNotificationArn",cfn_parse.FromCloudFormation.getString(properties.ConnectionNotificationArn)),ret.addPropertyResult("serviceId","ServiceId",properties.ServiceId!=null?cfn_parse.FromCloudFormation.getString(properties.ServiceId):void 0),ret.addPropertyResult("vpcEndpointId","VPCEndpointId",properties.VPCEndpointId!=null?cfn_parse.FromCloudFormation.getString(properties.VPCEndpointId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointConnectionNotification extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointConnectionNotificationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointConnectionNotification),error}cdk.requireProperty(props,"connectionEvents",this),cdk.requireProperty(props,"connectionNotificationArn",this),this.connectionEvents=props.connectionEvents,this.connectionNotificationArn=props.connectionNotificationArn,this.serviceId=props.serviceId,this.vpcEndpointId=props.vpcEndpointId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointConnectionNotificationPropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpointConnectionNotification(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",CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{connectionEvents:this.connectionEvents,connectionNotificationArn:this.connectionNotificationArn,serviceId:this.serviceId,vpcEndpointId:this.vpcEndpointId}}renderProperties(props){return cfnVPCEndpointConnectionNotificationPropsToCloudFormation(props)}}exports.CfnVPCEndpointConnectionNotification=CfnVPCEndpointConnectionNotification,_46=JSII_RTTI_SYMBOL_1,CfnVPCEndpointConnectionNotification[_46]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointConnectionNotification",version:"2.51.0"},CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointConnectionNotification";function CfnVPCEndpointServicePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceptanceRequired",cdk.validateBoolean)(properties.acceptanceRequired)),errors.collect(cdk.propertyValidator("contributorInsightsEnabled",cdk.validateBoolean)(properties.contributorInsightsEnabled)),errors.collect(cdk.propertyValidator("gatewayLoadBalancerArns",cdk.listValidator(cdk.validateString))(properties.gatewayLoadBalancerArns)),errors.collect(cdk.propertyValidator("networkLoadBalancerArns",cdk.listValidator(cdk.validateString))(properties.networkLoadBalancerArns)),errors.collect(cdk.propertyValidator("payerResponsibility",cdk.validateString)(properties.payerResponsibility)),errors.wrap('supplied properties not correct for "CfnVPCEndpointServiceProps"')}function cfnVPCEndpointServicePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointServicePropsValidator(properties).assertSuccess(),{AcceptanceRequired:cdk.booleanToCloudFormation(properties.acceptanceRequired),ContributorInsightsEnabled:cdk.booleanToCloudFormation(properties.contributorInsightsEnabled),GatewayLoadBalancerArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.gatewayLoadBalancerArns),NetworkLoadBalancerArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.networkLoadBalancerArns),PayerResponsibility:cdk.stringToCloudFormation(properties.payerResponsibility)}):properties}function CfnVPCEndpointServicePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceptanceRequired","AcceptanceRequired",properties.AcceptanceRequired!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AcceptanceRequired):void 0),ret.addPropertyResult("contributorInsightsEnabled","ContributorInsightsEnabled",properties.ContributorInsightsEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ContributorInsightsEnabled):void 0),ret.addPropertyResult("gatewayLoadBalancerArns","GatewayLoadBalancerArns",properties.GatewayLoadBalancerArns!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GatewayLoadBalancerArns):void 0),ret.addPropertyResult("networkLoadBalancerArns","NetworkLoadBalancerArns",properties.NetworkLoadBalancerArns!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NetworkLoadBalancerArns):void 0),ret.addPropertyResult("payerResponsibility","PayerResponsibility",properties.PayerResponsibility!=null?cfn_parse.FromCloudFormation.getString(properties.PayerResponsibility):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointService extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointService),error}this.acceptanceRequired=props.acceptanceRequired,this.contributorInsightsEnabled=props.contributorInsightsEnabled,this.gatewayLoadBalancerArns=props.gatewayLoadBalancerArns,this.networkLoadBalancerArns=props.networkLoadBalancerArns,this.payerResponsibility=props.payerResponsibility}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointServicePropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpointService(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",CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{acceptanceRequired:this.acceptanceRequired,contributorInsightsEnabled:this.contributorInsightsEnabled,gatewayLoadBalancerArns:this.gatewayLoadBalancerArns,networkLoadBalancerArns:this.networkLoadBalancerArns,payerResponsibility:this.payerResponsibility}}renderProperties(props){return cfnVPCEndpointServicePropsToCloudFormation(props)}}exports.CfnVPCEndpointService=CfnVPCEndpointService,_47=JSII_RTTI_SYMBOL_1,CfnVPCEndpointService[_47]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointService",version:"2.51.0"},CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointService";function CfnVPCEndpointServicePermissionsPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allowedPrincipals",cdk.listValidator(cdk.validateString))(properties.allowedPrincipals)),errors.collect(cdk.propertyValidator("serviceId",cdk.requiredValidator)(properties.serviceId)),errors.collect(cdk.propertyValidator("serviceId",cdk.validateString)(properties.serviceId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointServicePermissionsProps"')}function cfnVPCEndpointServicePermissionsPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointServicePermissionsPropsValidator(properties).assertSuccess(),{ServiceId:cdk.stringToCloudFormation(properties.serviceId),AllowedPrincipals:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedPrincipals)}):properties}function CfnVPCEndpointServicePermissionsPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("serviceId","ServiceId",cfn_parse.FromCloudFormation.getString(properties.ServiceId)),ret.addPropertyResult("allowedPrincipals","AllowedPrincipals",properties.AllowedPrincipals!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedPrincipals):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointServicePermissions extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointServicePermissionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointServicePermissions),error}cdk.requireProperty(props,"serviceId",this),this.serviceId=props.serviceId,this.allowedPrincipals=props.allowedPrincipals}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointServicePermissionsPropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpointServicePermissions(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",CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{serviceId:this.serviceId,allowedPrincipals:this.allowedPrincipals}}renderProperties(props){return cfnVPCEndpointServicePermissionsPropsToCloudFormation(props)}}exports.CfnVPCEndpointServicePermissions=CfnVPCEndpointServicePermissions,_48=JSII_RTTI_SYMBOL_1,CfnVPCEndpointServicePermissions[_48]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointServicePermissions",version:"2.51.0"},CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointServicePermissions";function CfnVPCGatewayAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("internetGatewayId",cdk.validateString)(properties.internetGatewayId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.validateString)(properties.vpnGatewayId)),errors.wrap('supplied properties not correct for "CfnVPCGatewayAttachmentProps"')}function cfnVPCGatewayAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCGatewayAttachmentPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),InternetGatewayId:cdk.stringToCloudFormation(properties.internetGatewayId),VpnGatewayId:cdk.stringToCloudFormation(properties.vpnGatewayId)}):properties}function CfnVPCGatewayAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("internetGatewayId","InternetGatewayId",properties.InternetGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.InternetGatewayId):void 0),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",properties.VpnGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.VpnGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCGatewayAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCGatewayAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCGatewayAttachment),error}cdk.requireProperty(props,"vpcId",this),this.vpcId=props.vpcId,this.internetGatewayId=props.internetGatewayId,this.vpnGatewayId=props.vpnGatewayId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCGatewayAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnVPCGatewayAttachment(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",CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,internetGatewayId:this.internetGatewayId,vpnGatewayId:this.vpnGatewayId}}renderProperties(props){return cfnVPCGatewayAttachmentPropsToCloudFormation(props)}}exports.CfnVPCGatewayAttachment=CfnVPCGatewayAttachment,_49=JSII_RTTI_SYMBOL_1,CfnVPCGatewayAttachment[_49]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment",version:"2.51.0"},CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCGatewayAttachment";function CfnVPCPeeringConnectionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("peerOwnerId",cdk.validateString)(properties.peerOwnerId)),errors.collect(cdk.propertyValidator("peerRegion",cdk.validateString)(properties.peerRegion)),errors.collect(cdk.propertyValidator("peerRoleArn",cdk.validateString)(properties.peerRoleArn)),errors.collect(cdk.propertyValidator("peerVpcId",cdk.requiredValidator)(properties.peerVpcId)),errors.collect(cdk.propertyValidator("peerVpcId",cdk.validateString)(properties.peerVpcId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCPeeringConnectionProps"')}function cfnVPCPeeringConnectionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCPeeringConnectionPropsValidator(properties).assertSuccess(),{PeerVpcId:cdk.stringToCloudFormation(properties.peerVpcId),VpcId:cdk.stringToCloudFormation(properties.vpcId),PeerOwnerId:cdk.stringToCloudFormation(properties.peerOwnerId),PeerRegion:cdk.stringToCloudFormation(properties.peerRegion),PeerRoleArn:cdk.stringToCloudFormation(properties.peerRoleArn),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPCPeeringConnectionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("peerVpcId","PeerVpcId",cfn_parse.FromCloudFormation.getString(properties.PeerVpcId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("peerOwnerId","PeerOwnerId",properties.PeerOwnerId!=null?cfn_parse.FromCloudFormation.getString(properties.PeerOwnerId):void 0),ret.addPropertyResult("peerRegion","PeerRegion",properties.PeerRegion!=null?cfn_parse.FromCloudFormation.getString(properties.PeerRegion):void 0),ret.addPropertyResult("peerRoleArn","PeerRoleArn",properties.PeerRoleArn!=null?cfn_parse.FromCloudFormation.getString(properties.PeerRoleArn):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 CfnVPCPeeringConnection extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCPeeringConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCPeeringConnection),error}cdk.requireProperty(props,"peerVpcId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.peerVpcId=props.peerVpcId,this.vpcId=props.vpcId,this.peerOwnerId=props.peerOwnerId,this.peerRegion=props.peerRegion,this.peerRoleArn=props.peerRoleArn,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPCPeeringConnection",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCPeeringConnectionPropsFromCloudFormation(resourceProperties),ret=new CfnVPCPeeringConnection(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",CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{peerVpcId:this.peerVpcId,vpcId:this.vpcId,peerOwnerId:this.peerOwnerId,peerRegion:this.peerRegion,peerRoleArn:this.peerRoleArn,tags:this.tags.renderTags()}}renderProperties(props){return cfnVPCPeeringConnectionPropsToCloudFormation(props)}}exports.CfnVPCPeeringConnection=CfnVPCPeeringConnection,_50=JSII_RTTI_SYMBOL_1,CfnVPCPeeringConnection[_50]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCPeeringConnection",version:"2.51.0"},CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCPeeringConnection";function CfnVPNConnectionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("customerGatewayId",cdk.requiredValidator)(properties.customerGatewayId)),errors.collect(cdk.propertyValidator("customerGatewayId",cdk.validateString)(properties.customerGatewayId)),errors.collect(cdk.propertyValidator("staticRoutesOnly",cdk.validateBoolean)(properties.staticRoutesOnly)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("type",cdk.requiredValidator)(properties.type)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.validateString)(properties.vpnGatewayId)),errors.collect(cdk.propertyValidator("vpnTunnelOptionsSpecifications",cdk.listValidator(CfnVPNConnection_VpnTunnelOptionsSpecificationPropertyValidator))(properties.vpnTunnelOptionsSpecifications)),errors.wrap('supplied properties not correct for "CfnVPNConnectionProps"')}function cfnVPNConnectionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNConnectionPropsValidator(properties).assertSuccess(),{CustomerGatewayId:cdk.stringToCloudFormation(properties.customerGatewayId),Type:cdk.stringToCloudFormation(properties.type),StaticRoutesOnly:cdk.booleanToCloudFormation(properties.staticRoutesOnly),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpnGatewayId:cdk.stringToCloudFormation(properties.vpnGatewayId),VpnTunnelOptionsSpecifications:cdk.listMapper(cfnVPNConnectionVpnTunnelOptionsSpecificationPropertyToCloudFormation)(properties.vpnTunnelOptionsSpecifications)}):properties}function CfnVPNConnectionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("customerGatewayId","CustomerGatewayId",cfn_parse.FromCloudFormation.getString(properties.CustomerGatewayId)),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addPropertyResult("staticRoutesOnly","StaticRoutesOnly",properties.StaticRoutesOnly!=null?cfn_parse.FromCloudFormation.getBoolean(properties.StaticRoutesOnly):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",properties.VpnGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.VpnGatewayId):void 0),ret.addPropertyResult("vpnTunnelOptionsSpecifications","VpnTunnelOptionsSpecifications",properties.VpnTunnelOptionsSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyFromCloudFormation)(properties.VpnTunnelOptionsSpecifications):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNConnection extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNConnection.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNConnection),error}cdk.requireProperty(props,"customerGatewayId",this),cdk.requireProperty(props,"type",this),this.attrVpnConnectionId=cdk.Token.asString(this.getAtt("VpnConnectionId")),this.customerGatewayId=props.customerGatewayId,this.type=props.type,this.staticRoutesOnly=props.staticRoutesOnly,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPNConnection",props.tags,{tagPropertyName:"tags"}),this.transitGatewayId=props.transitGatewayId,this.vpnGatewayId=props.vpnGatewayId,this.vpnTunnelOptionsSpecifications=props.vpnTunnelOptionsSpecifications}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNConnectionPropsFromCloudFormation(resourceProperties),ret=new CfnVPNConnection(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",CfnVPNConnection.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{customerGatewayId:this.customerGatewayId,type:this.type,staticRoutesOnly:this.staticRoutesOnly,tags:this.tags.renderTags(),transitGatewayId:this.transitGatewayId,vpnGatewayId:this.vpnGatewayId,vpnTunnelOptionsSpecifications:this.vpnTunnelOptionsSpecifications}}renderProperties(props){return cfnVPNConnectionPropsToCloudFormation(props)}}exports.CfnVPNConnection=CfnVPNConnection,_51=JSII_RTTI_SYMBOL_1,CfnVPNConnection[_51]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNConnection",version:"2.51.0"},CfnVPNConnection.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNConnection";function CfnVPNConnection_VpnTunnelOptionsSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("preSharedKey",cdk.validateString)(properties.preSharedKey)),errors.collect(cdk.propertyValidator("tunnelInsideCidr",cdk.validateString)(properties.tunnelInsideCidr)),errors.wrap('supplied properties not correct for "VpnTunnelOptionsSpecificationProperty"')}function cfnVPNConnectionVpnTunnelOptionsSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNConnection_VpnTunnelOptionsSpecificationPropertyValidator(properties).assertSuccess(),{PreSharedKey:cdk.stringToCloudFormation(properties.preSharedKey),TunnelInsideCidr:cdk.stringToCloudFormation(properties.tunnelInsideCidr)}):properties}function CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("preSharedKey","PreSharedKey",properties.PreSharedKey!=null?cfn_parse.FromCloudFormation.getString(properties.PreSharedKey):void 0),ret.addPropertyResult("tunnelInsideCidr","TunnelInsideCidr",properties.TunnelInsideCidr!=null?cfn_parse.FromCloudFormation.getString(properties.TunnelInsideCidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("vpnConnectionId",cdk.requiredValidator)(properties.vpnConnectionId)),errors.collect(cdk.propertyValidator("vpnConnectionId",cdk.validateString)(properties.vpnConnectionId)),errors.wrap('supplied properties not correct for "CfnVPNConnectionRouteProps"')}function cfnVPNConnectionRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNConnectionRoutePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),VpnConnectionId:cdk.stringToCloudFormation(properties.vpnConnectionId)}):properties}function CfnVPNConnectionRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("vpnConnectionId","VpnConnectionId",cfn_parse.FromCloudFormation.getString(properties.VpnConnectionId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNConnectionRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNConnectionRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNConnectionRoute),error}cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"vpnConnectionId",this),this.destinationCidrBlock=props.destinationCidrBlock,this.vpnConnectionId=props.vpnConnectionId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNConnectionRoutePropsFromCloudFormation(resourceProperties),ret=new CfnVPNConnectionRoute(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",CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destinationCidrBlock:this.destinationCidrBlock,vpnConnectionId:this.vpnConnectionId}}renderProperties(props){return cfnVPNConnectionRoutePropsToCloudFormation(props)}}exports.CfnVPNConnectionRoute=CfnVPNConnectionRoute,_52=JSII_RTTI_SYMBOL_1,CfnVPNConnectionRoute[_52]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNConnectionRoute",version:"2.51.0"},CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNConnectionRoute";function CfnVPNGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("amazonSideAsn",cdk.validateNumber)(properties.amazonSideAsn)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),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 "CfnVPNGatewayProps"')}function cfnVPNGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNGatewayPropsValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type),AmazonSideAsn:cdk.numberToCloudFormation(properties.amazonSideAsn),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPNGatewayPropsFromCloudFormation(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.addPropertyResult("amazonSideAsn","AmazonSideAsn",properties.AmazonSideAsn!=null?cfn_parse.FromCloudFormation.getNumber(properties.AmazonSideAsn):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 CfnVPNGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNGateway),error}cdk.requireProperty(props,"type",this),this.attrVpnGatewayId=cdk.Token.asString(this.getAtt("VPNGatewayId")),this.type=props.type,this.amazonSideAsn=props.amazonSideAsn,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPNGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnVPNGateway(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",CfnVPNGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{type:this.type,amazonSideAsn:this.amazonSideAsn,tags:this.tags.renderTags()}}renderProperties(props){return cfnVPNGatewayPropsToCloudFormation(props)}}exports.CfnVPNGateway=CfnVPNGateway,_53=JSII_RTTI_SYMBOL_1,CfnVPNGateway[_53]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNGateway",version:"2.51.0"},CfnVPNGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNGateway";function CfnVPNGatewayRoutePropagationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("routeTableIds",cdk.requiredValidator)(properties.routeTableIds)),errors.collect(cdk.propertyValidator("routeTableIds",cdk.listValidator(cdk.validateString))(properties.routeTableIds)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.requiredValidator)(properties.vpnGatewayId)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.validateString)(properties.vpnGatewayId)),errors.wrap('supplied properties not correct for "CfnVPNGatewayRoutePropagationProps"')}function cfnVPNGatewayRoutePropagationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNGatewayRoutePropagationPropsValidator(properties).assertSuccess(),{RouteTableIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.routeTableIds),VpnGatewayId:cdk.stringToCloudFormation(properties.vpnGatewayId)}):properties}function CfnVPNGatewayRoutePropagationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("routeTableIds","RouteTableIds",cfn_parse.FromCloudFormation.getStringArray(properties.RouteTableIds)),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",cfn_parse.FromCloudFormation.getString(properties.VpnGatewayId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNGatewayRoutePropagation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNGatewayRoutePropagationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNGatewayRoutePropagation),error}cdk.requireProperty(props,"routeTableIds",this),cdk.requireProperty(props,"vpnGatewayId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.routeTableIds=props.routeTableIds,this.vpnGatewayId=props.vpnGatewayId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNGatewayRoutePropagationPropsFromCloudFormation(resourceProperties),ret=new CfnVPNGatewayRoutePropagation(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",CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{routeTableIds:this.routeTableIds,vpnGatewayId:this.vpnGatewayId}}renderProperties(props){return cfnVPNGatewayRoutePropagationPropsToCloudFormation(props)}}exports.CfnVPNGatewayRoutePropagation=CfnVPNGatewayRoutePropagation,_54=JSII_RTTI_SYMBOL_1,CfnVPNGatewayRoutePropagation[_54]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNGatewayRoutePropagation",version:"2.51.0"},CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNGatewayRoutePropagation";function CfnVolumePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoEnableIo",cdk.validateBoolean)(properties.autoEnableIo)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.requiredValidator)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("kmsKeyId",cdk.validateString)(properties.kmsKeyId)),errors.collect(cdk.propertyValidator("multiAttachEnabled",cdk.validateBoolean)(properties.multiAttachEnabled)),errors.collect(cdk.propertyValidator("outpostArn",cdk.validateString)(properties.outpostArn)),errors.collect(cdk.propertyValidator("size",cdk.validateNumber)(properties.size)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("throughput",cdk.validateNumber)(properties.throughput)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "CfnVolumeProps"')}function cfnVolumePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVolumePropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AutoEnableIO:cdk.booleanToCloudFormation(properties.autoEnableIo),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),KmsKeyId:cdk.stringToCloudFormation(properties.kmsKeyId),MultiAttachEnabled:cdk.booleanToCloudFormation(properties.multiAttachEnabled),OutpostArn:cdk.stringToCloudFormation(properties.outpostArn),Size:cdk.numberToCloudFormation(properties.size),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),Throughput:cdk.numberToCloudFormation(properties.throughput),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnVolumePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone)),ret.addPropertyResult("autoEnableIo","AutoEnableIO",properties.AutoEnableIO!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AutoEnableIO):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("multiAttachEnabled","MultiAttachEnabled",properties.MultiAttachEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.MultiAttachEnabled):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addPropertyResult("size","Size",properties.Size!=null?cfn_parse.FromCloudFormation.getNumber(properties.Size):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse.FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVolume extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVolume.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVolumeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVolume),error}cdk.requireProperty(props,"availabilityZone",this),this.attrVolumeId=cdk.Token.asString(this.getAtt("VolumeId")),this.availabilityZone=props.availabilityZone,this.autoEnableIo=props.autoEnableIo,this.encrypted=props.encrypted,this.iops=props.iops,this.kmsKeyId=props.kmsKeyId,this.multiAttachEnabled=props.multiAttachEnabled,this.outpostArn=props.outpostArn,this.size=props.size,this.snapshotId=props.snapshotId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::Volume",props.tags,{tagPropertyName:"tags"}),this.throughput=props.throughput,this.volumeType=props.volumeType,this.node.scope&&cdk.Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::EC2::Volume' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVolumePropsFromCloudFormation(resourceProperties),ret=new CfnVolume(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",CfnVolume.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{availabilityZone:this.availabilityZone,autoEnableIo:this.autoEnableIo,encrypted:this.encrypted,iops:this.iops,kmsKeyId:this.kmsKeyId,multiAttachEnabled:this.multiAttachEnabled,outpostArn:this.outpostArn,size:this.size,snapshotId:this.snapshotId,tags:this.tags.renderTags(),throughput:this.throughput,volumeType:this.volumeType}}renderProperties(props){return cfnVolumePropsToCloudFormation(props)}}exports.CfnVolume=CfnVolume,_55=JSII_RTTI_SYMBOL_1,CfnVolume[_55]={fqn:"aws-cdk-lib.aws_ec2.CfnVolume",version:"2.51.0"},CfnVolume.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Volume";function CfnVolumeAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("device",cdk.requiredValidator)(properties.device)),errors.collect(cdk.propertyValidator("device",cdk.validateString)(properties.device)),errors.collect(cdk.propertyValidator("instanceId",cdk.requiredValidator)(properties.instanceId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("volumeId",cdk.requiredValidator)(properties.volumeId)),errors.collect(cdk.propertyValidator("volumeId",cdk.validateString)(properties.volumeId)),errors.wrap('supplied properties not correct for "CfnVolumeAttachmentProps"')}function cfnVolumeAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVolumeAttachmentPropsValidator(properties).assertSuccess(),{Device:cdk.stringToCloudFormation(properties.device),InstanceId:cdk.stringToCloudFormation(properties.instanceId),VolumeId:cdk.stringToCloudFormation(properties.volumeId)}):properties}function CfnVolumeAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("device","Device",cfn_parse.FromCloudFormation.getString(properties.Device)),ret.addPropertyResult("instanceId","InstanceId",cfn_parse.FromCloudFormation.getString(properties.InstanceId)),ret.addPropertyResult("volumeId","VolumeId",cfn_parse.FromCloudFormation.getString(properties.VolumeId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVolumeAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVolumeAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVolumeAttachment),error}cdk.requireProperty(props,"device",this),cdk.requireProperty(props,"instanceId",this),cdk.requireProperty(props,"volumeId",this),this.device=props.device,this.instanceId=props.instanceId,this.volumeId=props.volumeId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVolumeAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnVolumeAttachment(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",CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{device:this.device,instanceId:this.instanceId,volumeId:this.volumeId}}renderProperties(props){return cfnVolumeAttachmentPropsToCloudFormation(props)}}exports.CfnVolumeAttachment=CfnVolumeAttachment,_56=JSII_RTTI_SYMBOL_1,CfnVolumeAttachment[_56]={fqn:"aws-cdk-lib.aws_ec2.CfnVolumeAttachment",version:"2.51.0"},CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VolumeAttachment";
|
|
1
|
+
"use strict";var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y,_z,_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,_33,_34,_35,_36,_37,_38,_39,_40,_41,_42,_43,_44,_45,_46,_47,_48,_49,_50,_51,_52,_53,_54,_55,_56;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnVolumeAttachment=exports.CfnVolume=exports.CfnVPNGatewayRoutePropagation=exports.CfnVPNGateway=exports.CfnVPNConnectionRoute=exports.CfnVPNConnection=exports.CfnVPCPeeringConnection=exports.CfnVPCGatewayAttachment=exports.CfnVPCEndpointServicePermissions=exports.CfnVPCEndpointService=exports.CfnVPCEndpointConnectionNotification=exports.CfnVPCEndpoint=exports.CfnVPCDHCPOptionsAssociation=exports.CfnVPCCidrBlock=exports.CfnVPC=exports.CfnTransitGatewayVpcAttachment=exports.CfnTransitGatewayRouteTablePropagation=exports.CfnTransitGatewayRouteTableAssociation=exports.CfnTransitGatewayRouteTable=exports.CfnTransitGatewayRoute=exports.CfnTransitGatewayPeeringAttachment=exports.CfnTransitGatewayMulticastGroupSource=exports.CfnTransitGatewayMulticastGroupMember=exports.CfnTransitGatewayMulticastDomainAssociation=exports.CfnTransitGatewayMulticastDomain=exports.CfnTransitGatewayConnect=exports.CfnTransitGatewayAttachment=exports.CfnTransitGateway=exports.CfnTrafficMirrorTarget=exports.CfnTrafficMirrorSession=exports.CfnTrafficMirrorFilterRule=exports.CfnTrafficMirrorFilter=exports.CfnSubnetRouteTableAssociation=exports.CfnSubnetNetworkAclAssociation=exports.CfnSubnetCidrBlock=exports.CfnSubnet=exports.CfnSpotFleet=exports.CfnSecurityGroupIngress=exports.CfnSecurityGroupEgress=exports.CfnSecurityGroup=exports.CfnRouteTable=exports.CfnRoute=exports.CfnPrefixList=exports.CfnPlacementGroup=exports.CfnNetworkInterfacePermission=exports.CfnNetworkInterfaceAttachment=exports.CfnNetworkInterface=exports.CfnNetworkInsightsPath=exports.CfnNetworkInsightsAnalysis=exports.CfnNetworkInsightsAccessScopeAnalysis=exports.CfnNetworkInsightsAccessScope=exports.CfnNetworkAclEntry=exports.CfnNetworkAcl=exports.CfnNatGateway=exports.CfnLocalGatewayRouteTableVPCAssociation=exports.CfnLocalGatewayRoute=exports.CfnLaunchTemplate=exports.CfnKeyPair=exports.CfnInternetGateway=exports.CfnInstance=exports.CfnIPAMScope=exports.CfnIPAMPool=exports.CfnIPAMAllocation=exports.CfnIPAM=exports.CfnHost=exports.CfnGatewayRouteTableAssociation=exports.CfnFlowLog=exports.CfnEnclaveCertificateIamRoleAssociation=exports.CfnEgressOnlyInternetGateway=exports.CfnEIPAssociation=exports.CfnEIP=exports.CfnEC2Fleet=exports.CfnDHCPOptions=exports.CfnCustomerGateway=exports.CfnClientVpnTargetNetworkAssociation=exports.CfnClientVpnRoute=exports.CfnClientVpnEndpoint=exports.CfnClientVpnAuthorizationRule=exports.CfnCarrierGateway=exports.CfnCapacityReservationFleet=exports.CfnCapacityReservation=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 CfnCapacityReservationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.requiredValidator)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("endDate",cdk.validateString)(properties.endDate)),errors.collect(cdk.propertyValidator("endDateType",cdk.validateString)(properties.endDateType)),errors.collect(cdk.propertyValidator("ephemeralStorage",cdk.validateBoolean)(properties.ephemeralStorage)),errors.collect(cdk.propertyValidator("instanceCount",cdk.requiredValidator)(properties.instanceCount)),errors.collect(cdk.propertyValidator("instanceCount",cdk.validateNumber)(properties.instanceCount)),errors.collect(cdk.propertyValidator("instanceMatchCriteria",cdk.validateString)(properties.instanceMatchCriteria)),errors.collect(cdk.propertyValidator("instancePlatform",cdk.requiredValidator)(properties.instancePlatform)),errors.collect(cdk.propertyValidator("instancePlatform",cdk.validateString)(properties.instancePlatform)),errors.collect(cdk.propertyValidator("instanceType",cdk.requiredValidator)(properties.instanceType)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("outPostArn",cdk.validateString)(properties.outPostArn)),errors.collect(cdk.propertyValidator("placementGroupArn",cdk.validateString)(properties.placementGroupArn)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnCapacityReservation_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "CfnCapacityReservationProps"')}function cfnCapacityReservationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),InstanceCount:cdk.numberToCloudFormation(properties.instanceCount),InstancePlatform:cdk.stringToCloudFormation(properties.instancePlatform),InstanceType:cdk.stringToCloudFormation(properties.instanceType),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),EndDate:cdk.stringToCloudFormation(properties.endDate),EndDateType:cdk.stringToCloudFormation(properties.endDateType),EphemeralStorage:cdk.booleanToCloudFormation(properties.ephemeralStorage),InstanceMatchCriteria:cdk.stringToCloudFormation(properties.instanceMatchCriteria),OutPostArn:cdk.stringToCloudFormation(properties.outPostArn),PlacementGroupArn:cdk.stringToCloudFormation(properties.placementGroupArn),TagSpecifications:cdk.listMapper(cfnCapacityReservationTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnCapacityReservationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone)),ret.addPropertyResult("instanceCount","InstanceCount",cfn_parse.FromCloudFormation.getNumber(properties.InstanceCount)),ret.addPropertyResult("instancePlatform","InstancePlatform",cfn_parse.FromCloudFormation.getString(properties.InstancePlatform)),ret.addPropertyResult("instanceType","InstanceType",cfn_parse.FromCloudFormation.getString(properties.InstanceType)),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("endDate","EndDate",properties.EndDate!=null?cfn_parse.FromCloudFormation.getString(properties.EndDate):void 0),ret.addPropertyResult("endDateType","EndDateType",properties.EndDateType!=null?cfn_parse.FromCloudFormation.getString(properties.EndDateType):void 0),ret.addPropertyResult("ephemeralStorage","EphemeralStorage",properties.EphemeralStorage!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EphemeralStorage):void 0),ret.addPropertyResult("instanceMatchCriteria","InstanceMatchCriteria",properties.InstanceMatchCriteria!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceMatchCriteria):void 0),ret.addPropertyResult("outPostArn","OutPostArn",properties.OutPostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutPostArn):void 0),ret.addPropertyResult("placementGroupArn","PlacementGroupArn",properties.PlacementGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.PlacementGroupArn):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnCapacityReservationTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCapacityReservation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCapacityReservationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityReservation),error}cdk.requireProperty(props,"availabilityZone",this),cdk.requireProperty(props,"instanceCount",this),cdk.requireProperty(props,"instancePlatform",this),cdk.requireProperty(props,"instanceType",this),this.attrAvailabilityZone=cdk.Token.asString(this.getAtt("AvailabilityZone")),this.attrAvailableInstanceCount=cdk.Token.asNumber(this.getAtt("AvailableInstanceCount")),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.attrInstanceType=cdk.Token.asString(this.getAtt("InstanceType")),this.attrTenancy=cdk.Token.asString(this.getAtt("Tenancy")),this.attrTotalInstanceCount=cdk.Token.asNumber(this.getAtt("TotalInstanceCount")),this.availabilityZone=props.availabilityZone,this.instanceCount=props.instanceCount,this.instancePlatform=props.instancePlatform,this.instanceType=props.instanceType,this.ebsOptimized=props.ebsOptimized,this.endDate=props.endDate,this.endDateType=props.endDateType,this.ephemeralStorage=props.ephemeralStorage,this.instanceMatchCriteria=props.instanceMatchCriteria,this.outPostArn=props.outPostArn,this.placementGroupArn=props.placementGroupArn,this.tagSpecifications=props.tagSpecifications,this.tenancy=props.tenancy}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityReservationPropsFromCloudFormation(resourceProperties),ret=new CfnCapacityReservation(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",CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{availabilityZone:this.availabilityZone,instanceCount:this.instanceCount,instancePlatform:this.instancePlatform,instanceType:this.instanceType,ebsOptimized:this.ebsOptimized,endDate:this.endDate,endDateType:this.endDateType,ephemeralStorage:this.ephemeralStorage,instanceMatchCriteria:this.instanceMatchCriteria,outPostArn:this.outPostArn,placementGroupArn:this.placementGroupArn,tagSpecifications:this.tagSpecifications,tenancy:this.tenancy}}renderProperties(props){return cfnCapacityReservationPropsToCloudFormation(props)}}exports.CfnCapacityReservation=CfnCapacityReservation,_a=JSII_RTTI_SYMBOL_1,CfnCapacityReservation[_a]={fqn:"aws-cdk-lib.aws_ec2.CfnCapacityReservation",version:"2.51.1"},CfnCapacityReservation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CapacityReservation";function CfnCapacityReservation_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnCapacityReservationTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservation_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityReservationTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnCapacityReservationFleetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("endDate",cdk.validateString)(properties.endDate)),errors.collect(cdk.propertyValidator("instanceMatchCriteria",cdk.validateString)(properties.instanceMatchCriteria)),errors.collect(cdk.propertyValidator("instanceTypeSpecifications",cdk.listValidator(CfnCapacityReservationFleet_InstanceTypeSpecificationPropertyValidator))(properties.instanceTypeSpecifications)),errors.collect(cdk.propertyValidator("noRemoveEndDate",cdk.validateBoolean)(properties.noRemoveEndDate)),errors.collect(cdk.propertyValidator("removeEndDate",cdk.validateBoolean)(properties.removeEndDate)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnCapacityReservationFleet_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.collect(cdk.propertyValidator("totalTargetCapacity",cdk.validateNumber)(properties.totalTargetCapacity)),errors.wrap('supplied properties not correct for "CfnCapacityReservationFleetProps"')}function cfnCapacityReservationFleetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationFleetPropsValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),EndDate:cdk.stringToCloudFormation(properties.endDate),InstanceMatchCriteria:cdk.stringToCloudFormation(properties.instanceMatchCriteria),InstanceTypeSpecifications:cdk.listMapper(cfnCapacityReservationFleetInstanceTypeSpecificationPropertyToCloudFormation)(properties.instanceTypeSpecifications),NoRemoveEndDate:cdk.booleanToCloudFormation(properties.noRemoveEndDate),RemoveEndDate:cdk.booleanToCloudFormation(properties.removeEndDate),TagSpecifications:cdk.listMapper(cfnCapacityReservationFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),Tenancy:cdk.stringToCloudFormation(properties.tenancy),TotalTargetCapacity:cdk.numberToCloudFormation(properties.totalTargetCapacity)}):properties}function CfnCapacityReservationFleetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("endDate","EndDate",properties.EndDate!=null?cfn_parse.FromCloudFormation.getString(properties.EndDate):void 0),ret.addPropertyResult("instanceMatchCriteria","InstanceMatchCriteria",properties.InstanceMatchCriteria!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceMatchCriteria):void 0),ret.addPropertyResult("instanceTypeSpecifications","InstanceTypeSpecifications",properties.InstanceTypeSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnCapacityReservationFleetInstanceTypeSpecificationPropertyFromCloudFormation)(properties.InstanceTypeSpecifications):void 0),ret.addPropertyResult("noRemoveEndDate","NoRemoveEndDate",properties.NoRemoveEndDate!=null?cfn_parse.FromCloudFormation.getBoolean(properties.NoRemoveEndDate):void 0),ret.addPropertyResult("removeEndDate","RemoveEndDate",properties.RemoveEndDate!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RemoveEndDate):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnCapacityReservationFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addPropertyResult("totalTargetCapacity","TotalTargetCapacity",properties.TotalTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.TotalTargetCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCapacityReservationFleet extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCapacityReservationFleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCapacityReservationFleet),error}this.attrCapacityReservationFleetId=cdk.Token.asString(this.getAtt("CapacityReservationFleetId")),this.allocationStrategy=props.allocationStrategy,this.endDate=props.endDate,this.instanceMatchCriteria=props.instanceMatchCriteria,this.instanceTypeSpecifications=props.instanceTypeSpecifications,this.noRemoveEndDate=props.noRemoveEndDate,this.removeEndDate=props.removeEndDate,this.tagSpecifications=props.tagSpecifications,this.tenancy=props.tenancy,this.totalTargetCapacity=props.totalTargetCapacity}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCapacityReservationFleetPropsFromCloudFormation(resourceProperties),ret=new CfnCapacityReservationFleet(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",CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{allocationStrategy:this.allocationStrategy,endDate:this.endDate,instanceMatchCriteria:this.instanceMatchCriteria,instanceTypeSpecifications:this.instanceTypeSpecifications,noRemoveEndDate:this.noRemoveEndDate,removeEndDate:this.removeEndDate,tagSpecifications:this.tagSpecifications,tenancy:this.tenancy,totalTargetCapacity:this.totalTargetCapacity}}renderProperties(props){return cfnCapacityReservationFleetPropsToCloudFormation(props)}}exports.CfnCapacityReservationFleet=CfnCapacityReservationFleet,_b=JSII_RTTI_SYMBOL_1,CfnCapacityReservationFleet[_b]={fqn:"aws-cdk-lib.aws_ec2.CfnCapacityReservationFleet",version:"2.51.1"},CfnCapacityReservationFleet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CapacityReservationFleet";function CfnCapacityReservationFleet_InstanceTypeSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZoneId",cdk.validateString)(properties.availabilityZoneId)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("instancePlatform",cdk.validateString)(properties.instancePlatform)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("weight",cdk.validateNumber)(properties.weight)),errors.wrap('supplied properties not correct for "InstanceTypeSpecificationProperty"')}function cfnCapacityReservationFleetInstanceTypeSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationFleet_InstanceTypeSpecificationPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk.stringToCloudFormation(properties.availabilityZoneId),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),InstancePlatform:cdk.stringToCloudFormation(properties.instancePlatform),InstanceType:cdk.stringToCloudFormation(properties.instanceType),Priority:cdk.numberToCloudFormation(properties.priority),Weight:cdk.numberToCloudFormation(properties.weight)}):properties}function CfnCapacityReservationFleetInstanceTypeSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("instancePlatform","InstancePlatform",properties.InstancePlatform!=null?cfn_parse.FromCloudFormation.getString(properties.InstancePlatform):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("weight","Weight",properties.Weight!=null?cfn_parse.FromCloudFormation.getNumber(properties.Weight):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnCapacityReservationFleet_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnCapacityReservationFleetTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCapacityReservationFleet_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCapacityReservationFleetTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnCarrierGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnCarrierGatewayProps"')}function cfnCarrierGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCarrierGatewayPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCarrierGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCarrierGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCarrierGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCarrierGateway),error}cdk.requireProperty(props,"vpcId",this),this.attrCarrierGatewayId=cdk.Token.asString(this.getAtt("CarrierGatewayId")),this.attrOwnerId=cdk.Token.asString(this.getAtt("OwnerId")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::CarrierGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCarrierGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnCarrierGateway(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",CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnCarrierGatewayPropsToCloudFormation(props)}}exports.CfnCarrierGateway=CfnCarrierGateway,_c=JSII_RTTI_SYMBOL_1,CfnCarrierGateway[_c]={fqn:"aws-cdk-lib.aws_ec2.CfnCarrierGateway",version:"2.51.1"},CfnCarrierGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CarrierGateway";function CfnClientVpnAuthorizationRulePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("accessGroupId",cdk.validateString)(properties.accessGroupId)),errors.collect(cdk.propertyValidator("authorizeAllGroups",cdk.validateBoolean)(properties.authorizeAllGroups)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.validateString)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("targetNetworkCidr",cdk.requiredValidator)(properties.targetNetworkCidr)),errors.collect(cdk.propertyValidator("targetNetworkCidr",cdk.validateString)(properties.targetNetworkCidr)),errors.wrap('supplied properties not correct for "CfnClientVpnAuthorizationRuleProps"')}function cfnClientVpnAuthorizationRulePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnAuthorizationRulePropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk.stringToCloudFormation(properties.clientVpnEndpointId),TargetNetworkCidr:cdk.stringToCloudFormation(properties.targetNetworkCidr),AccessGroupId:cdk.stringToCloudFormation(properties.accessGroupId),AuthorizeAllGroups:cdk.booleanToCloudFormation(properties.authorizeAllGroups),Description:cdk.stringToCloudFormation(properties.description)}):properties}function CfnClientVpnAuthorizationRulePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientVpnEndpointId","ClientVpnEndpointId",cfn_parse.FromCloudFormation.getString(properties.ClientVpnEndpointId)),ret.addPropertyResult("targetNetworkCidr","TargetNetworkCidr",cfn_parse.FromCloudFormation.getString(properties.TargetNetworkCidr)),ret.addPropertyResult("accessGroupId","AccessGroupId",properties.AccessGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.AccessGroupId):void 0),ret.addPropertyResult("authorizeAllGroups","AuthorizeAllGroups",properties.AuthorizeAllGroups!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AuthorizeAllGroups):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnAuthorizationRule extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnAuthorizationRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnAuthorizationRule),error}cdk.requireProperty(props,"clientVpnEndpointId",this),cdk.requireProperty(props,"targetNetworkCidr",this),this.clientVpnEndpointId=props.clientVpnEndpointId,this.targetNetworkCidr=props.targetNetworkCidr,this.accessGroupId=props.accessGroupId,this.authorizeAllGroups=props.authorizeAllGroups,this.description=props.description}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnAuthorizationRulePropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnAuthorizationRule(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",CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{clientVpnEndpointId:this.clientVpnEndpointId,targetNetworkCidr:this.targetNetworkCidr,accessGroupId:this.accessGroupId,authorizeAllGroups:this.authorizeAllGroups,description:this.description}}renderProperties(props){return cfnClientVpnAuthorizationRulePropsToCloudFormation(props)}}exports.CfnClientVpnAuthorizationRule=CfnClientVpnAuthorizationRule,_d=JSII_RTTI_SYMBOL_1,CfnClientVpnAuthorizationRule[_d]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnAuthorizationRule",version:"2.51.1"},CfnClientVpnAuthorizationRule.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnAuthorizationRule";function CfnClientVpnEndpointPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("authenticationOptions",cdk.requiredValidator)(properties.authenticationOptions)),errors.collect(cdk.propertyValidator("authenticationOptions",cdk.listValidator(CfnClientVpnEndpoint_ClientAuthenticationRequestPropertyValidator))(properties.authenticationOptions)),errors.collect(cdk.propertyValidator("clientCidrBlock",cdk.requiredValidator)(properties.clientCidrBlock)),errors.collect(cdk.propertyValidator("clientCidrBlock",cdk.validateString)(properties.clientCidrBlock)),errors.collect(cdk.propertyValidator("clientConnectOptions",CfnClientVpnEndpoint_ClientConnectOptionsPropertyValidator)(properties.clientConnectOptions)),errors.collect(cdk.propertyValidator("clientLoginBannerOptions",CfnClientVpnEndpoint_ClientLoginBannerOptionsPropertyValidator)(properties.clientLoginBannerOptions)),errors.collect(cdk.propertyValidator("connectionLogOptions",cdk.requiredValidator)(properties.connectionLogOptions)),errors.collect(cdk.propertyValidator("connectionLogOptions",CfnClientVpnEndpoint_ConnectionLogOptionsPropertyValidator)(properties.connectionLogOptions)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("dnsServers",cdk.listValidator(cdk.validateString))(properties.dnsServers)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("selfServicePortal",cdk.validateString)(properties.selfServicePortal)),errors.collect(cdk.propertyValidator("serverCertificateArn",cdk.requiredValidator)(properties.serverCertificateArn)),errors.collect(cdk.propertyValidator("serverCertificateArn",cdk.validateString)(properties.serverCertificateArn)),errors.collect(cdk.propertyValidator("sessionTimeoutHours",cdk.validateNumber)(properties.sessionTimeoutHours)),errors.collect(cdk.propertyValidator("splitTunnel",cdk.validateBoolean)(properties.splitTunnel)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnClientVpnEndpoint_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("transportProtocol",cdk.validateString)(properties.transportProtocol)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpnPort",cdk.validateNumber)(properties.vpnPort)),errors.wrap('supplied properties not correct for "CfnClientVpnEndpointProps"')}function cfnClientVpnEndpointPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpointPropsValidator(properties).assertSuccess(),{AuthenticationOptions:cdk.listMapper(cfnClientVpnEndpointClientAuthenticationRequestPropertyToCloudFormation)(properties.authenticationOptions),ClientCidrBlock:cdk.stringToCloudFormation(properties.clientCidrBlock),ConnectionLogOptions:cfnClientVpnEndpointConnectionLogOptionsPropertyToCloudFormation(properties.connectionLogOptions),ServerCertificateArn:cdk.stringToCloudFormation(properties.serverCertificateArn),ClientConnectOptions:cfnClientVpnEndpointClientConnectOptionsPropertyToCloudFormation(properties.clientConnectOptions),ClientLoginBannerOptions:cfnClientVpnEndpointClientLoginBannerOptionsPropertyToCloudFormation(properties.clientLoginBannerOptions),Description:cdk.stringToCloudFormation(properties.description),DnsServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.dnsServers),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SelfServicePortal:cdk.stringToCloudFormation(properties.selfServicePortal),SessionTimeoutHours:cdk.numberToCloudFormation(properties.sessionTimeoutHours),SplitTunnel:cdk.booleanToCloudFormation(properties.splitTunnel),TagSpecifications:cdk.listMapper(cfnClientVpnEndpointTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TransportProtocol:cdk.stringToCloudFormation(properties.transportProtocol),VpcId:cdk.stringToCloudFormation(properties.vpcId),VpnPort:cdk.numberToCloudFormation(properties.vpnPort)}):properties}function CfnClientVpnEndpointPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("authenticationOptions","AuthenticationOptions",cfn_parse.FromCloudFormation.getArray(CfnClientVpnEndpointClientAuthenticationRequestPropertyFromCloudFormation)(properties.AuthenticationOptions)),ret.addPropertyResult("clientCidrBlock","ClientCidrBlock",cfn_parse.FromCloudFormation.getString(properties.ClientCidrBlock)),ret.addPropertyResult("connectionLogOptions","ConnectionLogOptions",CfnClientVpnEndpointConnectionLogOptionsPropertyFromCloudFormation(properties.ConnectionLogOptions)),ret.addPropertyResult("serverCertificateArn","ServerCertificateArn",cfn_parse.FromCloudFormation.getString(properties.ServerCertificateArn)),ret.addPropertyResult("clientConnectOptions","ClientConnectOptions",properties.ClientConnectOptions!=null?CfnClientVpnEndpointClientConnectOptionsPropertyFromCloudFormation(properties.ClientConnectOptions):void 0),ret.addPropertyResult("clientLoginBannerOptions","ClientLoginBannerOptions",properties.ClientLoginBannerOptions!=null?CfnClientVpnEndpointClientLoginBannerOptionsPropertyFromCloudFormation(properties.ClientLoginBannerOptions):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("dnsServers","DnsServers",properties.DnsServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DnsServers):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("selfServicePortal","SelfServicePortal",properties.SelfServicePortal!=null?cfn_parse.FromCloudFormation.getString(properties.SelfServicePortal):void 0),ret.addPropertyResult("sessionTimeoutHours","SessionTimeoutHours",properties.SessionTimeoutHours!=null?cfn_parse.FromCloudFormation.getNumber(properties.SessionTimeoutHours):void 0),ret.addPropertyResult("splitTunnel","SplitTunnel",properties.SplitTunnel!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SplitTunnel):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnClientVpnEndpointTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("transportProtocol","TransportProtocol",properties.TransportProtocol!=null?cfn_parse.FromCloudFormation.getString(properties.TransportProtocol):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcId):void 0),ret.addPropertyResult("vpnPort","VpnPort",properties.VpnPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.VpnPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnEndpoint extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnEndpoint),error}cdk.requireProperty(props,"authenticationOptions",this),cdk.requireProperty(props,"clientCidrBlock",this),cdk.requireProperty(props,"connectionLogOptions",this),cdk.requireProperty(props,"serverCertificateArn",this),this.authenticationOptions=props.authenticationOptions,this.clientCidrBlock=props.clientCidrBlock,this.connectionLogOptions=props.connectionLogOptions,this.serverCertificateArn=props.serverCertificateArn,this.clientConnectOptions=props.clientConnectOptions,this.clientLoginBannerOptions=props.clientLoginBannerOptions,this.description=props.description,this.dnsServers=props.dnsServers,this.securityGroupIds=props.securityGroupIds,this.selfServicePortal=props.selfServicePortal,this.sessionTimeoutHours=props.sessionTimeoutHours,this.splitTunnel=props.splitTunnel,this.tagSpecifications=props.tagSpecifications,this.transportProtocol=props.transportProtocol,this.vpcId=props.vpcId,this.vpnPort=props.vpnPort}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnEndpointPropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnEndpoint(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",CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{authenticationOptions:this.authenticationOptions,clientCidrBlock:this.clientCidrBlock,connectionLogOptions:this.connectionLogOptions,serverCertificateArn:this.serverCertificateArn,clientConnectOptions:this.clientConnectOptions,clientLoginBannerOptions:this.clientLoginBannerOptions,description:this.description,dnsServers:this.dnsServers,securityGroupIds:this.securityGroupIds,selfServicePortal:this.selfServicePortal,sessionTimeoutHours:this.sessionTimeoutHours,splitTunnel:this.splitTunnel,tagSpecifications:this.tagSpecifications,transportProtocol:this.transportProtocol,vpcId:this.vpcId,vpnPort:this.vpnPort}}renderProperties(props){return cfnClientVpnEndpointPropsToCloudFormation(props)}}exports.CfnClientVpnEndpoint=CfnClientVpnEndpoint,_e=JSII_RTTI_SYMBOL_1,CfnClientVpnEndpoint[_e]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnEndpoint",version:"2.51.1"},CfnClientVpnEndpoint.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnEndpoint";function CfnClientVpnEndpoint_CertificateAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientRootCertificateChainArn",cdk.requiredValidator)(properties.clientRootCertificateChainArn)),errors.collect(cdk.propertyValidator("clientRootCertificateChainArn",cdk.validateString)(properties.clientRootCertificateChainArn)),errors.wrap('supplied properties not correct for "CertificateAuthenticationRequestProperty"')}function cfnClientVpnEndpointCertificateAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_CertificateAuthenticationRequestPropertyValidator(properties).assertSuccess(),{ClientRootCertificateChainArn:cdk.stringToCloudFormation(properties.clientRootCertificateChainArn)}):properties}function CfnClientVpnEndpointCertificateAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientRootCertificateChainArn","ClientRootCertificateChainArn",cfn_parse.FromCloudFormation.getString(properties.ClientRootCertificateChainArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ClientAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("activeDirectory",CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestPropertyValidator)(properties.activeDirectory)),errors.collect(cdk.propertyValidator("federatedAuthentication",CfnClientVpnEndpoint_FederatedAuthenticationRequestPropertyValidator)(properties.federatedAuthentication)),errors.collect(cdk.propertyValidator("mutualAuthentication",CfnClientVpnEndpoint_CertificateAuthenticationRequestPropertyValidator)(properties.mutualAuthentication)),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 "ClientAuthenticationRequestProperty"')}function cfnClientVpnEndpointClientAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ClientAuthenticationRequestPropertyValidator(properties).assertSuccess(),{ActiveDirectory:cfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyToCloudFormation(properties.activeDirectory),FederatedAuthentication:cfnClientVpnEndpointFederatedAuthenticationRequestPropertyToCloudFormation(properties.federatedAuthentication),MutualAuthentication:cfnClientVpnEndpointCertificateAuthenticationRequestPropertyToCloudFormation(properties.mutualAuthentication),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnClientVpnEndpointClientAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("activeDirectory","ActiveDirectory",properties.ActiveDirectory!=null?CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyFromCloudFormation(properties.ActiveDirectory):void 0),ret.addPropertyResult("federatedAuthentication","FederatedAuthentication",properties.FederatedAuthentication!=null?CfnClientVpnEndpointFederatedAuthenticationRequestPropertyFromCloudFormation(properties.FederatedAuthentication):void 0),ret.addPropertyResult("mutualAuthentication","MutualAuthentication",properties.MutualAuthentication!=null?CfnClientVpnEndpointCertificateAuthenticationRequestPropertyFromCloudFormation(properties.MutualAuthentication):void 0),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ClientConnectOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.collect(cdk.propertyValidator("lambdaFunctionArn",cdk.validateString)(properties.lambdaFunctionArn)),errors.wrap('supplied properties not correct for "ClientConnectOptionsProperty"')}function cfnClientVpnEndpointClientConnectOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ClientConnectOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled),LambdaFunctionArn:cdk.stringToCloudFormation(properties.lambdaFunctionArn)}):properties}function CfnClientVpnEndpointClientConnectOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addPropertyResult("lambdaFunctionArn","LambdaFunctionArn",properties.LambdaFunctionArn!=null?cfn_parse.FromCloudFormation.getString(properties.LambdaFunctionArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ClientLoginBannerOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("bannerText",cdk.validateString)(properties.bannerText)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ClientLoginBannerOptionsProperty"')}function cfnClientVpnEndpointClientLoginBannerOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ClientLoginBannerOptionsPropertyValidator(properties).assertSuccess(),{BannerText:cdk.stringToCloudFormation(properties.bannerText),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnClientVpnEndpointClientLoginBannerOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("bannerText","BannerText",properties.BannerText!=null?cfn_parse.FromCloudFormation.getString(properties.BannerText):void 0),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_ConnectionLogOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cloudwatchLogGroup",cdk.validateString)(properties.cloudwatchLogGroup)),errors.collect(cdk.propertyValidator("cloudwatchLogStream",cdk.validateString)(properties.cloudwatchLogStream)),errors.collect(cdk.propertyValidator("enabled",cdk.requiredValidator)(properties.enabled)),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "ConnectionLogOptionsProperty"')}function cfnClientVpnEndpointConnectionLogOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_ConnectionLogOptionsPropertyValidator(properties).assertSuccess(),{CloudwatchLogGroup:cdk.stringToCloudFormation(properties.cloudwatchLogGroup),CloudwatchLogStream:cdk.stringToCloudFormation(properties.cloudwatchLogStream),Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnClientVpnEndpointConnectionLogOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cloudwatchLogGroup","CloudwatchLogGroup",properties.CloudwatchLogGroup!=null?cfn_parse.FromCloudFormation.getString(properties.CloudwatchLogGroup):void 0),ret.addPropertyResult("cloudwatchLogStream","CloudwatchLogStream",properties.CloudwatchLogStream!=null?cfn_parse.FromCloudFormation.getString(properties.CloudwatchLogStream):void 0),ret.addPropertyResult("enabled","Enabled",cfn_parse.FromCloudFormation.getBoolean(properties.Enabled)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("directoryId",cdk.requiredValidator)(properties.directoryId)),errors.collect(cdk.propertyValidator("directoryId",cdk.validateString)(properties.directoryId)),errors.wrap('supplied properties not correct for "DirectoryServiceAuthenticationRequestProperty"')}function cfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_DirectoryServiceAuthenticationRequestPropertyValidator(properties).assertSuccess(),{DirectoryId:cdk.stringToCloudFormation(properties.directoryId)}):properties}function CfnClientVpnEndpointDirectoryServiceAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("directoryId","DirectoryId",cfn_parse.FromCloudFormation.getString(properties.DirectoryId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_FederatedAuthenticationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("samlProviderArn",cdk.requiredValidator)(properties.samlProviderArn)),errors.collect(cdk.propertyValidator("samlProviderArn",cdk.validateString)(properties.samlProviderArn)),errors.collect(cdk.propertyValidator("selfServiceSamlProviderArn",cdk.validateString)(properties.selfServiceSamlProviderArn)),errors.wrap('supplied properties not correct for "FederatedAuthenticationRequestProperty"')}function cfnClientVpnEndpointFederatedAuthenticationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_FederatedAuthenticationRequestPropertyValidator(properties).assertSuccess(),{SAMLProviderArn:cdk.stringToCloudFormation(properties.samlProviderArn),SelfServiceSAMLProviderArn:cdk.stringToCloudFormation(properties.selfServiceSamlProviderArn)}):properties}function CfnClientVpnEndpointFederatedAuthenticationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("samlProviderArn","SAMLProviderArn",cfn_parse.FromCloudFormation.getString(properties.SAMLProviderArn)),ret.addPropertyResult("selfServiceSamlProviderArn","SelfServiceSAMLProviderArn",properties.SelfServiceSAMLProviderArn!=null?cfn_parse.FromCloudFormation.getString(properties.SelfServiceSAMLProviderArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnEndpoint_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.requiredValidator)(properties.resourceType)),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.requiredValidator)(properties.tags)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnClientVpnEndpointTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnEndpoint_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnClientVpnEndpointTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",cfn_parse.FromCloudFormation.getString(properties.ResourceType)),ret.addPropertyResult("tags","Tags",cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnClientVpnRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.validateString)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("targetVpcSubnetId",cdk.requiredValidator)(properties.targetVpcSubnetId)),errors.collect(cdk.propertyValidator("targetVpcSubnetId",cdk.validateString)(properties.targetVpcSubnetId)),errors.wrap('supplied properties not correct for "CfnClientVpnRouteProps"')}function cfnClientVpnRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnRoutePropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk.stringToCloudFormation(properties.clientVpnEndpointId),DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),TargetVpcSubnetId:cdk.stringToCloudFormation(properties.targetVpcSubnetId),Description:cdk.stringToCloudFormation(properties.description)}):properties}function CfnClientVpnRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientVpnEndpointId","ClientVpnEndpointId",cfn_parse.FromCloudFormation.getString(properties.ClientVpnEndpointId)),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("targetVpcSubnetId","TargetVpcSubnetId",cfn_parse.FromCloudFormation.getString(properties.TargetVpcSubnetId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnRoute),error}cdk.requireProperty(props,"clientVpnEndpointId",this),cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"targetVpcSubnetId",this),this.clientVpnEndpointId=props.clientVpnEndpointId,this.destinationCidrBlock=props.destinationCidrBlock,this.targetVpcSubnetId=props.targetVpcSubnetId,this.description=props.description}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnRoutePropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnRoute(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",CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{clientVpnEndpointId:this.clientVpnEndpointId,destinationCidrBlock:this.destinationCidrBlock,targetVpcSubnetId:this.targetVpcSubnetId,description:this.description}}renderProperties(props){return cfnClientVpnRoutePropsToCloudFormation(props)}}exports.CfnClientVpnRoute=CfnClientVpnRoute,_f=JSII_RTTI_SYMBOL_1,CfnClientVpnRoute[_f]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnRoute",version:"2.51.1"},CfnClientVpnRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnRoute";function CfnClientVpnTargetNetworkAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.requiredValidator)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("clientVpnEndpointId",cdk.validateString)(properties.clientVpnEndpointId)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnClientVpnTargetNetworkAssociationProps"')}function cfnClientVpnTargetNetworkAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnClientVpnTargetNetworkAssociationPropsValidator(properties).assertSuccess(),{ClientVpnEndpointId:cdk.stringToCloudFormation(properties.clientVpnEndpointId),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnClientVpnTargetNetworkAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("clientVpnEndpointId","ClientVpnEndpointId",cfn_parse.FromCloudFormation.getString(properties.ClientVpnEndpointId)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnClientVpnTargetNetworkAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnClientVpnTargetNetworkAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnClientVpnTargetNetworkAssociation),error}cdk.requireProperty(props,"clientVpnEndpointId",this),cdk.requireProperty(props,"subnetId",this),this.clientVpnEndpointId=props.clientVpnEndpointId,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnClientVpnTargetNetworkAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnClientVpnTargetNetworkAssociation(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",CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{clientVpnEndpointId:this.clientVpnEndpointId,subnetId:this.subnetId}}renderProperties(props){return cfnClientVpnTargetNetworkAssociationPropsToCloudFormation(props)}}exports.CfnClientVpnTargetNetworkAssociation=CfnClientVpnTargetNetworkAssociation,_g=JSII_RTTI_SYMBOL_1,CfnClientVpnTargetNetworkAssociation[_g]={fqn:"aws-cdk-lib.aws_ec2.CfnClientVpnTargetNetworkAssociation",version:"2.51.1"},CfnClientVpnTargetNetworkAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::ClientVpnTargetNetworkAssociation";function CfnCustomerGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("bgpAsn",cdk.requiredValidator)(properties.bgpAsn)),errors.collect(cdk.propertyValidator("bgpAsn",cdk.validateNumber)(properties.bgpAsn)),errors.collect(cdk.propertyValidator("ipAddress",cdk.requiredValidator)(properties.ipAddress)),errors.collect(cdk.propertyValidator("ipAddress",cdk.validateString)(properties.ipAddress)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),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 "CfnCustomerGatewayProps"')}function cfnCustomerGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnCustomerGatewayPropsValidator(properties).assertSuccess(),{BgpAsn:cdk.numberToCloudFormation(properties.bgpAsn),IpAddress:cdk.stringToCloudFormation(properties.ipAddress),Type:cdk.stringToCloudFormation(properties.type),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnCustomerGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("bgpAsn","BgpAsn",cfn_parse.FromCloudFormation.getNumber(properties.BgpAsn)),ret.addPropertyResult("ipAddress","IpAddress",cfn_parse.FromCloudFormation.getString(properties.IpAddress)),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnCustomerGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnCustomerGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnCustomerGateway),error}cdk.requireProperty(props,"bgpAsn",this),cdk.requireProperty(props,"ipAddress",this),cdk.requireProperty(props,"type",this),this.attrCustomerGatewayId=cdk.Token.asString(this.getAtt("CustomerGatewayId")),this.bgpAsn=props.bgpAsn,this.ipAddress=props.ipAddress,this.type=props.type,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::CustomerGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnCustomerGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnCustomerGateway(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",CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{bgpAsn:this.bgpAsn,ipAddress:this.ipAddress,type:this.type,tags:this.tags.renderTags()}}renderProperties(props){return cfnCustomerGatewayPropsToCloudFormation(props)}}exports.CfnCustomerGateway=CfnCustomerGateway,_h=JSII_RTTI_SYMBOL_1,CfnCustomerGateway[_h]={fqn:"aws-cdk-lib.aws_ec2.CfnCustomerGateway",version:"2.51.1"},CfnCustomerGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::CustomerGateway";function CfnDHCPOptionsPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("domainName",cdk.validateString)(properties.domainName)),errors.collect(cdk.propertyValidator("domainNameServers",cdk.listValidator(cdk.validateString))(properties.domainNameServers)),errors.collect(cdk.propertyValidator("netbiosNameServers",cdk.listValidator(cdk.validateString))(properties.netbiosNameServers)),errors.collect(cdk.propertyValidator("netbiosNodeType",cdk.validateNumber)(properties.netbiosNodeType)),errors.collect(cdk.propertyValidator("ntpServers",cdk.listValidator(cdk.validateString))(properties.ntpServers)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnDHCPOptionsProps"')}function cfnDHCPOptionsPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnDHCPOptionsPropsValidator(properties).assertSuccess(),{DomainName:cdk.stringToCloudFormation(properties.domainName),DomainNameServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.domainNameServers),NetbiosNameServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.netbiosNameServers),NetbiosNodeType:cdk.numberToCloudFormation(properties.netbiosNodeType),NtpServers:cdk.listMapper(cdk.stringToCloudFormation)(properties.ntpServers),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnDHCPOptionsPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("domainName","DomainName",properties.DomainName!=null?cfn_parse.FromCloudFormation.getString(properties.DomainName):void 0),ret.addPropertyResult("domainNameServers","DomainNameServers",properties.DomainNameServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DomainNameServers):void 0),ret.addPropertyResult("netbiosNameServers","NetbiosNameServers",properties.NetbiosNameServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NetbiosNameServers):void 0),ret.addPropertyResult("netbiosNodeType","NetbiosNodeType",properties.NetbiosNodeType!=null?cfn_parse.FromCloudFormation.getNumber(properties.NetbiosNodeType):void 0),ret.addPropertyResult("ntpServers","NtpServers",properties.NtpServers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NtpServers):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 CfnDHCPOptions extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnDHCPOptionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnDHCPOptions),error}this.attrDhcpOptionsId=cdk.Token.asString(this.getAtt("DhcpOptionsId")),this.domainName=props.domainName,this.domainNameServers=props.domainNameServers,this.netbiosNameServers=props.netbiosNameServers,this.netbiosNodeType=props.netbiosNodeType,this.ntpServers=props.ntpServers,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::DHCPOptions",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnDHCPOptionsPropsFromCloudFormation(resourceProperties),ret=new CfnDHCPOptions(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",CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{domainName:this.domainName,domainNameServers:this.domainNameServers,netbiosNameServers:this.netbiosNameServers,netbiosNodeType:this.netbiosNodeType,ntpServers:this.ntpServers,tags:this.tags.renderTags()}}renderProperties(props){return cfnDHCPOptionsPropsToCloudFormation(props)}}exports.CfnDHCPOptions=CfnDHCPOptions,_j=JSII_RTTI_SYMBOL_1,CfnDHCPOptions[_j]={fqn:"aws-cdk-lib.aws_ec2.CfnDHCPOptions",version:"2.51.1"},CfnDHCPOptions.CFN_RESOURCE_TYPE_NAME="AWS::EC2::DHCPOptions";function CfnEC2FleetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("context",cdk.validateString)(properties.context)),errors.collect(cdk.propertyValidator("excessCapacityTerminationPolicy",cdk.validateString)(properties.excessCapacityTerminationPolicy)),errors.collect(cdk.propertyValidator("launchTemplateConfigs",cdk.requiredValidator)(properties.launchTemplateConfigs)),errors.collect(cdk.propertyValidator("launchTemplateConfigs",cdk.listValidator(CfnEC2Fleet_FleetLaunchTemplateConfigRequestPropertyValidator))(properties.launchTemplateConfigs)),errors.collect(cdk.propertyValidator("onDemandOptions",CfnEC2Fleet_OnDemandOptionsRequestPropertyValidator)(properties.onDemandOptions)),errors.collect(cdk.propertyValidator("replaceUnhealthyInstances",cdk.validateBoolean)(properties.replaceUnhealthyInstances)),errors.collect(cdk.propertyValidator("spotOptions",CfnEC2Fleet_SpotOptionsRequestPropertyValidator)(properties.spotOptions)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnEC2Fleet_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("targetCapacitySpecification",cdk.requiredValidator)(properties.targetCapacitySpecification)),errors.collect(cdk.propertyValidator("targetCapacitySpecification",CfnEC2Fleet_TargetCapacitySpecificationRequestPropertyValidator)(properties.targetCapacitySpecification)),errors.collect(cdk.propertyValidator("terminateInstancesWithExpiration",cdk.validateBoolean)(properties.terminateInstancesWithExpiration)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.collect(cdk.propertyValidator("validFrom",cdk.validateString)(properties.validFrom)),errors.collect(cdk.propertyValidator("validUntil",cdk.validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "CfnEC2FleetProps"')}function cfnEC2FleetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2FleetPropsValidator(properties).assertSuccess(),{LaunchTemplateConfigs:cdk.listMapper(cfnEC2FleetFleetLaunchTemplateConfigRequestPropertyToCloudFormation)(properties.launchTemplateConfigs),TargetCapacitySpecification:cfnEC2FleetTargetCapacitySpecificationRequestPropertyToCloudFormation(properties.targetCapacitySpecification),Context:cdk.stringToCloudFormation(properties.context),ExcessCapacityTerminationPolicy:cdk.stringToCloudFormation(properties.excessCapacityTerminationPolicy),OnDemandOptions:cfnEC2FleetOnDemandOptionsRequestPropertyToCloudFormation(properties.onDemandOptions),ReplaceUnhealthyInstances:cdk.booleanToCloudFormation(properties.replaceUnhealthyInstances),SpotOptions:cfnEC2FleetSpotOptionsRequestPropertyToCloudFormation(properties.spotOptions),TagSpecifications:cdk.listMapper(cfnEC2FleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TerminateInstancesWithExpiration:cdk.booleanToCloudFormation(properties.terminateInstancesWithExpiration),Type:cdk.stringToCloudFormation(properties.type),ValidFrom:cdk.stringToCloudFormation(properties.validFrom),ValidUntil:cdk.stringToCloudFormation(properties.validUntil)}):properties}function CfnEC2FleetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateConfigs","LaunchTemplateConfigs",cfn_parse.FromCloudFormation.getArray(CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyFromCloudFormation)(properties.LaunchTemplateConfigs)),ret.addPropertyResult("targetCapacitySpecification","TargetCapacitySpecification",CfnEC2FleetTargetCapacitySpecificationRequestPropertyFromCloudFormation(properties.TargetCapacitySpecification)),ret.addPropertyResult("context","Context",properties.Context!=null?cfn_parse.FromCloudFormation.getString(properties.Context):void 0),ret.addPropertyResult("excessCapacityTerminationPolicy","ExcessCapacityTerminationPolicy",properties.ExcessCapacityTerminationPolicy!=null?cfn_parse.FromCloudFormation.getString(properties.ExcessCapacityTerminationPolicy):void 0),ret.addPropertyResult("onDemandOptions","OnDemandOptions",properties.OnDemandOptions!=null?CfnEC2FleetOnDemandOptionsRequestPropertyFromCloudFormation(properties.OnDemandOptions):void 0),ret.addPropertyResult("replaceUnhealthyInstances","ReplaceUnhealthyInstances",properties.ReplaceUnhealthyInstances!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ReplaceUnhealthyInstances):void 0),ret.addPropertyResult("spotOptions","SpotOptions",properties.SpotOptions!=null?CfnEC2FleetSpotOptionsRequestPropertyFromCloudFormation(properties.SpotOptions):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnEC2FleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("terminateInstancesWithExpiration","TerminateInstancesWithExpiration",properties.TerminateInstancesWithExpiration!=null?cfn_parse.FromCloudFormation.getBoolean(properties.TerminateInstancesWithExpiration):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("validFrom","ValidFrom",properties.ValidFrom!=null?cfn_parse.FromCloudFormation.getString(properties.ValidFrom):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse.FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEC2Fleet extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEC2FleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEC2Fleet),error}cdk.requireProperty(props,"launchTemplateConfigs",this),cdk.requireProperty(props,"targetCapacitySpecification",this),this.attrFleetId=cdk.Token.asString(this.getAtt("FleetId")),this.launchTemplateConfigs=props.launchTemplateConfigs,this.targetCapacitySpecification=props.targetCapacitySpecification,this.context=props.context,this.excessCapacityTerminationPolicy=props.excessCapacityTerminationPolicy,this.onDemandOptions=props.onDemandOptions,this.replaceUnhealthyInstances=props.replaceUnhealthyInstances,this.spotOptions=props.spotOptions,this.tagSpecifications=props.tagSpecifications,this.terminateInstancesWithExpiration=props.terminateInstancesWithExpiration,this.type=props.type,this.validFrom=props.validFrom,this.validUntil=props.validUntil}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEC2FleetPropsFromCloudFormation(resourceProperties),ret=new CfnEC2Fleet(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",CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{launchTemplateConfigs:this.launchTemplateConfigs,targetCapacitySpecification:this.targetCapacitySpecification,context:this.context,excessCapacityTerminationPolicy:this.excessCapacityTerminationPolicy,onDemandOptions:this.onDemandOptions,replaceUnhealthyInstances:this.replaceUnhealthyInstances,spotOptions:this.spotOptions,tagSpecifications:this.tagSpecifications,terminateInstancesWithExpiration:this.terminateInstancesWithExpiration,type:this.type,validFrom:this.validFrom,validUntil:this.validUntil}}renderProperties(props){return cfnEC2FleetPropsToCloudFormation(props)}}exports.CfnEC2Fleet=CfnEC2Fleet,_k=JSII_RTTI_SYMBOL_1,CfnEC2Fleet[_k]={fqn:"aws-cdk-lib.aws_ec2.CfnEC2Fleet",version:"2.51.1"},CfnEC2Fleet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EC2Fleet";function CfnEC2Fleet_AcceleratorCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountRequestProperty"')}function cfnEC2FleetAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_AcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetAcceleratorCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBRequestProperty"')}function cfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsRequestProperty"')}function cfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_CapacityRebalancePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("replacementStrategy",cdk.validateString)(properties.replacementStrategy)),errors.collect(cdk.propertyValidator("terminationDelay",cdk.validateNumber)(properties.terminationDelay)),errors.wrap('supplied properties not correct for "CapacityRebalanceProperty"')}function cfnEC2FleetCapacityRebalancePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_CapacityRebalancePropertyValidator(properties).assertSuccess(),{ReplacementStrategy:cdk.stringToCloudFormation(properties.replacementStrategy),TerminationDelay:cdk.numberToCloudFormation(properties.terminationDelay)}):properties}function CfnEC2FleetCapacityRebalancePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("replacementStrategy","ReplacementStrategy",properties.ReplacementStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.ReplacementStrategy):void 0),ret.addPropertyResult("terminationDelay","TerminationDelay",properties.TerminationDelay!=null?cfn_parse.FromCloudFormation.getNumber(properties.TerminationDelay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_CapacityReservationOptionsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("usageStrategy",cdk.validateString)(properties.usageStrategy)),errors.wrap('supplied properties not correct for "CapacityReservationOptionsRequestProperty"')}function cfnEC2FleetCapacityReservationOptionsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_CapacityReservationOptionsRequestPropertyValidator(properties).assertSuccess(),{UsageStrategy:cdk.stringToCloudFormation(properties.usageStrategy)}):properties}function CfnEC2FleetCapacityReservationOptionsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("usageStrategy","UsageStrategy",properties.UsageStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.UsageStrategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_FleetLaunchTemplateConfigRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateSpecification",CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk.propertyValidator("overrides",cdk.listValidator(CfnEC2Fleet_FleetLaunchTemplateOverridesRequestPropertyValidator))(properties.overrides)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateConfigRequestProperty"')}function cfnEC2FleetFleetLaunchTemplateConfigRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_FleetLaunchTemplateConfigRequestPropertyValidator(properties).assertSuccess(),{LaunchTemplateSpecification:cfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyToCloudFormation(properties.launchTemplateSpecification),Overrides:cdk.listMapper(cfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyToCloudFormation)(properties.overrides)}):properties}function CfnEC2FleetFleetLaunchTemplateConfigRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("overrides","Overrides",properties.Overrides!=null?cfn_parse.FromCloudFormation.getArray(CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyFromCloudFormation)(properties.Overrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_FleetLaunchTemplateOverridesRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnEC2Fleet_InstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("maxPrice",cdk.validateString)(properties.maxPrice)),errors.collect(cdk.propertyValidator("placement",CfnEC2Fleet_PlacementPropertyValidator)(properties.placement)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("weightedCapacity",cdk.validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateOverridesRequestProperty"')}function cfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_FleetLaunchTemplateOverridesRequestPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),InstanceRequirements:cfnEC2FleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),MaxPrice:cdk.stringToCloudFormation(properties.maxPrice),Placement:cfnEC2FleetPlacementPropertyToCloudFormation(properties.placement),Priority:cdk.numberToCloudFormation(properties.priority),SubnetId:cdk.stringToCloudFormation(properties.subnetId),WeightedCapacity:cdk.numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnEC2FleetFleetLaunchTemplateOverridesRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnEC2FleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("maxPrice","MaxPrice",properties.MaxPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxPrice):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnEC2FleetPlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateId",cdk.validateString)(properties.launchTemplateId)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("version",cdk.requiredValidator)(properties.version)),errors.collect(cdk.propertyValidator("version",cdk.validateString)(properties.version)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateSpecificationRequestProperty"')}function cfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_FleetLaunchTemplateSpecificationRequestPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk.stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),Version:cdk.stringToCloudFormation(properties.version)}):properties}function CfnEC2FleetFleetLaunchTemplateSpecificationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",cfn_parse.FromCloudFormation.getString(properties.Version)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_InstanceRequirementsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceleratorCount",CfnEC2Fleet_AcceleratorCountRequestPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk.propertyValidator("acceleratorManufacturers",cdk.listValidator(cdk.validateString))(properties.acceleratorManufacturers)),errors.collect(cdk.propertyValidator("acceleratorNames",cdk.listValidator(cdk.validateString))(properties.acceleratorNames)),errors.collect(cdk.propertyValidator("acceleratorTotalMemoryMiB",CfnEC2Fleet_AcceleratorTotalMemoryMiBRequestPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk.propertyValidator("acceleratorTypes",cdk.listValidator(cdk.validateString))(properties.acceleratorTypes)),errors.collect(cdk.propertyValidator("allowedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.allowedInstanceTypes)),errors.collect(cdk.propertyValidator("bareMetal",cdk.validateString)(properties.bareMetal)),errors.collect(cdk.propertyValidator("baselineEbsBandwidthMbps",CfnEC2Fleet_BaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk.propertyValidator("burstablePerformance",cdk.validateString)(properties.burstablePerformance)),errors.collect(cdk.propertyValidator("cpuManufacturers",cdk.listValidator(cdk.validateString))(properties.cpuManufacturers)),errors.collect(cdk.propertyValidator("excludedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.excludedInstanceTypes)),errors.collect(cdk.propertyValidator("instanceGenerations",cdk.listValidator(cdk.validateString))(properties.instanceGenerations)),errors.collect(cdk.propertyValidator("localStorage",cdk.validateString)(properties.localStorage)),errors.collect(cdk.propertyValidator("localStorageTypes",cdk.listValidator(cdk.validateString))(properties.localStorageTypes)),errors.collect(cdk.propertyValidator("memoryGiBPerVCpu",CfnEC2Fleet_MemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk.propertyValidator("memoryMiB",CfnEC2Fleet_MemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk.propertyValidator("networkBandwidthGbps",CfnEC2Fleet_NetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk.propertyValidator("networkInterfaceCount",CfnEC2Fleet_NetworkInterfaceCountRequestPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk.propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("requireHibernateSupport",cdk.validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk.propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("totalLocalStorageGb",CfnEC2Fleet_TotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk.propertyValidator("vCpuCount",CfnEC2Fleet_VCpuCountRangeRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsRequestProperty"')}function cfnEC2FleetInstanceRequirementsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_InstanceRequirementsRequestPropertyValidator(properties).assertSuccess(),{AcceleratorCount:cfnEC2FleetAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:cfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk.stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:cfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BurstablePerformance:cdk.stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk.listMapper(cdk.stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk.stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.localStorageTypes),MemoryGiBPerVCpu:cfnEC2FleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:cfnEC2FleetMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:cfnEC2FleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:cfnEC2FleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk.booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:cfnEC2FleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:cfnEC2FleetVCpuCountRangeRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnEC2FleetInstanceRequirementsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnEC2FleetAcceleratorCountRequestPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnEC2FleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse.FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnEC2FleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse.FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse.FromCloudFormation.getStringArray(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse.FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.LocalStorageTypes):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnEC2FleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnEC2FleetMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnEC2FleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnEC2FleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnEC2FleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnEC2FleetVCpuCountRangeRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_MaintenanceStrategiesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityRebalance",CfnEC2Fleet_CapacityRebalancePropertyValidator)(properties.capacityRebalance)),errors.wrap('supplied properties not correct for "MaintenanceStrategiesProperty"')}function cfnEC2FleetMaintenanceStrategiesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_MaintenanceStrategiesPropertyValidator(properties).assertSuccess(),{CapacityRebalance:cfnEC2FleetCapacityRebalancePropertyToCloudFormation(properties.capacityRebalance)}):properties}function CfnEC2FleetMaintenanceStrategiesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityRebalance","CapacityRebalance",properties.CapacityRebalance!=null?CfnEC2FleetCapacityRebalancePropertyFromCloudFormation(properties.CapacityRebalance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_MemoryGiBPerVCpuRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuRequestProperty"')}function cfnEC2FleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_MemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_MemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBRequestProperty"')}function cfnEC2FleetMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_MemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_NetworkBandwidthGbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsRequestProperty"')}function cfnEC2FleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_NetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_NetworkInterfaceCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountRequestProperty"')}function cfnEC2FleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_NetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_OnDemandOptionsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("capacityReservationOptions",CfnEC2Fleet_CapacityReservationOptionsRequestPropertyValidator)(properties.capacityReservationOptions)),errors.collect(cdk.propertyValidator("maxTotalPrice",cdk.validateString)(properties.maxTotalPrice)),errors.collect(cdk.propertyValidator("minTargetCapacity",cdk.validateNumber)(properties.minTargetCapacity)),errors.collect(cdk.propertyValidator("singleAvailabilityZone",cdk.validateBoolean)(properties.singleAvailabilityZone)),errors.collect(cdk.propertyValidator("singleInstanceType",cdk.validateBoolean)(properties.singleInstanceType)),errors.wrap('supplied properties not correct for "OnDemandOptionsRequestProperty"')}function cfnEC2FleetOnDemandOptionsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_OnDemandOptionsRequestPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),CapacityReservationOptions:cfnEC2FleetCapacityReservationOptionsRequestPropertyToCloudFormation(properties.capacityReservationOptions),MaxTotalPrice:cdk.stringToCloudFormation(properties.maxTotalPrice),MinTargetCapacity:cdk.numberToCloudFormation(properties.minTargetCapacity),SingleAvailabilityZone:cdk.booleanToCloudFormation(properties.singleAvailabilityZone),SingleInstanceType:cdk.booleanToCloudFormation(properties.singleInstanceType)}):properties}function CfnEC2FleetOnDemandOptionsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("capacityReservationOptions","CapacityReservationOptions",properties.CapacityReservationOptions!=null?CfnEC2FleetCapacityReservationOptionsRequestPropertyFromCloudFormation(properties.CapacityReservationOptions):void 0),ret.addPropertyResult("maxTotalPrice","MaxTotalPrice",properties.MaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxTotalPrice):void 0),ret.addPropertyResult("minTargetCapacity","MinTargetCapacity",properties.MinTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.MinTargetCapacity):void 0),ret.addPropertyResult("singleAvailabilityZone","SingleAvailabilityZone",properties.SingleAvailabilityZone!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleAvailabilityZone):void 0),ret.addPropertyResult("singleInstanceType","SingleInstanceType",properties.SingleInstanceType!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleInstanceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_PlacementPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("affinity",cdk.validateString)(properties.affinity)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("hostId",cdk.validateString)(properties.hostId)),errors.collect(cdk.propertyValidator("hostResourceGroupArn",cdk.validateString)(properties.hostResourceGroupArn)),errors.collect(cdk.propertyValidator("partitionNumber",cdk.validateNumber)(properties.partitionNumber)),errors.collect(cdk.propertyValidator("spreadDomain",cdk.validateString)(properties.spreadDomain)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "PlacementProperty"')}function cfnEC2FleetPlacementPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_PlacementPropertyValidator(properties).assertSuccess(),{Affinity:cdk.stringToCloudFormation(properties.affinity),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),GroupName:cdk.stringToCloudFormation(properties.groupName),HostId:cdk.stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk.stringToCloudFormation(properties.hostResourceGroupArn),PartitionNumber:cdk.numberToCloudFormation(properties.partitionNumber),SpreadDomain:cdk.stringToCloudFormation(properties.spreadDomain),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnEC2FleetPlacementPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("affinity","Affinity",properties.Affinity!=null?cfn_parse.FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse.FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("partitionNumber","PartitionNumber",properties.PartitionNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.PartitionNumber):void 0),ret.addPropertyResult("spreadDomain","SpreadDomain",properties.SpreadDomain!=null?cfn_parse.FromCloudFormation.getString(properties.SpreadDomain):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_SpotOptionsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("instanceInterruptionBehavior",cdk.validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk.propertyValidator("instancePoolsToUseCount",cdk.validateNumber)(properties.instancePoolsToUseCount)),errors.collect(cdk.propertyValidator("maintenanceStrategies",CfnEC2Fleet_MaintenanceStrategiesPropertyValidator)(properties.maintenanceStrategies)),errors.collect(cdk.propertyValidator("maxTotalPrice",cdk.validateString)(properties.maxTotalPrice)),errors.collect(cdk.propertyValidator("minTargetCapacity",cdk.validateNumber)(properties.minTargetCapacity)),errors.collect(cdk.propertyValidator("singleAvailabilityZone",cdk.validateBoolean)(properties.singleAvailabilityZone)),errors.collect(cdk.propertyValidator("singleInstanceType",cdk.validateBoolean)(properties.singleInstanceType)),errors.wrap('supplied properties not correct for "SpotOptionsRequestProperty"')}function cfnEC2FleetSpotOptionsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_SpotOptionsRequestPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),InstanceInterruptionBehavior:cdk.stringToCloudFormation(properties.instanceInterruptionBehavior),InstancePoolsToUseCount:cdk.numberToCloudFormation(properties.instancePoolsToUseCount),MaintenanceStrategies:cfnEC2FleetMaintenanceStrategiesPropertyToCloudFormation(properties.maintenanceStrategies),MaxTotalPrice:cdk.stringToCloudFormation(properties.maxTotalPrice),MinTargetCapacity:cdk.numberToCloudFormation(properties.minTargetCapacity),SingleAvailabilityZone:cdk.booleanToCloudFormation(properties.singleAvailabilityZone),SingleInstanceType:cdk.booleanToCloudFormation(properties.singleInstanceType)}):properties}function CfnEC2FleetSpotOptionsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("instancePoolsToUseCount","InstancePoolsToUseCount",properties.InstancePoolsToUseCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.InstancePoolsToUseCount):void 0),ret.addPropertyResult("maintenanceStrategies","MaintenanceStrategies",properties.MaintenanceStrategies!=null?CfnEC2FleetMaintenanceStrategiesPropertyFromCloudFormation(properties.MaintenanceStrategies):void 0),ret.addPropertyResult("maxTotalPrice","MaxTotalPrice",properties.MaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxTotalPrice):void 0),ret.addPropertyResult("minTargetCapacity","MinTargetCapacity",properties.MinTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.MinTargetCapacity):void 0),ret.addPropertyResult("singleAvailabilityZone","SingleAvailabilityZone",properties.SingleAvailabilityZone!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleAvailabilityZone):void 0),ret.addPropertyResult("singleInstanceType","SingleInstanceType",properties.SingleInstanceType!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SingleInstanceType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnEC2FleetTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnEC2FleetTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnEC2Fleet_TargetCapacitySpecificationRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("defaultTargetCapacityType",cdk.validateString)(properties.defaultTargetCapacityType)),errors.collect(cdk.propertyValidator("onDemandTargetCapacity",cdk.validateNumber)(properties.onDemandTargetCapacity)),errors.collect(cdk.propertyValidator("spotTargetCapacity",cdk.validateNumber)(properties.spotTargetCapacity)),errors.collect(cdk.propertyValidator("targetCapacityUnitType",cdk.validateString)(properties.targetCapacityUnitType)),errors.collect(cdk.propertyValidator("totalTargetCapacity",cdk.requiredValidator)(properties.totalTargetCapacity)),errors.collect(cdk.propertyValidator("totalTargetCapacity",cdk.validateNumber)(properties.totalTargetCapacity)),errors.wrap('supplied properties not correct for "TargetCapacitySpecificationRequestProperty"')}function cfnEC2FleetTargetCapacitySpecificationRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_TargetCapacitySpecificationRequestPropertyValidator(properties).assertSuccess(),{DefaultTargetCapacityType:cdk.stringToCloudFormation(properties.defaultTargetCapacityType),OnDemandTargetCapacity:cdk.numberToCloudFormation(properties.onDemandTargetCapacity),SpotTargetCapacity:cdk.numberToCloudFormation(properties.spotTargetCapacity),TargetCapacityUnitType:cdk.stringToCloudFormation(properties.targetCapacityUnitType),TotalTargetCapacity:cdk.numberToCloudFormation(properties.totalTargetCapacity)}):properties}function CfnEC2FleetTargetCapacitySpecificationRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("defaultTargetCapacityType","DefaultTargetCapacityType",properties.DefaultTargetCapacityType!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultTargetCapacityType):void 0),ret.addPropertyResult("onDemandTargetCapacity","OnDemandTargetCapacity",properties.OnDemandTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandTargetCapacity):void 0),ret.addPropertyResult("spotTargetCapacity","SpotTargetCapacity",properties.SpotTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotTargetCapacity):void 0),ret.addPropertyResult("targetCapacityUnitType","TargetCapacityUnitType",properties.TargetCapacityUnitType!=null?cfn_parse.FromCloudFormation.getString(properties.TargetCapacityUnitType):void 0),ret.addPropertyResult("totalTargetCapacity","TotalTargetCapacity",cfn_parse.FromCloudFormation.getNumber(properties.TotalTargetCapacity)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_TotalLocalStorageGBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBRequestProperty"')}function cfnEC2FleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_TotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEC2Fleet_VCpuCountRangeRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountRangeRequestProperty"')}function cfnEC2FleetVCpuCountRangeRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEC2Fleet_VCpuCountRangeRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnEC2FleetVCpuCountRangeRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEIPPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("domain",cdk.validateString)(properties.domain)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("networkBorderGroup",cdk.validateString)(properties.networkBorderGroup)),errors.collect(cdk.propertyValidator("publicIpv4Pool",cdk.validateString)(properties.publicIpv4Pool)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transferAddress",cdk.validateString)(properties.transferAddress)),errors.wrap('supplied properties not correct for "CfnEIPProps"')}function cfnEIPPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEIPPropsValidator(properties).assertSuccess(),{Domain:cdk.stringToCloudFormation(properties.domain),InstanceId:cdk.stringToCloudFormation(properties.instanceId),NetworkBorderGroup:cdk.stringToCloudFormation(properties.networkBorderGroup),PublicIpv4Pool:cdk.stringToCloudFormation(properties.publicIpv4Pool),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TransferAddress:cdk.stringToCloudFormation(properties.transferAddress)}):properties}function CfnEIPPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("domain","Domain",properties.Domain!=null?cfn_parse.FromCloudFormation.getString(properties.Domain):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("networkBorderGroup","NetworkBorderGroup",properties.NetworkBorderGroup!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkBorderGroup):void 0),ret.addPropertyResult("publicIpv4Pool","PublicIpv4Pool",properties.PublicIpv4Pool!=null?cfn_parse.FromCloudFormation.getString(properties.PublicIpv4Pool):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transferAddress","TransferAddress",properties.TransferAddress!=null?cfn_parse.FromCloudFormation.getString(properties.TransferAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEIP extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnEIP.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEIPProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEIP),error}this.attrAllocationId=cdk.Token.asString(this.getAtt("AllocationId")),this.attrPublicIp=cdk.Token.asString(this.getAtt("PublicIp")),this.domain=props.domain,this.instanceId=props.instanceId,this.networkBorderGroup=props.networkBorderGroup,this.publicIpv4Pool=props.publicIpv4Pool,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::EIP",props.tags,{tagPropertyName:"tags"}),this.transferAddress=props.transferAddress}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEIPPropsFromCloudFormation(resourceProperties),ret=new CfnEIP(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",CfnEIP.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{domain:this.domain,instanceId:this.instanceId,networkBorderGroup:this.networkBorderGroup,publicIpv4Pool:this.publicIpv4Pool,tags:this.tags.renderTags(),transferAddress:this.transferAddress}}renderProperties(props){return cfnEIPPropsToCloudFormation(props)}}exports.CfnEIP=CfnEIP,_l=JSII_RTTI_SYMBOL_1,CfnEIP[_l]={fqn:"aws-cdk-lib.aws_ec2.CfnEIP",version:"2.51.1"},CfnEIP.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EIP";function CfnEIPAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationId",cdk.validateString)(properties.allocationId)),errors.collect(cdk.propertyValidator("eip",cdk.validateString)(properties.eip)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "CfnEIPAssociationProps"')}function cfnEIPAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEIPAssociationPropsValidator(properties).assertSuccess(),{AllocationId:cdk.stringToCloudFormation(properties.allocationId),EIP:cdk.stringToCloudFormation(properties.eip),InstanceId:cdk.stringToCloudFormation(properties.instanceId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnEIPAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationId","AllocationId",properties.AllocationId!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationId):void 0),ret.addPropertyResult("eip","EIP",properties.EIP!=null?cfn_parse.FromCloudFormation.getString(properties.EIP):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEIPAssociation extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEIPAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEIPAssociation),error}this.allocationId=props.allocationId,this.eip=props.eip,this.instanceId=props.instanceId,this.networkInterfaceId=props.networkInterfaceId,this.privateIpAddress=props.privateIpAddress}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEIPAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnEIPAssociation(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",CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{allocationId:this.allocationId,eip:this.eip,instanceId:this.instanceId,networkInterfaceId:this.networkInterfaceId,privateIpAddress:this.privateIpAddress}}renderProperties(props){return cfnEIPAssociationPropsToCloudFormation(props)}}exports.CfnEIPAssociation=CfnEIPAssociation,_m=JSII_RTTI_SYMBOL_1,CfnEIPAssociation[_m]={fqn:"aws-cdk-lib.aws_ec2.CfnEIPAssociation",version:"2.51.1"},CfnEIPAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EIPAssociation";function CfnEgressOnlyInternetGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnEgressOnlyInternetGatewayProps"')}function cfnEgressOnlyInternetGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEgressOnlyInternetGatewayPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId)}):properties}function CfnEgressOnlyInternetGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEgressOnlyInternetGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEgressOnlyInternetGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEgressOnlyInternetGateway),error}cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.vpcId=props.vpcId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEgressOnlyInternetGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnEgressOnlyInternetGateway(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",CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId}}renderProperties(props){return cfnEgressOnlyInternetGatewayPropsToCloudFormation(props)}}exports.CfnEgressOnlyInternetGateway=CfnEgressOnlyInternetGateway,_o=JSII_RTTI_SYMBOL_1,CfnEgressOnlyInternetGateway[_o]={fqn:"aws-cdk-lib.aws_ec2.CfnEgressOnlyInternetGateway",version:"2.51.1"},CfnEgressOnlyInternetGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EgressOnlyInternetGateway";function CfnEnclaveCertificateIamRoleAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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.collect(cdk.propertyValidator("roleArn",cdk.requiredValidator)(properties.roleArn)),errors.collect(cdk.propertyValidator("roleArn",cdk.validateString)(properties.roleArn)),errors.wrap('supplied properties not correct for "CfnEnclaveCertificateIamRoleAssociationProps"')}function cfnEnclaveCertificateIamRoleAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnEnclaveCertificateIamRoleAssociationPropsValidator(properties).assertSuccess(),{CertificateArn:cdk.stringToCloudFormation(properties.certificateArn),RoleArn:cdk.stringToCloudFormation(properties.roleArn)}):properties}function CfnEnclaveCertificateIamRoleAssociationPropsFromCloudFormation(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.addPropertyResult("roleArn","RoleArn",cfn_parse.FromCloudFormation.getString(properties.RoleArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEnclaveCertificateIamRoleAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnEnclaveCertificateIamRoleAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEnclaveCertificateIamRoleAssociation),error}cdk.requireProperty(props,"certificateArn",this),cdk.requireProperty(props,"roleArn",this),this.attrCertificateS3BucketName=cdk.Token.asString(this.getAtt("CertificateS3BucketName")),this.attrCertificateS3ObjectKey=cdk.Token.asString(this.getAtt("CertificateS3ObjectKey")),this.attrEncryptionKmsKeyId=cdk.Token.asString(this.getAtt("EncryptionKmsKeyId")),this.certificateArn=props.certificateArn,this.roleArn=props.roleArn}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEnclaveCertificateIamRoleAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnEnclaveCertificateIamRoleAssociation(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",CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{certificateArn:this.certificateArn,roleArn:this.roleArn}}renderProperties(props){return cfnEnclaveCertificateIamRoleAssociationPropsToCloudFormation(props)}}exports.CfnEnclaveCertificateIamRoleAssociation=CfnEnclaveCertificateIamRoleAssociation,_p=JSII_RTTI_SYMBOL_1,CfnEnclaveCertificateIamRoleAssociation[_p]={fqn:"aws-cdk-lib.aws_ec2.CfnEnclaveCertificateIamRoleAssociation",version:"2.51.1"},CfnEnclaveCertificateIamRoleAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::EnclaveCertificateIamRoleAssociation";function CfnFlowLogPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deliverLogsPermissionArn",cdk.validateString)(properties.deliverLogsPermissionArn)),errors.collect(cdk.propertyValidator("destinationOptions",cdk.validateObject)(properties.destinationOptions)),errors.collect(cdk.propertyValidator("logDestination",cdk.validateString)(properties.logDestination)),errors.collect(cdk.propertyValidator("logDestinationType",cdk.validateString)(properties.logDestinationType)),errors.collect(cdk.propertyValidator("logFormat",cdk.validateString)(properties.logFormat)),errors.collect(cdk.propertyValidator("logGroupName",cdk.validateString)(properties.logGroupName)),errors.collect(cdk.propertyValidator("maxAggregationInterval",cdk.validateNumber)(properties.maxAggregationInterval)),errors.collect(cdk.propertyValidator("resourceId",cdk.requiredValidator)(properties.resourceId)),errors.collect(cdk.propertyValidator("resourceId",cdk.validateString)(properties.resourceId)),errors.collect(cdk.propertyValidator("resourceType",cdk.requiredValidator)(properties.resourceType)),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("trafficType",cdk.validateString)(properties.trafficType)),errors.wrap('supplied properties not correct for "CfnFlowLogProps"')}function cfnFlowLogPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnFlowLogPropsValidator(properties).assertSuccess(),{ResourceId:cdk.stringToCloudFormation(properties.resourceId),ResourceType:cdk.stringToCloudFormation(properties.resourceType),DeliverLogsPermissionArn:cdk.stringToCloudFormation(properties.deliverLogsPermissionArn),DestinationOptions:cdk.objectToCloudFormation(properties.destinationOptions),LogDestination:cdk.stringToCloudFormation(properties.logDestination),LogDestinationType:cdk.stringToCloudFormation(properties.logDestinationType),LogFormat:cdk.stringToCloudFormation(properties.logFormat),LogGroupName:cdk.stringToCloudFormation(properties.logGroupName),MaxAggregationInterval:cdk.numberToCloudFormation(properties.maxAggregationInterval),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TrafficType:cdk.stringToCloudFormation(properties.trafficType)}):properties}function CfnFlowLogPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceId","ResourceId",cfn_parse.FromCloudFormation.getString(properties.ResourceId)),ret.addPropertyResult("resourceType","ResourceType",cfn_parse.FromCloudFormation.getString(properties.ResourceType)),ret.addPropertyResult("deliverLogsPermissionArn","DeliverLogsPermissionArn",properties.DeliverLogsPermissionArn!=null?cfn_parse.FromCloudFormation.getString(properties.DeliverLogsPermissionArn):void 0),ret.addPropertyResult("destinationOptions","DestinationOptions",properties.DestinationOptions!=null?cfn_parse.FromCloudFormation.getAny(properties.DestinationOptions):void 0),ret.addPropertyResult("logDestination","LogDestination",properties.LogDestination!=null?cfn_parse.FromCloudFormation.getString(properties.LogDestination):void 0),ret.addPropertyResult("logDestinationType","LogDestinationType",properties.LogDestinationType!=null?cfn_parse.FromCloudFormation.getString(properties.LogDestinationType):void 0),ret.addPropertyResult("logFormat","LogFormat",properties.LogFormat!=null?cfn_parse.FromCloudFormation.getString(properties.LogFormat):void 0),ret.addPropertyResult("logGroupName","LogGroupName",properties.LogGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.LogGroupName):void 0),ret.addPropertyResult("maxAggregationInterval","MaxAggregationInterval",properties.MaxAggregationInterval!=null?cfn_parse.FromCloudFormation.getNumber(properties.MaxAggregationInterval):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("trafficType","TrafficType",properties.TrafficType!=null?cfn_parse.FromCloudFormation.getString(properties.TrafficType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnFlowLog extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnFlowLog.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnFlowLogProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnFlowLog),error}cdk.requireProperty(props,"resourceId",this),cdk.requireProperty(props,"resourceType",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.resourceId=props.resourceId,this.resourceType=props.resourceType,this.deliverLogsPermissionArn=props.deliverLogsPermissionArn,this.destinationOptions=props.destinationOptions,this.logDestination=props.logDestination,this.logDestinationType=props.logDestinationType,this.logFormat=props.logFormat,this.logGroupName=props.logGroupName,this.maxAggregationInterval=props.maxAggregationInterval,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::FlowLog",props.tags,{tagPropertyName:"tags"}),this.trafficType=props.trafficType}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnFlowLogPropsFromCloudFormation(resourceProperties),ret=new CfnFlowLog(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",CfnFlowLog.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{resourceId:this.resourceId,resourceType:this.resourceType,deliverLogsPermissionArn:this.deliverLogsPermissionArn,destinationOptions:this.destinationOptions,logDestination:this.logDestination,logDestinationType:this.logDestinationType,logFormat:this.logFormat,logGroupName:this.logGroupName,maxAggregationInterval:this.maxAggregationInterval,tags:this.tags.renderTags(),trafficType:this.trafficType}}renderProperties(props){return cfnFlowLogPropsToCloudFormation(props)}}exports.CfnFlowLog=CfnFlowLog,_q=JSII_RTTI_SYMBOL_1,CfnFlowLog[_q]={fqn:"aws-cdk-lib.aws_ec2.CfnFlowLog",version:"2.51.1"},CfnFlowLog.CFN_RESOURCE_TYPE_NAME="AWS::EC2::FlowLog";function CfnGatewayRouteTableAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("gatewayId",cdk.requiredValidator)(properties.gatewayId)),errors.collect(cdk.propertyValidator("gatewayId",cdk.validateString)(properties.gatewayId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.requiredValidator)(properties.routeTableId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.validateString)(properties.routeTableId)),errors.wrap('supplied properties not correct for "CfnGatewayRouteTableAssociationProps"')}function cfnGatewayRouteTableAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnGatewayRouteTableAssociationPropsValidator(properties).assertSuccess(),{GatewayId:cdk.stringToCloudFormation(properties.gatewayId),RouteTableId:cdk.stringToCloudFormation(properties.routeTableId)}):properties}function CfnGatewayRouteTableAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("gatewayId","GatewayId",cfn_parse.FromCloudFormation.getString(properties.GatewayId)),ret.addPropertyResult("routeTableId","RouteTableId",cfn_parse.FromCloudFormation.getString(properties.RouteTableId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnGatewayRouteTableAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnGatewayRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGatewayRouteTableAssociation),error}cdk.requireProperty(props,"gatewayId",this),cdk.requireProperty(props,"routeTableId",this),this.attrAssociationId=cdk.Token.asString(this.getAtt("AssociationId")),this.gatewayId=props.gatewayId,this.routeTableId=props.routeTableId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGatewayRouteTableAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnGatewayRouteTableAssociation(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",CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{gatewayId:this.gatewayId,routeTableId:this.routeTableId}}renderProperties(props){return cfnGatewayRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnGatewayRouteTableAssociation=CfnGatewayRouteTableAssociation,_r=JSII_RTTI_SYMBOL_1,CfnGatewayRouteTableAssociation[_r]={fqn:"aws-cdk-lib.aws_ec2.CfnGatewayRouteTableAssociation",version:"2.51.1"},CfnGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::GatewayRouteTableAssociation";function CfnHostPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoPlacement",cdk.validateString)(properties.autoPlacement)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.requiredValidator)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("hostRecovery",cdk.validateString)(properties.hostRecovery)),errors.collect(cdk.propertyValidator("instanceFamily",cdk.validateString)(properties.instanceFamily)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("outpostArn",cdk.validateString)(properties.outpostArn)),errors.wrap('supplied properties not correct for "CfnHostProps"')}function cfnHostPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnHostPropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AutoPlacement:cdk.stringToCloudFormation(properties.autoPlacement),HostRecovery:cdk.stringToCloudFormation(properties.hostRecovery),InstanceFamily:cdk.stringToCloudFormation(properties.instanceFamily),InstanceType:cdk.stringToCloudFormation(properties.instanceType),OutpostArn:cdk.stringToCloudFormation(properties.outpostArn)}):properties}function CfnHostPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone)),ret.addPropertyResult("autoPlacement","AutoPlacement",properties.AutoPlacement!=null?cfn_parse.FromCloudFormation.getString(properties.AutoPlacement):void 0),ret.addPropertyResult("hostRecovery","HostRecovery",properties.HostRecovery!=null?cfn_parse.FromCloudFormation.getString(properties.HostRecovery):void 0),ret.addPropertyResult("instanceFamily","InstanceFamily",properties.InstanceFamily!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceFamily):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnHost extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnHost.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnHostProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnHost),error}cdk.requireProperty(props,"availabilityZone",this),this.attrHostId=cdk.Token.asString(this.getAtt("HostId")),this.availabilityZone=props.availabilityZone,this.autoPlacement=props.autoPlacement,this.hostRecovery=props.hostRecovery,this.instanceFamily=props.instanceFamily,this.instanceType=props.instanceType,this.outpostArn=props.outpostArn}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnHostPropsFromCloudFormation(resourceProperties),ret=new CfnHost(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",CfnHost.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{availabilityZone:this.availabilityZone,autoPlacement:this.autoPlacement,hostRecovery:this.hostRecovery,instanceFamily:this.instanceFamily,instanceType:this.instanceType,outpostArn:this.outpostArn}}renderProperties(props){return cfnHostPropsToCloudFormation(props)}}exports.CfnHost=CfnHost,_s=JSII_RTTI_SYMBOL_1,CfnHost[_s]={fqn:"aws-cdk-lib.aws_ec2.CfnHost",version:"2.51.1"},CfnHost.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Host";function CfnIPAMPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("operatingRegions",cdk.listValidator(CfnIPAM_IpamOperatingRegionPropertyValidator))(properties.operatingRegions)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMProps"')}function cfnIPAMPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMPropsValidator(properties).assertSuccess(),{Description:cdk.stringToCloudFormation(properties.description),OperatingRegions:cdk.listMapper(cfnIPAMIpamOperatingRegionPropertyToCloudFormation)(properties.operatingRegions),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("operatingRegions","OperatingRegions",properties.OperatingRegions!=null?cfn_parse.FromCloudFormation.getArray(CfnIPAMIpamOperatingRegionPropertyFromCloudFormation)(properties.OperatingRegions):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 CfnIPAM extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnIPAM.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAM),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrIpamId=cdk.Token.asString(this.getAtt("IpamId")),this.attrPrivateDefaultScopeId=cdk.Token.asString(this.getAtt("PrivateDefaultScopeId")),this.attrPublicDefaultScopeId=cdk.Token.asString(this.getAtt("PublicDefaultScopeId")),this.attrScopeCount=cdk.Token.asNumber(this.getAtt("ScopeCount")),this.description=props.description,this.operatingRegions=props.operatingRegions,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::IPAM",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPropsFromCloudFormation(resourceProperties),ret=new CfnIPAM(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",CfnIPAM.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{description:this.description,operatingRegions:this.operatingRegions,tags:this.tags.renderTags()}}renderProperties(props){return cfnIPAMPropsToCloudFormation(props)}}exports.CfnIPAM=CfnIPAM,_t=JSII_RTTI_SYMBOL_1,CfnIPAM[_t]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAM",version:"2.51.1"},CfnIPAM.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAM";function CfnIPAM_IpamOperatingRegionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("regionName",cdk.requiredValidator)(properties.regionName)),errors.collect(cdk.propertyValidator("regionName",cdk.validateString)(properties.regionName)),errors.wrap('supplied properties not correct for "IpamOperatingRegionProperty"')}function cfnIPAMIpamOperatingRegionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAM_IpamOperatingRegionPropertyValidator(properties).assertSuccess(),{RegionName:cdk.stringToCloudFormation(properties.regionName)}):properties}function CfnIPAMIpamOperatingRegionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("regionName","RegionName",cfn_parse.FromCloudFormation.getString(properties.RegionName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMAllocationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("ipamPoolId",cdk.requiredValidator)(properties.ipamPoolId)),errors.collect(cdk.propertyValidator("ipamPoolId",cdk.validateString)(properties.ipamPoolId)),errors.collect(cdk.propertyValidator("netmaskLength",cdk.validateNumber)(properties.netmaskLength)),errors.wrap('supplied properties not correct for "CfnIPAMAllocationProps"')}function cfnIPAMAllocationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMAllocationPropsValidator(properties).assertSuccess(),{IpamPoolId:cdk.stringToCloudFormation(properties.ipamPoolId),Cidr:cdk.stringToCloudFormation(properties.cidr),Description:cdk.stringToCloudFormation(properties.description),NetmaskLength:cdk.numberToCloudFormation(properties.netmaskLength)}):properties}function CfnIPAMAllocationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipamPoolId","IpamPoolId",cfn_parse.FromCloudFormation.getString(properties.IpamPoolId)),ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse.FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("netmaskLength","NetmaskLength",properties.NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.NetmaskLength):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnIPAMAllocation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMAllocationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMAllocation),error}cdk.requireProperty(props,"ipamPoolId",this),this.attrIpamPoolAllocationId=cdk.Token.asString(this.getAtt("IpamPoolAllocationId")),this.ipamPoolId=props.ipamPoolId,this.cidr=props.cidr,this.description=props.description,this.netmaskLength=props.netmaskLength}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMAllocationPropsFromCloudFormation(resourceProperties),ret=new CfnIPAMAllocation(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",CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipamPoolId:this.ipamPoolId,cidr:this.cidr,description:this.description,netmaskLength:this.netmaskLength}}renderProperties(props){return cfnIPAMAllocationPropsToCloudFormation(props)}}exports.CfnIPAMAllocation=CfnIPAMAllocation,_u=JSII_RTTI_SYMBOL_1,CfnIPAMAllocation[_u]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMAllocation",version:"2.51.1"},CfnIPAMAllocation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMAllocation";function CfnIPAMPoolPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("addressFamily",cdk.requiredValidator)(properties.addressFamily)),errors.collect(cdk.propertyValidator("addressFamily",cdk.validateString)(properties.addressFamily)),errors.collect(cdk.propertyValidator("allocationDefaultNetmaskLength",cdk.validateNumber)(properties.allocationDefaultNetmaskLength)),errors.collect(cdk.propertyValidator("allocationMaxNetmaskLength",cdk.validateNumber)(properties.allocationMaxNetmaskLength)),errors.collect(cdk.propertyValidator("allocationMinNetmaskLength",cdk.validateNumber)(properties.allocationMinNetmaskLength)),errors.collect(cdk.propertyValidator("allocationResourceTags",cdk.listValidator(cdk.validateCfnTag))(properties.allocationResourceTags)),errors.collect(cdk.propertyValidator("autoImport",cdk.validateBoolean)(properties.autoImport)),errors.collect(cdk.propertyValidator("awsService",cdk.validateString)(properties.awsService)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("ipamScopeId",cdk.requiredValidator)(properties.ipamScopeId)),errors.collect(cdk.propertyValidator("ipamScopeId",cdk.validateString)(properties.ipamScopeId)),errors.collect(cdk.propertyValidator("locale",cdk.validateString)(properties.locale)),errors.collect(cdk.propertyValidator("provisionedCidrs",cdk.listValidator(CfnIPAMPool_ProvisionedCidrPropertyValidator))(properties.provisionedCidrs)),errors.collect(cdk.propertyValidator("publiclyAdvertisable",cdk.validateBoolean)(properties.publiclyAdvertisable)),errors.collect(cdk.propertyValidator("sourceIpamPoolId",cdk.validateString)(properties.sourceIpamPoolId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMPoolProps"')}function cfnIPAMPoolPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMPoolPropsValidator(properties).assertSuccess(),{AddressFamily:cdk.stringToCloudFormation(properties.addressFamily),IpamScopeId:cdk.stringToCloudFormation(properties.ipamScopeId),AllocationDefaultNetmaskLength:cdk.numberToCloudFormation(properties.allocationDefaultNetmaskLength),AllocationMaxNetmaskLength:cdk.numberToCloudFormation(properties.allocationMaxNetmaskLength),AllocationMinNetmaskLength:cdk.numberToCloudFormation(properties.allocationMinNetmaskLength),AllocationResourceTags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.allocationResourceTags),AutoImport:cdk.booleanToCloudFormation(properties.autoImport),AwsService:cdk.stringToCloudFormation(properties.awsService),Description:cdk.stringToCloudFormation(properties.description),Locale:cdk.stringToCloudFormation(properties.locale),ProvisionedCidrs:cdk.listMapper(cfnIPAMPoolProvisionedCidrPropertyToCloudFormation)(properties.provisionedCidrs),PubliclyAdvertisable:cdk.booleanToCloudFormation(properties.publiclyAdvertisable),SourceIpamPoolId:cdk.stringToCloudFormation(properties.sourceIpamPoolId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMPoolPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("addressFamily","AddressFamily",cfn_parse.FromCloudFormation.getString(properties.AddressFamily)),ret.addPropertyResult("ipamScopeId","IpamScopeId",cfn_parse.FromCloudFormation.getString(properties.IpamScopeId)),ret.addPropertyResult("allocationDefaultNetmaskLength","AllocationDefaultNetmaskLength",properties.AllocationDefaultNetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.AllocationDefaultNetmaskLength):void 0),ret.addPropertyResult("allocationMaxNetmaskLength","AllocationMaxNetmaskLength",properties.AllocationMaxNetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.AllocationMaxNetmaskLength):void 0),ret.addPropertyResult("allocationMinNetmaskLength","AllocationMinNetmaskLength",properties.AllocationMinNetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.AllocationMinNetmaskLength):void 0),ret.addPropertyResult("allocationResourceTags","AllocationResourceTags",properties.AllocationResourceTags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.AllocationResourceTags):void 0),ret.addPropertyResult("autoImport","AutoImport",properties.AutoImport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AutoImport):void 0),ret.addPropertyResult("awsService","AwsService",properties.AwsService!=null?cfn_parse.FromCloudFormation.getString(properties.AwsService):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("locale","Locale",properties.Locale!=null?cfn_parse.FromCloudFormation.getString(properties.Locale):void 0),ret.addPropertyResult("provisionedCidrs","ProvisionedCidrs",properties.ProvisionedCidrs!=null?cfn_parse.FromCloudFormation.getArray(CfnIPAMPoolProvisionedCidrPropertyFromCloudFormation)(properties.ProvisionedCidrs):void 0),ret.addPropertyResult("publiclyAdvertisable","PubliclyAdvertisable",properties.PubliclyAdvertisable!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PubliclyAdvertisable):void 0),ret.addPropertyResult("sourceIpamPoolId","SourceIpamPoolId",properties.SourceIpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceIpamPoolId):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 CfnIPAMPool extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnIPAMPool.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMPoolProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMPool),error}cdk.requireProperty(props,"addressFamily",this),cdk.requireProperty(props,"ipamScopeId",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrIpamArn=cdk.Token.asString(this.getAtt("IpamArn")),this.attrIpamPoolId=cdk.Token.asString(this.getAtt("IpamPoolId")),this.attrIpamScopeArn=cdk.Token.asString(this.getAtt("IpamScopeArn")),this.attrIpamScopeType=cdk.Token.asString(this.getAtt("IpamScopeType")),this.attrPoolDepth=cdk.Token.asNumber(this.getAtt("PoolDepth")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrStateMessage=cdk.Token.asString(this.getAtt("StateMessage")),this.addressFamily=props.addressFamily,this.ipamScopeId=props.ipamScopeId,this.allocationDefaultNetmaskLength=props.allocationDefaultNetmaskLength,this.allocationMaxNetmaskLength=props.allocationMaxNetmaskLength,this.allocationMinNetmaskLength=props.allocationMinNetmaskLength,this.allocationResourceTags=props.allocationResourceTags,this.autoImport=props.autoImport,this.awsService=props.awsService,this.description=props.description,this.locale=props.locale,this.provisionedCidrs=props.provisionedCidrs,this.publiclyAdvertisable=props.publiclyAdvertisable,this.sourceIpamPoolId=props.sourceIpamPoolId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::IPAMPool",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMPoolPropsFromCloudFormation(resourceProperties),ret=new CfnIPAMPool(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",CfnIPAMPool.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{addressFamily:this.addressFamily,ipamScopeId:this.ipamScopeId,allocationDefaultNetmaskLength:this.allocationDefaultNetmaskLength,allocationMaxNetmaskLength:this.allocationMaxNetmaskLength,allocationMinNetmaskLength:this.allocationMinNetmaskLength,allocationResourceTags:this.allocationResourceTags,autoImport:this.autoImport,awsService:this.awsService,description:this.description,locale:this.locale,provisionedCidrs:this.provisionedCidrs,publiclyAdvertisable:this.publiclyAdvertisable,sourceIpamPoolId:this.sourceIpamPoolId,tags:this.tags.renderTags()}}renderProperties(props){return cfnIPAMPoolPropsToCloudFormation(props)}}exports.CfnIPAMPool=CfnIPAMPool,_v=JSII_RTTI_SYMBOL_1,CfnIPAMPool[_v]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMPool",version:"2.51.1"},CfnIPAMPool.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMPool";function CfnIPAMPool_ProvisionedCidrPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.requiredValidator)(properties.cidr)),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.wrap('supplied properties not correct for "ProvisionedCidrProperty"')}function cfnIPAMPoolProvisionedCidrPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMPool_ProvisionedCidrPropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr)}):properties}function CfnIPAMPoolProvisionedCidrPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",cfn_parse.FromCloudFormation.getString(properties.Cidr)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnIPAMScopePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("ipamId",cdk.requiredValidator)(properties.ipamId)),errors.collect(cdk.propertyValidator("ipamId",cdk.validateString)(properties.ipamId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnIPAMScopeProps"')}function cfnIPAMScopePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnIPAMScopePropsValidator(properties).assertSuccess(),{IpamId:cdk.stringToCloudFormation(properties.ipamId),Description:cdk.stringToCloudFormation(properties.description),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnIPAMScopePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipamId","IpamId",cfn_parse.FromCloudFormation.getString(properties.IpamId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):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 CfnIPAMScope extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnIPAMScope.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnIPAMScopeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnIPAMScope),error}cdk.requireProperty(props,"ipamId",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrIpamArn=cdk.Token.asString(this.getAtt("IpamArn")),this.attrIpamScopeId=cdk.Token.asString(this.getAtt("IpamScopeId")),this.attrIpamScopeType=cdk.Token.asString(this.getAtt("IpamScopeType")),this.attrIsDefault=this.getAtt("IsDefault"),this.attrPoolCount=cdk.Token.asNumber(this.getAtt("PoolCount")),this.ipamId=props.ipamId,this.description=props.description,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::IPAMScope",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnIPAMScopePropsFromCloudFormation(resourceProperties),ret=new CfnIPAMScope(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",CfnIPAMScope.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipamId:this.ipamId,description:this.description,tags:this.tags.renderTags()}}renderProperties(props){return cfnIPAMScopePropsToCloudFormation(props)}}exports.CfnIPAMScope=CfnIPAMScope,_w=JSII_RTTI_SYMBOL_1,CfnIPAMScope[_w]={fqn:"aws-cdk-lib.aws_ec2.CfnIPAMScope",version:"2.51.1"},CfnIPAMScope.CFN_RESOURCE_TYPE_NAME="AWS::EC2::IPAMScope";function CfnInstancePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("additionalInfo",cdk.validateString)(properties.additionalInfo)),errors.collect(cdk.propertyValidator("affinity",cdk.validateString)(properties.affinity)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("blockDeviceMappings",cdk.listValidator(CfnInstance_BlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk.propertyValidator("cpuOptions",CfnInstance_CpuOptionsPropertyValidator)(properties.cpuOptions)),errors.collect(cdk.propertyValidator("creditSpecification",CfnInstance_CreditSpecificationPropertyValidator)(properties.creditSpecification)),errors.collect(cdk.propertyValidator("disableApiTermination",cdk.validateBoolean)(properties.disableApiTermination)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("elasticGpuSpecifications",cdk.listValidator(CfnInstance_ElasticGpuSpecificationPropertyValidator))(properties.elasticGpuSpecifications)),errors.collect(cdk.propertyValidator("elasticInferenceAccelerators",cdk.listValidator(CfnInstance_ElasticInferenceAcceleratorPropertyValidator))(properties.elasticInferenceAccelerators)),errors.collect(cdk.propertyValidator("enclaveOptions",CfnInstance_EnclaveOptionsPropertyValidator)(properties.enclaveOptions)),errors.collect(cdk.propertyValidator("hibernationOptions",CfnInstance_HibernationOptionsPropertyValidator)(properties.hibernationOptions)),errors.collect(cdk.propertyValidator("hostId",cdk.validateString)(properties.hostId)),errors.collect(cdk.propertyValidator("hostResourceGroupArn",cdk.validateString)(properties.hostResourceGroupArn)),errors.collect(cdk.propertyValidator("iamInstanceProfile",cdk.validateString)(properties.iamInstanceProfile)),errors.collect(cdk.propertyValidator("imageId",cdk.validateString)(properties.imageId)),errors.collect(cdk.propertyValidator("instanceInitiatedShutdownBehavior",cdk.validateString)(properties.instanceInitiatedShutdownBehavior)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnInstance_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("kernelId",cdk.validateString)(properties.kernelId)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("launchTemplate",CfnInstance_LaunchTemplateSpecificationPropertyValidator)(properties.launchTemplate)),errors.collect(cdk.propertyValidator("licenseSpecifications",cdk.listValidator(CfnInstance_LicenseSpecificationPropertyValidator))(properties.licenseSpecifications)),errors.collect(cdk.propertyValidator("monitoring",cdk.validateBoolean)(properties.monitoring)),errors.collect(cdk.propertyValidator("networkInterfaces",cdk.listValidator(CfnInstance_NetworkInterfacePropertyValidator))(properties.networkInterfaces)),errors.collect(cdk.propertyValidator("placementGroupName",cdk.validateString)(properties.placementGroupName)),errors.collect(cdk.propertyValidator("privateDnsNameOptions",CfnInstance_PrivateDnsNameOptionsPropertyValidator)(properties.privateDnsNameOptions)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("propagateTagsToVolumeOnCreation",cdk.validateBoolean)(properties.propagateTagsToVolumeOnCreation)),errors.collect(cdk.propertyValidator("ramdiskId",cdk.validateString)(properties.ramdiskId)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(cdk.validateString))(properties.securityGroups)),errors.collect(cdk.propertyValidator("sourceDestCheck",cdk.validateBoolean)(properties.sourceDestCheck)),errors.collect(cdk.propertyValidator("ssmAssociations",cdk.listValidator(CfnInstance_SsmAssociationPropertyValidator))(properties.ssmAssociations)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.collect(cdk.propertyValidator("userData",cdk.validateString)(properties.userData)),errors.collect(cdk.propertyValidator("volumes",cdk.listValidator(CfnInstance_VolumePropertyValidator))(properties.volumes)),errors.wrap('supplied properties not correct for "CfnInstanceProps"')}function cfnInstancePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstancePropsValidator(properties).assertSuccess(),{AdditionalInfo:cdk.stringToCloudFormation(properties.additionalInfo),Affinity:cdk.stringToCloudFormation(properties.affinity),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),BlockDeviceMappings:cdk.listMapper(cfnInstanceBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),CpuOptions:cfnInstanceCpuOptionsPropertyToCloudFormation(properties.cpuOptions),CreditSpecification:cfnInstanceCreditSpecificationPropertyToCloudFormation(properties.creditSpecification),DisableApiTermination:cdk.booleanToCloudFormation(properties.disableApiTermination),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),ElasticGpuSpecifications:cdk.listMapper(cfnInstanceElasticGpuSpecificationPropertyToCloudFormation)(properties.elasticGpuSpecifications),ElasticInferenceAccelerators:cdk.listMapper(cfnInstanceElasticInferenceAcceleratorPropertyToCloudFormation)(properties.elasticInferenceAccelerators),EnclaveOptions:cfnInstanceEnclaveOptionsPropertyToCloudFormation(properties.enclaveOptions),HibernationOptions:cfnInstanceHibernationOptionsPropertyToCloudFormation(properties.hibernationOptions),HostId:cdk.stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk.stringToCloudFormation(properties.hostResourceGroupArn),IamInstanceProfile:cdk.stringToCloudFormation(properties.iamInstanceProfile),ImageId:cdk.stringToCloudFormation(properties.imageId),InstanceInitiatedShutdownBehavior:cdk.stringToCloudFormation(properties.instanceInitiatedShutdownBehavior),InstanceType:cdk.stringToCloudFormation(properties.instanceType),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnInstanceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),KernelId:cdk.stringToCloudFormation(properties.kernelId),KeyName:cdk.stringToCloudFormation(properties.keyName),LaunchTemplate:cfnInstanceLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplate),LicenseSpecifications:cdk.listMapper(cfnInstanceLicenseSpecificationPropertyToCloudFormation)(properties.licenseSpecifications),Monitoring:cdk.booleanToCloudFormation(properties.monitoring),NetworkInterfaces:cdk.listMapper(cfnInstanceNetworkInterfacePropertyToCloudFormation)(properties.networkInterfaces),PlacementGroupName:cdk.stringToCloudFormation(properties.placementGroupName),PrivateDnsNameOptions:cfnInstancePrivateDnsNameOptionsPropertyToCloudFormation(properties.privateDnsNameOptions),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PropagateTagsToVolumeOnCreation:cdk.booleanToCloudFormation(properties.propagateTagsToVolumeOnCreation),RamdiskId:cdk.stringToCloudFormation(properties.ramdiskId),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SecurityGroups:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroups),SourceDestCheck:cdk.booleanToCloudFormation(properties.sourceDestCheck),SsmAssociations:cdk.listMapper(cfnInstanceSsmAssociationPropertyToCloudFormation)(properties.ssmAssociations),SubnetId:cdk.stringToCloudFormation(properties.subnetId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),Tenancy:cdk.stringToCloudFormation(properties.tenancy),UserData:cdk.stringToCloudFormation(properties.userData),Volumes:cdk.listMapper(cfnInstanceVolumePropertyToCloudFormation)(properties.volumes)}):properties}function CfnInstancePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("additionalInfo","AdditionalInfo",properties.AdditionalInfo!=null?cfn_parse.FromCloudFormation.getString(properties.AdditionalInfo):void 0),ret.addPropertyResult("affinity","Affinity",properties.Affinity!=null?cfn_parse.FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("cpuOptions","CpuOptions",properties.CpuOptions!=null?CfnInstanceCpuOptionsPropertyFromCloudFormation(properties.CpuOptions):void 0),ret.addPropertyResult("creditSpecification","CreditSpecification",properties.CreditSpecification!=null?CfnInstanceCreditSpecificationPropertyFromCloudFormation(properties.CreditSpecification):void 0),ret.addPropertyResult("disableApiTermination","DisableApiTermination",properties.DisableApiTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableApiTermination):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("elasticGpuSpecifications","ElasticGpuSpecifications",properties.ElasticGpuSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceElasticGpuSpecificationPropertyFromCloudFormation)(properties.ElasticGpuSpecifications):void 0),ret.addPropertyResult("elasticInferenceAccelerators","ElasticInferenceAccelerators",properties.ElasticInferenceAccelerators!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceElasticInferenceAcceleratorPropertyFromCloudFormation)(properties.ElasticInferenceAccelerators):void 0),ret.addPropertyResult("enclaveOptions","EnclaveOptions",properties.EnclaveOptions!=null?CfnInstanceEnclaveOptionsPropertyFromCloudFormation(properties.EnclaveOptions):void 0),ret.addPropertyResult("hibernationOptions","HibernationOptions",properties.HibernationOptions!=null?CfnInstanceHibernationOptionsPropertyFromCloudFormation(properties.HibernationOptions):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse.FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?cfn_parse.FromCloudFormation.getString(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse.FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceInitiatedShutdownBehavior","InstanceInitiatedShutdownBehavior",properties.InstanceInitiatedShutdownBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInitiatedShutdownBehavior):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse.FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse.FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("launchTemplate","LaunchTemplate",properties.LaunchTemplate!=null?CfnInstanceLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplate):void 0),ret.addPropertyResult("licenseSpecifications","LicenseSpecifications",properties.LicenseSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceLicenseSpecificationPropertyFromCloudFormation)(properties.LicenseSpecifications):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceNetworkInterfacePropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placementGroupName","PlacementGroupName",properties.PlacementGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.PlacementGroupName):void 0),ret.addPropertyResult("privateDnsNameOptions","PrivateDnsNameOptions",properties.PrivateDnsNameOptions!=null?CfnInstancePrivateDnsNameOptionsPropertyFromCloudFormation(properties.PrivateDnsNameOptions):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("propagateTagsToVolumeOnCreation","PropagateTagsToVolumeOnCreation",properties.PropagateTagsToVolumeOnCreation!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PropagateTagsToVolumeOnCreation):void 0),ret.addPropertyResult("ramdiskId","RamdiskId",properties.RamdiskId!=null?cfn_parse.FromCloudFormation.getString(properties.RamdiskId):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroups):void 0),ret.addPropertyResult("sourceDestCheck","SourceDestCheck",properties.SourceDestCheck!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SourceDestCheck):void 0),ret.addPropertyResult("ssmAssociations","SsmAssociations",properties.SsmAssociations!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceSsmAssociationPropertyFromCloudFormation)(properties.SsmAssociations):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse.FromCloudFormation.getString(properties.UserData):void 0),ret.addPropertyResult("volumes","Volumes",properties.Volumes!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceVolumePropertyFromCloudFormation)(properties.Volumes):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInstance extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnInstance.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnInstanceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInstance),error}this.attrAvailabilityZone=cdk.Token.asString(this.getAtt("AvailabilityZone")),this.attrPrivateDnsName=cdk.Token.asString(this.getAtt("PrivateDnsName")),this.attrPrivateIp=cdk.Token.asString(this.getAtt("PrivateIp")),this.attrPublicDnsName=cdk.Token.asString(this.getAtt("PublicDnsName")),this.attrPublicIp=cdk.Token.asString(this.getAtt("PublicIp")),this.additionalInfo=props.additionalInfo,this.affinity=props.affinity,this.availabilityZone=props.availabilityZone,this.blockDeviceMappings=props.blockDeviceMappings,this.cpuOptions=props.cpuOptions,this.creditSpecification=props.creditSpecification,this.disableApiTermination=props.disableApiTermination,this.ebsOptimized=props.ebsOptimized,this.elasticGpuSpecifications=props.elasticGpuSpecifications,this.elasticInferenceAccelerators=props.elasticInferenceAccelerators,this.enclaveOptions=props.enclaveOptions,this.hibernationOptions=props.hibernationOptions,this.hostId=props.hostId,this.hostResourceGroupArn=props.hostResourceGroupArn,this.iamInstanceProfile=props.iamInstanceProfile,this.imageId=props.imageId,this.instanceInitiatedShutdownBehavior=props.instanceInitiatedShutdownBehavior,this.instanceType=props.instanceType,this.ipv6AddressCount=props.ipv6AddressCount,this.ipv6Addresses=props.ipv6Addresses,this.kernelId=props.kernelId,this.keyName=props.keyName,this.launchTemplate=props.launchTemplate,this.licenseSpecifications=props.licenseSpecifications,this.monitoring=props.monitoring,this.networkInterfaces=props.networkInterfaces,this.placementGroupName=props.placementGroupName,this.privateDnsNameOptions=props.privateDnsNameOptions,this.privateIpAddress=props.privateIpAddress,this.propagateTagsToVolumeOnCreation=props.propagateTagsToVolumeOnCreation,this.ramdiskId=props.ramdiskId,this.securityGroupIds=props.securityGroupIds,this.securityGroups=props.securityGroups,this.sourceDestCheck=props.sourceDestCheck,this.ssmAssociations=props.ssmAssociations,this.subnetId=props.subnetId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::Instance",props.tags,{tagPropertyName:"tags"}),this.tenancy=props.tenancy,this.userData=props.userData,this.volumes=props.volumes}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInstancePropsFromCloudFormation(resourceProperties),ret=new CfnInstance(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",CfnInstance.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{additionalInfo:this.additionalInfo,affinity:this.affinity,availabilityZone:this.availabilityZone,blockDeviceMappings:this.blockDeviceMappings,cpuOptions:this.cpuOptions,creditSpecification:this.creditSpecification,disableApiTermination:this.disableApiTermination,ebsOptimized:this.ebsOptimized,elasticGpuSpecifications:this.elasticGpuSpecifications,elasticInferenceAccelerators:this.elasticInferenceAccelerators,enclaveOptions:this.enclaveOptions,hibernationOptions:this.hibernationOptions,hostId:this.hostId,hostResourceGroupArn:this.hostResourceGroupArn,iamInstanceProfile:this.iamInstanceProfile,imageId:this.imageId,instanceInitiatedShutdownBehavior:this.instanceInitiatedShutdownBehavior,instanceType:this.instanceType,ipv6AddressCount:this.ipv6AddressCount,ipv6Addresses:this.ipv6Addresses,kernelId:this.kernelId,keyName:this.keyName,launchTemplate:this.launchTemplate,licenseSpecifications:this.licenseSpecifications,monitoring:this.monitoring,networkInterfaces:this.networkInterfaces,placementGroupName:this.placementGroupName,privateDnsNameOptions:this.privateDnsNameOptions,privateIpAddress:this.privateIpAddress,propagateTagsToVolumeOnCreation:this.propagateTagsToVolumeOnCreation,ramdiskId:this.ramdiskId,securityGroupIds:this.securityGroupIds,securityGroups:this.securityGroups,sourceDestCheck:this.sourceDestCheck,ssmAssociations:this.ssmAssociations,subnetId:this.subnetId,tags:this.tags.renderTags(),tenancy:this.tenancy,userData:this.userData,volumes:this.volumes}}renderProperties(props){return cfnInstancePropsToCloudFormation(props)}}exports.CfnInstance=CfnInstance,_x=JSII_RTTI_SYMBOL_1,CfnInstance[_x]={fqn:"aws-cdk-lib.aws_ec2.CfnInstance",version:"2.51.1"},CfnInstance.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Instance";function CfnInstance_AssociationParameterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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.listValidator(cdk.validateString))(properties.value)),errors.wrap('supplied properties not correct for "AssociationParameterProperty"')}function cfnInstanceAssociationParameterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_AssociationParameterPropertyValidator(properties).assertSuccess(),{Key:cdk.stringToCloudFormation(properties.key),Value:cdk.listMapper(cdk.stringToCloudFormation)(properties.value)}):properties}function CfnInstanceAssociationParameterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_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.getStringArray(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_BlockDeviceMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deviceName",cdk.requiredValidator)(properties.deviceName)),errors.collect(cdk.propertyValidator("deviceName",cdk.validateString)(properties.deviceName)),errors.collect(cdk.propertyValidator("ebs",CfnInstance_EbsPropertyValidator)(properties.ebs)),errors.collect(cdk.propertyValidator("noDevice",CfnInstance_NoDevicePropertyValidator)(properties.noDevice)),errors.collect(cdk.propertyValidator("virtualName",cdk.validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function cfnInstanceBlockDeviceMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_BlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk.stringToCloudFormation(properties.deviceName),Ebs:cfnInstanceEbsPropertyToCloudFormation(properties.ebs),NoDevice:cfnInstanceNoDevicePropertyToCloudFormation(properties.noDevice),VirtualName:cdk.stringToCloudFormation(properties.virtualName)}):properties}function CfnInstanceBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",cfn_parse.FromCloudFormation.getString(properties.DeviceName)),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnInstanceEbsPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?CfnInstanceNoDevicePropertyFromCloudFormation(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_CpuOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("coreCount",cdk.validateNumber)(properties.coreCount)),errors.collect(cdk.propertyValidator("threadsPerCore",cdk.validateNumber)(properties.threadsPerCore)),errors.wrap('supplied properties not correct for "CpuOptionsProperty"')}function cfnInstanceCpuOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_CpuOptionsPropertyValidator(properties).assertSuccess(),{CoreCount:cdk.numberToCloudFormation(properties.coreCount),ThreadsPerCore:cdk.numberToCloudFormation(properties.threadsPerCore)}):properties}function CfnInstanceCpuOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("coreCount","CoreCount",properties.CoreCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.CoreCount):void 0),ret.addPropertyResult("threadsPerCore","ThreadsPerCore",properties.ThreadsPerCore!=null?cfn_parse.FromCloudFormation.getNumber(properties.ThreadsPerCore):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_CreditSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cpuCredits",cdk.validateString)(properties.cpuCredits)),errors.wrap('supplied properties not correct for "CreditSpecificationProperty"')}function cfnInstanceCreditSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_CreditSpecificationPropertyValidator(properties).assertSuccess(),{CPUCredits:cdk.stringToCloudFormation(properties.cpuCredits)}):properties}function CfnInstanceCreditSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cpuCredits","CPUCredits",properties.CPUCredits!=null?cfn_parse.FromCloudFormation.getString(properties.CPUCredits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_EbsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("kmsKeyId",cdk.validateString)(properties.kmsKeyId)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("volumeSize",cdk.validateNumber)(properties.volumeSize)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsProperty"')}function cfnInstanceEbsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_EbsPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),KmsKeyId:cdk.stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),VolumeSize:cdk.numberToCloudFormation(properties.volumeSize),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnInstanceEbsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse.FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_ElasticGpuSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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 "ElasticGpuSpecificationProperty"')}function cfnInstanceElasticGpuSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_ElasticGpuSpecificationPropertyValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnInstanceElasticGpuSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_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 CfnInstance_ElasticInferenceAcceleratorPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("count",cdk.validateNumber)(properties.count)),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 "ElasticInferenceAcceleratorProperty"')}function cfnInstanceElasticInferenceAcceleratorPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_ElasticInferenceAcceleratorPropertyValidator(properties).assertSuccess(),{Count:cdk.numberToCloudFormation(properties.count),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnInstanceElasticInferenceAcceleratorPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse.FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_EnclaveOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "EnclaveOptionsProperty"')}function cfnInstanceEnclaveOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_EnclaveOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnInstanceEnclaveOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_HibernationOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("configured",cdk.validateBoolean)(properties.configured)),errors.wrap('supplied properties not correct for "HibernationOptionsProperty"')}function cfnInstanceHibernationOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_HibernationOptionsPropertyValidator(properties).assertSuccess(),{Configured:cdk.booleanToCloudFormation(properties.configured)}):properties}function CfnInstanceHibernationOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("configured","Configured",properties.Configured!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Configured):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_InstanceIpv6AddressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.requiredValidator)(properties.ipv6Address)),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function cfnInstanceInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_InstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",cfn_parse.FromCloudFormation.getString(properties.Ipv6Address)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_LaunchTemplateSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateId",cdk.validateString)(properties.launchTemplateId)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("version",cdk.requiredValidator)(properties.version)),errors.collect(cdk.propertyValidator("version",cdk.validateString)(properties.version)),errors.wrap('supplied properties not correct for "LaunchTemplateSpecificationProperty"')}function cfnInstanceLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_LaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk.stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),Version:cdk.stringToCloudFormation(properties.version)}):properties}function CfnInstanceLaunchTemplateSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",cfn_parse.FromCloudFormation.getString(properties.Version)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_LicenseSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("licenseConfigurationArn",cdk.requiredValidator)(properties.licenseConfigurationArn)),errors.collect(cdk.propertyValidator("licenseConfigurationArn",cdk.validateString)(properties.licenseConfigurationArn)),errors.wrap('supplied properties not correct for "LicenseSpecificationProperty"')}function cfnInstanceLicenseSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_LicenseSpecificationPropertyValidator(properties).assertSuccess(),{LicenseConfigurationArn:cdk.stringToCloudFormation(properties.licenseConfigurationArn)}):properties}function CfnInstanceLicenseSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("licenseConfigurationArn","LicenseConfigurationArn",cfn_parse.FromCloudFormation.getString(properties.LicenseConfigurationArn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_NetworkInterfacePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associateCarrierIpAddress",cdk.validateBoolean)(properties.associateCarrierIpAddress)),errors.collect(cdk.propertyValidator("associatePublicIpAddress",cdk.validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.requiredValidator)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateString)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("groupSet",cdk.listValidator(cdk.validateString))(properties.groupSet)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnInstance_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnInstance_PrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "NetworkInterfaceProperty"')}function cfnInstanceNetworkInterfacePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_NetworkInterfacePropertyValidator(properties).assertSuccess(),{AssociateCarrierIpAddress:cdk.booleanToCloudFormation(properties.associateCarrierIpAddress),AssociatePublicIpAddress:cdk.booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Description:cdk.stringToCloudFormation(properties.description),DeviceIndex:cdk.stringToCloudFormation(properties.deviceIndex),GroupSet:cdk.listMapper(cdk.stringToCloudFormation)(properties.groupSet),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnInstanceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk.listMapper(cfnInstancePrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnInstanceNetworkInterfacePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associateCarrierIpAddress","AssociateCarrierIpAddress",properties.AssociateCarrierIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociateCarrierIpAddress):void 0),ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",cfn_parse.FromCloudFormation.getString(properties.DeviceIndex)),ret.addPropertyResult("groupSet","GroupSet",properties.GroupSet!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GroupSet):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnInstancePrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_NoDevicePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.wrap('supplied properties not correct for "NoDeviceProperty"')}function cfnInstanceNoDevicePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_NoDevicePropertyValidator(properties).assertSuccess(),{}):properties}function CfnInstanceNoDevicePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_PrivateDnsNameOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enableResourceNameDnsAaaaRecord",cdk.validateBoolean)(properties.enableResourceNameDnsAaaaRecord)),errors.collect(cdk.propertyValidator("enableResourceNameDnsARecord",cdk.validateBoolean)(properties.enableResourceNameDnsARecord)),errors.collect(cdk.propertyValidator("hostnameType",cdk.validateString)(properties.hostnameType)),errors.wrap('supplied properties not correct for "PrivateDnsNameOptionsProperty"')}function cfnInstancePrivateDnsNameOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_PrivateDnsNameOptionsPropertyValidator(properties).assertSuccess(),{EnableResourceNameDnsAAAARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsAaaaRecord),EnableResourceNameDnsARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsARecord),HostnameType:cdk.stringToCloudFormation(properties.hostnameType)}):properties}function CfnInstancePrivateDnsNameOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enableResourceNameDnsAaaaRecord","EnableResourceNameDnsAAAARecord",properties.EnableResourceNameDnsAAAARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsAAAARecord):void 0),ret.addPropertyResult("enableResourceNameDnsARecord","EnableResourceNameDnsARecord",properties.EnableResourceNameDnsARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsARecord):void 0),ret.addPropertyResult("hostnameType","HostnameType",properties.HostnameType!=null?cfn_parse.FromCloudFormation.getString(properties.HostnameType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_PrivateIpAddressSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.requiredValidator)(properties.primary)),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.requiredValidator)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function cfnInstancePrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_PrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnInstancePrivateIpAddressSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",cfn_parse.FromCloudFormation.getBoolean(properties.Primary)),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_SsmAssociationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associationParameters",cdk.listValidator(CfnInstance_AssociationParameterPropertyValidator))(properties.associationParameters)),errors.collect(cdk.propertyValidator("documentName",cdk.requiredValidator)(properties.documentName)),errors.collect(cdk.propertyValidator("documentName",cdk.validateString)(properties.documentName)),errors.wrap('supplied properties not correct for "SsmAssociationProperty"')}function cfnInstanceSsmAssociationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_SsmAssociationPropertyValidator(properties).assertSuccess(),{AssociationParameters:cdk.listMapper(cfnInstanceAssociationParameterPropertyToCloudFormation)(properties.associationParameters),DocumentName:cdk.stringToCloudFormation(properties.documentName)}):properties}function CfnInstanceSsmAssociationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associationParameters","AssociationParameters",properties.AssociationParameters!=null?cfn_parse.FromCloudFormation.getArray(CfnInstanceAssociationParameterPropertyFromCloudFormation)(properties.AssociationParameters):void 0),ret.addPropertyResult("documentName","DocumentName",cfn_parse.FromCloudFormation.getString(properties.DocumentName)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInstance_VolumePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("device",cdk.requiredValidator)(properties.device)),errors.collect(cdk.propertyValidator("device",cdk.validateString)(properties.device)),errors.collect(cdk.propertyValidator("volumeId",cdk.requiredValidator)(properties.volumeId)),errors.collect(cdk.propertyValidator("volumeId",cdk.validateString)(properties.volumeId)),errors.wrap('supplied properties not correct for "VolumeProperty"')}function cfnInstanceVolumePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInstance_VolumePropertyValidator(properties).assertSuccess(),{Device:cdk.stringToCloudFormation(properties.device),VolumeId:cdk.stringToCloudFormation(properties.volumeId)}):properties}function CfnInstanceVolumePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("device","Device",cfn_parse.FromCloudFormation.getString(properties.Device)),ret.addPropertyResult("volumeId","VolumeId",cfn_parse.FromCloudFormation.getString(properties.VolumeId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnInternetGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnInternetGatewayProps"')}function cfnInternetGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnInternetGatewayPropsValidator(properties).assertSuccess(),{Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnInternetGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnInternetGateway extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnInternetGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnInternetGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnInternetGateway),error}this.attrInternetGatewayId=cdk.Token.asString(this.getAtt("InternetGatewayId")),this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::InternetGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnInternetGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnInternetGateway(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",CfnInternetGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{tags:this.tags.renderTags()}}renderProperties(props){return cfnInternetGatewayPropsToCloudFormation(props)}}exports.CfnInternetGateway=CfnInternetGateway,_y=JSII_RTTI_SYMBOL_1,CfnInternetGateway[_y]={fqn:"aws-cdk-lib.aws_ec2.CfnInternetGateway",version:"2.51.1"},CfnInternetGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::InternetGateway";function CfnKeyPairPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("keyName",cdk.requiredValidator)(properties.keyName)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("keyType",cdk.validateString)(properties.keyType)),errors.collect(cdk.propertyValidator("publicKeyMaterial",cdk.validateString)(properties.publicKeyMaterial)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnKeyPairProps"')}function cfnKeyPairPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnKeyPairPropsValidator(properties).assertSuccess(),{KeyName:cdk.stringToCloudFormation(properties.keyName),KeyType:cdk.stringToCloudFormation(properties.keyType),PublicKeyMaterial:cdk.stringToCloudFormation(properties.publicKeyMaterial),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnKeyPairPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("keyName","KeyName",cfn_parse.FromCloudFormation.getString(properties.KeyName)),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse.FromCloudFormation.getString(properties.KeyType):void 0),ret.addPropertyResult("publicKeyMaterial","PublicKeyMaterial",properties.PublicKeyMaterial!=null?cfn_parse.FromCloudFormation.getString(properties.PublicKeyMaterial):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 CfnKeyPair extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnKeyPair.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnKeyPairProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnKeyPair),error}cdk.requireProperty(props,"keyName",this),this.attrKeyFingerprint=cdk.Token.asString(this.getAtt("KeyFingerprint")),this.attrKeyPairId=cdk.Token.asString(this.getAtt("KeyPairId")),this.keyName=props.keyName,this.keyType=props.keyType,this.publicKeyMaterial=props.publicKeyMaterial,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::KeyPair",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnKeyPairPropsFromCloudFormation(resourceProperties),ret=new CfnKeyPair(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",CfnKeyPair.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{keyName:this.keyName,keyType:this.keyType,publicKeyMaterial:this.publicKeyMaterial,tags:this.tags.renderTags()}}renderProperties(props){return cfnKeyPairPropsToCloudFormation(props)}}exports.CfnKeyPair=CfnKeyPair,_z=JSII_RTTI_SYMBOL_1,CfnKeyPair[_z]={fqn:"aws-cdk-lib.aws_ec2.CfnKeyPair",version:"2.51.1"},CfnKeyPair.CFN_RESOURCE_TYPE_NAME="AWS::EC2::KeyPair";function CfnLaunchTemplatePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateData",cdk.requiredValidator)(properties.launchTemplateData)),errors.collect(cdk.propertyValidator("launchTemplateData",CfnLaunchTemplate_LaunchTemplateDataPropertyValidator)(properties.launchTemplateData)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnLaunchTemplate_LaunchTemplateTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("versionDescription",cdk.validateString)(properties.versionDescription)),errors.wrap('supplied properties not correct for "CfnLaunchTemplateProps"')}function cfnLaunchTemplatePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplatePropsValidator(properties).assertSuccess(),{LaunchTemplateData:cfnLaunchTemplateLaunchTemplateDataPropertyToCloudFormation(properties.launchTemplateData),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),TagSpecifications:cdk.listMapper(cfnLaunchTemplateLaunchTemplateTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),VersionDescription:cdk.stringToCloudFormation(properties.versionDescription)}):properties}function CfnLaunchTemplatePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateData","LaunchTemplateData",CfnLaunchTemplateLaunchTemplateDataPropertyFromCloudFormation(properties.LaunchTemplateData)),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("versionDescription","VersionDescription",properties.VersionDescription!=null?cfn_parse.FromCloudFormation.getString(properties.VersionDescription):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLaunchTemplate extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnLaunchTemplateProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLaunchTemplate),error}cdk.requireProperty(props,"launchTemplateData",this),this.attrDefaultVersionNumber=cdk.Token.asString(this.getAtt("DefaultVersionNumber")),this.attrLatestVersionNumber=cdk.Token.asString(this.getAtt("LatestVersionNumber")),this.launchTemplateData=props.launchTemplateData,this.launchTemplateName=props.launchTemplateName,this.tagSpecifications=props.tagSpecifications,this.versionDescription=props.versionDescription}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLaunchTemplatePropsFromCloudFormation(resourceProperties),ret=new CfnLaunchTemplate(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",CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{launchTemplateData:this.launchTemplateData,launchTemplateName:this.launchTemplateName,tagSpecifications:this.tagSpecifications,versionDescription:this.versionDescription}}renderProperties(props){return cfnLaunchTemplatePropsToCloudFormation(props)}}exports.CfnLaunchTemplate=CfnLaunchTemplate,_0=JSII_RTTI_SYMBOL_1,CfnLaunchTemplate[_0]={fqn:"aws-cdk-lib.aws_ec2.CfnLaunchTemplate",version:"2.51.1"},CfnLaunchTemplate.CFN_RESOURCE_TYPE_NAME="AWS::EC2::LaunchTemplate";function CfnLaunchTemplate_AcceleratorCountPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountProperty"')}function cfnLaunchTemplateAcceleratorCountPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_AcceleratorCountPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateAcceleratorCountPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_AcceleratorTotalMemoryMiBPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBProperty"')}function cfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_AcceleratorTotalMemoryMiBPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_BaselineEbsBandwidthMbpsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsProperty"')}function cfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_BaselineEbsBandwidthMbpsPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_BlockDeviceMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deviceName",cdk.validateString)(properties.deviceName)),errors.collect(cdk.propertyValidator("ebs",CfnLaunchTemplate_EbsPropertyValidator)(properties.ebs)),errors.collect(cdk.propertyValidator("noDevice",cdk.validateString)(properties.noDevice)),errors.collect(cdk.propertyValidator("virtualName",cdk.validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function cfnLaunchTemplateBlockDeviceMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_BlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk.stringToCloudFormation(properties.deviceName),Ebs:cfnLaunchTemplateEbsPropertyToCloudFormation(properties.ebs),NoDevice:cdk.stringToCloudFormation(properties.noDevice),VirtualName:cdk.stringToCloudFormation(properties.virtualName)}):properties}function CfnLaunchTemplateBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",properties.DeviceName!=null?cfn_parse.FromCloudFormation.getString(properties.DeviceName):void 0),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnLaunchTemplateEbsPropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse.FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CapacityReservationSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityReservationPreference",cdk.validateString)(properties.capacityReservationPreference)),errors.collect(cdk.propertyValidator("capacityReservationTarget",CfnLaunchTemplate_CapacityReservationTargetPropertyValidator)(properties.capacityReservationTarget)),errors.wrap('supplied properties not correct for "CapacityReservationSpecificationProperty"')}function cfnLaunchTemplateCapacityReservationSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CapacityReservationSpecificationPropertyValidator(properties).assertSuccess(),{CapacityReservationPreference:cdk.stringToCloudFormation(properties.capacityReservationPreference),CapacityReservationTarget:cfnLaunchTemplateCapacityReservationTargetPropertyToCloudFormation(properties.capacityReservationTarget)}):properties}function CfnLaunchTemplateCapacityReservationSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityReservationPreference","CapacityReservationPreference",properties.CapacityReservationPreference!=null?cfn_parse.FromCloudFormation.getString(properties.CapacityReservationPreference):void 0),ret.addPropertyResult("capacityReservationTarget","CapacityReservationTarget",properties.CapacityReservationTarget!=null?CfnLaunchTemplateCapacityReservationTargetPropertyFromCloudFormation(properties.CapacityReservationTarget):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CapacityReservationTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityReservationId",cdk.validateString)(properties.capacityReservationId)),errors.collect(cdk.propertyValidator("capacityReservationResourceGroupArn",cdk.validateString)(properties.capacityReservationResourceGroupArn)),errors.wrap('supplied properties not correct for "CapacityReservationTargetProperty"')}function cfnLaunchTemplateCapacityReservationTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CapacityReservationTargetPropertyValidator(properties).assertSuccess(),{CapacityReservationId:cdk.stringToCloudFormation(properties.capacityReservationId),CapacityReservationResourceGroupArn:cdk.stringToCloudFormation(properties.capacityReservationResourceGroupArn)}):properties}function CfnLaunchTemplateCapacityReservationTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityReservationId","CapacityReservationId",properties.CapacityReservationId!=null?cfn_parse.FromCloudFormation.getString(properties.CapacityReservationId):void 0),ret.addPropertyResult("capacityReservationResourceGroupArn","CapacityReservationResourceGroupArn",properties.CapacityReservationResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.CapacityReservationResourceGroupArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CpuOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("coreCount",cdk.validateNumber)(properties.coreCount)),errors.collect(cdk.propertyValidator("threadsPerCore",cdk.validateNumber)(properties.threadsPerCore)),errors.wrap('supplied properties not correct for "CpuOptionsProperty"')}function cfnLaunchTemplateCpuOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CpuOptionsPropertyValidator(properties).assertSuccess(),{CoreCount:cdk.numberToCloudFormation(properties.coreCount),ThreadsPerCore:cdk.numberToCloudFormation(properties.threadsPerCore)}):properties}function CfnLaunchTemplateCpuOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("coreCount","CoreCount",properties.CoreCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.CoreCount):void 0),ret.addPropertyResult("threadsPerCore","ThreadsPerCore",properties.ThreadsPerCore!=null?cfn_parse.FromCloudFormation.getNumber(properties.ThreadsPerCore):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_CreditSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cpuCredits",cdk.validateString)(properties.cpuCredits)),errors.wrap('supplied properties not correct for "CreditSpecificationProperty"')}function cfnLaunchTemplateCreditSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_CreditSpecificationPropertyValidator(properties).assertSuccess(),{CpuCredits:cdk.stringToCloudFormation(properties.cpuCredits)}):properties}function CfnLaunchTemplateCreditSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cpuCredits","CpuCredits",properties.CpuCredits!=null?cfn_parse.FromCloudFormation.getString(properties.CpuCredits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_EbsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("kmsKeyId",cdk.validateString)(properties.kmsKeyId)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("throughput",cdk.validateNumber)(properties.throughput)),errors.collect(cdk.propertyValidator("volumeSize",cdk.validateNumber)(properties.volumeSize)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsProperty"')}function cfnLaunchTemplateEbsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_EbsPropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),KmsKeyId:cdk.stringToCloudFormation(properties.kmsKeyId),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),Throughput:cdk.numberToCloudFormation(properties.throughput),VolumeSize:cdk.numberToCloudFormation(properties.volumeSize),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnLaunchTemplateEbsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse.FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse.FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_ElasticGpuSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=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.validateString)(properties.type)),errors.wrap('supplied properties not correct for "ElasticGpuSpecificationProperty"')}function cfnLaunchTemplateElasticGpuSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_ElasticGpuSpecificationPropertyValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnLaunchTemplateElasticGpuSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_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",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_EnclaveOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "EnclaveOptionsProperty"')}function cfnLaunchTemplateEnclaveOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_EnclaveOptionsPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnLaunchTemplateEnclaveOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_HibernationOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("configured",cdk.validateBoolean)(properties.configured)),errors.wrap('supplied properties not correct for "HibernationOptionsProperty"')}function cfnLaunchTemplateHibernationOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_HibernationOptionsPropertyValidator(properties).assertSuccess(),{Configured:cdk.booleanToCloudFormation(properties.configured)}):properties}function CfnLaunchTemplateHibernationOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("configured","Configured",properties.Configured!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Configured):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_IamInstanceProfilePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.collect(cdk.propertyValidator("name",cdk.validateString)(properties.name)),errors.wrap('supplied properties not correct for "IamInstanceProfileProperty"')}function cfnLaunchTemplateIamInstanceProfilePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_IamInstanceProfilePropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn),Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnLaunchTemplateIamInstanceProfilePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse.FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("name","Name",properties.Name!=null?cfn_parse.FromCloudFormation.getString(properties.Name):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_InstanceMarketOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("marketType",cdk.validateString)(properties.marketType)),errors.collect(cdk.propertyValidator("spotOptions",CfnLaunchTemplate_SpotOptionsPropertyValidator)(properties.spotOptions)),errors.wrap('supplied properties not correct for "InstanceMarketOptionsProperty"')}function cfnLaunchTemplateInstanceMarketOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_InstanceMarketOptionsPropertyValidator(properties).assertSuccess(),{MarketType:cdk.stringToCloudFormation(properties.marketType),SpotOptions:cfnLaunchTemplateSpotOptionsPropertyToCloudFormation(properties.spotOptions)}):properties}function CfnLaunchTemplateInstanceMarketOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("marketType","MarketType",properties.MarketType!=null?cfn_parse.FromCloudFormation.getString(properties.MarketType):void 0),ret.addPropertyResult("spotOptions","SpotOptions",properties.SpotOptions!=null?CfnLaunchTemplateSpotOptionsPropertyFromCloudFormation(properties.SpotOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_InstanceRequirementsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceleratorCount",CfnLaunchTemplate_AcceleratorCountPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk.propertyValidator("acceleratorManufacturers",cdk.listValidator(cdk.validateString))(properties.acceleratorManufacturers)),errors.collect(cdk.propertyValidator("acceleratorNames",cdk.listValidator(cdk.validateString))(properties.acceleratorNames)),errors.collect(cdk.propertyValidator("acceleratorTotalMemoryMiB",CfnLaunchTemplate_AcceleratorTotalMemoryMiBPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk.propertyValidator("acceleratorTypes",cdk.listValidator(cdk.validateString))(properties.acceleratorTypes)),errors.collect(cdk.propertyValidator("allowedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.allowedInstanceTypes)),errors.collect(cdk.propertyValidator("bareMetal",cdk.validateString)(properties.bareMetal)),errors.collect(cdk.propertyValidator("baselineEbsBandwidthMbps",CfnLaunchTemplate_BaselineEbsBandwidthMbpsPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk.propertyValidator("burstablePerformance",cdk.validateString)(properties.burstablePerformance)),errors.collect(cdk.propertyValidator("cpuManufacturers",cdk.listValidator(cdk.validateString))(properties.cpuManufacturers)),errors.collect(cdk.propertyValidator("excludedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.excludedInstanceTypes)),errors.collect(cdk.propertyValidator("instanceGenerations",cdk.listValidator(cdk.validateString))(properties.instanceGenerations)),errors.collect(cdk.propertyValidator("localStorage",cdk.validateString)(properties.localStorage)),errors.collect(cdk.propertyValidator("localStorageTypes",cdk.listValidator(cdk.validateString))(properties.localStorageTypes)),errors.collect(cdk.propertyValidator("memoryGiBPerVCpu",CfnLaunchTemplate_MemoryGiBPerVCpuPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk.propertyValidator("memoryMiB",CfnLaunchTemplate_MemoryMiBPropertyValidator)(properties.memoryMiB)),errors.collect(cdk.propertyValidator("networkBandwidthGbps",CfnLaunchTemplate_NetworkBandwidthGbpsPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk.propertyValidator("networkInterfaceCount",CfnLaunchTemplate_NetworkInterfaceCountPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk.propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("requireHibernateSupport",cdk.validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk.propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("totalLocalStorageGb",CfnLaunchTemplate_TotalLocalStorageGBPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk.propertyValidator("vCpuCount",CfnLaunchTemplate_VCpuCountPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsProperty"')}function cfnLaunchTemplateInstanceRequirementsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_InstanceRequirementsPropertyValidator(properties).assertSuccess(),{AcceleratorCount:cfnLaunchTemplateAcceleratorCountPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:cfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk.stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:cfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BurstablePerformance:cdk.stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk.listMapper(cdk.stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk.stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.localStorageTypes),MemoryGiBPerVCpu:cfnLaunchTemplateMemoryGiBPerVCpuPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:cfnLaunchTemplateMemoryMiBPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:cfnLaunchTemplateNetworkBandwidthGbpsPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:cfnLaunchTemplateNetworkInterfaceCountPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk.booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:cfnLaunchTemplateTotalLocalStorageGBPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:cfnLaunchTemplateVCpuCountPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnLaunchTemplateInstanceRequirementsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnLaunchTemplateAcceleratorCountPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnLaunchTemplateAcceleratorTotalMemoryMiBPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse.FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnLaunchTemplateBaselineEbsBandwidthMbpsPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse.FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse.FromCloudFormation.getStringArray(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse.FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.LocalStorageTypes):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnLaunchTemplateMemoryGiBPerVCpuPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnLaunchTemplateMemoryMiBPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnLaunchTemplateNetworkBandwidthGbpsPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnLaunchTemplateNetworkInterfaceCountPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnLaunchTemplateTotalLocalStorageGBPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnLaunchTemplateVCpuCountPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_Ipv4PrefixSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv4Prefix",cdk.validateString)(properties.ipv4Prefix)),errors.wrap('supplied properties not correct for "Ipv4PrefixSpecificationProperty"')}function cfnLaunchTemplateIpv4PrefixSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_Ipv4PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv4Prefix:cdk.stringToCloudFormation(properties.ipv4Prefix)}):properties}function CfnLaunchTemplateIpv4PrefixSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv4Prefix","Ipv4Prefix",properties.Ipv4Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv4Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_Ipv6AddPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "Ipv6AddProperty"')}function cfnLaunchTemplateIpv6AddPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_Ipv6AddPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnLaunchTemplateIpv6AddPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",properties.Ipv6Address!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6Address):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_Ipv6PrefixSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Prefix",cdk.validateString)(properties.ipv6Prefix)),errors.wrap('supplied properties not correct for "Ipv6PrefixSpecificationProperty"')}function cfnLaunchTemplateIpv6PrefixSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_Ipv6PrefixSpecificationPropertyValidator(properties).assertSuccess(),{Ipv6Prefix:cdk.stringToCloudFormation(properties.ipv6Prefix)}):properties}function CfnLaunchTemplateIpv6PrefixSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Prefix","Ipv6Prefix",properties.Ipv6Prefix!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6Prefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_LaunchTemplateDataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blockDeviceMappings",cdk.listValidator(CfnLaunchTemplate_BlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk.propertyValidator("capacityReservationSpecification",CfnLaunchTemplate_CapacityReservationSpecificationPropertyValidator)(properties.capacityReservationSpecification)),errors.collect(cdk.propertyValidator("cpuOptions",CfnLaunchTemplate_CpuOptionsPropertyValidator)(properties.cpuOptions)),errors.collect(cdk.propertyValidator("creditSpecification",CfnLaunchTemplate_CreditSpecificationPropertyValidator)(properties.creditSpecification)),errors.collect(cdk.propertyValidator("disableApiStop",cdk.validateBoolean)(properties.disableApiStop)),errors.collect(cdk.propertyValidator("disableApiTermination",cdk.validateBoolean)(properties.disableApiTermination)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("elasticGpuSpecifications",cdk.listValidator(CfnLaunchTemplate_ElasticGpuSpecificationPropertyValidator))(properties.elasticGpuSpecifications)),errors.collect(cdk.propertyValidator("elasticInferenceAccelerators",cdk.listValidator(CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorPropertyValidator))(properties.elasticInferenceAccelerators)),errors.collect(cdk.propertyValidator("enclaveOptions",CfnLaunchTemplate_EnclaveOptionsPropertyValidator)(properties.enclaveOptions)),errors.collect(cdk.propertyValidator("hibernationOptions",CfnLaunchTemplate_HibernationOptionsPropertyValidator)(properties.hibernationOptions)),errors.collect(cdk.propertyValidator("iamInstanceProfile",CfnLaunchTemplate_IamInstanceProfilePropertyValidator)(properties.iamInstanceProfile)),errors.collect(cdk.propertyValidator("imageId",cdk.validateString)(properties.imageId)),errors.collect(cdk.propertyValidator("instanceInitiatedShutdownBehavior",cdk.validateString)(properties.instanceInitiatedShutdownBehavior)),errors.collect(cdk.propertyValidator("instanceMarketOptions",CfnLaunchTemplate_InstanceMarketOptionsPropertyValidator)(properties.instanceMarketOptions)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnLaunchTemplate_InstanceRequirementsPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("kernelId",cdk.validateString)(properties.kernelId)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("licenseSpecifications",cdk.listValidator(CfnLaunchTemplate_LicenseSpecificationPropertyValidator))(properties.licenseSpecifications)),errors.collect(cdk.propertyValidator("maintenanceOptions",CfnLaunchTemplate_MaintenanceOptionsPropertyValidator)(properties.maintenanceOptions)),errors.collect(cdk.propertyValidator("metadataOptions",CfnLaunchTemplate_MetadataOptionsPropertyValidator)(properties.metadataOptions)),errors.collect(cdk.propertyValidator("monitoring",CfnLaunchTemplate_MonitoringPropertyValidator)(properties.monitoring)),errors.collect(cdk.propertyValidator("networkInterfaces",cdk.listValidator(CfnLaunchTemplate_NetworkInterfacePropertyValidator))(properties.networkInterfaces)),errors.collect(cdk.propertyValidator("placement",CfnLaunchTemplate_PlacementPropertyValidator)(properties.placement)),errors.collect(cdk.propertyValidator("privateDnsNameOptions",CfnLaunchTemplate_PrivateDnsNameOptionsPropertyValidator)(properties.privateDnsNameOptions)),errors.collect(cdk.propertyValidator("ramDiskId",cdk.validateString)(properties.ramDiskId)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(cdk.validateString))(properties.securityGroups)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnLaunchTemplate_TagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("userData",cdk.validateString)(properties.userData)),errors.wrap('supplied properties not correct for "LaunchTemplateDataProperty"')}function cfnLaunchTemplateLaunchTemplateDataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LaunchTemplateDataPropertyValidator(properties).assertSuccess(),{BlockDeviceMappings:cdk.listMapper(cfnLaunchTemplateBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),CapacityReservationSpecification:cfnLaunchTemplateCapacityReservationSpecificationPropertyToCloudFormation(properties.capacityReservationSpecification),CpuOptions:cfnLaunchTemplateCpuOptionsPropertyToCloudFormation(properties.cpuOptions),CreditSpecification:cfnLaunchTemplateCreditSpecificationPropertyToCloudFormation(properties.creditSpecification),DisableApiStop:cdk.booleanToCloudFormation(properties.disableApiStop),DisableApiTermination:cdk.booleanToCloudFormation(properties.disableApiTermination),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),ElasticGpuSpecifications:cdk.listMapper(cfnLaunchTemplateElasticGpuSpecificationPropertyToCloudFormation)(properties.elasticGpuSpecifications),ElasticInferenceAccelerators:cdk.listMapper(cfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyToCloudFormation)(properties.elasticInferenceAccelerators),EnclaveOptions:cfnLaunchTemplateEnclaveOptionsPropertyToCloudFormation(properties.enclaveOptions),HibernationOptions:cfnLaunchTemplateHibernationOptionsPropertyToCloudFormation(properties.hibernationOptions),IamInstanceProfile:cfnLaunchTemplateIamInstanceProfilePropertyToCloudFormation(properties.iamInstanceProfile),ImageId:cdk.stringToCloudFormation(properties.imageId),InstanceInitiatedShutdownBehavior:cdk.stringToCloudFormation(properties.instanceInitiatedShutdownBehavior),InstanceMarketOptions:cfnLaunchTemplateInstanceMarketOptionsPropertyToCloudFormation(properties.instanceMarketOptions),InstanceRequirements:cfnLaunchTemplateInstanceRequirementsPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),KernelId:cdk.stringToCloudFormation(properties.kernelId),KeyName:cdk.stringToCloudFormation(properties.keyName),LicenseSpecifications:cdk.listMapper(cfnLaunchTemplateLicenseSpecificationPropertyToCloudFormation)(properties.licenseSpecifications),MaintenanceOptions:cfnLaunchTemplateMaintenanceOptionsPropertyToCloudFormation(properties.maintenanceOptions),MetadataOptions:cfnLaunchTemplateMetadataOptionsPropertyToCloudFormation(properties.metadataOptions),Monitoring:cfnLaunchTemplateMonitoringPropertyToCloudFormation(properties.monitoring),NetworkInterfaces:cdk.listMapper(cfnLaunchTemplateNetworkInterfacePropertyToCloudFormation)(properties.networkInterfaces),Placement:cfnLaunchTemplatePlacementPropertyToCloudFormation(properties.placement),PrivateDnsNameOptions:cfnLaunchTemplatePrivateDnsNameOptionsPropertyToCloudFormation(properties.privateDnsNameOptions),RamDiskId:cdk.stringToCloudFormation(properties.ramDiskId),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SecurityGroups:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroups),TagSpecifications:cdk.listMapper(cfnLaunchTemplateTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),UserData:cdk.stringToCloudFormation(properties.userData)}):properties}function CfnLaunchTemplateLaunchTemplateDataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("capacityReservationSpecification","CapacityReservationSpecification",properties.CapacityReservationSpecification!=null?CfnLaunchTemplateCapacityReservationSpecificationPropertyFromCloudFormation(properties.CapacityReservationSpecification):void 0),ret.addPropertyResult("cpuOptions","CpuOptions",properties.CpuOptions!=null?CfnLaunchTemplateCpuOptionsPropertyFromCloudFormation(properties.CpuOptions):void 0),ret.addPropertyResult("creditSpecification","CreditSpecification",properties.CreditSpecification!=null?CfnLaunchTemplateCreditSpecificationPropertyFromCloudFormation(properties.CreditSpecification):void 0),ret.addPropertyResult("disableApiStop","DisableApiStop",properties.DisableApiStop!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableApiStop):void 0),ret.addPropertyResult("disableApiTermination","DisableApiTermination",properties.DisableApiTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DisableApiTermination):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("elasticGpuSpecifications","ElasticGpuSpecifications",properties.ElasticGpuSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateElasticGpuSpecificationPropertyFromCloudFormation)(properties.ElasticGpuSpecifications):void 0),ret.addPropertyResult("elasticInferenceAccelerators","ElasticInferenceAccelerators",properties.ElasticInferenceAccelerators!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyFromCloudFormation)(properties.ElasticInferenceAccelerators):void 0),ret.addPropertyResult("enclaveOptions","EnclaveOptions",properties.EnclaveOptions!=null?CfnLaunchTemplateEnclaveOptionsPropertyFromCloudFormation(properties.EnclaveOptions):void 0),ret.addPropertyResult("hibernationOptions","HibernationOptions",properties.HibernationOptions!=null?CfnLaunchTemplateHibernationOptionsPropertyFromCloudFormation(properties.HibernationOptions):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?CfnLaunchTemplateIamInstanceProfilePropertyFromCloudFormation(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",properties.ImageId!=null?cfn_parse.FromCloudFormation.getString(properties.ImageId):void 0),ret.addPropertyResult("instanceInitiatedShutdownBehavior","InstanceInitiatedShutdownBehavior",properties.InstanceInitiatedShutdownBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInitiatedShutdownBehavior):void 0),ret.addPropertyResult("instanceMarketOptions","InstanceMarketOptions",properties.InstanceMarketOptions!=null?CfnLaunchTemplateInstanceMarketOptionsPropertyFromCloudFormation(properties.InstanceMarketOptions):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnLaunchTemplateInstanceRequirementsPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse.FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse.FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("licenseSpecifications","LicenseSpecifications",properties.LicenseSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateLicenseSpecificationPropertyFromCloudFormation)(properties.LicenseSpecifications):void 0),ret.addPropertyResult("maintenanceOptions","MaintenanceOptions",properties.MaintenanceOptions!=null?CfnLaunchTemplateMaintenanceOptionsPropertyFromCloudFormation(properties.MaintenanceOptions):void 0),ret.addPropertyResult("metadataOptions","MetadataOptions",properties.MetadataOptions!=null?CfnLaunchTemplateMetadataOptionsPropertyFromCloudFormation(properties.MetadataOptions):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?CfnLaunchTemplateMonitoringPropertyFromCloudFormation(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateNetworkInterfacePropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnLaunchTemplatePlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("privateDnsNameOptions","PrivateDnsNameOptions",properties.PrivateDnsNameOptions!=null?CfnLaunchTemplatePrivateDnsNameOptionsPropertyFromCloudFormation(properties.PrivateDnsNameOptions):void 0),ret.addPropertyResult("ramDiskId","RamDiskId",properties.RamDiskId!=null?cfn_parse.FromCloudFormation.getString(properties.RamDiskId):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroups):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse.FromCloudFormation.getString(properties.UserData):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("count",cdk.validateNumber)(properties.count)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.wrap('supplied properties not correct for "LaunchTemplateElasticInferenceAcceleratorProperty"')}function cfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LaunchTemplateElasticInferenceAcceleratorPropertyValidator(properties).assertSuccess(),{Count:cdk.numberToCloudFormation(properties.count),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnLaunchTemplateLaunchTemplateElasticInferenceAcceleratorPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("count","Count",properties.Count!=null?cfn_parse.FromCloudFormation.getNumber(properties.Count):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_LaunchTemplateTagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "LaunchTemplateTagSpecificationProperty"')}function cfnLaunchTemplateLaunchTemplateTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LaunchTemplateTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLaunchTemplateLaunchTemplateTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnLaunchTemplate_LicenseSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("licenseConfigurationArn",cdk.validateString)(properties.licenseConfigurationArn)),errors.wrap('supplied properties not correct for "LicenseSpecificationProperty"')}function cfnLaunchTemplateLicenseSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_LicenseSpecificationPropertyValidator(properties).assertSuccess(),{LicenseConfigurationArn:cdk.stringToCloudFormation(properties.licenseConfigurationArn)}):properties}function CfnLaunchTemplateLicenseSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("licenseConfigurationArn","LicenseConfigurationArn",properties.LicenseConfigurationArn!=null?cfn_parse.FromCloudFormation.getString(properties.LicenseConfigurationArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MaintenanceOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoRecovery",cdk.validateString)(properties.autoRecovery)),errors.wrap('supplied properties not correct for "MaintenanceOptionsProperty"')}function cfnLaunchTemplateMaintenanceOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MaintenanceOptionsPropertyValidator(properties).assertSuccess(),{AutoRecovery:cdk.stringToCloudFormation(properties.autoRecovery)}):properties}function CfnLaunchTemplateMaintenanceOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("autoRecovery","AutoRecovery",properties.AutoRecovery!=null?cfn_parse.FromCloudFormation.getString(properties.AutoRecovery):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MemoryGiBPerVCpuPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuProperty"')}function cfnLaunchTemplateMemoryGiBPerVCpuPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MemoryGiBPerVCpuPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateMemoryGiBPerVCpuPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MemoryMiBPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBProperty"')}function cfnLaunchTemplateMemoryMiBPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MemoryMiBPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateMemoryMiBPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MetadataOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("httpEndpoint",cdk.validateString)(properties.httpEndpoint)),errors.collect(cdk.propertyValidator("httpProtocolIpv6",cdk.validateString)(properties.httpProtocolIpv6)),errors.collect(cdk.propertyValidator("httpPutResponseHopLimit",cdk.validateNumber)(properties.httpPutResponseHopLimit)),errors.collect(cdk.propertyValidator("httpTokens",cdk.validateString)(properties.httpTokens)),errors.collect(cdk.propertyValidator("instanceMetadataTags",cdk.validateString)(properties.instanceMetadataTags)),errors.wrap('supplied properties not correct for "MetadataOptionsProperty"')}function cfnLaunchTemplateMetadataOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MetadataOptionsPropertyValidator(properties).assertSuccess(),{HttpEndpoint:cdk.stringToCloudFormation(properties.httpEndpoint),HttpProtocolIpv6:cdk.stringToCloudFormation(properties.httpProtocolIpv6),HttpPutResponseHopLimit:cdk.numberToCloudFormation(properties.httpPutResponseHopLimit),HttpTokens:cdk.stringToCloudFormation(properties.httpTokens),InstanceMetadataTags:cdk.stringToCloudFormation(properties.instanceMetadataTags)}):properties}function CfnLaunchTemplateMetadataOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("httpEndpoint","HttpEndpoint",properties.HttpEndpoint!=null?cfn_parse.FromCloudFormation.getString(properties.HttpEndpoint):void 0),ret.addPropertyResult("httpProtocolIpv6","HttpProtocolIpv6",properties.HttpProtocolIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.HttpProtocolIpv6):void 0),ret.addPropertyResult("httpPutResponseHopLimit","HttpPutResponseHopLimit",properties.HttpPutResponseHopLimit!=null?cfn_parse.FromCloudFormation.getNumber(properties.HttpPutResponseHopLimit):void 0),ret.addPropertyResult("httpTokens","HttpTokens",properties.HttpTokens!=null?cfn_parse.FromCloudFormation.getString(properties.HttpTokens):void 0),ret.addPropertyResult("instanceMetadataTags","InstanceMetadataTags",properties.InstanceMetadataTags!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceMetadataTags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_MonitoringPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "MonitoringProperty"')}function cfnLaunchTemplateMonitoringPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_MonitoringPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnLaunchTemplateMonitoringPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_NetworkBandwidthGbpsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsProperty"')}function cfnLaunchTemplateNetworkBandwidthGbpsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_NetworkBandwidthGbpsPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateNetworkBandwidthGbpsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_NetworkInterfacePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associateCarrierIpAddress",cdk.validateBoolean)(properties.associateCarrierIpAddress)),errors.collect(cdk.propertyValidator("associatePublicIpAddress",cdk.validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateNumber)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("groups",cdk.listValidator(cdk.validateString))(properties.groups)),errors.collect(cdk.propertyValidator("interfaceType",cdk.validateString)(properties.interfaceType)),errors.collect(cdk.propertyValidator("ipv4PrefixCount",cdk.validateNumber)(properties.ipv4PrefixCount)),errors.collect(cdk.propertyValidator("ipv4Prefixes",cdk.listValidator(CfnLaunchTemplate_Ipv4PrefixSpecificationPropertyValidator))(properties.ipv4Prefixes)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnLaunchTemplate_Ipv6AddPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("ipv6PrefixCount",cdk.validateNumber)(properties.ipv6PrefixCount)),errors.collect(cdk.propertyValidator("ipv6Prefixes",cdk.listValidator(CfnLaunchTemplate_Ipv6PrefixSpecificationPropertyValidator))(properties.ipv6Prefixes)),errors.collect(cdk.propertyValidator("networkCardIndex",cdk.validateNumber)(properties.networkCardIndex)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnLaunchTemplate_PrivateIpAddPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "NetworkInterfaceProperty"')}function cfnLaunchTemplateNetworkInterfacePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_NetworkInterfacePropertyValidator(properties).assertSuccess(),{AssociateCarrierIpAddress:cdk.booleanToCloudFormation(properties.associateCarrierIpAddress),AssociatePublicIpAddress:cdk.booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Description:cdk.stringToCloudFormation(properties.description),DeviceIndex:cdk.numberToCloudFormation(properties.deviceIndex),Groups:cdk.listMapper(cdk.stringToCloudFormation)(properties.groups),InterfaceType:cdk.stringToCloudFormation(properties.interfaceType),Ipv4PrefixCount:cdk.numberToCloudFormation(properties.ipv4PrefixCount),Ipv4Prefixes:cdk.listMapper(cfnLaunchTemplateIpv4PrefixSpecificationPropertyToCloudFormation)(properties.ipv4Prefixes),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnLaunchTemplateIpv6AddPropertyToCloudFormation)(properties.ipv6Addresses),Ipv6PrefixCount:cdk.numberToCloudFormation(properties.ipv6PrefixCount),Ipv6Prefixes:cdk.listMapper(cfnLaunchTemplateIpv6PrefixSpecificationPropertyToCloudFormation)(properties.ipv6Prefixes),NetworkCardIndex:cdk.numberToCloudFormation(properties.networkCardIndex),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk.listMapper(cfnLaunchTemplatePrivateIpAddPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnLaunchTemplateNetworkInterfacePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associateCarrierIpAddress","AssociateCarrierIpAddress",properties.AssociateCarrierIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociateCarrierIpAddress):void 0),ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse.FromCloudFormation.getNumber(properties.DeviceIndex):void 0),ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Groups):void 0),ret.addPropertyResult("interfaceType","InterfaceType",properties.InterfaceType!=null?cfn_parse.FromCloudFormation.getString(properties.InterfaceType):void 0),ret.addPropertyResult("ipv4PrefixCount","Ipv4PrefixCount",properties.Ipv4PrefixCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv4PrefixCount):void 0),ret.addPropertyResult("ipv4Prefixes","Ipv4Prefixes",properties.Ipv4Prefixes!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateIpv4PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv4Prefixes):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateIpv6AddPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("ipv6PrefixCount","Ipv6PrefixCount",properties.Ipv6PrefixCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6PrefixCount):void 0),ret.addPropertyResult("ipv6Prefixes","Ipv6Prefixes",properties.Ipv6Prefixes!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplateIpv6PrefixSpecificationPropertyFromCloudFormation)(properties.Ipv6Prefixes):void 0),ret.addPropertyResult("networkCardIndex","NetworkCardIndex",properties.NetworkCardIndex!=null?cfn_parse.FromCloudFormation.getNumber(properties.NetworkCardIndex):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnLaunchTemplatePrivateIpAddPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_NetworkInterfaceCountPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountProperty"')}function cfnLaunchTemplateNetworkInterfaceCountPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_NetworkInterfaceCountPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateNetworkInterfaceCountPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_PlacementPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("affinity",cdk.validateString)(properties.affinity)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("hostId",cdk.validateString)(properties.hostId)),errors.collect(cdk.propertyValidator("hostResourceGroupArn",cdk.validateString)(properties.hostResourceGroupArn)),errors.collect(cdk.propertyValidator("partitionNumber",cdk.validateNumber)(properties.partitionNumber)),errors.collect(cdk.propertyValidator("spreadDomain",cdk.validateString)(properties.spreadDomain)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "PlacementProperty"')}function cfnLaunchTemplatePlacementPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_PlacementPropertyValidator(properties).assertSuccess(),{Affinity:cdk.stringToCloudFormation(properties.affinity),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),GroupId:cdk.stringToCloudFormation(properties.groupId),GroupName:cdk.stringToCloudFormation(properties.groupName),HostId:cdk.stringToCloudFormation(properties.hostId),HostResourceGroupArn:cdk.stringToCloudFormation(properties.hostResourceGroupArn),PartitionNumber:cdk.numberToCloudFormation(properties.partitionNumber),SpreadDomain:cdk.stringToCloudFormation(properties.spreadDomain),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnLaunchTemplatePlacementPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("affinity","Affinity",properties.Affinity!=null?cfn_parse.FromCloudFormation.getString(properties.Affinity):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupId","GroupId",properties.GroupId!=null?cfn_parse.FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("hostId","HostId",properties.HostId!=null?cfn_parse.FromCloudFormation.getString(properties.HostId):void 0),ret.addPropertyResult("hostResourceGroupArn","HostResourceGroupArn",properties.HostResourceGroupArn!=null?cfn_parse.FromCloudFormation.getString(properties.HostResourceGroupArn):void 0),ret.addPropertyResult("partitionNumber","PartitionNumber",properties.PartitionNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.PartitionNumber):void 0),ret.addPropertyResult("spreadDomain","SpreadDomain",properties.SpreadDomain!=null?cfn_parse.FromCloudFormation.getString(properties.SpreadDomain):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_PrivateDnsNameOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enableResourceNameDnsAaaaRecord",cdk.validateBoolean)(properties.enableResourceNameDnsAaaaRecord)),errors.collect(cdk.propertyValidator("enableResourceNameDnsARecord",cdk.validateBoolean)(properties.enableResourceNameDnsARecord)),errors.collect(cdk.propertyValidator("hostnameType",cdk.validateString)(properties.hostnameType)),errors.wrap('supplied properties not correct for "PrivateDnsNameOptionsProperty"')}function cfnLaunchTemplatePrivateDnsNameOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_PrivateDnsNameOptionsPropertyValidator(properties).assertSuccess(),{EnableResourceNameDnsAAAARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsAaaaRecord),EnableResourceNameDnsARecord:cdk.booleanToCloudFormation(properties.enableResourceNameDnsARecord),HostnameType:cdk.stringToCloudFormation(properties.hostnameType)}):properties}function CfnLaunchTemplatePrivateDnsNameOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enableResourceNameDnsAaaaRecord","EnableResourceNameDnsAAAARecord",properties.EnableResourceNameDnsAAAARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsAAAARecord):void 0),ret.addPropertyResult("enableResourceNameDnsARecord","EnableResourceNameDnsARecord",properties.EnableResourceNameDnsARecord!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableResourceNameDnsARecord):void 0),ret.addPropertyResult("hostnameType","HostnameType",properties.HostnameType!=null?cfn_parse.FromCloudFormation.getString(properties.HostnameType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_PrivateIpAddPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddProperty"')}function cfnLaunchTemplatePrivateIpAddPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_PrivateIpAddPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnLaunchTemplatePrivateIpAddPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",properties.Primary!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_SpotOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blockDurationMinutes",cdk.validateNumber)(properties.blockDurationMinutes)),errors.collect(cdk.propertyValidator("instanceInterruptionBehavior",cdk.validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk.propertyValidator("maxPrice",cdk.validateString)(properties.maxPrice)),errors.collect(cdk.propertyValidator("spotInstanceType",cdk.validateString)(properties.spotInstanceType)),errors.collect(cdk.propertyValidator("validUntil",cdk.validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "SpotOptionsProperty"')}function cfnLaunchTemplateSpotOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_SpotOptionsPropertyValidator(properties).assertSuccess(),{BlockDurationMinutes:cdk.numberToCloudFormation(properties.blockDurationMinutes),InstanceInterruptionBehavior:cdk.stringToCloudFormation(properties.instanceInterruptionBehavior),MaxPrice:cdk.stringToCloudFormation(properties.maxPrice),SpotInstanceType:cdk.stringToCloudFormation(properties.spotInstanceType),ValidUntil:cdk.stringToCloudFormation(properties.validUntil)}):properties}function CfnLaunchTemplateSpotOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDurationMinutes","BlockDurationMinutes",properties.BlockDurationMinutes!=null?cfn_parse.FromCloudFormation.getNumber(properties.BlockDurationMinutes):void 0),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("maxPrice","MaxPrice",properties.MaxPrice!=null?cfn_parse.FromCloudFormation.getString(properties.MaxPrice):void 0),ret.addPropertyResult("spotInstanceType","SpotInstanceType",properties.SpotInstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.SpotInstanceType):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse.FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_TagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "TagSpecificationProperty"')}function cfnLaunchTemplateTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_TagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLaunchTemplateTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnLaunchTemplate_TotalLocalStorageGBPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBProperty"')}function cfnLaunchTemplateTotalLocalStorageGBPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_TotalLocalStorageGBPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateTotalLocalStorageGBPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLaunchTemplate_VCpuCountPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountProperty"')}function cfnLaunchTemplateVCpuCountPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLaunchTemplate_VCpuCountPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnLaunchTemplateVCpuCountPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnLocalGatewayRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.requiredValidator)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.validateString)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("localGatewayVirtualInterfaceGroupId",cdk.validateString)(properties.localGatewayVirtualInterfaceGroupId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteProps"')}function cfnLocalGatewayRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLocalGatewayRoutePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),LocalGatewayRouteTableId:cdk.stringToCloudFormation(properties.localGatewayRouteTableId),LocalGatewayVirtualInterfaceGroupId:cdk.stringToCloudFormation(properties.localGatewayVirtualInterfaceGroupId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId)}):properties}function CfnLocalGatewayRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("localGatewayRouteTableId","LocalGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.LocalGatewayRouteTableId)),ret.addPropertyResult("localGatewayVirtualInterfaceGroupId","LocalGatewayVirtualInterfaceGroupId",properties.LocalGatewayVirtualInterfaceGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.LocalGatewayVirtualInterfaceGroupId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRoute),error}cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"localGatewayRouteTableId",this),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrType=cdk.Token.asString(this.getAtt("Type")),this.destinationCidrBlock=props.destinationCidrBlock,this.localGatewayRouteTableId=props.localGatewayRouteTableId,this.localGatewayVirtualInterfaceGroupId=props.localGatewayVirtualInterfaceGroupId,this.networkInterfaceId=props.networkInterfaceId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRoutePropsFromCloudFormation(resourceProperties),ret=new CfnLocalGatewayRoute(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",CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destinationCidrBlock:this.destinationCidrBlock,localGatewayRouteTableId:this.localGatewayRouteTableId,localGatewayVirtualInterfaceGroupId:this.localGatewayVirtualInterfaceGroupId,networkInterfaceId:this.networkInterfaceId}}renderProperties(props){return cfnLocalGatewayRoutePropsToCloudFormation(props)}}exports.CfnLocalGatewayRoute=CfnLocalGatewayRoute,_1=JSII_RTTI_SYMBOL_1,CfnLocalGatewayRoute[_1]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRoute",version:"2.51.1"},CfnLocalGatewayRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRoute";function CfnLocalGatewayRouteTableVPCAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.requiredValidator)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("localGatewayRouteTableId",cdk.validateString)(properties.localGatewayRouteTableId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnLocalGatewayRouteTableVPCAssociationProps"')}function cfnLocalGatewayRouteTableVPCAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnLocalGatewayRouteTableVPCAssociationPropsValidator(properties).assertSuccess(),{LocalGatewayRouteTableId:cdk.stringToCloudFormation(properties.localGatewayRouteTableId),VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnLocalGatewayRouteTableVPCAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("localGatewayRouteTableId","LocalGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.LocalGatewayRouteTableId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnLocalGatewayRouteTableVPCAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnLocalGatewayRouteTableVPCAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnLocalGatewayRouteTableVPCAssociation),error}cdk.requireProperty(props,"localGatewayRouteTableId",this),cdk.requireProperty(props,"vpcId",this),this.attrLocalGatewayId=cdk.Token.asString(this.getAtt("LocalGatewayId")),this.attrLocalGatewayRouteTableVpcAssociationId=cdk.Token.asString(this.getAtt("LocalGatewayRouteTableVpcAssociationId")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.localGatewayRouteTableId=props.localGatewayRouteTableId,this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::LocalGatewayRouteTableVPCAssociation",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnLocalGatewayRouteTableVPCAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnLocalGatewayRouteTableVPCAssociation(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",CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{localGatewayRouteTableId:this.localGatewayRouteTableId,vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnLocalGatewayRouteTableVPCAssociationPropsToCloudFormation(props)}}exports.CfnLocalGatewayRouteTableVPCAssociation=CfnLocalGatewayRouteTableVPCAssociation,_2=JSII_RTTI_SYMBOL_1,CfnLocalGatewayRouteTableVPCAssociation[_2]={fqn:"aws-cdk-lib.aws_ec2.CfnLocalGatewayRouteTableVPCAssociation",version:"2.51.1"},CfnLocalGatewayRouteTableVPCAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::LocalGatewayRouteTableVPCAssociation";function CfnNatGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationId",cdk.validateString)(properties.allocationId)),errors.collect(cdk.propertyValidator("connectivityType",cdk.validateString)(properties.connectivityType)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNatGatewayProps"')}function cfnNatGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNatGatewayPropsValidator(properties).assertSuccess(),{SubnetId:cdk.stringToCloudFormation(properties.subnetId),AllocationId:cdk.stringToCloudFormation(properties.allocationId),ConnectivityType:cdk.stringToCloudFormation(properties.connectivityType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNatGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addPropertyResult("allocationId","AllocationId",properties.AllocationId!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationId):void 0),ret.addPropertyResult("connectivityType","ConnectivityType",properties.ConnectivityType!=null?cfn_parse.FromCloudFormation.getString(properties.ConnectivityType):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 CfnNatGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNatGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNatGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNatGateway),error}cdk.requireProperty(props,"subnetId",this),this.attrNatGatewayId=cdk.Token.asString(this.getAtt("NatGatewayId")),this.subnetId=props.subnetId,this.allocationId=props.allocationId,this.connectivityType=props.connectivityType,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NatGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNatGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnNatGateway(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",CfnNatGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetId:this.subnetId,allocationId:this.allocationId,connectivityType:this.connectivityType,tags:this.tags.renderTags()}}renderProperties(props){return cfnNatGatewayPropsToCloudFormation(props)}}exports.CfnNatGateway=CfnNatGateway,_3=JSII_RTTI_SYMBOL_1,CfnNatGateway[_3]={fqn:"aws-cdk-lib.aws_ec2.CfnNatGateway",version:"2.51.1"},CfnNatGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NatGateway";function CfnNetworkAclPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnNetworkAclProps"')}function cfnNetworkAclPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkAclPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkAcl extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkAclProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkAcl),error}cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkAcl",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkAclPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkAcl(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",CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkAclPropsToCloudFormation(props)}}exports.CfnNetworkAcl=CfnNetworkAcl,_4=JSII_RTTI_SYMBOL_1,CfnNetworkAcl[_4]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkAcl",version:"2.51.1"},CfnNetworkAcl.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkAcl";function CfnNetworkAclEntryPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("egress",cdk.validateBoolean)(properties.egress)),errors.collect(cdk.propertyValidator("icmp",CfnNetworkAclEntry_IcmpPropertyValidator)(properties.icmp)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("networkAclId",cdk.requiredValidator)(properties.networkAclId)),errors.collect(cdk.propertyValidator("networkAclId",cdk.validateString)(properties.networkAclId)),errors.collect(cdk.propertyValidator("portRange",CfnNetworkAclEntry_PortRangePropertyValidator)(properties.portRange)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateNumber)(properties.protocol)),errors.collect(cdk.propertyValidator("ruleAction",cdk.requiredValidator)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleAction",cdk.validateString)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.requiredValidator)(properties.ruleNumber)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.validateNumber)(properties.ruleNumber)),errors.wrap('supplied properties not correct for "CfnNetworkAclEntryProps"')}function cfnNetworkAclEntryPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclEntryPropsValidator(properties).assertSuccess(),{NetworkAclId:cdk.stringToCloudFormation(properties.networkAclId),Protocol:cdk.numberToCloudFormation(properties.protocol),RuleAction:cdk.stringToCloudFormation(properties.ruleAction),RuleNumber:cdk.numberToCloudFormation(properties.ruleNumber),CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),Egress:cdk.booleanToCloudFormation(properties.egress),Icmp:cfnNetworkAclEntryIcmpPropertyToCloudFormation(properties.icmp),Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),PortRange:cfnNetworkAclEntryPortRangePropertyToCloudFormation(properties.portRange)}):properties}function CfnNetworkAclEntryPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkAclId","NetworkAclId",cfn_parse.FromCloudFormation.getString(properties.NetworkAclId)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getNumber(properties.Protocol)),ret.addPropertyResult("ruleAction","RuleAction",cfn_parse.FromCloudFormation.getString(properties.RuleAction)),ret.addPropertyResult("ruleNumber","RuleNumber",cfn_parse.FromCloudFormation.getNumber(properties.RuleNumber)),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("egress","Egress",properties.Egress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Egress):void 0),ret.addPropertyResult("icmp","Icmp",properties.Icmp!=null?CfnNetworkAclEntryIcmpPropertyFromCloudFormation(properties.Icmp):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkAclEntryPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkAclEntry extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkAclEntryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkAclEntry),error}cdk.requireProperty(props,"networkAclId",this),cdk.requireProperty(props,"protocol",this),cdk.requireProperty(props,"ruleAction",this),cdk.requireProperty(props,"ruleNumber",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.networkAclId=props.networkAclId,this.protocol=props.protocol,this.ruleAction=props.ruleAction,this.ruleNumber=props.ruleNumber,this.cidrBlock=props.cidrBlock,this.egress=props.egress,this.icmp=props.icmp,this.ipv6CidrBlock=props.ipv6CidrBlock,this.portRange=props.portRange}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkAclEntryPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkAclEntry(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",CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkAclId:this.networkAclId,protocol:this.protocol,ruleAction:this.ruleAction,ruleNumber:this.ruleNumber,cidrBlock:this.cidrBlock,egress:this.egress,icmp:this.icmp,ipv6CidrBlock:this.ipv6CidrBlock,portRange:this.portRange}}renderProperties(props){return cfnNetworkAclEntryPropsToCloudFormation(props)}}exports.CfnNetworkAclEntry=CfnNetworkAclEntry,_5=JSII_RTTI_SYMBOL_1,CfnNetworkAclEntry[_5]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkAclEntry",version:"2.51.1"},CfnNetworkAclEntry.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkAclEntry";function CfnNetworkAclEntry_IcmpPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("code",cdk.validateNumber)(properties.code)),errors.collect(cdk.propertyValidator("type",cdk.validateNumber)(properties.type)),errors.wrap('supplied properties not correct for "IcmpProperty"')}function cfnNetworkAclEntryIcmpPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclEntry_IcmpPropertyValidator(properties).assertSuccess(),{Code:cdk.numberToCloudFormation(properties.code),Type:cdk.numberToCloudFormation(properties.type)}):properties}function CfnNetworkAclEntryIcmpPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("code","Code",properties.Code!=null?cfn_parse.FromCloudFormation.getNumber(properties.Code):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getNumber(properties.Type):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkAclEntry_PortRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("from",cdk.validateNumber)(properties.from)),errors.collect(cdk.propertyValidator("to",cdk.validateNumber)(properties.to)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function cfnNetworkAclEntryPortRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkAclEntry_PortRangePropertyValidator(properties).assertSuccess(),{From:cdk.numberToCloudFormation(properties.from),To:cdk.numberToCloudFormation(properties.to)}):properties}function CfnNetworkAclEntryPortRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("from","From",properties.From!=null?cfn_parse.FromCloudFormation.getNumber(properties.From):void 0),ret.addPropertyResult("to","To",properties.To!=null?cfn_parse.FromCloudFormation.getNumber(properties.To):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("excludePaths",cdk.listValidator(CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator))(properties.excludePaths)),errors.collect(cdk.propertyValidator("matchPaths",cdk.listValidator(CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator))(properties.matchPaths)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAccessScopeProps"')}function cfnNetworkInsightsAccessScopePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScopePropsValidator(properties).assertSuccess(),{ExcludePaths:cdk.listMapper(cfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation)(properties.excludePaths),MatchPaths:cdk.listMapper(cfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation)(properties.matchPaths),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAccessScopePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("excludePaths","ExcludePaths",properties.ExcludePaths!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation)(properties.ExcludePaths):void 0),ret.addPropertyResult("matchPaths","MatchPaths",properties.MatchPaths!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation)(properties.MatchPaths):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 CfnNetworkInsightsAccessScope extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsAccessScopeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAccessScope),error}this.attrCreatedDate=cdk.Token.asString(this.getAtt("CreatedDate")),this.attrNetworkInsightsAccessScopeArn=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeArn")),this.attrNetworkInsightsAccessScopeId=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeId")),this.attrUpdatedDate=cdk.Token.asString(this.getAtt("UpdatedDate")),this.excludePaths=props.excludePaths,this.matchPaths=props.matchPaths,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsAccessScope",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAccessScopePropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsAccessScope(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",CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{excludePaths:this.excludePaths,matchPaths:this.matchPaths,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsAccessScopePropsToCloudFormation(props)}}exports.CfnNetworkInsightsAccessScope=CfnNetworkInsightsAccessScope,_6=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsAccessScope[_6]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAccessScope",version:"2.51.1"},CfnNetworkInsightsAccessScope.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAccessScope";function CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destination",CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator)(properties.destination)),errors.collect(cdk.propertyValidator("source",CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator)(properties.source)),errors.collect(cdk.propertyValidator("throughResources",cdk.listValidator(CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestPropertyValidator))(properties.throughResources)),errors.wrap('supplied properties not correct for "AccessScopePathRequestProperty"')}function cfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_AccessScopePathRequestPropertyValidator(properties).assertSuccess(),{Destination:cfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties.destination),Source:cfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties.source),ThroughResources:cdk.listMapper(cfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyToCloudFormation)(properties.throughResources)}):properties}function CfnNetworkInsightsAccessScopeAccessScopePathRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destination","Destination",properties.Destination!=null?CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties.Destination):void 0),ret.addPropertyResult("source","Source",properties.Source!=null?CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties.Source):void 0),ret.addPropertyResult("throughResources","ThroughResources",properties.ThroughResources!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyFromCloudFormation)(properties.ThroughResources):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationAddresses",cdk.listValidator(cdk.validateString))(properties.destinationAddresses)),errors.collect(cdk.propertyValidator("destinationPorts",cdk.listValidator(cdk.validateString))(properties.destinationPorts)),errors.collect(cdk.propertyValidator("destinationPrefixLists",cdk.listValidator(cdk.validateString))(properties.destinationPrefixLists)),errors.collect(cdk.propertyValidator("protocols",cdk.listValidator(cdk.validateString))(properties.protocols)),errors.collect(cdk.propertyValidator("sourceAddresses",cdk.listValidator(cdk.validateString))(properties.sourceAddresses)),errors.collect(cdk.propertyValidator("sourcePorts",cdk.listValidator(cdk.validateString))(properties.sourcePorts)),errors.collect(cdk.propertyValidator("sourcePrefixLists",cdk.listValidator(cdk.validateString))(properties.sourcePrefixLists)),errors.wrap('supplied properties not correct for "PacketHeaderStatementRequestProperty"')}function cfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestPropertyValidator(properties).assertSuccess(),{DestinationAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationAddresses),DestinationPorts:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationPorts),DestinationPrefixLists:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationPrefixLists),Protocols:cdk.listMapper(cdk.stringToCloudFormation)(properties.protocols),SourceAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourceAddresses),SourcePorts:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourcePorts),SourcePrefixLists:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourcePrefixLists)}):properties}function CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationAddresses","DestinationAddresses",properties.DestinationAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationAddresses):void 0),ret.addPropertyResult("destinationPorts","DestinationPorts",properties.DestinationPorts!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationPorts):void 0),ret.addPropertyResult("destinationPrefixLists","DestinationPrefixLists",properties.DestinationPrefixLists!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationPrefixLists):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Protocols):void 0),ret.addPropertyResult("sourceAddresses","SourceAddresses",properties.SourceAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourceAddresses):void 0),ret.addPropertyResult("sourcePorts","SourcePorts",properties.SourcePorts!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourcePorts):void 0),ret.addPropertyResult("sourcePrefixLists","SourcePrefixLists",properties.SourcePrefixLists!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourcePrefixLists):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("packetHeaderStatement",CfnNetworkInsightsAccessScope_PacketHeaderStatementRequestPropertyValidator)(properties.packetHeaderStatement)),errors.collect(cdk.propertyValidator("resourceStatement",CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator)(properties.resourceStatement)),errors.wrap('supplied properties not correct for "PathStatementRequestProperty"')}function cfnNetworkInsightsAccessScopePathStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_PathStatementRequestPropertyValidator(properties).assertSuccess(),{PacketHeaderStatement:cfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyToCloudFormation(properties.packetHeaderStatement),ResourceStatement:cfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties.resourceStatement)}):properties}function CfnNetworkInsightsAccessScopePathStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("packetHeaderStatement","PacketHeaderStatement",properties.PacketHeaderStatement!=null?CfnNetworkInsightsAccessScopePacketHeaderStatementRequestPropertyFromCloudFormation(properties.PacketHeaderStatement):void 0),ret.addPropertyResult("resourceStatement","ResourceStatement",properties.ResourceStatement!=null?CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties.ResourceStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceTypes",cdk.listValidator(cdk.validateString))(properties.resourceTypes)),errors.collect(cdk.propertyValidator("resources",cdk.listValidator(cdk.validateString))(properties.resources)),errors.wrap('supplied properties not correct for "ResourceStatementRequestProperty"')}function cfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator(properties).assertSuccess(),{ResourceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.resourceTypes),Resources:cdk.listMapper(cdk.stringToCloudFormation)(properties.resources)}):properties}function CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceTypes","ResourceTypes",properties.ResourceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ResourceTypes):void 0),ret.addPropertyResult("resources","Resources",properties.Resources!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Resources):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceStatement",CfnNetworkInsightsAccessScope_ResourceStatementRequestPropertyValidator)(properties.resourceStatement)),errors.wrap('supplied properties not correct for "ThroughResourcesStatementRequestProperty"')}function cfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScope_ThroughResourcesStatementRequestPropertyValidator(properties).assertSuccess(),{ResourceStatement:cfnNetworkInsightsAccessScopeResourceStatementRequestPropertyToCloudFormation(properties.resourceStatement)}):properties}function CfnNetworkInsightsAccessScopeThroughResourcesStatementRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceStatement","ResourceStatement",properties.ResourceStatement!=null?CfnNetworkInsightsAccessScopeResourceStatementRequestPropertyFromCloudFormation(properties.ResourceStatement):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAccessScopeAnalysisPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("networkInsightsAccessScopeId",cdk.requiredValidator)(properties.networkInsightsAccessScopeId)),errors.collect(cdk.propertyValidator("networkInsightsAccessScopeId",cdk.validateString)(properties.networkInsightsAccessScopeId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAccessScopeAnalysisProps"')}function cfnNetworkInsightsAccessScopeAnalysisPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAccessScopeAnalysisPropsValidator(properties).assertSuccess(),{NetworkInsightsAccessScopeId:cdk.stringToCloudFormation(properties.networkInsightsAccessScopeId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAccessScopeAnalysisPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInsightsAccessScopeId","NetworkInsightsAccessScopeId",cfn_parse.FromCloudFormation.getString(properties.NetworkInsightsAccessScopeId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInsightsAccessScopeAnalysis extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsAccessScopeAnalysisProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAccessScopeAnalysis),error}cdk.requireProperty(props,"networkInsightsAccessScopeId",this),this.attrAnalyzedEniCount=cdk.Token.asNumber(this.getAtt("AnalyzedEniCount")),this.attrEndDate=cdk.Token.asString(this.getAtt("EndDate")),this.attrFindingsFound=cdk.Token.asString(this.getAtt("FindingsFound")),this.attrNetworkInsightsAccessScopeAnalysisArn=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeAnalysisArn")),this.attrNetworkInsightsAccessScopeAnalysisId=cdk.Token.asString(this.getAtt("NetworkInsightsAccessScopeAnalysisId")),this.attrStartDate=cdk.Token.asString(this.getAtt("StartDate")),this.attrStatus=cdk.Token.asString(this.getAtt("Status")),this.attrStatusMessage=cdk.Token.asString(this.getAtt("StatusMessage")),this.networkInsightsAccessScopeId=props.networkInsightsAccessScopeId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsAccessScopeAnalysis",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAccessScopeAnalysisPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsAccessScopeAnalysis(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",CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkInsightsAccessScopeId:this.networkInsightsAccessScopeId,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsAccessScopeAnalysisPropsToCloudFormation(props)}}exports.CfnNetworkInsightsAccessScopeAnalysis=CfnNetworkInsightsAccessScopeAnalysis,_7=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsAccessScopeAnalysis[_7]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAccessScopeAnalysis",version:"2.51.1"},CfnNetworkInsightsAccessScopeAnalysis.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAccessScopeAnalysis";function CfnNetworkInsightsAnalysisPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("filterInArns",cdk.listValidator(cdk.validateString))(properties.filterInArns)),errors.collect(cdk.propertyValidator("networkInsightsPathId",cdk.requiredValidator)(properties.networkInsightsPathId)),errors.collect(cdk.propertyValidator("networkInsightsPathId",cdk.validateString)(properties.networkInsightsPathId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsAnalysisProps"')}function cfnNetworkInsightsAnalysisPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysisPropsValidator(properties).assertSuccess(),{NetworkInsightsPathId:cdk.stringToCloudFormation(properties.networkInsightsPathId),FilterInArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.filterInArns),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsAnalysisPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInsightsPathId","NetworkInsightsPathId",cfn_parse.FromCloudFormation.getString(properties.NetworkInsightsPathId)),ret.addPropertyResult("filterInArns","FilterInArns",properties.FilterInArns!=null?cfn_parse.FromCloudFormation.getStringArray(properties.FilterInArns):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 CfnNetworkInsightsAnalysis extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsAnalysisProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsAnalysis),error}cdk.requireProperty(props,"networkInsightsPathId",this),this.attrAlternatePathHints=this.getAtt("AlternatePathHints"),this.attrExplanations=this.getAtt("Explanations"),this.attrForwardPathComponents=this.getAtt("ForwardPathComponents"),this.attrNetworkInsightsAnalysisArn=cdk.Token.asString(this.getAtt("NetworkInsightsAnalysisArn")),this.attrNetworkInsightsAnalysisId=cdk.Token.asString(this.getAtt("NetworkInsightsAnalysisId")),this.attrNetworkPathFound=this.getAtt("NetworkPathFound"),this.attrReturnPathComponents=this.getAtt("ReturnPathComponents"),this.attrStartDate=cdk.Token.asString(this.getAtt("StartDate")),this.attrStatus=cdk.Token.asString(this.getAtt("Status")),this.attrStatusMessage=cdk.Token.asString(this.getAtt("StatusMessage")),this.networkInsightsPathId=props.networkInsightsPathId,this.filterInArns=props.filterInArns,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsAnalysis",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsAnalysisPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsAnalysis(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",CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkInsightsPathId:this.networkInsightsPathId,filterInArns:this.filterInArns,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsAnalysisPropsToCloudFormation(props)}}exports.CfnNetworkInsightsAnalysis=CfnNetworkInsightsAnalysis,_8=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsAnalysis[_8]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsAnalysis",version:"2.51.1"},CfnNetworkInsightsAnalysis.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsAnalysis";function CfnNetworkInsightsAnalysis_AdditionalDetailPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("additionalDetailType",cdk.validateString)(properties.additionalDetailType)),errors.collect(cdk.propertyValidator("component",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.component)),errors.wrap('supplied properties not correct for "AdditionalDetailProperty"')}function cfnNetworkInsightsAnalysisAdditionalDetailPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AdditionalDetailPropertyValidator(properties).assertSuccess(),{AdditionalDetailType:cdk.stringToCloudFormation(properties.additionalDetailType),Component:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component)}):properties}function CfnNetworkInsightsAnalysisAdditionalDetailPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("additionalDetailType","AdditionalDetailType",properties.AdditionalDetailType!=null?cfn_parse.FromCloudFormation.getString(properties.AdditionalDetailType):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AlternatePathHintPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("componentArn",cdk.validateString)(properties.componentArn)),errors.collect(cdk.propertyValidator("componentId",cdk.validateString)(properties.componentId)),errors.wrap('supplied properties not correct for "AlternatePathHintProperty"')}function cfnNetworkInsightsAnalysisAlternatePathHintPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AlternatePathHintPropertyValidator(properties).assertSuccess(),{ComponentArn:cdk.stringToCloudFormation(properties.componentArn),ComponentId:cdk.stringToCloudFormation(properties.componentId)}):properties}function CfnNetworkInsightsAnalysisAlternatePathHintPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("componentArn","ComponentArn",properties.ComponentArn!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentArn):void 0),ret.addPropertyResult("componentId","ComponentId",properties.ComponentId!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("egress",cdk.validateBoolean)(properties.egress)),errors.collect(cdk.propertyValidator("portRange",CfnNetworkInsightsAnalysis_PortRangePropertyValidator)(properties.portRange)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("ruleAction",cdk.validateString)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.validateNumber)(properties.ruleNumber)),errors.wrap('supplied properties not correct for "AnalysisAclRuleProperty"')}function cfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr),Egress:cdk.booleanToCloudFormation(properties.egress),PortRange:cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties.portRange),Protocol:cdk.stringToCloudFormation(properties.protocol),RuleAction:cdk.stringToCloudFormation(properties.ruleAction),RuleNumber:cdk.numberToCloudFormation(properties.ruleNumber)}):properties}function CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse.FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("egress","Egress",properties.Egress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Egress):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("ruleAction","RuleAction",properties.RuleAction!=null?cfn_parse.FromCloudFormation.getString(properties.RuleAction):void 0),ret.addPropertyResult("ruleNumber","RuleNumber",properties.RuleNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.RuleNumber):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.collect(cdk.propertyValidator("id",cdk.validateString)(properties.id)),errors.wrap('supplied properties not correct for "AnalysisComponentProperty"')}function cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn),Id:cdk.stringToCloudFormation(properties.id)}):properties}function CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse.FromCloudFormation.getString(properties.Arn):void 0),ret.addPropertyResult("id","Id",properties.Id!=null?cfn_parse.FromCloudFormation.getString(properties.Id):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("instancePort",cdk.validateNumber)(properties.instancePort)),errors.collect(cdk.propertyValidator("loadBalancerPort",cdk.validateNumber)(properties.loadBalancerPort)),errors.wrap('supplied properties not correct for "AnalysisLoadBalancerListenerProperty"')}function cfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerPropertyValidator(properties).assertSuccess(),{InstancePort:cdk.numberToCloudFormation(properties.instancePort),LoadBalancerPort:cdk.numberToCloudFormation(properties.loadBalancerPort)}):properties}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("instancePort","InstancePort",properties.InstancePort!=null?cfn_parse.FromCloudFormation.getNumber(properties.InstancePort):void 0),ret.addPropertyResult("loadBalancerPort","LoadBalancerPort",properties.LoadBalancerPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.LoadBalancerPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("address",cdk.validateString)(properties.address)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("instance",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.instance)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.wrap('supplied properties not correct for "AnalysisLoadBalancerTargetProperty"')}function cfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetPropertyValidator(properties).assertSuccess(),{Address:cdk.stringToCloudFormation(properties.address),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),Instance:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.instance),Port:cdk.numberToCloudFormation(properties.port)}):properties}function CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("address","Address",properties.Address!=null?cfn_parse.FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("instance","Instance",properties.Instance!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Instance):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationAddresses",cdk.listValidator(cdk.validateString))(properties.destinationAddresses)),errors.collect(cdk.propertyValidator("destinationPortRanges",cdk.listValidator(CfnNetworkInsightsAnalysis_PortRangePropertyValidator))(properties.destinationPortRanges)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("sourceAddresses",cdk.listValidator(cdk.validateString))(properties.sourceAddresses)),errors.collect(cdk.propertyValidator("sourcePortRanges",cdk.listValidator(CfnNetworkInsightsAnalysis_PortRangePropertyValidator))(properties.sourcePortRanges)),errors.wrap('supplied properties not correct for "AnalysisPacketHeaderProperty"')}function cfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator(properties).assertSuccess(),{DestinationAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.destinationAddresses),DestinationPortRanges:cdk.listMapper(cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.destinationPortRanges),Protocol:cdk.stringToCloudFormation(properties.protocol),SourceAddresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.sourceAddresses),SourcePortRanges:cdk.listMapper(cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.sourcePortRanges)}):properties}function CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationAddresses","DestinationAddresses",properties.DestinationAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.DestinationAddresses):void 0),ret.addPropertyResult("destinationPortRanges","DestinationPortRanges",properties.DestinationPortRanges!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.DestinationPortRanges):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("sourceAddresses","SourceAddresses",properties.SourceAddresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SourceAddresses):void 0),ret.addPropertyResult("sourcePortRanges","SourcePortRanges",properties.SourcePortRanges!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.SourcePortRanges):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("natGatewayId",cdk.validateString)(properties.natGatewayId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("origin",cdk.validateString)(properties.origin)),errors.collect(cdk.propertyValidator("state",cdk.validateString)(properties.state)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcPeeringConnectionId",cdk.validateString)(properties.vpcPeeringConnectionId)),errors.collect(cdk.propertyValidator("destinationCidr",cdk.validateString)(properties.destinationCidr)),errors.collect(cdk.propertyValidator("destinationPrefixListId",cdk.validateString)(properties.destinationPrefixListId)),errors.collect(cdk.propertyValidator("egressOnlyInternetGatewayId",cdk.validateString)(properties.egressOnlyInternetGatewayId)),errors.collect(cdk.propertyValidator("gatewayId",cdk.validateString)(properties.gatewayId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.wrap('supplied properties not correct for "AnalysisRouteTableRouteProperty"')}function cfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator(properties).assertSuccess(),{NatGatewayId:cdk.stringToCloudFormation(properties.natGatewayId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),Origin:cdk.stringToCloudFormation(properties.origin),State:cdk.stringToCloudFormation(properties.state),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcPeeringConnectionId:cdk.stringToCloudFormation(properties.vpcPeeringConnectionId),destinationCidr:cdk.stringToCloudFormation(properties.destinationCidr),destinationPrefixListId:cdk.stringToCloudFormation(properties.destinationPrefixListId),egressOnlyInternetGatewayId:cdk.stringToCloudFormation(properties.egressOnlyInternetGatewayId),gatewayId:cdk.stringToCloudFormation(properties.gatewayId),instanceId:cdk.stringToCloudFormation(properties.instanceId)}):properties}function CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("natGatewayId","NatGatewayId",properties.NatGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.NatGatewayId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("origin","Origin",properties.Origin!=null?cfn_parse.FromCloudFormation.getString(properties.Origin):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse.FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcPeeringConnectionId","VpcPeeringConnectionId",properties.VpcPeeringConnectionId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcPeeringConnectionId):void 0),ret.addPropertyResult("destinationCidr","destinationCidr",properties.destinationCidr!=null?cfn_parse.FromCloudFormation.getString(properties.destinationCidr):void 0),ret.addPropertyResult("destinationPrefixListId","destinationPrefixListId",properties.destinationPrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.destinationPrefixListId):void 0),ret.addPropertyResult("egressOnlyInternetGatewayId","egressOnlyInternetGatewayId",properties.egressOnlyInternetGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.egressOnlyInternetGatewayId):void 0),ret.addPropertyResult("gatewayId","gatewayId",properties.gatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.gatewayId):void 0),ret.addPropertyResult("instanceId","instanceId",properties.instanceId!=null?cfn_parse.FromCloudFormation.getString(properties.instanceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("direction",cdk.validateString)(properties.direction)),errors.collect(cdk.propertyValidator("portRange",CfnNetworkInsightsAnalysis_PortRangePropertyValidator)(properties.portRange)),errors.collect(cdk.propertyValidator("prefixListId",cdk.validateString)(properties.prefixListId)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("securityGroupId",cdk.validateString)(properties.securityGroupId)),errors.wrap('supplied properties not correct for "AnalysisSecurityGroupRuleProperty"')}function cfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr),Direction:cdk.stringToCloudFormation(properties.direction),PortRange:cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties.portRange),PrefixListId:cdk.stringToCloudFormation(properties.prefixListId),Protocol:cdk.stringToCloudFormation(properties.protocol),SecurityGroupId:cdk.stringToCloudFormation(properties.securityGroupId)}):properties}function CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",properties.Cidr!=null?cfn_parse.FromCloudFormation.getString(properties.Cidr):void 0),ret.addPropertyResult("direction","Direction",properties.Direction!=null?cfn_parse.FromCloudFormation.getString(properties.Direction):void 0),ret.addPropertyResult("portRange","PortRange",properties.PortRange!=null?CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties.PortRange):void 0),ret.addPropertyResult("prefixListId","PrefixListId",properties.PrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.PrefixListId):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addPropertyResult("securityGroupId","SecurityGroupId",properties.SecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.SecurityGroupId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_ExplanationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acl",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.acl)),errors.collect(cdk.propertyValidator("aclRule",CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator)(properties.aclRule)),errors.collect(cdk.propertyValidator("address",cdk.validateString)(properties.address)),errors.collect(cdk.propertyValidator("addresses",cdk.listValidator(cdk.validateString))(properties.addresses)),errors.collect(cdk.propertyValidator("attachedTo",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.attachedTo)),errors.collect(cdk.propertyValidator("availabilityZones",cdk.listValidator(cdk.validateString))(properties.availabilityZones)),errors.collect(cdk.propertyValidator("cidrs",cdk.listValidator(cdk.validateString))(properties.cidrs)),errors.collect(cdk.propertyValidator("classicLoadBalancerListener",CfnNetworkInsightsAnalysis_AnalysisLoadBalancerListenerPropertyValidator)(properties.classicLoadBalancerListener)),errors.collect(cdk.propertyValidator("component",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.component)),errors.collect(cdk.propertyValidator("componentAccount",cdk.validateString)(properties.componentAccount)),errors.collect(cdk.propertyValidator("componentRegion",cdk.validateString)(properties.componentRegion)),errors.collect(cdk.propertyValidator("customerGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.customerGateway)),errors.collect(cdk.propertyValidator("destination",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.destination)),errors.collect(cdk.propertyValidator("destinationVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.destinationVpc)),errors.collect(cdk.propertyValidator("direction",cdk.validateString)(properties.direction)),errors.collect(cdk.propertyValidator("elasticLoadBalancerListener",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.elasticLoadBalancerListener)),errors.collect(cdk.propertyValidator("explanationCode",cdk.validateString)(properties.explanationCode)),errors.collect(cdk.propertyValidator("ingressRouteTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.ingressRouteTable)),errors.collect(cdk.propertyValidator("internetGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.internetGateway)),errors.collect(cdk.propertyValidator("loadBalancerArn",cdk.validateString)(properties.loadBalancerArn)),errors.collect(cdk.propertyValidator("loadBalancerListenerPort",cdk.validateNumber)(properties.loadBalancerListenerPort)),errors.collect(cdk.propertyValidator("loadBalancerTarget",CfnNetworkInsightsAnalysis_AnalysisLoadBalancerTargetPropertyValidator)(properties.loadBalancerTarget)),errors.collect(cdk.propertyValidator("loadBalancerTargetGroup",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.loadBalancerTargetGroup)),errors.collect(cdk.propertyValidator("loadBalancerTargetGroups",cdk.listValidator(CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator))(properties.loadBalancerTargetGroups)),errors.collect(cdk.propertyValidator("loadBalancerTargetPort",cdk.validateNumber)(properties.loadBalancerTargetPort)),errors.collect(cdk.propertyValidator("missingComponent",cdk.validateString)(properties.missingComponent)),errors.collect(cdk.propertyValidator("natGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.natGateway)),errors.collect(cdk.propertyValidator("networkInterface",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.networkInterface)),errors.collect(cdk.propertyValidator("packetField",cdk.validateString)(properties.packetField)),errors.collect(cdk.propertyValidator("port",cdk.validateNumber)(properties.port)),errors.collect(cdk.propertyValidator("portRanges",cdk.listValidator(CfnNetworkInsightsAnalysis_PortRangePropertyValidator))(properties.portRanges)),errors.collect(cdk.propertyValidator("prefixList",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.prefixList)),errors.collect(cdk.propertyValidator("protocols",cdk.listValidator(cdk.validateString))(properties.protocols)),errors.collect(cdk.propertyValidator("routeTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.routeTable)),errors.collect(cdk.propertyValidator("routeTableRoute",CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator)(properties.routeTableRoute)),errors.collect(cdk.propertyValidator("securityGroup",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.securityGroup)),errors.collect(cdk.propertyValidator("securityGroupRule",CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator)(properties.securityGroupRule)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator))(properties.securityGroups)),errors.collect(cdk.propertyValidator("sourceVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.sourceVpc)),errors.collect(cdk.propertyValidator("state",cdk.validateString)(properties.state)),errors.collect(cdk.propertyValidator("subnet",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.subnet)),errors.collect(cdk.propertyValidator("subnetRouteTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.subnetRouteTable)),errors.collect(cdk.propertyValidator("transitGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGateway)),errors.collect(cdk.propertyValidator("transitGatewayAttachment",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGatewayAttachment)),errors.collect(cdk.propertyValidator("transitGatewayRouteTable",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGatewayRouteTable)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableRoute",CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator)(properties.transitGatewayRouteTableRoute)),errors.collect(cdk.propertyValidator("vpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpc)),errors.collect(cdk.propertyValidator("vpcPeeringConnection",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpcPeeringConnection)),errors.collect(cdk.propertyValidator("vpnConnection",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpnConnection)),errors.collect(cdk.propertyValidator("vpnGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpnGateway)),errors.collect(cdk.propertyValidator("vpcEndpoint",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpcEndpoint)),errors.wrap('supplied properties not correct for "ExplanationProperty"')}function cfnNetworkInsightsAnalysisExplanationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_ExplanationPropertyValidator(properties).assertSuccess(),{Acl:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.acl),AclRule:cfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties.aclRule),Address:cdk.stringToCloudFormation(properties.address),Addresses:cdk.listMapper(cdk.stringToCloudFormation)(properties.addresses),AttachedTo:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.attachedTo),AvailabilityZones:cdk.listMapper(cdk.stringToCloudFormation)(properties.availabilityZones),Cidrs:cdk.listMapper(cdk.stringToCloudFormation)(properties.cidrs),ClassicLoadBalancerListener:cfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyToCloudFormation(properties.classicLoadBalancerListener),Component:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component),ComponentAccount:cdk.stringToCloudFormation(properties.componentAccount),ComponentRegion:cdk.stringToCloudFormation(properties.componentRegion),CustomerGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.customerGateway),Destination:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destination),DestinationVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destinationVpc),Direction:cdk.stringToCloudFormation(properties.direction),ElasticLoadBalancerListener:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.elasticLoadBalancerListener),ExplanationCode:cdk.stringToCloudFormation(properties.explanationCode),IngressRouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.ingressRouteTable),InternetGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.internetGateway),LoadBalancerArn:cdk.stringToCloudFormation(properties.loadBalancerArn),LoadBalancerListenerPort:cdk.numberToCloudFormation(properties.loadBalancerListenerPort),LoadBalancerTarget:cfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyToCloudFormation(properties.loadBalancerTarget),LoadBalancerTargetGroup:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.loadBalancerTargetGroup),LoadBalancerTargetGroups:cdk.listMapper(cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation)(properties.loadBalancerTargetGroups),LoadBalancerTargetPort:cdk.numberToCloudFormation(properties.loadBalancerTargetPort),MissingComponent:cdk.stringToCloudFormation(properties.missingComponent),NatGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.natGateway),NetworkInterface:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.networkInterface),PacketField:cdk.stringToCloudFormation(properties.packetField),Port:cdk.numberToCloudFormation(properties.port),PortRanges:cdk.listMapper(cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation)(properties.portRanges),PrefixList:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.prefixList),Protocols:cdk.listMapper(cdk.stringToCloudFormation)(properties.protocols),RouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.routeTable),RouteTableRoute:cfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties.routeTableRoute),SecurityGroup:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.securityGroup),SecurityGroupRule:cfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties.securityGroupRule),SecurityGroups:cdk.listMapper(cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation)(properties.securityGroups),SourceVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.sourceVpc),State:cdk.stringToCloudFormation(properties.state),Subnet:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnet),SubnetRouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnetRouteTable),TransitGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGateway),TransitGatewayAttachment:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGatewayAttachment),TransitGatewayRouteTable:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGatewayRouteTable),TransitGatewayRouteTableRoute:cfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties.transitGatewayRouteTableRoute),Vpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpc),VpcPeeringConnection:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpcPeeringConnection),VpnConnection:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpnConnection),VpnGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpnGateway),vpcEndpoint:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpcEndpoint)}):properties}function CfnNetworkInsightsAnalysisExplanationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acl","Acl",properties.Acl!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Acl):void 0),ret.addPropertyResult("aclRule","AclRule",properties.AclRule!=null?CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties.AclRule):void 0),ret.addPropertyResult("address","Address",properties.Address!=null?cfn_parse.FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("addresses","Addresses",properties.Addresses!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Addresses):void 0),ret.addPropertyResult("attachedTo","AttachedTo",properties.AttachedTo!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.AttachedTo):void 0),ret.addPropertyResult("availabilityZones","AvailabilityZones",properties.AvailabilityZones!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AvailabilityZones):void 0),ret.addPropertyResult("cidrs","Cidrs",properties.Cidrs!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Cidrs):void 0),ret.addPropertyResult("classicLoadBalancerListener","ClassicLoadBalancerListener",properties.ClassicLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisLoadBalancerListenerPropertyFromCloudFormation(properties.ClassicLoadBalancerListener):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addPropertyResult("componentAccount","ComponentAccount",properties.ComponentAccount!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentAccount):void 0),ret.addPropertyResult("componentRegion","ComponentRegion",properties.ComponentRegion!=null?cfn_parse.FromCloudFormation.getString(properties.ComponentRegion):void 0),ret.addPropertyResult("customerGateway","CustomerGateway",properties.CustomerGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.CustomerGateway):void 0),ret.addPropertyResult("destination","Destination",properties.Destination!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Destination):void 0),ret.addPropertyResult("destinationVpc","DestinationVpc",properties.DestinationVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.DestinationVpc):void 0),ret.addPropertyResult("direction","Direction",properties.Direction!=null?cfn_parse.FromCloudFormation.getString(properties.Direction):void 0),ret.addPropertyResult("elasticLoadBalancerListener","ElasticLoadBalancerListener",properties.ElasticLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.ElasticLoadBalancerListener):void 0),ret.addPropertyResult("explanationCode","ExplanationCode",properties.ExplanationCode!=null?cfn_parse.FromCloudFormation.getString(properties.ExplanationCode):void 0),ret.addPropertyResult("ingressRouteTable","IngressRouteTable",properties.IngressRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.IngressRouteTable):void 0),ret.addPropertyResult("internetGateway","InternetGateway",properties.InternetGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.InternetGateway):void 0),ret.addPropertyResult("loadBalancerArn","LoadBalancerArn",properties.LoadBalancerArn!=null?cfn_parse.FromCloudFormation.getString(properties.LoadBalancerArn):void 0),ret.addPropertyResult("loadBalancerListenerPort","LoadBalancerListenerPort",properties.LoadBalancerListenerPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.LoadBalancerListenerPort):void 0),ret.addPropertyResult("loadBalancerTarget","LoadBalancerTarget",properties.LoadBalancerTarget!=null?CfnNetworkInsightsAnalysisAnalysisLoadBalancerTargetPropertyFromCloudFormation(properties.LoadBalancerTarget):void 0),ret.addPropertyResult("loadBalancerTargetGroup","LoadBalancerTargetGroup",properties.LoadBalancerTargetGroup!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.LoadBalancerTargetGroup):void 0),ret.addPropertyResult("loadBalancerTargetGroups","LoadBalancerTargetGroups",properties.LoadBalancerTargetGroups!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation)(properties.LoadBalancerTargetGroups):void 0),ret.addPropertyResult("loadBalancerTargetPort","LoadBalancerTargetPort",properties.LoadBalancerTargetPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.LoadBalancerTargetPort):void 0),ret.addPropertyResult("missingComponent","MissingComponent",properties.MissingComponent!=null?cfn_parse.FromCloudFormation.getString(properties.MissingComponent):void 0),ret.addPropertyResult("natGateway","NatGateway",properties.NatGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.NatGateway):void 0),ret.addPropertyResult("networkInterface","NetworkInterface",properties.NetworkInterface!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.NetworkInterface):void 0),ret.addPropertyResult("packetField","PacketField",properties.PacketField!=null?cfn_parse.FromCloudFormation.getString(properties.PacketField):void 0),ret.addPropertyResult("port","Port",properties.Port!=null?cfn_parse.FromCloudFormation.getNumber(properties.Port):void 0),ret.addPropertyResult("portRanges","PortRanges",properties.PortRanges!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation)(properties.PortRanges):void 0),ret.addPropertyResult("prefixList","PrefixList",properties.PrefixList!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.PrefixList):void 0),ret.addPropertyResult("protocols","Protocols",properties.Protocols!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Protocols):void 0),ret.addPropertyResult("routeTable","RouteTable",properties.RouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.RouteTable):void 0),ret.addPropertyResult("routeTableRoute","RouteTableRoute",properties.RouteTableRoute!=null?CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties.RouteTableRoute):void 0),ret.addPropertyResult("securityGroup","SecurityGroup",properties.SecurityGroup!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SecurityGroup):void 0),ret.addPropertyResult("securityGroupRule","SecurityGroupRule",properties.SecurityGroupRule!=null?CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties.SecurityGroupRule):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation)(properties.SecurityGroups):void 0),ret.addPropertyResult("sourceVpc","SourceVpc",properties.SourceVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SourceVpc):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse.FromCloudFormation.getString(properties.State):void 0),ret.addPropertyResult("subnet","Subnet",properties.Subnet!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Subnet):void 0),ret.addPropertyResult("subnetRouteTable","SubnetRouteTable",properties.SubnetRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SubnetRouteTable):void 0),ret.addPropertyResult("transitGateway","TransitGateway",properties.TransitGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGateway):void 0),ret.addPropertyResult("transitGatewayAttachment","TransitGatewayAttachment",properties.TransitGatewayAttachment!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGatewayAttachment):void 0),ret.addPropertyResult("transitGatewayRouteTable","TransitGatewayRouteTable",properties.TransitGatewayRouteTable!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGatewayRouteTable):void 0),ret.addPropertyResult("transitGatewayRouteTableRoute","TransitGatewayRouteTableRoute",properties.TransitGatewayRouteTableRoute!=null?CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties.TransitGatewayRouteTableRoute):void 0),ret.addPropertyResult("vpc","Vpc",properties.Vpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Vpc):void 0),ret.addPropertyResult("vpcPeeringConnection","VpcPeeringConnection",properties.VpcPeeringConnection!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpcPeeringConnection):void 0),ret.addPropertyResult("vpnConnection","VpnConnection",properties.VpnConnection!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpnConnection):void 0),ret.addPropertyResult("vpnGateway","VpnGateway",properties.VpnGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.VpnGateway):void 0),ret.addPropertyResult("vpcEndpoint","vpcEndpoint",properties.vpcEndpoint!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.vpcEndpoint):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_PathComponentPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("aclRule",CfnNetworkInsightsAnalysis_AnalysisAclRulePropertyValidator)(properties.aclRule)),errors.collect(cdk.propertyValidator("additionalDetails",cdk.listValidator(CfnNetworkInsightsAnalysis_AdditionalDetailPropertyValidator))(properties.additionalDetails)),errors.collect(cdk.propertyValidator("component",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.component)),errors.collect(cdk.propertyValidator("destinationVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.destinationVpc)),errors.collect(cdk.propertyValidator("elasticLoadBalancerListener",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.elasticLoadBalancerListener)),errors.collect(cdk.propertyValidator("explanations",cdk.listValidator(CfnNetworkInsightsAnalysis_ExplanationPropertyValidator))(properties.explanations)),errors.collect(cdk.propertyValidator("inboundHeader",CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator)(properties.inboundHeader)),errors.collect(cdk.propertyValidator("outboundHeader",CfnNetworkInsightsAnalysis_AnalysisPacketHeaderPropertyValidator)(properties.outboundHeader)),errors.collect(cdk.propertyValidator("routeTableRoute",CfnNetworkInsightsAnalysis_AnalysisRouteTableRoutePropertyValidator)(properties.routeTableRoute)),errors.collect(cdk.propertyValidator("securityGroupRule",CfnNetworkInsightsAnalysis_AnalysisSecurityGroupRulePropertyValidator)(properties.securityGroupRule)),errors.collect(cdk.propertyValidator("sequenceNumber",cdk.validateNumber)(properties.sequenceNumber)),errors.collect(cdk.propertyValidator("sourceVpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.sourceVpc)),errors.collect(cdk.propertyValidator("subnet",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.subnet)),errors.collect(cdk.propertyValidator("transitGateway",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.transitGateway)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableRoute",CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator)(properties.transitGatewayRouteTableRoute)),errors.collect(cdk.propertyValidator("vpc",CfnNetworkInsightsAnalysis_AnalysisComponentPropertyValidator)(properties.vpc)),errors.wrap('supplied properties not correct for "PathComponentProperty"')}function cfnNetworkInsightsAnalysisPathComponentPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_PathComponentPropertyValidator(properties).assertSuccess(),{AclRule:cfnNetworkInsightsAnalysisAnalysisAclRulePropertyToCloudFormation(properties.aclRule),AdditionalDetails:cdk.listMapper(cfnNetworkInsightsAnalysisAdditionalDetailPropertyToCloudFormation)(properties.additionalDetails),Component:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.component),DestinationVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.destinationVpc),ElasticLoadBalancerListener:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.elasticLoadBalancerListener),Explanations:cdk.listMapper(cfnNetworkInsightsAnalysisExplanationPropertyToCloudFormation)(properties.explanations),InboundHeader:cfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties.inboundHeader),OutboundHeader:cfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyToCloudFormation(properties.outboundHeader),RouteTableRoute:cfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyToCloudFormation(properties.routeTableRoute),SecurityGroupRule:cfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyToCloudFormation(properties.securityGroupRule),SequenceNumber:cdk.numberToCloudFormation(properties.sequenceNumber),SourceVpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.sourceVpc),Subnet:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.subnet),TransitGateway:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.transitGateway),TransitGatewayRouteTableRoute:cfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties.transitGatewayRouteTableRoute),Vpc:cfnNetworkInsightsAnalysisAnalysisComponentPropertyToCloudFormation(properties.vpc)}):properties}function CfnNetworkInsightsAnalysisPathComponentPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("aclRule","AclRule",properties.AclRule!=null?CfnNetworkInsightsAnalysisAnalysisAclRulePropertyFromCloudFormation(properties.AclRule):void 0),ret.addPropertyResult("additionalDetails","AdditionalDetails",properties.AdditionalDetails!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisAdditionalDetailPropertyFromCloudFormation)(properties.AdditionalDetails):void 0),ret.addPropertyResult("component","Component",properties.Component!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Component):void 0),ret.addPropertyResult("destinationVpc","DestinationVpc",properties.DestinationVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.DestinationVpc):void 0),ret.addPropertyResult("elasticLoadBalancerListener","ElasticLoadBalancerListener",properties.ElasticLoadBalancerListener!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.ElasticLoadBalancerListener):void 0),ret.addPropertyResult("explanations","Explanations",properties.Explanations!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInsightsAnalysisExplanationPropertyFromCloudFormation)(properties.Explanations):void 0),ret.addPropertyResult("inboundHeader","InboundHeader",properties.InboundHeader!=null?CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties.InboundHeader):void 0),ret.addPropertyResult("outboundHeader","OutboundHeader",properties.OutboundHeader!=null?CfnNetworkInsightsAnalysisAnalysisPacketHeaderPropertyFromCloudFormation(properties.OutboundHeader):void 0),ret.addPropertyResult("routeTableRoute","RouteTableRoute",properties.RouteTableRoute!=null?CfnNetworkInsightsAnalysisAnalysisRouteTableRoutePropertyFromCloudFormation(properties.RouteTableRoute):void 0),ret.addPropertyResult("securityGroupRule","SecurityGroupRule",properties.SecurityGroupRule!=null?CfnNetworkInsightsAnalysisAnalysisSecurityGroupRulePropertyFromCloudFormation(properties.SecurityGroupRule):void 0),ret.addPropertyResult("sequenceNumber","SequenceNumber",properties.SequenceNumber!=null?cfn_parse.FromCloudFormation.getNumber(properties.SequenceNumber):void 0),ret.addPropertyResult("sourceVpc","SourceVpc",properties.SourceVpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.SourceVpc):void 0),ret.addPropertyResult("subnet","Subnet",properties.Subnet!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Subnet):void 0),ret.addPropertyResult("transitGateway","TransitGateway",properties.TransitGateway!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.TransitGateway):void 0),ret.addPropertyResult("transitGatewayRouteTableRoute","TransitGatewayRouteTableRoute",properties.TransitGatewayRouteTableRoute!=null?CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties.TransitGatewayRouteTableRoute):void 0),ret.addPropertyResult("vpc","Vpc",properties.Vpc!=null?CfnNetworkInsightsAnalysisAnalysisComponentPropertyFromCloudFormation(properties.Vpc):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_PortRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("from",cdk.validateNumber)(properties.from)),errors.collect(cdk.propertyValidator("to",cdk.validateNumber)(properties.to)),errors.wrap('supplied properties not correct for "PortRangeProperty"')}function cfnNetworkInsightsAnalysisPortRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_PortRangePropertyValidator(properties).assertSuccess(),{From:cdk.numberToCloudFormation(properties.from),To:cdk.numberToCloudFormation(properties.to)}):properties}function CfnNetworkInsightsAnalysisPortRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("from","From",properties.From!=null?cfn_parse.FromCloudFormation.getNumber(properties.From):void 0),ret.addPropertyResult("to","To",properties.To!=null?cfn_parse.FromCloudFormation.getNumber(properties.To):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("attachmentId",cdk.validateString)(properties.attachmentId)),errors.collect(cdk.propertyValidator("destinationCidr",cdk.validateString)(properties.destinationCidr)),errors.collect(cdk.propertyValidator("prefixListId",cdk.validateString)(properties.prefixListId)),errors.collect(cdk.propertyValidator("resourceId",cdk.validateString)(properties.resourceId)),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("routeOrigin",cdk.validateString)(properties.routeOrigin)),errors.collect(cdk.propertyValidator("state",cdk.validateString)(properties.state)),errors.wrap('supplied properties not correct for "TransitGatewayRouteTableRouteProperty"')}function cfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsAnalysis_TransitGatewayRouteTableRoutePropertyValidator(properties).assertSuccess(),{AttachmentId:cdk.stringToCloudFormation(properties.attachmentId),DestinationCidr:cdk.stringToCloudFormation(properties.destinationCidr),PrefixListId:cdk.stringToCloudFormation(properties.prefixListId),ResourceId:cdk.stringToCloudFormation(properties.resourceId),ResourceType:cdk.stringToCloudFormation(properties.resourceType),RouteOrigin:cdk.stringToCloudFormation(properties.routeOrigin),State:cdk.stringToCloudFormation(properties.state)}):properties}function CfnNetworkInsightsAnalysisTransitGatewayRouteTableRoutePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("attachmentId","AttachmentId",properties.AttachmentId!=null?cfn_parse.FromCloudFormation.getString(properties.AttachmentId):void 0),ret.addPropertyResult("destinationCidr","DestinationCidr",properties.DestinationCidr!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationCidr):void 0),ret.addPropertyResult("prefixListId","PrefixListId",properties.PrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.PrefixListId):void 0),ret.addPropertyResult("resourceId","ResourceId",properties.ResourceId!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceId):void 0),ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):void 0),ret.addPropertyResult("routeOrigin","RouteOrigin",properties.RouteOrigin!=null?cfn_parse.FromCloudFormation.getString(properties.RouteOrigin):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse.FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInsightsPathPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destination",cdk.requiredValidator)(properties.destination)),errors.collect(cdk.propertyValidator("destination",cdk.validateString)(properties.destination)),errors.collect(cdk.propertyValidator("destinationIp",cdk.validateString)(properties.destinationIp)),errors.collect(cdk.propertyValidator("destinationPort",cdk.validateNumber)(properties.destinationPort)),errors.collect(cdk.propertyValidator("protocol",cdk.requiredValidator)(properties.protocol)),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.collect(cdk.propertyValidator("source",cdk.requiredValidator)(properties.source)),errors.collect(cdk.propertyValidator("source",cdk.validateString)(properties.source)),errors.collect(cdk.propertyValidator("sourceIp",cdk.validateString)(properties.sourceIp)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInsightsPathProps"')}function cfnNetworkInsightsPathPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInsightsPathPropsValidator(properties).assertSuccess(),{Destination:cdk.stringToCloudFormation(properties.destination),Protocol:cdk.stringToCloudFormation(properties.protocol),Source:cdk.stringToCloudFormation(properties.source),DestinationIp:cdk.stringToCloudFormation(properties.destinationIp),DestinationPort:cdk.numberToCloudFormation(properties.destinationPort),SourceIp:cdk.stringToCloudFormation(properties.sourceIp),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInsightsPathPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destination","Destination",cfn_parse.FromCloudFormation.getString(properties.Destination)),ret.addPropertyResult("protocol","Protocol",cfn_parse.FromCloudFormation.getString(properties.Protocol)),ret.addPropertyResult("source","Source",cfn_parse.FromCloudFormation.getString(properties.Source)),ret.addPropertyResult("destinationIp","DestinationIp",properties.DestinationIp!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationIp):void 0),ret.addPropertyResult("destinationPort","DestinationPort",properties.DestinationPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.DestinationPort):void 0),ret.addPropertyResult("sourceIp","SourceIp",properties.SourceIp!=null?cfn_parse.FromCloudFormation.getString(properties.SourceIp):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 CfnNetworkInsightsPath extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInsightsPathProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInsightsPath),error}cdk.requireProperty(props,"destination",this),cdk.requireProperty(props,"protocol",this),cdk.requireProperty(props,"source",this),this.attrCreatedDate=cdk.Token.asString(this.getAtt("CreatedDate")),this.attrNetworkInsightsPathArn=cdk.Token.asString(this.getAtt("NetworkInsightsPathArn")),this.attrNetworkInsightsPathId=cdk.Token.asString(this.getAtt("NetworkInsightsPathId")),this.destination=props.destination,this.protocol=props.protocol,this.source=props.source,this.destinationIp=props.destinationIp,this.destinationPort=props.destinationPort,this.sourceIp=props.sourceIp,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInsightsPath",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInsightsPathPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInsightsPath(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",CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destination:this.destination,protocol:this.protocol,source:this.source,destinationIp:this.destinationIp,destinationPort:this.destinationPort,sourceIp:this.sourceIp,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInsightsPathPropsToCloudFormation(props)}}exports.CfnNetworkInsightsPath=CfnNetworkInsightsPath,_9=JSII_RTTI_SYMBOL_1,CfnNetworkInsightsPath[_9]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInsightsPath",version:"2.51.1"},CfnNetworkInsightsPath.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInsightsPath";function CfnNetworkInterfacePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("groupSet",cdk.listValidator(cdk.validateString))(properties.groupSet)),errors.collect(cdk.propertyValidator("interfaceType",cdk.validateString)(properties.interfaceType)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnNetworkInterface_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnNetworkInterface_PrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("sourceDestCheck",cdk.validateBoolean)(properties.sourceDestCheck)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnNetworkInterfaceProps"')}function cfnNetworkInterfacePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterfacePropsValidator(properties).assertSuccess(),{SubnetId:cdk.stringToCloudFormation(properties.subnetId),Description:cdk.stringToCloudFormation(properties.description),GroupSet:cdk.listMapper(cdk.stringToCloudFormation)(properties.groupSet),InterfaceType:cdk.stringToCloudFormation(properties.interfaceType),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnNetworkInterfaceInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress),PrivateIpAddresses:cdk.listMapper(cfnNetworkInterfacePrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SourceDestCheck:cdk.booleanToCloudFormation(properties.sourceDestCheck),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnNetworkInterfacePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("groupSet","GroupSet",properties.GroupSet!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GroupSet):void 0),ret.addPropertyResult("interfaceType","InterfaceType",properties.InterfaceType!=null?cfn_parse.FromCloudFormation.getString(properties.InterfaceType):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInterfaceInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",properties.PrivateIpAddress!=null?cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnNetworkInterfacePrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("sourceDestCheck","SourceDestCheck",properties.SourceDestCheck!=null?cfn_parse.FromCloudFormation.getBoolean(properties.SourceDestCheck):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 CfnNetworkInterface extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInterfaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterface),error}cdk.requireProperty(props,"subnetId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.attrPrimaryPrivateIpAddress=cdk.Token.asString(this.getAtt("PrimaryPrivateIpAddress")),this.attrSecondaryPrivateIpAddresses=cdk.Token.asList(this.getAtt("SecondaryPrivateIpAddresses")),this.subnetId=props.subnetId,this.description=props.description,this.groupSet=props.groupSet,this.interfaceType=props.interfaceType,this.ipv6AddressCount=props.ipv6AddressCount,this.ipv6Addresses=props.ipv6Addresses,this.privateIpAddress=props.privateIpAddress,this.privateIpAddresses=props.privateIpAddresses,this.secondaryPrivateIpAddressCount=props.secondaryPrivateIpAddressCount,this.sourceDestCheck=props.sourceDestCheck,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::NetworkInterface",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfacePropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInterface(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",CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetId:this.subnetId,description:this.description,groupSet:this.groupSet,interfaceType:this.interfaceType,ipv6AddressCount:this.ipv6AddressCount,ipv6Addresses:this.ipv6Addresses,privateIpAddress:this.privateIpAddress,privateIpAddresses:this.privateIpAddresses,secondaryPrivateIpAddressCount:this.secondaryPrivateIpAddressCount,sourceDestCheck:this.sourceDestCheck,tags:this.tags.renderTags()}}renderProperties(props){return cfnNetworkInterfacePropsToCloudFormation(props)}}exports.CfnNetworkInterface=CfnNetworkInterface,_10=JSII_RTTI_SYMBOL_1,CfnNetworkInterface[_10]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterface",version:"2.51.1"},CfnNetworkInterface.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterface";function CfnNetworkInterface_InstanceIpv6AddressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.requiredValidator)(properties.ipv6Address)),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function cfnNetworkInterfaceInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterface_InstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnNetworkInterfaceInstanceIpv6AddressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",cfn_parse.FromCloudFormation.getString(properties.Ipv6Address)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterface_PrivateIpAddressSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.requiredValidator)(properties.primary)),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.requiredValidator)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function cfnNetworkInterfacePrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterface_PrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnNetworkInterfacePrivateIpAddressSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",cfn_parse.FromCloudFormation.getBoolean(properties.Primary)),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnNetworkInterfaceAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.requiredValidator)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateString)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("instanceId",cdk.requiredValidator)(properties.instanceId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.wrap('supplied properties not correct for "CfnNetworkInterfaceAttachmentProps"')}function cfnNetworkInterfaceAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterfaceAttachmentPropsValidator(properties).assertSuccess(),{DeviceIndex:cdk.stringToCloudFormation(properties.deviceIndex),InstanceId:cdk.stringToCloudFormation(properties.instanceId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination)}):properties}function CfnNetworkInterfaceAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceIndex","DeviceIndex",cfn_parse.FromCloudFormation.getString(properties.DeviceIndex)),ret.addPropertyResult("instanceId","InstanceId",cfn_parse.FromCloudFormation.getString(properties.InstanceId)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInterfaceAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInterfaceAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterfaceAttachment),error}cdk.requireProperty(props,"deviceIndex",this),cdk.requireProperty(props,"instanceId",this),cdk.requireProperty(props,"networkInterfaceId",this),this.deviceIndex=props.deviceIndex,this.instanceId=props.instanceId,this.networkInterfaceId=props.networkInterfaceId,this.deleteOnTermination=props.deleteOnTermination}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfaceAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInterfaceAttachment(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",CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{deviceIndex:this.deviceIndex,instanceId:this.instanceId,networkInterfaceId:this.networkInterfaceId,deleteOnTermination:this.deleteOnTermination}}renderProperties(props){return cfnNetworkInterfaceAttachmentPropsToCloudFormation(props)}}exports.CfnNetworkInterfaceAttachment=CfnNetworkInterfaceAttachment,_11=JSII_RTTI_SYMBOL_1,CfnNetworkInterfaceAttachment[_11]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterfaceAttachment",version:"2.51.1"},CfnNetworkInterfaceAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterfaceAttachment";function CfnNetworkInterfacePermissionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("awsAccountId",cdk.requiredValidator)(properties.awsAccountId)),errors.collect(cdk.propertyValidator("awsAccountId",cdk.validateString)(properties.awsAccountId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("permission",cdk.requiredValidator)(properties.permission)),errors.collect(cdk.propertyValidator("permission",cdk.validateString)(properties.permission)),errors.wrap('supplied properties not correct for "CfnNetworkInterfacePermissionProps"')}function cfnNetworkInterfacePermissionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnNetworkInterfacePermissionPropsValidator(properties).assertSuccess(),{AwsAccountId:cdk.stringToCloudFormation(properties.awsAccountId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),Permission:cdk.stringToCloudFormation(properties.permission)}):properties}function CfnNetworkInterfacePermissionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("awsAccountId","AwsAccountId",cfn_parse.FromCloudFormation.getString(properties.AwsAccountId)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("permission","Permission",cfn_parse.FromCloudFormation.getString(properties.Permission)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnNetworkInterfacePermission extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnNetworkInterfacePermissionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnNetworkInterfacePermission),error}cdk.requireProperty(props,"awsAccountId",this),cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"permission",this),this.awsAccountId=props.awsAccountId,this.networkInterfaceId=props.networkInterfaceId,this.permission=props.permission}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnNetworkInterfacePermissionPropsFromCloudFormation(resourceProperties),ret=new CfnNetworkInterfacePermission(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",CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{awsAccountId:this.awsAccountId,networkInterfaceId:this.networkInterfaceId,permission:this.permission}}renderProperties(props){return cfnNetworkInterfacePermissionPropsToCloudFormation(props)}}exports.CfnNetworkInterfacePermission=CfnNetworkInterfacePermission,_12=JSII_RTTI_SYMBOL_1,CfnNetworkInterfacePermission[_12]={fqn:"aws-cdk-lib.aws_ec2.CfnNetworkInterfacePermission",version:"2.51.1"},CfnNetworkInterfacePermission.CFN_RESOURCE_TYPE_NAME="AWS::EC2::NetworkInterfacePermission";function CfnPlacementGroupPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("spreadLevel",cdk.validateString)(properties.spreadLevel)),errors.collect(cdk.propertyValidator("strategy",cdk.validateString)(properties.strategy)),errors.wrap('supplied properties not correct for "CfnPlacementGroupProps"')}function cfnPlacementGroupPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPlacementGroupPropsValidator(properties).assertSuccess(),{SpreadLevel:cdk.stringToCloudFormation(properties.spreadLevel),Strategy:cdk.stringToCloudFormation(properties.strategy)}):properties}function CfnPlacementGroupPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("spreadLevel","SpreadLevel",properties.SpreadLevel!=null?cfn_parse.FromCloudFormation.getString(properties.SpreadLevel):void 0),ret.addPropertyResult("strategy","Strategy",properties.Strategy!=null?cfn_parse.FromCloudFormation.getString(properties.Strategy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPlacementGroup extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnPlacementGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPlacementGroup),error}this.attrGroupName=cdk.Token.asString(this.getAtt("GroupName")),this.spreadLevel=props.spreadLevel,this.strategy=props.strategy}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPlacementGroupPropsFromCloudFormation(resourceProperties),ret=new CfnPlacementGroup(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",CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{spreadLevel:this.spreadLevel,strategy:this.strategy}}renderProperties(props){return cfnPlacementGroupPropsToCloudFormation(props)}}exports.CfnPlacementGroup=CfnPlacementGroup,_13=JSII_RTTI_SYMBOL_1,CfnPlacementGroup[_13]={fqn:"aws-cdk-lib.aws_ec2.CfnPlacementGroup",version:"2.51.1"},CfnPlacementGroup.CFN_RESOURCE_TYPE_NAME="AWS::EC2::PlacementGroup";function CfnPrefixListPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("addressFamily",cdk.requiredValidator)(properties.addressFamily)),errors.collect(cdk.propertyValidator("addressFamily",cdk.validateString)(properties.addressFamily)),errors.collect(cdk.propertyValidator("entries",cdk.listValidator(CfnPrefixList_EntryPropertyValidator))(properties.entries)),errors.collect(cdk.propertyValidator("maxEntries",cdk.requiredValidator)(properties.maxEntries)),errors.collect(cdk.propertyValidator("maxEntries",cdk.validateNumber)(properties.maxEntries)),errors.collect(cdk.propertyValidator("prefixListName",cdk.requiredValidator)(properties.prefixListName)),errors.collect(cdk.propertyValidator("prefixListName",cdk.validateString)(properties.prefixListName)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnPrefixListProps"')}function cfnPrefixListPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPrefixListPropsValidator(properties).assertSuccess(),{AddressFamily:cdk.stringToCloudFormation(properties.addressFamily),MaxEntries:cdk.numberToCloudFormation(properties.maxEntries),PrefixListName:cdk.stringToCloudFormation(properties.prefixListName),Entries:cdk.listMapper(cfnPrefixListEntryPropertyToCloudFormation)(properties.entries),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnPrefixListPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("addressFamily","AddressFamily",cfn_parse.FromCloudFormation.getString(properties.AddressFamily)),ret.addPropertyResult("maxEntries","MaxEntries",cfn_parse.FromCloudFormation.getNumber(properties.MaxEntries)),ret.addPropertyResult("prefixListName","PrefixListName",cfn_parse.FromCloudFormation.getString(properties.PrefixListName)),ret.addPropertyResult("entries","Entries",properties.Entries!=null?cfn_parse.FromCloudFormation.getArray(CfnPrefixListEntryPropertyFromCloudFormation)(properties.Entries):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 CfnPrefixList extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnPrefixList.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnPrefixListProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPrefixList),error}cdk.requireProperty(props,"addressFamily",this),cdk.requireProperty(props,"maxEntries",this),cdk.requireProperty(props,"prefixListName",this),this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrOwnerId=cdk.Token.asString(this.getAtt("OwnerId")),this.attrPrefixListId=cdk.Token.asString(this.getAtt("PrefixListId")),this.attrVersion=cdk.Token.asNumber(this.getAtt("Version")),this.addressFamily=props.addressFamily,this.maxEntries=props.maxEntries,this.prefixListName=props.prefixListName,this.entries=props.entries,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::PrefixList",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPrefixListPropsFromCloudFormation(resourceProperties),ret=new CfnPrefixList(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",CfnPrefixList.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{addressFamily:this.addressFamily,maxEntries:this.maxEntries,prefixListName:this.prefixListName,entries:this.entries,tags:this.tags.renderTags()}}renderProperties(props){return cfnPrefixListPropsToCloudFormation(props)}}exports.CfnPrefixList=CfnPrefixList,_14=JSII_RTTI_SYMBOL_1,CfnPrefixList[_14]={fqn:"aws-cdk-lib.aws_ec2.CfnPrefixList",version:"2.51.1"},CfnPrefixList.CFN_RESOURCE_TYPE_NAME="AWS::EC2::PrefixList";function CfnPrefixList_EntryPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidr",cdk.requiredValidator)(properties.cidr)),errors.collect(cdk.propertyValidator("cidr",cdk.validateString)(properties.cidr)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.wrap('supplied properties not correct for "EntryProperty"')}function cfnPrefixListEntryPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPrefixList_EntryPropertyValidator(properties).assertSuccess(),{Cidr:cdk.stringToCloudFormation(properties.cidr),Description:cdk.stringToCloudFormation(properties.description)}):properties}function CfnPrefixListEntryPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidr","Cidr",cfn_parse.FromCloudFormation.getString(properties.Cidr)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):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("carrierGatewayId",cdk.validateString)(properties.carrierGatewayId)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationIpv6CidrBlock",cdk.validateString)(properties.destinationIpv6CidrBlock)),errors.collect(cdk.propertyValidator("egressOnlyInternetGatewayId",cdk.validateString)(properties.egressOnlyInternetGatewayId)),errors.collect(cdk.propertyValidator("gatewayId",cdk.validateString)(properties.gatewayId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("localGatewayId",cdk.validateString)(properties.localGatewayId)),errors.collect(cdk.propertyValidator("natGatewayId",cdk.validateString)(properties.natGatewayId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.requiredValidator)(properties.routeTableId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.validateString)(properties.routeTableId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcEndpointId",cdk.validateString)(properties.vpcEndpointId)),errors.collect(cdk.propertyValidator("vpcPeeringConnectionId",cdk.validateString)(properties.vpcPeeringConnectionId)),errors.wrap('supplied properties not correct for "CfnRouteProps"')}function cfnRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRoutePropsValidator(properties).assertSuccess(),{RouteTableId:cdk.stringToCloudFormation(properties.routeTableId),CarrierGatewayId:cdk.stringToCloudFormation(properties.carrierGatewayId),DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),DestinationIpv6CidrBlock:cdk.stringToCloudFormation(properties.destinationIpv6CidrBlock),EgressOnlyInternetGatewayId:cdk.stringToCloudFormation(properties.egressOnlyInternetGatewayId),GatewayId:cdk.stringToCloudFormation(properties.gatewayId),InstanceId:cdk.stringToCloudFormation(properties.instanceId),LocalGatewayId:cdk.stringToCloudFormation(properties.localGatewayId),NatGatewayId:cdk.stringToCloudFormation(properties.natGatewayId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcEndpointId:cdk.stringToCloudFormation(properties.vpcEndpointId),VpcPeeringConnectionId:cdk.stringToCloudFormation(properties.vpcPeeringConnectionId)}):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("routeTableId","RouteTableId",cfn_parse.FromCloudFormation.getString(properties.RouteTableId)),ret.addPropertyResult("carrierGatewayId","CarrierGatewayId",properties.CarrierGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.CarrierGatewayId):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("destinationIpv6CidrBlock","DestinationIpv6CidrBlock",properties.DestinationIpv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationIpv6CidrBlock):void 0),ret.addPropertyResult("egressOnlyInternetGatewayId","EgressOnlyInternetGatewayId",properties.EgressOnlyInternetGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.EgressOnlyInternetGatewayId):void 0),ret.addPropertyResult("gatewayId","GatewayId",properties.GatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.GatewayId):void 0),ret.addPropertyResult("instanceId","InstanceId",properties.InstanceId!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceId):void 0),ret.addPropertyResult("localGatewayId","LocalGatewayId",properties.LocalGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.LocalGatewayId):void 0),ret.addPropertyResult("natGatewayId","NatGatewayId",properties.NatGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.NatGatewayId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpcEndpointId","VpcEndpointId",properties.VpcEndpointId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcEndpointId):void 0),ret.addPropertyResult("vpcPeeringConnectionId","VpcPeeringConnectionId",properties.VpcPeeringConnectionId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcPeeringConnectionId):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_ec2_CfnRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRoute),error}cdk.requireProperty(props,"routeTableId",this),this.routeTableId=props.routeTableId,this.carrierGatewayId=props.carrierGatewayId,this.destinationCidrBlock=props.destinationCidrBlock,this.destinationIpv6CidrBlock=props.destinationIpv6CidrBlock,this.egressOnlyInternetGatewayId=props.egressOnlyInternetGatewayId,this.gatewayId=props.gatewayId,this.instanceId=props.instanceId,this.localGatewayId=props.localGatewayId,this.natGatewayId=props.natGatewayId,this.networkInterfaceId=props.networkInterfaceId,this.transitGatewayId=props.transitGatewayId,this.vpcEndpointId=props.vpcEndpointId,this.vpcPeeringConnectionId=props.vpcPeeringConnectionId}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{routeTableId:this.routeTableId,carrierGatewayId:this.carrierGatewayId,destinationCidrBlock:this.destinationCidrBlock,destinationIpv6CidrBlock:this.destinationIpv6CidrBlock,egressOnlyInternetGatewayId:this.egressOnlyInternetGatewayId,gatewayId:this.gatewayId,instanceId:this.instanceId,localGatewayId:this.localGatewayId,natGatewayId:this.natGatewayId,networkInterfaceId:this.networkInterfaceId,transitGatewayId:this.transitGatewayId,vpcEndpointId:this.vpcEndpointId,vpcPeeringConnectionId:this.vpcPeeringConnectionId}}renderProperties(props){return cfnRoutePropsToCloudFormation(props)}}exports.CfnRoute=CfnRoute,_15=JSII_RTTI_SYMBOL_1,CfnRoute[_15]={fqn:"aws-cdk-lib.aws_ec2.CfnRoute",version:"2.51.1"},CfnRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Route";function CfnRouteTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnRouteTableProps"')}function cfnRouteTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRouteTablePropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRouteTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRouteTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnRouteTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnRouteTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRouteTable),error}cdk.requireProperty(props,"vpcId",this),this.attrRouteTableId=cdk.Token.asString(this.getAtt("RouteTableId")),this.vpcId=props.vpcId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::RouteTable",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRouteTablePropsFromCloudFormation(resourceProperties),ret=new CfnRouteTable(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",CfnRouteTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,tags:this.tags.renderTags()}}renderProperties(props){return cfnRouteTablePropsToCloudFormation(props)}}exports.CfnRouteTable=CfnRouteTable,_16=JSII_RTTI_SYMBOL_1,CfnRouteTable[_16]={fqn:"aws-cdk-lib.aws_ec2.CfnRouteTable",version:"2.51.1"},CfnRouteTable.CFN_RESOURCE_TYPE_NAME="AWS::EC2::RouteTable";function CfnSecurityGroupPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupDescription",cdk.requiredValidator)(properties.groupDescription)),errors.collect(cdk.propertyValidator("groupDescription",cdk.validateString)(properties.groupDescription)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("securityGroupEgress",cdk.listValidator(CfnSecurityGroup_EgressPropertyValidator))(properties.securityGroupEgress)),errors.collect(cdk.propertyValidator("securityGroupIngress",cdk.listValidator(CfnSecurityGroup_IngressPropertyValidator))(properties.securityGroupIngress)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnSecurityGroupProps"')}function cfnSecurityGroupPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroupPropsValidator(properties).assertSuccess(),{GroupDescription:cdk.stringToCloudFormation(properties.groupDescription),GroupName:cdk.stringToCloudFormation(properties.groupName),SecurityGroupEgress:cdk.listMapper(cfnSecurityGroupEgressPropertyToCloudFormation)(properties.securityGroupEgress),SecurityGroupIngress:cdk.listMapper(cfnSecurityGroupIngressPropertyToCloudFormation)(properties.securityGroupIngress),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VpcId:cdk.stringToCloudFormation(properties.vpcId)}):properties}function CfnSecurityGroupPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupDescription","GroupDescription",cfn_parse.FromCloudFormation.getString(properties.GroupDescription)),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("securityGroupEgress","SecurityGroupEgress",properties.SecurityGroupEgress!=null?cfn_parse.FromCloudFormation.getArray(CfnSecurityGroupEgressPropertyFromCloudFormation)(properties.SecurityGroupEgress):void 0),ret.addPropertyResult("securityGroupIngress","SecurityGroupIngress",properties.SecurityGroupIngress!=null?cfn_parse.FromCloudFormation.getArray(CfnSecurityGroupIngressPropertyFromCloudFormation)(properties.SecurityGroupIngress):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("vpcId","VpcId",properties.VpcId!=null?cfn_parse.FromCloudFormation.getString(properties.VpcId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroup extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSecurityGroupProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroup),error}cdk.requireProperty(props,"groupDescription",this),this.attrGroupId=cdk.Token.asString(this.getAtt("GroupId")),this.attrVpcId=cdk.Token.asString(this.getAtt("VpcId")),this.groupDescription=props.groupDescription,this.groupName=props.groupName,this.securityGroupEgress=props.securityGroupEgress,this.securityGroupIngress=props.securityGroupIngress,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::SecurityGroup",props.tags,{tagPropertyName:"tags"}),this.vpcId=props.vpcId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupPropsFromCloudFormation(resourceProperties),ret=new CfnSecurityGroup(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",CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupDescription:this.groupDescription,groupName:this.groupName,securityGroupEgress:this.securityGroupEgress,securityGroupIngress:this.securityGroupIngress,tags:this.tags.renderTags(),vpcId:this.vpcId}}renderProperties(props){return cfnSecurityGroupPropsToCloudFormation(props)}}exports.CfnSecurityGroup=CfnSecurityGroup,_17=JSII_RTTI_SYMBOL_1,CfnSecurityGroup[_17]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroup",version:"2.51.1"},CfnSecurityGroup.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroup";function CfnSecurityGroup_EgressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationPrefixListId",cdk.validateString)(properties.destinationPrefixListId)),errors.collect(cdk.propertyValidator("destinationSecurityGroupId",cdk.validateString)(properties.destinationSecurityGroupId)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "EgressProperty"')}function cfnSecurityGroupEgressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroup_EgressPropertyValidator(properties).assertSuccess(),{CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),DestinationPrefixListId:cdk.stringToCloudFormation(properties.destinationPrefixListId),DestinationSecurityGroupId:cdk.stringToCloudFormation(properties.destinationSecurityGroupId),FromPort:cdk.numberToCloudFormation(properties.fromPort),IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupEgressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPrefixListId","DestinationPrefixListId",properties.DestinationPrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationPrefixListId):void 0),ret.addPropertyResult("destinationSecurityGroupId","DestinationSecurityGroupId",properties.DestinationSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationSecurityGroupId):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityGroup_IngressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("sourcePrefixListId",cdk.validateString)(properties.sourcePrefixListId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupId",cdk.validateString)(properties.sourceSecurityGroupId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupName",cdk.validateString)(properties.sourceSecurityGroupName)),errors.collect(cdk.propertyValidator("sourceSecurityGroupOwnerId",cdk.validateString)(properties.sourceSecurityGroupOwnerId)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "IngressProperty"')}function cfnSecurityGroupIngressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroup_IngressPropertyValidator(properties).assertSuccess(),{CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),FromPort:cdk.numberToCloudFormation(properties.fromPort),IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),SourcePrefixListId:cdk.stringToCloudFormation(properties.sourcePrefixListId),SourceSecurityGroupId:cdk.stringToCloudFormation(properties.sourceSecurityGroupId),SourceSecurityGroupName:cdk.stringToCloudFormation(properties.sourceSecurityGroupName),SourceSecurityGroupOwnerId:cdk.stringToCloudFormation(properties.sourceSecurityGroupOwnerId),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupIngressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("sourcePrefixListId","SourcePrefixListId",properties.SourcePrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.SourcePrefixListId):void 0),ret.addPropertyResult("sourceSecurityGroupId","SourceSecurityGroupId",properties.SourceSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupId):void 0),ret.addPropertyResult("sourceSecurityGroupName","SourceSecurityGroupName",properties.SourceSecurityGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupName):void 0),ret.addPropertyResult("sourceSecurityGroupOwnerId","SourceSecurityGroupOwnerId",properties.SourceSecurityGroupOwnerId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupOwnerId):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSecurityGroupEgressPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationPrefixListId",cdk.validateString)(properties.destinationPrefixListId)),errors.collect(cdk.propertyValidator("destinationSecurityGroupId",cdk.validateString)(properties.destinationSecurityGroupId)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("groupId",cdk.requiredValidator)(properties.groupId)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "CfnSecurityGroupEgressProps"')}function cfnSecurityGroupEgressPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroupEgressPropsValidator(properties).assertSuccess(),{GroupId:cdk.stringToCloudFormation(properties.groupId),IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),DestinationPrefixListId:cdk.stringToCloudFormation(properties.destinationPrefixListId),DestinationSecurityGroupId:cdk.stringToCloudFormation(properties.destinationSecurityGroupId),FromPort:cdk.numberToCloudFormation(properties.fromPort),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupEgressPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupId","GroupId",cfn_parse.FromCloudFormation.getString(properties.GroupId)),ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPrefixListId","DestinationPrefixListId",properties.DestinationPrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationPrefixListId):void 0),ret.addPropertyResult("destinationSecurityGroupId","DestinationSecurityGroupId",properties.DestinationSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationSecurityGroupId):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroupEgress extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSecurityGroupEgressProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroupEgress),error}cdk.requireProperty(props,"groupId",this),cdk.requireProperty(props,"ipProtocol",this),this.groupId=props.groupId,this.ipProtocol=props.ipProtocol,this.cidrIp=props.cidrIp,this.cidrIpv6=props.cidrIpv6,this.description=props.description,this.destinationPrefixListId=props.destinationPrefixListId,this.destinationSecurityGroupId=props.destinationSecurityGroupId,this.fromPort=props.fromPort,this.toPort=props.toPort}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupEgressPropsFromCloudFormation(resourceProperties),ret=new CfnSecurityGroupEgress(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",CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupId:this.groupId,ipProtocol:this.ipProtocol,cidrIp:this.cidrIp,cidrIpv6:this.cidrIpv6,description:this.description,destinationPrefixListId:this.destinationPrefixListId,destinationSecurityGroupId:this.destinationSecurityGroupId,fromPort:this.fromPort,toPort:this.toPort}}renderProperties(props){return cfnSecurityGroupEgressPropsToCloudFormation(props)}}exports.CfnSecurityGroupEgress=CfnSecurityGroupEgress,_18=JSII_RTTI_SYMBOL_1,CfnSecurityGroupEgress[_18]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroupEgress",version:"2.51.1"},CfnSecurityGroupEgress.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroupEgress";function CfnSecurityGroupIngressPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrIp",cdk.validateString)(properties.cidrIp)),errors.collect(cdk.propertyValidator("cidrIpv6",cdk.validateString)(properties.cidrIpv6)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.requiredValidator)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("ipProtocol",cdk.validateString)(properties.ipProtocol)),errors.collect(cdk.propertyValidator("sourcePrefixListId",cdk.validateString)(properties.sourcePrefixListId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupId",cdk.validateString)(properties.sourceSecurityGroupId)),errors.collect(cdk.propertyValidator("sourceSecurityGroupName",cdk.validateString)(properties.sourceSecurityGroupName)),errors.collect(cdk.propertyValidator("sourceSecurityGroupOwnerId",cdk.validateString)(properties.sourceSecurityGroupOwnerId)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "CfnSecurityGroupIngressProps"')}function cfnSecurityGroupIngressPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSecurityGroupIngressPropsValidator(properties).assertSuccess(),{IpProtocol:cdk.stringToCloudFormation(properties.ipProtocol),CidrIp:cdk.stringToCloudFormation(properties.cidrIp),CidrIpv6:cdk.stringToCloudFormation(properties.cidrIpv6),Description:cdk.stringToCloudFormation(properties.description),FromPort:cdk.numberToCloudFormation(properties.fromPort),GroupId:cdk.stringToCloudFormation(properties.groupId),GroupName:cdk.stringToCloudFormation(properties.groupName),SourcePrefixListId:cdk.stringToCloudFormation(properties.sourcePrefixListId),SourceSecurityGroupId:cdk.stringToCloudFormation(properties.sourceSecurityGroupId),SourceSecurityGroupName:cdk.stringToCloudFormation(properties.sourceSecurityGroupName),SourceSecurityGroupOwnerId:cdk.stringToCloudFormation(properties.sourceSecurityGroupOwnerId),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnSecurityGroupIngressPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipProtocol","IpProtocol",cfn_parse.FromCloudFormation.getString(properties.IpProtocol)),ret.addPropertyResult("cidrIp","CidrIp",properties.CidrIp!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIp):void 0),ret.addPropertyResult("cidrIpv6","CidrIpv6",properties.CidrIpv6!=null?cfn_parse.FromCloudFormation.getString(properties.CidrIpv6):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("fromPort","FromPort",properties.FromPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.FromPort):void 0),ret.addPropertyResult("groupId","GroupId",properties.GroupId!=null?cfn_parse.FromCloudFormation.getString(properties.GroupId):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("sourcePrefixListId","SourcePrefixListId",properties.SourcePrefixListId!=null?cfn_parse.FromCloudFormation.getString(properties.SourcePrefixListId):void 0),ret.addPropertyResult("sourceSecurityGroupId","SourceSecurityGroupId",properties.SourceSecurityGroupId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupId):void 0),ret.addPropertyResult("sourceSecurityGroupName","SourceSecurityGroupName",properties.SourceSecurityGroupName!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupName):void 0),ret.addPropertyResult("sourceSecurityGroupOwnerId","SourceSecurityGroupOwnerId",properties.SourceSecurityGroupOwnerId!=null?cfn_parse.FromCloudFormation.getString(properties.SourceSecurityGroupOwnerId):void 0),ret.addPropertyResult("toPort","ToPort",properties.ToPort!=null?cfn_parse.FromCloudFormation.getNumber(properties.ToPort):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSecurityGroupIngress extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSecurityGroupIngressProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSecurityGroupIngress),error}cdk.requireProperty(props,"ipProtocol",this),this.ipProtocol=props.ipProtocol,this.cidrIp=props.cidrIp,this.cidrIpv6=props.cidrIpv6,this.description=props.description,this.fromPort=props.fromPort,this.groupId=props.groupId,this.groupName=props.groupName,this.sourcePrefixListId=props.sourcePrefixListId,this.sourceSecurityGroupId=props.sourceSecurityGroupId,this.sourceSecurityGroupName=props.sourceSecurityGroupName,this.sourceSecurityGroupOwnerId=props.sourceSecurityGroupOwnerId,this.toPort=props.toPort}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSecurityGroupIngressPropsFromCloudFormation(resourceProperties),ret=new CfnSecurityGroupIngress(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",CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipProtocol:this.ipProtocol,cidrIp:this.cidrIp,cidrIpv6:this.cidrIpv6,description:this.description,fromPort:this.fromPort,groupId:this.groupId,groupName:this.groupName,sourcePrefixListId:this.sourcePrefixListId,sourceSecurityGroupId:this.sourceSecurityGroupId,sourceSecurityGroupName:this.sourceSecurityGroupName,sourceSecurityGroupOwnerId:this.sourceSecurityGroupOwnerId,toPort:this.toPort}}renderProperties(props){return cfnSecurityGroupIngressPropsToCloudFormation(props)}}exports.CfnSecurityGroupIngress=CfnSecurityGroupIngress,_19=JSII_RTTI_SYMBOL_1,CfnSecurityGroupIngress[_19]={fqn:"aws-cdk-lib.aws_ec2.CfnSecurityGroupIngress",version:"2.51.1"},CfnSecurityGroupIngress.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SecurityGroupIngress";function CfnSpotFleetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("spotFleetRequestConfigData",cdk.requiredValidator)(properties.spotFleetRequestConfigData)),errors.collect(cdk.propertyValidator("spotFleetRequestConfigData",CfnSpotFleet_SpotFleetRequestConfigDataPropertyValidator)(properties.spotFleetRequestConfigData)),errors.wrap('supplied properties not correct for "CfnSpotFleetProps"')}function cfnSpotFleetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleetPropsValidator(properties).assertSuccess(),{SpotFleetRequestConfigData:cfnSpotFleetSpotFleetRequestConfigDataPropertyToCloudFormation(properties.spotFleetRequestConfigData)}):properties}function CfnSpotFleetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("spotFleetRequestConfigData","SpotFleetRequestConfigData",CfnSpotFleetSpotFleetRequestConfigDataPropertyFromCloudFormation(properties.SpotFleetRequestConfigData)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSpotFleet extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSpotFleet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSpotFleetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSpotFleet),error}cdk.requireProperty(props,"spotFleetRequestConfigData",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.spotFleetRequestConfigData=props.spotFleetRequestConfigData}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSpotFleetPropsFromCloudFormation(resourceProperties),ret=new CfnSpotFleet(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",CfnSpotFleet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{spotFleetRequestConfigData:this.spotFleetRequestConfigData}}renderProperties(props){return cfnSpotFleetPropsToCloudFormation(props)}}exports.CfnSpotFleet=CfnSpotFleet,_20=JSII_RTTI_SYMBOL_1,CfnSpotFleet[_20]={fqn:"aws-cdk-lib.aws_ec2.CfnSpotFleet",version:"2.51.1"},CfnSpotFleet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SpotFleet";function CfnSpotFleet_AcceleratorCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorCountRequestProperty"')}function cfnSpotFleetAcceleratorCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_AcceleratorCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetAcceleratorCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "AcceleratorTotalMemoryMiBRequestProperty"')}function cfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_AcceleratorTotalMemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "BaselineEbsBandwidthMbpsRequestProperty"')}function cfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_BaselineEbsBandwidthMbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_BlockDeviceMappingPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deviceName",cdk.requiredValidator)(properties.deviceName)),errors.collect(cdk.propertyValidator("deviceName",cdk.validateString)(properties.deviceName)),errors.collect(cdk.propertyValidator("ebs",CfnSpotFleet_EbsBlockDevicePropertyValidator)(properties.ebs)),errors.collect(cdk.propertyValidator("noDevice",cdk.validateString)(properties.noDevice)),errors.collect(cdk.propertyValidator("virtualName",cdk.validateString)(properties.virtualName)),errors.wrap('supplied properties not correct for "BlockDeviceMappingProperty"')}function cfnSpotFleetBlockDeviceMappingPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_BlockDeviceMappingPropertyValidator(properties).assertSuccess(),{DeviceName:cdk.stringToCloudFormation(properties.deviceName),Ebs:cfnSpotFleetEbsBlockDevicePropertyToCloudFormation(properties.ebs),NoDevice:cdk.stringToCloudFormation(properties.noDevice),VirtualName:cdk.stringToCloudFormation(properties.virtualName)}):properties}function CfnSpotFleetBlockDeviceMappingPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deviceName","DeviceName",cfn_parse.FromCloudFormation.getString(properties.DeviceName)),ret.addPropertyResult("ebs","Ebs",properties.Ebs!=null?CfnSpotFleetEbsBlockDevicePropertyFromCloudFormation(properties.Ebs):void 0),ret.addPropertyResult("noDevice","NoDevice",properties.NoDevice!=null?cfn_parse.FromCloudFormation.getString(properties.NoDevice):void 0),ret.addPropertyResult("virtualName","VirtualName",properties.VirtualName!=null?cfn_parse.FromCloudFormation.getString(properties.VirtualName):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_ClassicLoadBalancerPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),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 "ClassicLoadBalancerProperty"')}function cfnSpotFleetClassicLoadBalancerPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_ClassicLoadBalancerPropertyValidator(properties).assertSuccess(),{Name:cdk.stringToCloudFormation(properties.name)}):properties}function CfnSpotFleetClassicLoadBalancerPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("name","Name",cfn_parse.FromCloudFormation.getString(properties.Name)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_ClassicLoadBalancersConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("classicLoadBalancers",cdk.requiredValidator)(properties.classicLoadBalancers)),errors.collect(cdk.propertyValidator("classicLoadBalancers",cdk.listValidator(CfnSpotFleet_ClassicLoadBalancerPropertyValidator))(properties.classicLoadBalancers)),errors.wrap('supplied properties not correct for "ClassicLoadBalancersConfigProperty"')}function cfnSpotFleetClassicLoadBalancersConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_ClassicLoadBalancersConfigPropertyValidator(properties).assertSuccess(),{ClassicLoadBalancers:cdk.listMapper(cfnSpotFleetClassicLoadBalancerPropertyToCloudFormation)(properties.classicLoadBalancers)}):properties}function CfnSpotFleetClassicLoadBalancersConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("classicLoadBalancers","ClassicLoadBalancers",cfn_parse.FromCloudFormation.getArray(CfnSpotFleetClassicLoadBalancerPropertyFromCloudFormation)(properties.ClassicLoadBalancers)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_EbsBlockDevicePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("volumeSize",cdk.validateNumber)(properties.volumeSize)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "EbsBlockDeviceProperty"')}function cfnSpotFleetEbsBlockDevicePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_EbsBlockDevicePropertyValidator(properties).assertSuccess(),{DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),VolumeSize:cdk.numberToCloudFormation(properties.volumeSize),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnSpotFleetEbsBlockDevicePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("volumeSize","VolumeSize",properties.VolumeSize!=null?cfn_parse.FromCloudFormation.getNumber(properties.VolumeSize):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_FleetLaunchTemplateSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateId",cdk.validateString)(properties.launchTemplateId)),errors.collect(cdk.propertyValidator("launchTemplateName",cdk.validateString)(properties.launchTemplateName)),errors.collect(cdk.propertyValidator("version",cdk.requiredValidator)(properties.version)),errors.collect(cdk.propertyValidator("version",cdk.validateString)(properties.version)),errors.wrap('supplied properties not correct for "FleetLaunchTemplateSpecificationProperty"')}function cfnSpotFleetFleetLaunchTemplateSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_FleetLaunchTemplateSpecificationPropertyValidator(properties).assertSuccess(),{LaunchTemplateId:cdk.stringToCloudFormation(properties.launchTemplateId),LaunchTemplateName:cdk.stringToCloudFormation(properties.launchTemplateName),Version:cdk.stringToCloudFormation(properties.version)}):properties}function CfnSpotFleetFleetLaunchTemplateSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateId","LaunchTemplateId",properties.LaunchTemplateId!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateId):void 0),ret.addPropertyResult("launchTemplateName","LaunchTemplateName",properties.LaunchTemplateName!=null?cfn_parse.FromCloudFormation.getString(properties.LaunchTemplateName):void 0),ret.addPropertyResult("version","Version",cfn_parse.FromCloudFormation.getString(properties.Version)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_GroupIdentifierPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupId",cdk.requiredValidator)(properties.groupId)),errors.collect(cdk.propertyValidator("groupId",cdk.validateString)(properties.groupId)),errors.wrap('supplied properties not correct for "GroupIdentifierProperty"')}function cfnSpotFleetGroupIdentifierPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_GroupIdentifierPropertyValidator(properties).assertSuccess(),{GroupId:cdk.stringToCloudFormation(properties.groupId)}):properties}function CfnSpotFleetGroupIdentifierPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupId","GroupId",cfn_parse.FromCloudFormation.getString(properties.GroupId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_IamInstanceProfileSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.wrap('supplied properties not correct for "IamInstanceProfileSpecificationProperty"')}function cfnSpotFleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_IamInstanceProfileSpecificationPropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn)}):properties}function CfnSpotFleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse.FromCloudFormation.getString(properties.Arn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_InstanceIpv6AddressPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6Address",cdk.requiredValidator)(properties.ipv6Address)),errors.collect(cdk.propertyValidator("ipv6Address",cdk.validateString)(properties.ipv6Address)),errors.wrap('supplied properties not correct for "InstanceIpv6AddressProperty"')}function cfnSpotFleetInstanceIpv6AddressPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_InstanceIpv6AddressPropertyValidator(properties).assertSuccess(),{Ipv6Address:cdk.stringToCloudFormation(properties.ipv6Address)}):properties}function CfnSpotFleetInstanceIpv6AddressPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6Address","Ipv6Address",cfn_parse.FromCloudFormation.getString(properties.Ipv6Address)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_InstanceNetworkInterfaceSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("associatePublicIpAddress",cdk.validateBoolean)(properties.associatePublicIpAddress)),errors.collect(cdk.propertyValidator("deleteOnTermination",cdk.validateBoolean)(properties.deleteOnTermination)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("deviceIndex",cdk.validateNumber)(properties.deviceIndex)),errors.collect(cdk.propertyValidator("groups",cdk.listValidator(cdk.validateString))(properties.groups)),errors.collect(cdk.propertyValidator("ipv6AddressCount",cdk.validateNumber)(properties.ipv6AddressCount)),errors.collect(cdk.propertyValidator("ipv6Addresses",cdk.listValidator(CfnSpotFleet_InstanceIpv6AddressPropertyValidator))(properties.ipv6Addresses)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("privateIpAddresses",cdk.listValidator(CfnSpotFleet_PrivateIpAddressSpecificationPropertyValidator))(properties.privateIpAddresses)),errors.collect(cdk.propertyValidator("secondaryPrivateIpAddressCount",cdk.validateNumber)(properties.secondaryPrivateIpAddressCount)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "InstanceNetworkInterfaceSpecificationProperty"')}function cfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_InstanceNetworkInterfaceSpecificationPropertyValidator(properties).assertSuccess(),{AssociatePublicIpAddress:cdk.booleanToCloudFormation(properties.associatePublicIpAddress),DeleteOnTermination:cdk.booleanToCloudFormation(properties.deleteOnTermination),Description:cdk.stringToCloudFormation(properties.description),DeviceIndex:cdk.numberToCloudFormation(properties.deviceIndex),Groups:cdk.listMapper(cdk.stringToCloudFormation)(properties.groups),Ipv6AddressCount:cdk.numberToCloudFormation(properties.ipv6AddressCount),Ipv6Addresses:cdk.listMapper(cfnSpotFleetInstanceIpv6AddressPropertyToCloudFormation)(properties.ipv6Addresses),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),PrivateIpAddresses:cdk.listMapper(cfnSpotFleetPrivateIpAddressSpecificationPropertyToCloudFormation)(properties.privateIpAddresses),SecondaryPrivateIpAddressCount:cdk.numberToCloudFormation(properties.secondaryPrivateIpAddressCount),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("associatePublicIpAddress","AssociatePublicIpAddress",properties.AssociatePublicIpAddress!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssociatePublicIpAddress):void 0),ret.addPropertyResult("deleteOnTermination","DeleteOnTermination",properties.DeleteOnTermination!=null?cfn_parse.FromCloudFormation.getBoolean(properties.DeleteOnTermination):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("deviceIndex","DeviceIndex",properties.DeviceIndex!=null?cfn_parse.FromCloudFormation.getNumber(properties.DeviceIndex):void 0),ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Groups):void 0),ret.addPropertyResult("ipv6AddressCount","Ipv6AddressCount",properties.Ipv6AddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6AddressCount):void 0),ret.addPropertyResult("ipv6Addresses","Ipv6Addresses",properties.Ipv6Addresses!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetInstanceIpv6AddressPropertyFromCloudFormation)(properties.Ipv6Addresses):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("privateIpAddresses","PrivateIpAddresses",properties.PrivateIpAddresses!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetPrivateIpAddressSpecificationPropertyFromCloudFormation)(properties.PrivateIpAddresses):void 0),ret.addPropertyResult("secondaryPrivateIpAddressCount","SecondaryPrivateIpAddressCount",properties.SecondaryPrivateIpAddressCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.SecondaryPrivateIpAddressCount):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_InstanceRequirementsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceleratorCount",CfnSpotFleet_AcceleratorCountRequestPropertyValidator)(properties.acceleratorCount)),errors.collect(cdk.propertyValidator("acceleratorManufacturers",cdk.listValidator(cdk.validateString))(properties.acceleratorManufacturers)),errors.collect(cdk.propertyValidator("acceleratorNames",cdk.listValidator(cdk.validateString))(properties.acceleratorNames)),errors.collect(cdk.propertyValidator("acceleratorTotalMemoryMiB",CfnSpotFleet_AcceleratorTotalMemoryMiBRequestPropertyValidator)(properties.acceleratorTotalMemoryMiB)),errors.collect(cdk.propertyValidator("acceleratorTypes",cdk.listValidator(cdk.validateString))(properties.acceleratorTypes)),errors.collect(cdk.propertyValidator("allowedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.allowedInstanceTypes)),errors.collect(cdk.propertyValidator("bareMetal",cdk.validateString)(properties.bareMetal)),errors.collect(cdk.propertyValidator("baselineEbsBandwidthMbps",CfnSpotFleet_BaselineEbsBandwidthMbpsRequestPropertyValidator)(properties.baselineEbsBandwidthMbps)),errors.collect(cdk.propertyValidator("burstablePerformance",cdk.validateString)(properties.burstablePerformance)),errors.collect(cdk.propertyValidator("cpuManufacturers",cdk.listValidator(cdk.validateString))(properties.cpuManufacturers)),errors.collect(cdk.propertyValidator("excludedInstanceTypes",cdk.listValidator(cdk.validateString))(properties.excludedInstanceTypes)),errors.collect(cdk.propertyValidator("instanceGenerations",cdk.listValidator(cdk.validateString))(properties.instanceGenerations)),errors.collect(cdk.propertyValidator("localStorage",cdk.validateString)(properties.localStorage)),errors.collect(cdk.propertyValidator("localStorageTypes",cdk.listValidator(cdk.validateString))(properties.localStorageTypes)),errors.collect(cdk.propertyValidator("memoryGiBPerVCpu",CfnSpotFleet_MemoryGiBPerVCpuRequestPropertyValidator)(properties.memoryGiBPerVCpu)),errors.collect(cdk.propertyValidator("memoryMiB",CfnSpotFleet_MemoryMiBRequestPropertyValidator)(properties.memoryMiB)),errors.collect(cdk.propertyValidator("networkBandwidthGbps",CfnSpotFleet_NetworkBandwidthGbpsRequestPropertyValidator)(properties.networkBandwidthGbps)),errors.collect(cdk.propertyValidator("networkInterfaceCount",CfnSpotFleet_NetworkInterfaceCountRequestPropertyValidator)(properties.networkInterfaceCount)),errors.collect(cdk.propertyValidator("onDemandMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.onDemandMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("requireHibernateSupport",cdk.validateBoolean)(properties.requireHibernateSupport)),errors.collect(cdk.propertyValidator("spotMaxPricePercentageOverLowestPrice",cdk.validateNumber)(properties.spotMaxPricePercentageOverLowestPrice)),errors.collect(cdk.propertyValidator("totalLocalStorageGb",CfnSpotFleet_TotalLocalStorageGBRequestPropertyValidator)(properties.totalLocalStorageGb)),errors.collect(cdk.propertyValidator("vCpuCount",CfnSpotFleet_VCpuCountRangeRequestPropertyValidator)(properties.vCpuCount)),errors.wrap('supplied properties not correct for "InstanceRequirementsRequestProperty"')}function cfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_InstanceRequirementsRequestPropertyValidator(properties).assertSuccess(),{AcceleratorCount:cfnSpotFleetAcceleratorCountRequestPropertyToCloudFormation(properties.acceleratorCount),AcceleratorManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorManufacturers),AcceleratorNames:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorNames),AcceleratorTotalMemoryMiB:cfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyToCloudFormation(properties.acceleratorTotalMemoryMiB),AcceleratorTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.acceleratorTypes),AllowedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedInstanceTypes),BareMetal:cdk.stringToCloudFormation(properties.bareMetal),BaselineEbsBandwidthMbps:cfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyToCloudFormation(properties.baselineEbsBandwidthMbps),BurstablePerformance:cdk.stringToCloudFormation(properties.burstablePerformance),CpuManufacturers:cdk.listMapper(cdk.stringToCloudFormation)(properties.cpuManufacturers),ExcludedInstanceTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.excludedInstanceTypes),InstanceGenerations:cdk.listMapper(cdk.stringToCloudFormation)(properties.instanceGenerations),LocalStorage:cdk.stringToCloudFormation(properties.localStorage),LocalStorageTypes:cdk.listMapper(cdk.stringToCloudFormation)(properties.localStorageTypes),MemoryGiBPerVCpu:cfnSpotFleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties.memoryGiBPerVCpu),MemoryMiB:cfnSpotFleetMemoryMiBRequestPropertyToCloudFormation(properties.memoryMiB),NetworkBandwidthGbps:cfnSpotFleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties.networkBandwidthGbps),NetworkInterfaceCount:cfnSpotFleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties.networkInterfaceCount),OnDemandMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.onDemandMaxPricePercentageOverLowestPrice),RequireHibernateSupport:cdk.booleanToCloudFormation(properties.requireHibernateSupport),SpotMaxPricePercentageOverLowestPrice:cdk.numberToCloudFormation(properties.spotMaxPricePercentageOverLowestPrice),TotalLocalStorageGB:cfnSpotFleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties.totalLocalStorageGb),VCpuCount:cfnSpotFleetVCpuCountRangeRequestPropertyToCloudFormation(properties.vCpuCount)}):properties}function CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceleratorCount","AcceleratorCount",properties.AcceleratorCount!=null?CfnSpotFleetAcceleratorCountRequestPropertyFromCloudFormation(properties.AcceleratorCount):void 0),ret.addPropertyResult("acceleratorManufacturers","AcceleratorManufacturers",properties.AcceleratorManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorManufacturers):void 0),ret.addPropertyResult("acceleratorNames","AcceleratorNames",properties.AcceleratorNames!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorNames):void 0),ret.addPropertyResult("acceleratorTotalMemoryMiB","AcceleratorTotalMemoryMiB",properties.AcceleratorTotalMemoryMiB!=null?CfnSpotFleetAcceleratorTotalMemoryMiBRequestPropertyFromCloudFormation(properties.AcceleratorTotalMemoryMiB):void 0),ret.addPropertyResult("acceleratorTypes","AcceleratorTypes",properties.AcceleratorTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AcceleratorTypes):void 0),ret.addPropertyResult("allowedInstanceTypes","AllowedInstanceTypes",properties.AllowedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedInstanceTypes):void 0),ret.addPropertyResult("bareMetal","BareMetal",properties.BareMetal!=null?cfn_parse.FromCloudFormation.getString(properties.BareMetal):void 0),ret.addPropertyResult("baselineEbsBandwidthMbps","BaselineEbsBandwidthMbps",properties.BaselineEbsBandwidthMbps!=null?CfnSpotFleetBaselineEbsBandwidthMbpsRequestPropertyFromCloudFormation(properties.BaselineEbsBandwidthMbps):void 0),ret.addPropertyResult("burstablePerformance","BurstablePerformance",properties.BurstablePerformance!=null?cfn_parse.FromCloudFormation.getString(properties.BurstablePerformance):void 0),ret.addPropertyResult("cpuManufacturers","CpuManufacturers",properties.CpuManufacturers!=null?cfn_parse.FromCloudFormation.getStringArray(properties.CpuManufacturers):void 0),ret.addPropertyResult("excludedInstanceTypes","ExcludedInstanceTypes",properties.ExcludedInstanceTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.ExcludedInstanceTypes):void 0),ret.addPropertyResult("instanceGenerations","InstanceGenerations",properties.InstanceGenerations!=null?cfn_parse.FromCloudFormation.getStringArray(properties.InstanceGenerations):void 0),ret.addPropertyResult("localStorage","LocalStorage",properties.LocalStorage!=null?cfn_parse.FromCloudFormation.getString(properties.LocalStorage):void 0),ret.addPropertyResult("localStorageTypes","LocalStorageTypes",properties.LocalStorageTypes!=null?cfn_parse.FromCloudFormation.getStringArray(properties.LocalStorageTypes):void 0),ret.addPropertyResult("memoryGiBPerVCpu","MemoryGiBPerVCpu",properties.MemoryGiBPerVCpu!=null?CfnSpotFleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties.MemoryGiBPerVCpu):void 0),ret.addPropertyResult("memoryMiB","MemoryMiB",properties.MemoryMiB!=null?CfnSpotFleetMemoryMiBRequestPropertyFromCloudFormation(properties.MemoryMiB):void 0),ret.addPropertyResult("networkBandwidthGbps","NetworkBandwidthGbps",properties.NetworkBandwidthGbps!=null?CfnSpotFleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties.NetworkBandwidthGbps):void 0),ret.addPropertyResult("networkInterfaceCount","NetworkInterfaceCount",properties.NetworkInterfaceCount!=null?CfnSpotFleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties.NetworkInterfaceCount):void 0),ret.addPropertyResult("onDemandMaxPricePercentageOverLowestPrice","OnDemandMaxPricePercentageOverLowestPrice",properties.OnDemandMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("requireHibernateSupport","RequireHibernateSupport",properties.RequireHibernateSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.RequireHibernateSupport):void 0),ret.addPropertyResult("spotMaxPricePercentageOverLowestPrice","SpotMaxPricePercentageOverLowestPrice",properties.SpotMaxPricePercentageOverLowestPrice!=null?cfn_parse.FromCloudFormation.getNumber(properties.SpotMaxPricePercentageOverLowestPrice):void 0),ret.addPropertyResult("totalLocalStorageGb","TotalLocalStorageGB",properties.TotalLocalStorageGB!=null?CfnSpotFleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties.TotalLocalStorageGB):void 0),ret.addPropertyResult("vCpuCount","VCpuCount",properties.VCpuCount!=null?CfnSpotFleetVCpuCountRangeRequestPropertyFromCloudFormation(properties.VCpuCount):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_LaunchTemplateConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("launchTemplateSpecification",CfnSpotFleet_FleetLaunchTemplateSpecificationPropertyValidator)(properties.launchTemplateSpecification)),errors.collect(cdk.propertyValidator("overrides",cdk.listValidator(CfnSpotFleet_LaunchTemplateOverridesPropertyValidator))(properties.overrides)),errors.wrap('supplied properties not correct for "LaunchTemplateConfigProperty"')}function cfnSpotFleetLaunchTemplateConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_LaunchTemplateConfigPropertyValidator(properties).assertSuccess(),{LaunchTemplateSpecification:cfnSpotFleetFleetLaunchTemplateSpecificationPropertyToCloudFormation(properties.launchTemplateSpecification),Overrides:cdk.listMapper(cfnSpotFleetLaunchTemplateOverridesPropertyToCloudFormation)(properties.overrides)}):properties}function CfnSpotFleetLaunchTemplateConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("launchTemplateSpecification","LaunchTemplateSpecification",properties.LaunchTemplateSpecification!=null?CfnSpotFleetFleetLaunchTemplateSpecificationPropertyFromCloudFormation(properties.LaunchTemplateSpecification):void 0),ret.addPropertyResult("overrides","Overrides",properties.Overrides!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetLaunchTemplateOverridesPropertyFromCloudFormation)(properties.Overrides):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_LaunchTemplateOverridesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnSpotFleet_InstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("priority",cdk.validateNumber)(properties.priority)),errors.collect(cdk.propertyValidator("spotPrice",cdk.validateString)(properties.spotPrice)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("weightedCapacity",cdk.validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "LaunchTemplateOverridesProperty"')}function cfnSpotFleetLaunchTemplateOverridesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_LaunchTemplateOverridesPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),InstanceRequirements:cfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),Priority:cdk.numberToCloudFormation(properties.priority),SpotPrice:cdk.stringToCloudFormation(properties.spotPrice),SubnetId:cdk.stringToCloudFormation(properties.subnetId),WeightedCapacity:cdk.numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnSpotFleetLaunchTemplateOverridesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("priority","Priority",properties.Priority!=null?cfn_parse.FromCloudFormation.getNumber(properties.Priority):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_LoadBalancersConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("classicLoadBalancersConfig",CfnSpotFleet_ClassicLoadBalancersConfigPropertyValidator)(properties.classicLoadBalancersConfig)),errors.collect(cdk.propertyValidator("targetGroupsConfig",CfnSpotFleet_TargetGroupsConfigPropertyValidator)(properties.targetGroupsConfig)),errors.wrap('supplied properties not correct for "LoadBalancersConfigProperty"')}function cfnSpotFleetLoadBalancersConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_LoadBalancersConfigPropertyValidator(properties).assertSuccess(),{ClassicLoadBalancersConfig:cfnSpotFleetClassicLoadBalancersConfigPropertyToCloudFormation(properties.classicLoadBalancersConfig),TargetGroupsConfig:cfnSpotFleetTargetGroupsConfigPropertyToCloudFormation(properties.targetGroupsConfig)}):properties}function CfnSpotFleetLoadBalancersConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("classicLoadBalancersConfig","ClassicLoadBalancersConfig",properties.ClassicLoadBalancersConfig!=null?CfnSpotFleetClassicLoadBalancersConfigPropertyFromCloudFormation(properties.ClassicLoadBalancersConfig):void 0),ret.addPropertyResult("targetGroupsConfig","TargetGroupsConfig",properties.TargetGroupsConfig!=null?CfnSpotFleetTargetGroupsConfigPropertyFromCloudFormation(properties.TargetGroupsConfig):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_MemoryGiBPerVCpuRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryGiBPerVCpuRequestProperty"')}function cfnSpotFleetMemoryGiBPerVCpuRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_MemoryGiBPerVCpuRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetMemoryGiBPerVCpuRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_MemoryMiBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "MemoryMiBRequestProperty"')}function cfnSpotFleetMemoryMiBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_MemoryMiBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetMemoryMiBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_NetworkBandwidthGbpsRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkBandwidthGbpsRequestProperty"')}function cfnSpotFleetNetworkBandwidthGbpsRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_NetworkBandwidthGbpsRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetNetworkBandwidthGbpsRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_NetworkInterfaceCountRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "NetworkInterfaceCountRequestProperty"')}function cfnSpotFleetNetworkInterfaceCountRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_NetworkInterfaceCountRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetNetworkInterfaceCountRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_PrivateIpAddressSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("primary",cdk.validateBoolean)(properties.primary)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.requiredValidator)(properties.privateIpAddress)),errors.collect(cdk.propertyValidator("privateIpAddress",cdk.validateString)(properties.privateIpAddress)),errors.wrap('supplied properties not correct for "PrivateIpAddressSpecificationProperty"')}function cfnSpotFleetPrivateIpAddressSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_PrivateIpAddressSpecificationPropertyValidator(properties).assertSuccess(),{Primary:cdk.booleanToCloudFormation(properties.primary),PrivateIpAddress:cdk.stringToCloudFormation(properties.privateIpAddress)}):properties}function CfnSpotFleetPrivateIpAddressSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("primary","Primary",properties.Primary!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Primary):void 0),ret.addPropertyResult("privateIpAddress","PrivateIpAddress",cfn_parse.FromCloudFormation.getString(properties.PrivateIpAddress)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotCapacityRebalancePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("replacementStrategy",cdk.validateString)(properties.replacementStrategy)),errors.collect(cdk.propertyValidator("terminationDelay",cdk.validateNumber)(properties.terminationDelay)),errors.wrap('supplied properties not correct for "SpotCapacityRebalanceProperty"')}function cfnSpotFleetSpotCapacityRebalancePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotCapacityRebalancePropertyValidator(properties).assertSuccess(),{ReplacementStrategy:cdk.stringToCloudFormation(properties.replacementStrategy),TerminationDelay:cdk.numberToCloudFormation(properties.terminationDelay)}):properties}function CfnSpotFleetSpotCapacityRebalancePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("replacementStrategy","ReplacementStrategy",properties.ReplacementStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.ReplacementStrategy):void 0),ret.addPropertyResult("terminationDelay","TerminationDelay",properties.TerminationDelay!=null?cfn_parse.FromCloudFormation.getNumber(properties.TerminationDelay):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetLaunchSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blockDeviceMappings",cdk.listValidator(CfnSpotFleet_BlockDeviceMappingPropertyValidator))(properties.blockDeviceMappings)),errors.collect(cdk.propertyValidator("ebsOptimized",cdk.validateBoolean)(properties.ebsOptimized)),errors.collect(cdk.propertyValidator("iamInstanceProfile",CfnSpotFleet_IamInstanceProfileSpecificationPropertyValidator)(properties.iamInstanceProfile)),errors.collect(cdk.propertyValidator("imageId",cdk.requiredValidator)(properties.imageId)),errors.collect(cdk.propertyValidator("imageId",cdk.validateString)(properties.imageId)),errors.collect(cdk.propertyValidator("instanceRequirements",CfnSpotFleet_InstanceRequirementsRequestPropertyValidator)(properties.instanceRequirements)),errors.collect(cdk.propertyValidator("instanceType",cdk.validateString)(properties.instanceType)),errors.collect(cdk.propertyValidator("kernelId",cdk.validateString)(properties.kernelId)),errors.collect(cdk.propertyValidator("keyName",cdk.validateString)(properties.keyName)),errors.collect(cdk.propertyValidator("monitoring",CfnSpotFleet_SpotFleetMonitoringPropertyValidator)(properties.monitoring)),errors.collect(cdk.propertyValidator("networkInterfaces",cdk.listValidator(CfnSpotFleet_InstanceNetworkInterfaceSpecificationPropertyValidator))(properties.networkInterfaces)),errors.collect(cdk.propertyValidator("placement",CfnSpotFleet_SpotPlacementPropertyValidator)(properties.placement)),errors.collect(cdk.propertyValidator("ramdiskId",cdk.validateString)(properties.ramdiskId)),errors.collect(cdk.propertyValidator("securityGroups",cdk.listValidator(CfnSpotFleet_GroupIdentifierPropertyValidator))(properties.securityGroups)),errors.collect(cdk.propertyValidator("spotPrice",cdk.validateString)(properties.spotPrice)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("userData",cdk.validateString)(properties.userData)),errors.collect(cdk.propertyValidator("weightedCapacity",cdk.validateNumber)(properties.weightedCapacity)),errors.wrap('supplied properties not correct for "SpotFleetLaunchSpecificationProperty"')}function cfnSpotFleetSpotFleetLaunchSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetLaunchSpecificationPropertyValidator(properties).assertSuccess(),{BlockDeviceMappings:cdk.listMapper(cfnSpotFleetBlockDeviceMappingPropertyToCloudFormation)(properties.blockDeviceMappings),EbsOptimized:cdk.booleanToCloudFormation(properties.ebsOptimized),IamInstanceProfile:cfnSpotFleetIamInstanceProfileSpecificationPropertyToCloudFormation(properties.iamInstanceProfile),ImageId:cdk.stringToCloudFormation(properties.imageId),InstanceRequirements:cfnSpotFleetInstanceRequirementsRequestPropertyToCloudFormation(properties.instanceRequirements),InstanceType:cdk.stringToCloudFormation(properties.instanceType),KernelId:cdk.stringToCloudFormation(properties.kernelId),KeyName:cdk.stringToCloudFormation(properties.keyName),Monitoring:cfnSpotFleetSpotFleetMonitoringPropertyToCloudFormation(properties.monitoring),NetworkInterfaces:cdk.listMapper(cfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyToCloudFormation)(properties.networkInterfaces),Placement:cfnSpotFleetSpotPlacementPropertyToCloudFormation(properties.placement),RamdiskId:cdk.stringToCloudFormation(properties.ramdiskId),SecurityGroups:cdk.listMapper(cfnSpotFleetGroupIdentifierPropertyToCloudFormation)(properties.securityGroups),SpotPrice:cdk.stringToCloudFormation(properties.spotPrice),SubnetId:cdk.stringToCloudFormation(properties.subnetId),TagSpecifications:cdk.listMapper(cfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),UserData:cdk.stringToCloudFormation(properties.userData),WeightedCapacity:cdk.numberToCloudFormation(properties.weightedCapacity)}):properties}function CfnSpotFleetSpotFleetLaunchSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("blockDeviceMappings","BlockDeviceMappings",properties.BlockDeviceMappings!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetBlockDeviceMappingPropertyFromCloudFormation)(properties.BlockDeviceMappings):void 0),ret.addPropertyResult("ebsOptimized","EbsOptimized",properties.EbsOptimized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EbsOptimized):void 0),ret.addPropertyResult("iamInstanceProfile","IamInstanceProfile",properties.IamInstanceProfile!=null?CfnSpotFleetIamInstanceProfileSpecificationPropertyFromCloudFormation(properties.IamInstanceProfile):void 0),ret.addPropertyResult("imageId","ImageId",cfn_parse.FromCloudFormation.getString(properties.ImageId)),ret.addPropertyResult("instanceRequirements","InstanceRequirements",properties.InstanceRequirements!=null?CfnSpotFleetInstanceRequirementsRequestPropertyFromCloudFormation(properties.InstanceRequirements):void 0),ret.addPropertyResult("instanceType","InstanceType",properties.InstanceType!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceType):void 0),ret.addPropertyResult("kernelId","KernelId",properties.KernelId!=null?cfn_parse.FromCloudFormation.getString(properties.KernelId):void 0),ret.addPropertyResult("keyName","KeyName",properties.KeyName!=null?cfn_parse.FromCloudFormation.getString(properties.KeyName):void 0),ret.addPropertyResult("monitoring","Monitoring",properties.Monitoring!=null?CfnSpotFleetSpotFleetMonitoringPropertyFromCloudFormation(properties.Monitoring):void 0),ret.addPropertyResult("networkInterfaces","NetworkInterfaces",properties.NetworkInterfaces!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetInstanceNetworkInterfaceSpecificationPropertyFromCloudFormation)(properties.NetworkInterfaces):void 0),ret.addPropertyResult("placement","Placement",properties.Placement!=null?CfnSpotFleetSpotPlacementPropertyFromCloudFormation(properties.Placement):void 0),ret.addPropertyResult("ramdiskId","RamdiskId",properties.RamdiskId!=null?cfn_parse.FromCloudFormation.getString(properties.RamdiskId):void 0),ret.addPropertyResult("securityGroups","SecurityGroups",properties.SecurityGroups!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetGroupIdentifierPropertyFromCloudFormation)(properties.SecurityGroups):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("subnetId","SubnetId",properties.SubnetId!=null?cfn_parse.FromCloudFormation.getString(properties.SubnetId):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("userData","UserData",properties.UserData!=null?cfn_parse.FromCloudFormation.getString(properties.UserData):void 0),ret.addPropertyResult("weightedCapacity","WeightedCapacity",properties.WeightedCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.WeightedCapacity):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetMonitoringPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("enabled",cdk.validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "SpotFleetMonitoringProperty"')}function cfnSpotFleetSpotFleetMonitoringPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetMonitoringPropertyValidator(properties).assertSuccess(),{Enabled:cdk.booleanToCloudFormation(properties.enabled)}):properties}function CfnSpotFleetSpotFleetMonitoringPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetRequestConfigDataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allocationStrategy",cdk.validateString)(properties.allocationStrategy)),errors.collect(cdk.propertyValidator("context",cdk.validateString)(properties.context)),errors.collect(cdk.propertyValidator("excessCapacityTerminationPolicy",cdk.validateString)(properties.excessCapacityTerminationPolicy)),errors.collect(cdk.propertyValidator("iamFleetRole",cdk.requiredValidator)(properties.iamFleetRole)),errors.collect(cdk.propertyValidator("iamFleetRole",cdk.validateString)(properties.iamFleetRole)),errors.collect(cdk.propertyValidator("instanceInterruptionBehavior",cdk.validateString)(properties.instanceInterruptionBehavior)),errors.collect(cdk.propertyValidator("instancePoolsToUseCount",cdk.validateNumber)(properties.instancePoolsToUseCount)),errors.collect(cdk.propertyValidator("launchSpecifications",cdk.listValidator(CfnSpotFleet_SpotFleetLaunchSpecificationPropertyValidator))(properties.launchSpecifications)),errors.collect(cdk.propertyValidator("launchTemplateConfigs",cdk.listValidator(CfnSpotFleet_LaunchTemplateConfigPropertyValidator))(properties.launchTemplateConfigs)),errors.collect(cdk.propertyValidator("loadBalancersConfig",CfnSpotFleet_LoadBalancersConfigPropertyValidator)(properties.loadBalancersConfig)),errors.collect(cdk.propertyValidator("onDemandAllocationStrategy",cdk.validateString)(properties.onDemandAllocationStrategy)),errors.collect(cdk.propertyValidator("onDemandMaxTotalPrice",cdk.validateString)(properties.onDemandMaxTotalPrice)),errors.collect(cdk.propertyValidator("onDemandTargetCapacity",cdk.validateNumber)(properties.onDemandTargetCapacity)),errors.collect(cdk.propertyValidator("replaceUnhealthyInstances",cdk.validateBoolean)(properties.replaceUnhealthyInstances)),errors.collect(cdk.propertyValidator("spotMaintenanceStrategies",CfnSpotFleet_SpotMaintenanceStrategiesPropertyValidator)(properties.spotMaintenanceStrategies)),errors.collect(cdk.propertyValidator("spotMaxTotalPrice",cdk.validateString)(properties.spotMaxTotalPrice)),errors.collect(cdk.propertyValidator("spotPrice",cdk.validateString)(properties.spotPrice)),errors.collect(cdk.propertyValidator("tagSpecifications",cdk.listValidator(CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator))(properties.tagSpecifications)),errors.collect(cdk.propertyValidator("targetCapacity",cdk.requiredValidator)(properties.targetCapacity)),errors.collect(cdk.propertyValidator("targetCapacity",cdk.validateNumber)(properties.targetCapacity)),errors.collect(cdk.propertyValidator("targetCapacityUnitType",cdk.validateString)(properties.targetCapacityUnitType)),errors.collect(cdk.propertyValidator("terminateInstancesWithExpiration",cdk.validateBoolean)(properties.terminateInstancesWithExpiration)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.collect(cdk.propertyValidator("validFrom",cdk.validateString)(properties.validFrom)),errors.collect(cdk.propertyValidator("validUntil",cdk.validateString)(properties.validUntil)),errors.wrap('supplied properties not correct for "SpotFleetRequestConfigDataProperty"')}function cfnSpotFleetSpotFleetRequestConfigDataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetRequestConfigDataPropertyValidator(properties).assertSuccess(),{AllocationStrategy:cdk.stringToCloudFormation(properties.allocationStrategy),Context:cdk.stringToCloudFormation(properties.context),ExcessCapacityTerminationPolicy:cdk.stringToCloudFormation(properties.excessCapacityTerminationPolicy),IamFleetRole:cdk.stringToCloudFormation(properties.iamFleetRole),InstanceInterruptionBehavior:cdk.stringToCloudFormation(properties.instanceInterruptionBehavior),InstancePoolsToUseCount:cdk.numberToCloudFormation(properties.instancePoolsToUseCount),LaunchSpecifications:cdk.listMapper(cfnSpotFleetSpotFleetLaunchSpecificationPropertyToCloudFormation)(properties.launchSpecifications),LaunchTemplateConfigs:cdk.listMapper(cfnSpotFleetLaunchTemplateConfigPropertyToCloudFormation)(properties.launchTemplateConfigs),LoadBalancersConfig:cfnSpotFleetLoadBalancersConfigPropertyToCloudFormation(properties.loadBalancersConfig),OnDemandAllocationStrategy:cdk.stringToCloudFormation(properties.onDemandAllocationStrategy),OnDemandMaxTotalPrice:cdk.stringToCloudFormation(properties.onDemandMaxTotalPrice),OnDemandTargetCapacity:cdk.numberToCloudFormation(properties.onDemandTargetCapacity),ReplaceUnhealthyInstances:cdk.booleanToCloudFormation(properties.replaceUnhealthyInstances),SpotMaintenanceStrategies:cfnSpotFleetSpotMaintenanceStrategiesPropertyToCloudFormation(properties.spotMaintenanceStrategies),SpotMaxTotalPrice:cdk.stringToCloudFormation(properties.spotMaxTotalPrice),SpotPrice:cdk.stringToCloudFormation(properties.spotPrice),TagSpecifications:cdk.listMapper(cfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation)(properties.tagSpecifications),TargetCapacity:cdk.numberToCloudFormation(properties.targetCapacity),TargetCapacityUnitType:cdk.stringToCloudFormation(properties.targetCapacityUnitType),TerminateInstancesWithExpiration:cdk.booleanToCloudFormation(properties.terminateInstancesWithExpiration),Type:cdk.stringToCloudFormation(properties.type),ValidFrom:cdk.stringToCloudFormation(properties.validFrom),ValidUntil:cdk.stringToCloudFormation(properties.validUntil)}):properties}function CfnSpotFleetSpotFleetRequestConfigDataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("allocationStrategy","AllocationStrategy",properties.AllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.AllocationStrategy):void 0),ret.addPropertyResult("context","Context",properties.Context!=null?cfn_parse.FromCloudFormation.getString(properties.Context):void 0),ret.addPropertyResult("excessCapacityTerminationPolicy","ExcessCapacityTerminationPolicy",properties.ExcessCapacityTerminationPolicy!=null?cfn_parse.FromCloudFormation.getString(properties.ExcessCapacityTerminationPolicy):void 0),ret.addPropertyResult("iamFleetRole","IamFleetRole",cfn_parse.FromCloudFormation.getString(properties.IamFleetRole)),ret.addPropertyResult("instanceInterruptionBehavior","InstanceInterruptionBehavior",properties.InstanceInterruptionBehavior!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceInterruptionBehavior):void 0),ret.addPropertyResult("instancePoolsToUseCount","InstancePoolsToUseCount",properties.InstancePoolsToUseCount!=null?cfn_parse.FromCloudFormation.getNumber(properties.InstancePoolsToUseCount):void 0),ret.addPropertyResult("launchSpecifications","LaunchSpecifications",properties.LaunchSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetSpotFleetLaunchSpecificationPropertyFromCloudFormation)(properties.LaunchSpecifications):void 0),ret.addPropertyResult("launchTemplateConfigs","LaunchTemplateConfigs",properties.LaunchTemplateConfigs!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetLaunchTemplateConfigPropertyFromCloudFormation)(properties.LaunchTemplateConfigs):void 0),ret.addPropertyResult("loadBalancersConfig","LoadBalancersConfig",properties.LoadBalancersConfig!=null?CfnSpotFleetLoadBalancersConfigPropertyFromCloudFormation(properties.LoadBalancersConfig):void 0),ret.addPropertyResult("onDemandAllocationStrategy","OnDemandAllocationStrategy",properties.OnDemandAllocationStrategy!=null?cfn_parse.FromCloudFormation.getString(properties.OnDemandAllocationStrategy):void 0),ret.addPropertyResult("onDemandMaxTotalPrice","OnDemandMaxTotalPrice",properties.OnDemandMaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.OnDemandMaxTotalPrice):void 0),ret.addPropertyResult("onDemandTargetCapacity","OnDemandTargetCapacity",properties.OnDemandTargetCapacity!=null?cfn_parse.FromCloudFormation.getNumber(properties.OnDemandTargetCapacity):void 0),ret.addPropertyResult("replaceUnhealthyInstances","ReplaceUnhealthyInstances",properties.ReplaceUnhealthyInstances!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ReplaceUnhealthyInstances):void 0),ret.addPropertyResult("spotMaintenanceStrategies","SpotMaintenanceStrategies",properties.SpotMaintenanceStrategies!=null?CfnSpotFleetSpotMaintenanceStrategiesPropertyFromCloudFormation(properties.SpotMaintenanceStrategies):void 0),ret.addPropertyResult("spotMaxTotalPrice","SpotMaxTotalPrice",properties.SpotMaxTotalPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotMaxTotalPrice):void 0),ret.addPropertyResult("spotPrice","SpotPrice",properties.SpotPrice!=null?cfn_parse.FromCloudFormation.getString(properties.SpotPrice):void 0),ret.addPropertyResult("tagSpecifications","TagSpecifications",properties.TagSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation)(properties.TagSpecifications):void 0),ret.addPropertyResult("targetCapacity","TargetCapacity",cfn_parse.FromCloudFormation.getNumber(properties.TargetCapacity)),ret.addPropertyResult("targetCapacityUnitType","TargetCapacityUnitType",properties.TargetCapacityUnitType!=null?cfn_parse.FromCloudFormation.getString(properties.TargetCapacityUnitType):void 0),ret.addPropertyResult("terminateInstancesWithExpiration","TerminateInstancesWithExpiration",properties.TerminateInstancesWithExpiration!=null?cfn_parse.FromCloudFormation.getBoolean(properties.TerminateInstancesWithExpiration):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse.FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("validFrom","ValidFrom",properties.ValidFrom!=null?cfn_parse.FromCloudFormation.getString(properties.ValidFrom):void 0),ret.addPropertyResult("validUntil","ValidUntil",properties.ValidUntil!=null?cfn_parse.FromCloudFormation.getString(properties.ValidUntil):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("resourceType",cdk.validateString)(properties.resourceType)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "SpotFleetTagSpecificationProperty"')}function cfnSpotFleetSpotFleetTagSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotFleetTagSpecificationPropertyValidator(properties).assertSuccess(),{ResourceType:cdk.stringToCloudFormation(properties.resourceType),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSpotFleetSpotFleetTagSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("resourceType","ResourceType",properties.ResourceType!=null?cfn_parse.FromCloudFormation.getString(properties.ResourceType):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}function CfnSpotFleet_SpotMaintenanceStrategiesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("capacityRebalance",CfnSpotFleet_SpotCapacityRebalancePropertyValidator)(properties.capacityRebalance)),errors.wrap('supplied properties not correct for "SpotMaintenanceStrategiesProperty"')}function cfnSpotFleetSpotMaintenanceStrategiesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotMaintenanceStrategiesPropertyValidator(properties).assertSuccess(),{CapacityRebalance:cfnSpotFleetSpotCapacityRebalancePropertyToCloudFormation(properties.capacityRebalance)}):properties}function CfnSpotFleetSpotMaintenanceStrategiesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("capacityRebalance","CapacityRebalance",properties.CapacityRebalance!=null?CfnSpotFleetSpotCapacityRebalancePropertyFromCloudFormation(properties.CapacityRebalance):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_SpotPlacementPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("groupName",cdk.validateString)(properties.groupName)),errors.collect(cdk.propertyValidator("tenancy",cdk.validateString)(properties.tenancy)),errors.wrap('supplied properties not correct for "SpotPlacementProperty"')}function cfnSpotFleetSpotPlacementPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_SpotPlacementPropertyValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),GroupName:cdk.stringToCloudFormation(properties.groupName),Tenancy:cdk.stringToCloudFormation(properties.tenancy)}):properties}function CfnSpotFleetSpotPlacementPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("groupName","GroupName",properties.GroupName!=null?cfn_parse.FromCloudFormation.getString(properties.GroupName):void 0),ret.addPropertyResult("tenancy","Tenancy",properties.Tenancy!=null?cfn_parse.FromCloudFormation.getString(properties.Tenancy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_TargetGroupPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("arn",cdk.requiredValidator)(properties.arn)),errors.collect(cdk.propertyValidator("arn",cdk.validateString)(properties.arn)),errors.wrap('supplied properties not correct for "TargetGroupProperty"')}function cfnSpotFleetTargetGroupPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_TargetGroupPropertyValidator(properties).assertSuccess(),{Arn:cdk.stringToCloudFormation(properties.arn)}):properties}function CfnSpotFleetTargetGroupPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",cfn_parse.FromCloudFormation.getString(properties.Arn)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_TargetGroupsConfigPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("targetGroups",cdk.requiredValidator)(properties.targetGroups)),errors.collect(cdk.propertyValidator("targetGroups",cdk.listValidator(CfnSpotFleet_TargetGroupPropertyValidator))(properties.targetGroups)),errors.wrap('supplied properties not correct for "TargetGroupsConfigProperty"')}function cfnSpotFleetTargetGroupsConfigPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_TargetGroupsConfigPropertyValidator(properties).assertSuccess(),{TargetGroups:cdk.listMapper(cfnSpotFleetTargetGroupPropertyToCloudFormation)(properties.targetGroups)}):properties}function CfnSpotFleetTargetGroupsConfigPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("targetGroups","TargetGroups",cfn_parse.FromCloudFormation.getArray(CfnSpotFleetTargetGroupPropertyFromCloudFormation)(properties.TargetGroups)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_TotalLocalStorageGBRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "TotalLocalStorageGBRequestProperty"')}function cfnSpotFleetTotalLocalStorageGBRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_TotalLocalStorageGBRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetTotalLocalStorageGBRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSpotFleet_VCpuCountRangeRequestPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("max",cdk.validateNumber)(properties.max)),errors.collect(cdk.propertyValidator("min",cdk.validateNumber)(properties.min)),errors.wrap('supplied properties not correct for "VCpuCountRangeRequestProperty"')}function cfnSpotFleetVCpuCountRangeRequestPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSpotFleet_VCpuCountRangeRequestPropertyValidator(properties).assertSuccess(),{Max:cdk.numberToCloudFormation(properties.max),Min:cdk.numberToCloudFormation(properties.min)}):properties}function CfnSpotFleetVCpuCountRangeRequestPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("max","Max",properties.Max!=null?cfn_parse.FromCloudFormation.getNumber(properties.Max):void 0),ret.addPropertyResult("min","Min",properties.Min!=null?cfn_parse.FromCloudFormation.getNumber(properties.Min):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnSubnetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("assignIpv6AddressOnCreation",cdk.validateBoolean)(properties.assignIpv6AddressOnCreation)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZoneId",cdk.validateString)(properties.availabilityZoneId)),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("enableDns64",cdk.validateBoolean)(properties.enableDns64)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("ipv6Native",cdk.validateBoolean)(properties.ipv6Native)),errors.collect(cdk.propertyValidator("mapPublicIpOnLaunch",cdk.validateBoolean)(properties.mapPublicIpOnLaunch)),errors.collect(cdk.propertyValidator("outpostArn",cdk.validateString)(properties.outpostArn)),errors.collect(cdk.propertyValidator("privateDnsNameOptionsOnLaunch",cdk.validateObject)(properties.privateDnsNameOptionsOnLaunch)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnSubnetProps"')}function cfnSubnetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),AssignIpv6AddressOnCreation:cdk.booleanToCloudFormation(properties.assignIpv6AddressOnCreation),AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AvailabilityZoneId:cdk.stringToCloudFormation(properties.availabilityZoneId),CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),EnableDns64:cdk.booleanToCloudFormation(properties.enableDns64),Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),Ipv6Native:cdk.booleanToCloudFormation(properties.ipv6Native),MapPublicIpOnLaunch:cdk.booleanToCloudFormation(properties.mapPublicIpOnLaunch),OutpostArn:cdk.stringToCloudFormation(properties.outpostArn),PrivateDnsNameOptionsOnLaunch:cdk.objectToCloudFormation(properties.privateDnsNameOptionsOnLaunch),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnSubnetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("assignIpv6AddressOnCreation","AssignIpv6AddressOnCreation",properties.AssignIpv6AddressOnCreation!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AssignIpv6AddressOnCreation):void 0),ret.addPropertyResult("availabilityZone","AvailabilityZone",properties.AvailabilityZone!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone):void 0),ret.addPropertyResult("availabilityZoneId","AvailabilityZoneId",properties.AvailabilityZoneId!=null?cfn_parse.FromCloudFormation.getString(properties.AvailabilityZoneId):void 0),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("enableDns64","EnableDns64",properties.EnableDns64!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableDns64):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("ipv6Native","Ipv6Native",properties.Ipv6Native!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Ipv6Native):void 0),ret.addPropertyResult("mapPublicIpOnLaunch","MapPublicIpOnLaunch",properties.MapPublicIpOnLaunch!=null?cfn_parse.FromCloudFormation.getBoolean(properties.MapPublicIpOnLaunch):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addPropertyResult("privateDnsNameOptionsOnLaunch","PrivateDnsNameOptionsOnLaunch",properties.PrivateDnsNameOptionsOnLaunch!=null?cfn_parse.FromCloudFormation.getAny(properties.PrivateDnsNameOptionsOnLaunch):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 CfnSubnet extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnet.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnet),error}cdk.requireProperty(props,"vpcId",this),this.attrAvailabilityZone=cdk.Token.asString(this.getAtt("AvailabilityZone")),this.attrIpv6CidrBlocks=cdk.Token.asList(this.getAtt("Ipv6CidrBlocks")),this.attrNetworkAclAssociationId=cdk.Token.asString(this.getAtt("NetworkAclAssociationId")),this.attrOutpostArn=cdk.Token.asString(this.getAtt("OutpostArn")),this.attrSubnetId=cdk.Token.asString(this.getAtt("SubnetId")),this.attrVpcId=cdk.Token.asString(this.getAtt("VpcId")),this.vpcId=props.vpcId,this.assignIpv6AddressOnCreation=props.assignIpv6AddressOnCreation,this.availabilityZone=props.availabilityZone,this.availabilityZoneId=props.availabilityZoneId,this.cidrBlock=props.cidrBlock,this.enableDns64=props.enableDns64,this.ipv6CidrBlock=props.ipv6CidrBlock,this.ipv6Native=props.ipv6Native,this.mapPublicIpOnLaunch=props.mapPublicIpOnLaunch,this.outpostArn=props.outpostArn,this.privateDnsNameOptionsOnLaunch=props.privateDnsNameOptionsOnLaunch,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::Subnet",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetPropsFromCloudFormation(resourceProperties),ret=new CfnSubnet(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",CfnSubnet.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,assignIpv6AddressOnCreation:this.assignIpv6AddressOnCreation,availabilityZone:this.availabilityZone,availabilityZoneId:this.availabilityZoneId,cidrBlock:this.cidrBlock,enableDns64:this.enableDns64,ipv6CidrBlock:this.ipv6CidrBlock,ipv6Native:this.ipv6Native,mapPublicIpOnLaunch:this.mapPublicIpOnLaunch,outpostArn:this.outpostArn,privateDnsNameOptionsOnLaunch:this.privateDnsNameOptionsOnLaunch,tags:this.tags.renderTags()}}renderProperties(props){return cfnSubnetPropsToCloudFormation(props)}}exports.CfnSubnet=CfnSubnet,_21=JSII_RTTI_SYMBOL_1,CfnSubnet[_21]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnet",version:"2.51.1"},CfnSubnet.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Subnet";function CfnSubnetCidrBlockPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.requiredValidator)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetCidrBlockProps"')}function cfnSubnetCidrBlockPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetCidrBlockPropsValidator(properties).assertSuccess(),{Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetCidrBlockPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetCidrBlock extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetCidrBlockProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetCidrBlock),error}cdk.requireProperty(props,"ipv6CidrBlock",this),cdk.requireProperty(props,"subnetId",this),this.ipv6CidrBlock=props.ipv6CidrBlock,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetCidrBlockPropsFromCloudFormation(resourceProperties),ret=new CfnSubnetCidrBlock(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",CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ipv6CidrBlock:this.ipv6CidrBlock,subnetId:this.subnetId}}renderProperties(props){return cfnSubnetCidrBlockPropsToCloudFormation(props)}}exports.CfnSubnetCidrBlock=CfnSubnetCidrBlock,_22=JSII_RTTI_SYMBOL_1,CfnSubnetCidrBlock[_22]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetCidrBlock",version:"2.51.1"},CfnSubnetCidrBlock.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetCidrBlock";function CfnSubnetNetworkAclAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("networkAclId",cdk.requiredValidator)(properties.networkAclId)),errors.collect(cdk.propertyValidator("networkAclId",cdk.validateString)(properties.networkAclId)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetNetworkAclAssociationProps"')}function cfnSubnetNetworkAclAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetNetworkAclAssociationPropsValidator(properties).assertSuccess(),{NetworkAclId:cdk.stringToCloudFormation(properties.networkAclId),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetNetworkAclAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkAclId","NetworkAclId",cfn_parse.FromCloudFormation.getString(properties.NetworkAclId)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetNetworkAclAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetNetworkAclAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetNetworkAclAssociation),error}cdk.requireProperty(props,"networkAclId",this),cdk.requireProperty(props,"subnetId",this),this.attrAssociationId=cdk.Token.asString(this.getAtt("AssociationId")),this.networkAclId=props.networkAclId,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetNetworkAclAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnSubnetNetworkAclAssociation(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",CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkAclId:this.networkAclId,subnetId:this.subnetId}}renderProperties(props){return cfnSubnetNetworkAclAssociationPropsToCloudFormation(props)}}exports.CfnSubnetNetworkAclAssociation=CfnSubnetNetworkAclAssociation,_23=JSII_RTTI_SYMBOL_1,CfnSubnetNetworkAclAssociation[_23]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetNetworkAclAssociation",version:"2.51.1"},CfnSubnetNetworkAclAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetNetworkAclAssociation";function CfnSubnetRouteTableAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("routeTableId",cdk.requiredValidator)(properties.routeTableId)),errors.collect(cdk.propertyValidator("routeTableId",cdk.validateString)(properties.routeTableId)),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.wrap('supplied properties not correct for "CfnSubnetRouteTableAssociationProps"')}function cfnSubnetRouteTableAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnSubnetRouteTableAssociationPropsValidator(properties).assertSuccess(),{RouteTableId:cdk.stringToCloudFormation(properties.routeTableId),SubnetId:cdk.stringToCloudFormation(properties.subnetId)}):properties}function CfnSubnetRouteTableAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("routeTableId","RouteTableId",cfn_parse.FromCloudFormation.getString(properties.RouteTableId)),ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSubnetRouteTableAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnSubnetRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSubnetRouteTableAssociation),error}cdk.requireProperty(props,"routeTableId",this),cdk.requireProperty(props,"subnetId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.routeTableId=props.routeTableId,this.subnetId=props.subnetId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSubnetRouteTableAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnSubnetRouteTableAssociation(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",CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{routeTableId:this.routeTableId,subnetId:this.subnetId}}renderProperties(props){return cfnSubnetRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnSubnetRouteTableAssociation=CfnSubnetRouteTableAssociation,_24=JSII_RTTI_SYMBOL_1,CfnSubnetRouteTableAssociation[_24]={fqn:"aws-cdk-lib.aws_ec2.CfnSubnetRouteTableAssociation",version:"2.51.1"},CfnSubnetRouteTableAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::SubnetRouteTableAssociation";function CfnTrafficMirrorFilterPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("networkServices",cdk.listValidator(cdk.validateString))(properties.networkServices)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorFilterProps"')}function cfnTrafficMirrorFilterPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorFilterPropsValidator(properties).assertSuccess(),{Description:cdk.stringToCloudFormation(properties.description),NetworkServices:cdk.listMapper(cdk.stringToCloudFormation)(properties.networkServices),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTrafficMirrorFilterPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("networkServices","NetworkServices",properties.NetworkServices!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NetworkServices):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 CfnTrafficMirrorFilter extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorFilterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorFilter),error}this.description=props.description,this.networkServices=props.networkServices,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TrafficMirrorFilter",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorFilterPropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorFilter(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",CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{description:this.description,networkServices:this.networkServices,tags:this.tags.renderTags()}}renderProperties(props){return cfnTrafficMirrorFilterPropsToCloudFormation(props)}}exports.CfnTrafficMirrorFilter=CfnTrafficMirrorFilter,_25=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorFilter[_25]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorFilter",version:"2.51.1"},CfnTrafficMirrorFilter.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorFilter";function CfnTrafficMirrorFilterRulePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationPortRange",CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator)(properties.destinationPortRange)),errors.collect(cdk.propertyValidator("protocol",cdk.validateNumber)(properties.protocol)),errors.collect(cdk.propertyValidator("ruleAction",cdk.requiredValidator)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleAction",cdk.validateString)(properties.ruleAction)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.requiredValidator)(properties.ruleNumber)),errors.collect(cdk.propertyValidator("ruleNumber",cdk.validateNumber)(properties.ruleNumber)),errors.collect(cdk.propertyValidator("sourceCidrBlock",cdk.requiredValidator)(properties.sourceCidrBlock)),errors.collect(cdk.propertyValidator("sourceCidrBlock",cdk.validateString)(properties.sourceCidrBlock)),errors.collect(cdk.propertyValidator("sourcePortRange",CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator)(properties.sourcePortRange)),errors.collect(cdk.propertyValidator("trafficDirection",cdk.requiredValidator)(properties.trafficDirection)),errors.collect(cdk.propertyValidator("trafficDirection",cdk.validateString)(properties.trafficDirection)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.requiredValidator)(properties.trafficMirrorFilterId)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.validateString)(properties.trafficMirrorFilterId)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorFilterRuleProps"')}function cfnTrafficMirrorFilterRulePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorFilterRulePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),RuleAction:cdk.stringToCloudFormation(properties.ruleAction),RuleNumber:cdk.numberToCloudFormation(properties.ruleNumber),SourceCidrBlock:cdk.stringToCloudFormation(properties.sourceCidrBlock),TrafficDirection:cdk.stringToCloudFormation(properties.trafficDirection),TrafficMirrorFilterId:cdk.stringToCloudFormation(properties.trafficMirrorFilterId),Description:cdk.stringToCloudFormation(properties.description),DestinationPortRange:cfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties.destinationPortRange),Protocol:cdk.numberToCloudFormation(properties.protocol),SourcePortRange:cfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties.sourcePortRange)}):properties}function CfnTrafficMirrorFilterRulePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("ruleAction","RuleAction",cfn_parse.FromCloudFormation.getString(properties.RuleAction)),ret.addPropertyResult("ruleNumber","RuleNumber",cfn_parse.FromCloudFormation.getNumber(properties.RuleNumber)),ret.addPropertyResult("sourceCidrBlock","SourceCidrBlock",cfn_parse.FromCloudFormation.getString(properties.SourceCidrBlock)),ret.addPropertyResult("trafficDirection","TrafficDirection",cfn_parse.FromCloudFormation.getString(properties.TrafficDirection)),ret.addPropertyResult("trafficMirrorFilterId","TrafficMirrorFilterId",cfn_parse.FromCloudFormation.getString(properties.TrafficMirrorFilterId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("destinationPortRange","DestinationPortRange",properties.DestinationPortRange!=null?CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties.DestinationPortRange):void 0),ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getNumber(properties.Protocol):void 0),ret.addPropertyResult("sourcePortRange","SourcePortRange",properties.SourcePortRange!=null?CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties.SourcePortRange):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTrafficMirrorFilterRule extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorFilterRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorFilterRule),error}cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"ruleAction",this),cdk.requireProperty(props,"ruleNumber",this),cdk.requireProperty(props,"sourceCidrBlock",this),cdk.requireProperty(props,"trafficDirection",this),cdk.requireProperty(props,"trafficMirrorFilterId",this),this.destinationCidrBlock=props.destinationCidrBlock,this.ruleAction=props.ruleAction,this.ruleNumber=props.ruleNumber,this.sourceCidrBlock=props.sourceCidrBlock,this.trafficDirection=props.trafficDirection,this.trafficMirrorFilterId=props.trafficMirrorFilterId,this.description=props.description,this.destinationPortRange=props.destinationPortRange,this.protocol=props.protocol,this.sourcePortRange=props.sourcePortRange}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorFilterRulePropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorFilterRule(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",CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destinationCidrBlock:this.destinationCidrBlock,ruleAction:this.ruleAction,ruleNumber:this.ruleNumber,sourceCidrBlock:this.sourceCidrBlock,trafficDirection:this.trafficDirection,trafficMirrorFilterId:this.trafficMirrorFilterId,description:this.description,destinationPortRange:this.destinationPortRange,protocol:this.protocol,sourcePortRange:this.sourcePortRange}}renderProperties(props){return cfnTrafficMirrorFilterRulePropsToCloudFormation(props)}}exports.CfnTrafficMirrorFilterRule=CfnTrafficMirrorFilterRule,_26=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorFilterRule[_26]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorFilterRule",version:"2.51.1"},CfnTrafficMirrorFilterRule.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorFilterRule";function CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("fromPort",cdk.requiredValidator)(properties.fromPort)),errors.collect(cdk.propertyValidator("fromPort",cdk.validateNumber)(properties.fromPort)),errors.collect(cdk.propertyValidator("toPort",cdk.requiredValidator)(properties.toPort)),errors.collect(cdk.propertyValidator("toPort",cdk.validateNumber)(properties.toPort)),errors.wrap('supplied properties not correct for "TrafficMirrorPortRangeProperty"')}function cfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorFilterRule_TrafficMirrorPortRangePropertyValidator(properties).assertSuccess(),{FromPort:cdk.numberToCloudFormation(properties.fromPort),ToPort:cdk.numberToCloudFormation(properties.toPort)}):properties}function CfnTrafficMirrorFilterRuleTrafficMirrorPortRangePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("fromPort","FromPort",cfn_parse.FromCloudFormation.getNumber(properties.FromPort)),ret.addPropertyResult("toPort","ToPort",cfn_parse.FromCloudFormation.getNumber(properties.ToPort)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTrafficMirrorSessionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("packetLength",cdk.validateNumber)(properties.packetLength)),errors.collect(cdk.propertyValidator("sessionNumber",cdk.requiredValidator)(properties.sessionNumber)),errors.collect(cdk.propertyValidator("sessionNumber",cdk.validateNumber)(properties.sessionNumber)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.requiredValidator)(properties.trafficMirrorFilterId)),errors.collect(cdk.propertyValidator("trafficMirrorFilterId",cdk.validateString)(properties.trafficMirrorFilterId)),errors.collect(cdk.propertyValidator("trafficMirrorTargetId",cdk.requiredValidator)(properties.trafficMirrorTargetId)),errors.collect(cdk.propertyValidator("trafficMirrorTargetId",cdk.validateString)(properties.trafficMirrorTargetId)),errors.collect(cdk.propertyValidator("virtualNetworkId",cdk.validateNumber)(properties.virtualNetworkId)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorSessionProps"')}function cfnTrafficMirrorSessionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorSessionPropsValidator(properties).assertSuccess(),{NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),SessionNumber:cdk.numberToCloudFormation(properties.sessionNumber),TrafficMirrorFilterId:cdk.stringToCloudFormation(properties.trafficMirrorFilterId),TrafficMirrorTargetId:cdk.stringToCloudFormation(properties.trafficMirrorTargetId),Description:cdk.stringToCloudFormation(properties.description),PacketLength:cdk.numberToCloudFormation(properties.packetLength),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),VirtualNetworkId:cdk.numberToCloudFormation(properties.virtualNetworkId)}):properties}function CfnTrafficMirrorSessionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("sessionNumber","SessionNumber",cfn_parse.FromCloudFormation.getNumber(properties.SessionNumber)),ret.addPropertyResult("trafficMirrorFilterId","TrafficMirrorFilterId",cfn_parse.FromCloudFormation.getString(properties.TrafficMirrorFilterId)),ret.addPropertyResult("trafficMirrorTargetId","TrafficMirrorTargetId",cfn_parse.FromCloudFormation.getString(properties.TrafficMirrorTargetId)),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("packetLength","PacketLength",properties.PacketLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.PacketLength):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("virtualNetworkId","VirtualNetworkId",properties.VirtualNetworkId!=null?cfn_parse.FromCloudFormation.getNumber(properties.VirtualNetworkId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTrafficMirrorSession extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorSessionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorSession),error}cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"sessionNumber",this),cdk.requireProperty(props,"trafficMirrorFilterId",this),cdk.requireProperty(props,"trafficMirrorTargetId",this),this.networkInterfaceId=props.networkInterfaceId,this.sessionNumber=props.sessionNumber,this.trafficMirrorFilterId=props.trafficMirrorFilterId,this.trafficMirrorTargetId=props.trafficMirrorTargetId,this.description=props.description,this.packetLength=props.packetLength,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TrafficMirrorSession",props.tags,{tagPropertyName:"tags"}),this.virtualNetworkId=props.virtualNetworkId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorSessionPropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorSession(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",CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{networkInterfaceId:this.networkInterfaceId,sessionNumber:this.sessionNumber,trafficMirrorFilterId:this.trafficMirrorFilterId,trafficMirrorTargetId:this.trafficMirrorTargetId,description:this.description,packetLength:this.packetLength,tags:this.tags.renderTags(),virtualNetworkId:this.virtualNetworkId}}renderProperties(props){return cfnTrafficMirrorSessionPropsToCloudFormation(props)}}exports.CfnTrafficMirrorSession=CfnTrafficMirrorSession,_27=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorSession[_27]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorSession",version:"2.51.1"},CfnTrafficMirrorSession.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorSession";function CfnTrafficMirrorTargetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("gatewayLoadBalancerEndpointId",cdk.validateString)(properties.gatewayLoadBalancerEndpointId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkLoadBalancerArn",cdk.validateString)(properties.networkLoadBalancerArn)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnTrafficMirrorTargetProps"')}function cfnTrafficMirrorTargetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTrafficMirrorTargetPropsValidator(properties).assertSuccess(),{Description:cdk.stringToCloudFormation(properties.description),GatewayLoadBalancerEndpointId:cdk.stringToCloudFormation(properties.gatewayLoadBalancerEndpointId),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),NetworkLoadBalancerArn:cdk.stringToCloudFormation(properties.networkLoadBalancerArn),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTrafficMirrorTargetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("gatewayLoadBalancerEndpointId","GatewayLoadBalancerEndpointId",properties.GatewayLoadBalancerEndpointId!=null?cfn_parse.FromCloudFormation.getString(properties.GatewayLoadBalancerEndpointId):void 0),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",properties.NetworkInterfaceId!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId):void 0),ret.addPropertyResult("networkLoadBalancerArn","NetworkLoadBalancerArn",properties.NetworkLoadBalancerArn!=null?cfn_parse.FromCloudFormation.getString(properties.NetworkLoadBalancerArn):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 CfnTrafficMirrorTarget extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTrafficMirrorTargetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTrafficMirrorTarget),error}this.description=props.description,this.gatewayLoadBalancerEndpointId=props.gatewayLoadBalancerEndpointId,this.networkInterfaceId=props.networkInterfaceId,this.networkLoadBalancerArn=props.networkLoadBalancerArn,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TrafficMirrorTarget",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTrafficMirrorTargetPropsFromCloudFormation(resourceProperties),ret=new CfnTrafficMirrorTarget(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",CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{description:this.description,gatewayLoadBalancerEndpointId:this.gatewayLoadBalancerEndpointId,networkInterfaceId:this.networkInterfaceId,networkLoadBalancerArn:this.networkLoadBalancerArn,tags:this.tags.renderTags()}}renderProperties(props){return cfnTrafficMirrorTargetPropsToCloudFormation(props)}}exports.CfnTrafficMirrorTarget=CfnTrafficMirrorTarget,_28=JSII_RTTI_SYMBOL_1,CfnTrafficMirrorTarget[_28]={fqn:"aws-cdk-lib.aws_ec2.CfnTrafficMirrorTarget",version:"2.51.1"},CfnTrafficMirrorTarget.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TrafficMirrorTarget";function CfnTransitGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("amazonSideAsn",cdk.validateNumber)(properties.amazonSideAsn)),errors.collect(cdk.propertyValidator("associationDefaultRouteTableId",cdk.validateString)(properties.associationDefaultRouteTableId)),errors.collect(cdk.propertyValidator("autoAcceptSharedAttachments",cdk.validateString)(properties.autoAcceptSharedAttachments)),errors.collect(cdk.propertyValidator("defaultRouteTableAssociation",cdk.validateString)(properties.defaultRouteTableAssociation)),errors.collect(cdk.propertyValidator("defaultRouteTablePropagation",cdk.validateString)(properties.defaultRouteTablePropagation)),errors.collect(cdk.propertyValidator("description",cdk.validateString)(properties.description)),errors.collect(cdk.propertyValidator("dnsSupport",cdk.validateString)(properties.dnsSupport)),errors.collect(cdk.propertyValidator("multicastSupport",cdk.validateString)(properties.multicastSupport)),errors.collect(cdk.propertyValidator("propagationDefaultRouteTableId",cdk.validateString)(properties.propagationDefaultRouteTableId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayCidrBlocks",cdk.listValidator(cdk.validateString))(properties.transitGatewayCidrBlocks)),errors.collect(cdk.propertyValidator("vpnEcmpSupport",cdk.validateString)(properties.vpnEcmpSupport)),errors.wrap('supplied properties not correct for "CfnTransitGatewayProps"')}function cfnTransitGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayPropsValidator(properties).assertSuccess(),{AmazonSideAsn:cdk.numberToCloudFormation(properties.amazonSideAsn),AssociationDefaultRouteTableId:cdk.stringToCloudFormation(properties.associationDefaultRouteTableId),AutoAcceptSharedAttachments:cdk.stringToCloudFormation(properties.autoAcceptSharedAttachments),DefaultRouteTableAssociation:cdk.stringToCloudFormation(properties.defaultRouteTableAssociation),DefaultRouteTablePropagation:cdk.stringToCloudFormation(properties.defaultRouteTablePropagation),Description:cdk.stringToCloudFormation(properties.description),DnsSupport:cdk.stringToCloudFormation(properties.dnsSupport),MulticastSupport:cdk.stringToCloudFormation(properties.multicastSupport),PropagationDefaultRouteTableId:cdk.stringToCloudFormation(properties.propagationDefaultRouteTableId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TransitGatewayCidrBlocks:cdk.listMapper(cdk.stringToCloudFormation)(properties.transitGatewayCidrBlocks),VpnEcmpSupport:cdk.stringToCloudFormation(properties.vpnEcmpSupport)}):properties}function CfnTransitGatewayPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("amazonSideAsn","AmazonSideAsn",properties.AmazonSideAsn!=null?cfn_parse.FromCloudFormation.getNumber(properties.AmazonSideAsn):void 0),ret.addPropertyResult("associationDefaultRouteTableId","AssociationDefaultRouteTableId",properties.AssociationDefaultRouteTableId!=null?cfn_parse.FromCloudFormation.getString(properties.AssociationDefaultRouteTableId):void 0),ret.addPropertyResult("autoAcceptSharedAttachments","AutoAcceptSharedAttachments",properties.AutoAcceptSharedAttachments!=null?cfn_parse.FromCloudFormation.getString(properties.AutoAcceptSharedAttachments):void 0),ret.addPropertyResult("defaultRouteTableAssociation","DefaultRouteTableAssociation",properties.DefaultRouteTableAssociation!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultRouteTableAssociation):void 0),ret.addPropertyResult("defaultRouteTablePropagation","DefaultRouteTablePropagation",properties.DefaultRouteTablePropagation!=null?cfn_parse.FromCloudFormation.getString(properties.DefaultRouteTablePropagation):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse.FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("dnsSupport","DnsSupport",properties.DnsSupport!=null?cfn_parse.FromCloudFormation.getString(properties.DnsSupport):void 0),ret.addPropertyResult("multicastSupport","MulticastSupport",properties.MulticastSupport!=null?cfn_parse.FromCloudFormation.getString(properties.MulticastSupport):void 0),ret.addPropertyResult("propagationDefaultRouteTableId","PropagationDefaultRouteTableId",properties.PropagationDefaultRouteTableId!=null?cfn_parse.FromCloudFormation.getString(properties.PropagationDefaultRouteTableId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayCidrBlocks","TransitGatewayCidrBlocks",properties.TransitGatewayCidrBlocks!=null?cfn_parse.FromCloudFormation.getStringArray(properties.TransitGatewayCidrBlocks):void 0),ret.addPropertyResult("vpnEcmpSupport","VpnEcmpSupport",properties.VpnEcmpSupport!=null?cfn_parse.FromCloudFormation.getString(properties.VpnEcmpSupport):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGateway extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnTransitGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGateway),error}this.attrId=cdk.Token.asString(this.getAtt("Id")),this.amazonSideAsn=props.amazonSideAsn,this.associationDefaultRouteTableId=props.associationDefaultRouteTableId,this.autoAcceptSharedAttachments=props.autoAcceptSharedAttachments,this.defaultRouteTableAssociation=props.defaultRouteTableAssociation,this.defaultRouteTablePropagation=props.defaultRouteTablePropagation,this.description=props.description,this.dnsSupport=props.dnsSupport,this.multicastSupport=props.multicastSupport,this.propagationDefaultRouteTableId=props.propagationDefaultRouteTableId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGateway",props.tags,{tagPropertyName:"tags"}),this.transitGatewayCidrBlocks=props.transitGatewayCidrBlocks,this.vpnEcmpSupport=props.vpnEcmpSupport}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGateway(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",CfnTransitGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{amazonSideAsn:this.amazonSideAsn,associationDefaultRouteTableId:this.associationDefaultRouteTableId,autoAcceptSharedAttachments:this.autoAcceptSharedAttachments,defaultRouteTableAssociation:this.defaultRouteTableAssociation,defaultRouteTablePropagation:this.defaultRouteTablePropagation,description:this.description,dnsSupport:this.dnsSupport,multicastSupport:this.multicastSupport,propagationDefaultRouteTableId:this.propagationDefaultRouteTableId,tags:this.tags.renderTags(),transitGatewayCidrBlocks:this.transitGatewayCidrBlocks,vpnEcmpSupport:this.vpnEcmpSupport}}renderProperties(props){return cfnTransitGatewayPropsToCloudFormation(props)}}exports.CfnTransitGateway=CfnTransitGateway,_29=JSII_RTTI_SYMBOL_1,CfnTransitGateway[_29]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGateway",version:"2.51.1"},CfnTransitGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGateway";function CfnTransitGatewayAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("options",cdk.validateObject)(properties.options)),errors.collect(cdk.propertyValidator("subnetIds",cdk.requiredValidator)(properties.subnetIds)),errors.collect(cdk.propertyValidator("subnetIds",cdk.listValidator(cdk.validateString))(properties.subnetIds)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayAttachmentProps"')}function cfnTransitGatewayAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayAttachmentPropsValidator(properties).assertSuccess(),{SubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.subnetIds),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcId:cdk.stringToCloudFormation(properties.vpcId),Options:cdk.objectToCloudFormation(properties.options),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetIds","SubnetIds",cfn_parse.FromCloudFormation.getStringArray(properties.SubnetIds)),ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse.FromCloudFormation.getAny(properties.Options):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 CfnTransitGatewayAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayAttachment),error}cdk.requireProperty(props,"subnetIds",this),cdk.requireProperty(props,"transitGatewayId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.subnetIds=props.subnetIds,this.transitGatewayId=props.transitGatewayId,this.vpcId=props.vpcId,this.options=props.options,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayAttachment",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayAttachment(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",CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetIds:this.subnetIds,transitGatewayId:this.transitGatewayId,vpcId:this.vpcId,options:this.options,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayAttachment=CfnTransitGatewayAttachment,_30=JSII_RTTI_SYMBOL_1,CfnTransitGatewayAttachment[_30]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayAttachment",version:"2.51.1"},CfnTransitGatewayAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayAttachment";function CfnTransitGatewayConnectPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("options",cdk.requiredValidator)(properties.options)),errors.collect(cdk.propertyValidator("options",CfnTransitGatewayConnect_TransitGatewayConnectOptionsPropertyValidator)(properties.options)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transportTransitGatewayAttachmentId",cdk.requiredValidator)(properties.transportTransitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transportTransitGatewayAttachmentId",cdk.validateString)(properties.transportTransitGatewayAttachmentId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayConnectProps"')}function cfnTransitGatewayConnectPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayConnectPropsValidator(properties).assertSuccess(),{Options:cfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyToCloudFormation(properties.options),TransportTransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transportTransitGatewayAttachmentId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayConnectPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("options","Options",CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyFromCloudFormation(properties.Options)),ret.addPropertyResult("transportTransitGatewayAttachmentId","TransportTransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransportTransitGatewayAttachmentId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayConnect extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayConnectProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayConnect),error}cdk.requireProperty(props,"options",this),cdk.requireProperty(props,"transportTransitGatewayAttachmentId",this),this.attrCreationTime=cdk.Token.asString(this.getAtt("CreationTime")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.attrTransitGatewayId=cdk.Token.asString(this.getAtt("TransitGatewayId")),this.options=props.options,this.transportTransitGatewayAttachmentId=props.transportTransitGatewayAttachmentId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayConnect",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayConnectPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayConnect(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",CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{options:this.options,transportTransitGatewayAttachmentId:this.transportTransitGatewayAttachmentId,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayConnectPropsToCloudFormation(props)}}exports.CfnTransitGatewayConnect=CfnTransitGatewayConnect,_31=JSII_RTTI_SYMBOL_1,CfnTransitGatewayConnect[_31]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayConnect",version:"2.51.1"},CfnTransitGatewayConnect.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayConnect";function CfnTransitGatewayConnect_TransitGatewayConnectOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("protocol",cdk.validateString)(properties.protocol)),errors.wrap('supplied properties not correct for "TransitGatewayConnectOptionsProperty"')}function cfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayConnect_TransitGatewayConnectOptionsPropertyValidator(properties).assertSuccess(),{Protocol:cdk.stringToCloudFormation(properties.protocol)}):properties}function CfnTransitGatewayConnectTransitGatewayConnectOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("protocol","Protocol",properties.Protocol!=null?cfn_parse.FromCloudFormation.getString(properties.Protocol):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTransitGatewayMulticastDomainPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("options",cdk.validateObject)(properties.options)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastDomainProps"')}function cfnTransitGatewayMulticastDomainPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastDomainPropsValidator(properties).assertSuccess(),{TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),Options:cdk.objectToCloudFormation(properties.options),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayMulticastDomainPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse.FromCloudFormation.getAny(properties.Options):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 CfnTransitGatewayMulticastDomain extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastDomainProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastDomain),error}cdk.requireProperty(props,"transitGatewayId",this),this.attrCreationTime=cdk.Token.asString(this.getAtt("CreationTime")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrTransitGatewayMulticastDomainArn=cdk.Token.asString(this.getAtt("TransitGatewayMulticastDomainArn")),this.attrTransitGatewayMulticastDomainId=cdk.Token.asString(this.getAtt("TransitGatewayMulticastDomainId")),this.transitGatewayId=props.transitGatewayId,this.options=props.options,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayMulticastDomain",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastDomainPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastDomain(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",CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayId:this.transitGatewayId,options:this.options,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayMulticastDomainPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastDomain=CfnTransitGatewayMulticastDomain,_32=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastDomain[_32]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastDomain",version:"2.51.1"},CfnTransitGatewayMulticastDomain.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastDomain";function CfnTransitGatewayMulticastDomainAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("subnetId",cdk.requiredValidator)(properties.subnetId)),errors.collect(cdk.propertyValidator("subnetId",cdk.validateString)(properties.subnetId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastDomainAssociationProps"')}function cfnTransitGatewayMulticastDomainAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastDomainAssociationPropsValidator(properties).assertSuccess(),{SubnetId:cdk.stringToCloudFormation(properties.subnetId),TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayMulticastDomainId:cdk.stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastDomainAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetId","SubnetId",cfn_parse.FromCloudFormation.getString(properties.SubnetId)),ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId)),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastDomainAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastDomainAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastDomainAssociation),error}cdk.requireProperty(props,"subnetId",this),cdk.requireProperty(props,"transitGatewayAttachmentId",this),cdk.requireProperty(props,"transitGatewayMulticastDomainId",this),this.attrResourceId=cdk.Token.asString(this.getAtt("ResourceId")),this.attrResourceType=cdk.Token.asString(this.getAtt("ResourceType")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.subnetId=props.subnetId,this.transitGatewayAttachmentId=props.transitGatewayAttachmentId,this.transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastDomainAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastDomainAssociation(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",CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetId:this.subnetId,transitGatewayAttachmentId:this.transitGatewayAttachmentId,transitGatewayMulticastDomainId:this.transitGatewayMulticastDomainId}}renderProperties(props){return cfnTransitGatewayMulticastDomainAssociationPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastDomainAssociation=CfnTransitGatewayMulticastDomainAssociation,_33=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastDomainAssociation[_33]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastDomainAssociation",version:"2.51.1"},CfnTransitGatewayMulticastDomainAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastDomainAssociation";function CfnTransitGatewayMulticastGroupMemberPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.requiredValidator)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.validateString)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastGroupMemberProps"')}function cfnTransitGatewayMulticastGroupMemberPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastGroupMemberPropsValidator(properties).assertSuccess(),{GroupIpAddress:cdk.stringToCloudFormation(properties.groupIpAddress),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),TransitGatewayMulticastDomainId:cdk.stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastGroupMemberPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupIpAddress","GroupIpAddress",cfn_parse.FromCloudFormation.getString(properties.GroupIpAddress)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastGroupMember extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastGroupMemberProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastGroupMember),error}cdk.requireProperty(props,"groupIpAddress",this),cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"transitGatewayMulticastDomainId",this),this.attrGroupMember=this.getAtt("GroupMember"),this.attrGroupSource=this.getAtt("GroupSource"),this.attrMemberType=cdk.Token.asString(this.getAtt("MemberType")),this.attrResourceId=cdk.Token.asString(this.getAtt("ResourceId")),this.attrResourceType=cdk.Token.asString(this.getAtt("ResourceType")),this.attrSourceType=cdk.Token.asString(this.getAtt("SourceType")),this.attrSubnetId=cdk.Token.asString(this.getAtt("SubnetId")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.groupIpAddress=props.groupIpAddress,this.networkInterfaceId=props.networkInterfaceId,this.transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastGroupMemberPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastGroupMember(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",CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupIpAddress:this.groupIpAddress,networkInterfaceId:this.networkInterfaceId,transitGatewayMulticastDomainId:this.transitGatewayMulticastDomainId}}renderProperties(props){return cfnTransitGatewayMulticastGroupMemberPropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastGroupMember=CfnTransitGatewayMulticastGroupMember,_34=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastGroupMember[_34]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastGroupMember",version:"2.51.1"},CfnTransitGatewayMulticastGroupMember.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastGroupMember";function CfnTransitGatewayMulticastGroupSourcePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.requiredValidator)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("groupIpAddress",cdk.validateString)(properties.groupIpAddress)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.requiredValidator)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("networkInterfaceId",cdk.validateString)(properties.networkInterfaceId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.requiredValidator)(properties.transitGatewayMulticastDomainId)),errors.collect(cdk.propertyValidator("transitGatewayMulticastDomainId",cdk.validateString)(properties.transitGatewayMulticastDomainId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayMulticastGroupSourceProps"')}function cfnTransitGatewayMulticastGroupSourcePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayMulticastGroupSourcePropsValidator(properties).assertSuccess(),{GroupIpAddress:cdk.stringToCloudFormation(properties.groupIpAddress),NetworkInterfaceId:cdk.stringToCloudFormation(properties.networkInterfaceId),TransitGatewayMulticastDomainId:cdk.stringToCloudFormation(properties.transitGatewayMulticastDomainId)}):properties}function CfnTransitGatewayMulticastGroupSourcePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groupIpAddress","GroupIpAddress",cfn_parse.FromCloudFormation.getString(properties.GroupIpAddress)),ret.addPropertyResult("networkInterfaceId","NetworkInterfaceId",cfn_parse.FromCloudFormation.getString(properties.NetworkInterfaceId)),ret.addPropertyResult("transitGatewayMulticastDomainId","TransitGatewayMulticastDomainId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayMulticastDomainId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayMulticastGroupSource extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayMulticastGroupSourceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayMulticastGroupSource),error}cdk.requireProperty(props,"groupIpAddress",this),cdk.requireProperty(props,"networkInterfaceId",this),cdk.requireProperty(props,"transitGatewayMulticastDomainId",this),this.attrGroupMember=this.getAtt("GroupMember"),this.attrGroupSource=this.getAtt("GroupSource"),this.attrMemberType=cdk.Token.asString(this.getAtt("MemberType")),this.attrResourceId=cdk.Token.asString(this.getAtt("ResourceId")),this.attrResourceType=cdk.Token.asString(this.getAtt("ResourceType")),this.attrSourceType=cdk.Token.asString(this.getAtt("SourceType")),this.attrSubnetId=cdk.Token.asString(this.getAtt("SubnetId")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.groupIpAddress=props.groupIpAddress,this.networkInterfaceId=props.networkInterfaceId,this.transitGatewayMulticastDomainId=props.transitGatewayMulticastDomainId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayMulticastGroupSourcePropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayMulticastGroupSource(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",CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{groupIpAddress:this.groupIpAddress,networkInterfaceId:this.networkInterfaceId,transitGatewayMulticastDomainId:this.transitGatewayMulticastDomainId}}renderProperties(props){return cfnTransitGatewayMulticastGroupSourcePropsToCloudFormation(props)}}exports.CfnTransitGatewayMulticastGroupSource=CfnTransitGatewayMulticastGroupSource,_35=JSII_RTTI_SYMBOL_1,CfnTransitGatewayMulticastGroupSource[_35]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayMulticastGroupSource",version:"2.51.1"},CfnTransitGatewayMulticastGroupSource.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayMulticastGroupSource";function CfnTransitGatewayPeeringAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("peerAccountId",cdk.requiredValidator)(properties.peerAccountId)),errors.collect(cdk.propertyValidator("peerAccountId",cdk.validateString)(properties.peerAccountId)),errors.collect(cdk.propertyValidator("peerRegion",cdk.requiredValidator)(properties.peerRegion)),errors.collect(cdk.propertyValidator("peerRegion",cdk.validateString)(properties.peerRegion)),errors.collect(cdk.propertyValidator("peerTransitGatewayId",cdk.requiredValidator)(properties.peerTransitGatewayId)),errors.collect(cdk.propertyValidator("peerTransitGatewayId",cdk.validateString)(properties.peerTransitGatewayId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayPeeringAttachmentProps"')}function cfnTransitGatewayPeeringAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayPeeringAttachmentPropsValidator(properties).assertSuccess(),{PeerAccountId:cdk.stringToCloudFormation(properties.peerAccountId),PeerRegion:cdk.stringToCloudFormation(properties.peerRegion),PeerTransitGatewayId:cdk.stringToCloudFormation(properties.peerTransitGatewayId),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayPeeringAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("peerAccountId","PeerAccountId",cfn_parse.FromCloudFormation.getString(properties.PeerAccountId)),ret.addPropertyResult("peerRegion","PeerRegion",cfn_parse.FromCloudFormation.getString(properties.PeerRegion)),ret.addPropertyResult("peerTransitGatewayId","PeerTransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.PeerTransitGatewayId)),ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayPeeringAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayPeeringAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayPeeringAttachment),error}cdk.requireProperty(props,"peerAccountId",this),cdk.requireProperty(props,"peerRegion",this),cdk.requireProperty(props,"peerTransitGatewayId",this),cdk.requireProperty(props,"transitGatewayId",this),this.attrCreationTime=cdk.Token.asString(this.getAtt("CreationTime")),this.attrState=cdk.Token.asString(this.getAtt("State")),this.attrTransitGatewayAttachmentId=cdk.Token.asString(this.getAtt("TransitGatewayAttachmentId")),this.peerAccountId=props.peerAccountId,this.peerRegion=props.peerRegion,this.peerTransitGatewayId=props.peerTransitGatewayId,this.transitGatewayId=props.transitGatewayId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayPeeringAttachment",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayPeeringAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayPeeringAttachment(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",CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{peerAccountId:this.peerAccountId,peerRegion:this.peerRegion,peerTransitGatewayId:this.peerTransitGatewayId,transitGatewayId:this.transitGatewayId,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayPeeringAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayPeeringAttachment=CfnTransitGatewayPeeringAttachment,_36=JSII_RTTI_SYMBOL_1,CfnTransitGatewayPeeringAttachment[_36]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayPeeringAttachment",version:"2.51.1"},CfnTransitGatewayPeeringAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayPeeringAttachment";function CfnTransitGatewayRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("blackhole",cdk.validateBoolean)(properties.blackhole)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteProps"')}function cfnTransitGatewayRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRoutePropsValidator(properties).assertSuccess(),{TransitGatewayRouteTableId:cdk.stringToCloudFormation(properties.transitGatewayRouteTableId),Blackhole:cdk.booleanToCloudFormation(properties.blackhole),DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId)}):properties}function CfnTransitGatewayRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayRouteTableId)),ret.addPropertyResult("blackhole","Blackhole",properties.Blackhole!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Blackhole):void 0),ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",properties.DestinationCidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock):void 0),ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",properties.TransitGatewayAttachmentId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRoute),error}cdk.requireProperty(props,"transitGatewayRouteTableId",this),this.transitGatewayRouteTableId=props.transitGatewayRouteTableId,this.blackhole=props.blackhole,this.destinationCidrBlock=props.destinationCidrBlock,this.transitGatewayAttachmentId=props.transitGatewayAttachmentId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRoutePropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRoute(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",CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayRouteTableId:this.transitGatewayRouteTableId,blackhole:this.blackhole,destinationCidrBlock:this.destinationCidrBlock,transitGatewayAttachmentId:this.transitGatewayAttachmentId}}renderProperties(props){return cfnTransitGatewayRoutePropsToCloudFormation(props)}}exports.CfnTransitGatewayRoute=CfnTransitGatewayRoute,_37=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRoute[_37]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRoute",version:"2.51.1"},CfnTransitGatewayRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRoute";function CfnTransitGatewayRouteTablePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTableProps"')}function cfnTransitGatewayRouteTablePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRouteTablePropsValidator(properties).assertSuccess(),{TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayRouteTablePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTable extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTable),error}cdk.requireProperty(props,"transitGatewayId",this),this.transitGatewayId=props.transitGatewayId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayRouteTable",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTablePropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRouteTable(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",CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayId:this.transitGatewayId,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayRouteTablePropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTable=CfnTransitGatewayRouteTable,_38=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRouteTable[_38]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTable",version:"2.51.1"},CfnTransitGatewayRouteTable.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTable";function CfnTransitGatewayRouteTableAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTableAssociationProps"')}function cfnTransitGatewayRouteTableAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRouteTableAssociationPropsValidator(properties).assertSuccess(),{TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayRouteTableId:cdk.stringToCloudFormation(properties.transitGatewayRouteTableId)}):properties}function CfnTransitGatewayRouteTableAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId)),ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayRouteTableId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTableAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTableAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTableAssociation),error}cdk.requireProperty(props,"transitGatewayAttachmentId",this),cdk.requireProperty(props,"transitGatewayRouteTableId",this),this.transitGatewayAttachmentId=props.transitGatewayAttachmentId,this.transitGatewayRouteTableId=props.transitGatewayRouteTableId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTableAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRouteTableAssociation(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",CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayAttachmentId:this.transitGatewayAttachmentId,transitGatewayRouteTableId:this.transitGatewayRouteTableId}}renderProperties(props){return cfnTransitGatewayRouteTableAssociationPropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTableAssociation=CfnTransitGatewayRouteTableAssociation,_39=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRouteTableAssociation[_39]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTableAssociation",version:"2.51.1"},CfnTransitGatewayRouteTableAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTableAssociation";function CfnTransitGatewayRouteTablePropagationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.requiredValidator)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayAttachmentId",cdk.validateString)(properties.transitGatewayAttachmentId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.requiredValidator)(properties.transitGatewayRouteTableId)),errors.collect(cdk.propertyValidator("transitGatewayRouteTableId",cdk.validateString)(properties.transitGatewayRouteTableId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayRouteTablePropagationProps"')}function cfnTransitGatewayRouteTablePropagationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayRouteTablePropagationPropsValidator(properties).assertSuccess(),{TransitGatewayAttachmentId:cdk.stringToCloudFormation(properties.transitGatewayAttachmentId),TransitGatewayRouteTableId:cdk.stringToCloudFormation(properties.transitGatewayRouteTableId)}):properties}function CfnTransitGatewayRouteTablePropagationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("transitGatewayAttachmentId","TransitGatewayAttachmentId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayAttachmentId)),ret.addPropertyResult("transitGatewayRouteTableId","TransitGatewayRouteTableId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayRouteTableId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTransitGatewayRouteTablePropagation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayRouteTablePropagationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayRouteTablePropagation),error}cdk.requireProperty(props,"transitGatewayAttachmentId",this),cdk.requireProperty(props,"transitGatewayRouteTableId",this),this.transitGatewayAttachmentId=props.transitGatewayAttachmentId,this.transitGatewayRouteTableId=props.transitGatewayRouteTableId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayRouteTablePropagationPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayRouteTablePropagation(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",CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{transitGatewayAttachmentId:this.transitGatewayAttachmentId,transitGatewayRouteTableId:this.transitGatewayRouteTableId}}renderProperties(props){return cfnTransitGatewayRouteTablePropagationPropsToCloudFormation(props)}}exports.CfnTransitGatewayRouteTablePropagation=CfnTransitGatewayRouteTablePropagation,_40=JSII_RTTI_SYMBOL_1,CfnTransitGatewayRouteTablePropagation[_40]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayRouteTablePropagation",version:"2.51.1"},CfnTransitGatewayRouteTablePropagation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayRouteTablePropagation";function CfnTransitGatewayVpcAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("addSubnetIds",cdk.listValidator(cdk.validateString))(properties.addSubnetIds)),errors.collect(cdk.propertyValidator("options",cdk.validateObject)(properties.options)),errors.collect(cdk.propertyValidator("removeSubnetIds",cdk.listValidator(cdk.validateString))(properties.removeSubnetIds)),errors.collect(cdk.propertyValidator("subnetIds",cdk.requiredValidator)(properties.subnetIds)),errors.collect(cdk.propertyValidator("subnetIds",cdk.listValidator(cdk.validateString))(properties.subnetIds)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.requiredValidator)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnTransitGatewayVpcAttachmentProps"')}function cfnTransitGatewayVpcAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnTransitGatewayVpcAttachmentPropsValidator(properties).assertSuccess(),{SubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.subnetIds),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpcId:cdk.stringToCloudFormation(properties.vpcId),AddSubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.addSubnetIds),Options:cdk.objectToCloudFormation(properties.options),RemoveSubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.removeSubnetIds),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnTransitGatewayVpcAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("subnetIds","SubnetIds",cfn_parse.FromCloudFormation.getStringArray(properties.SubnetIds)),ret.addPropertyResult("transitGatewayId","TransitGatewayId",cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("addSubnetIds","AddSubnetIds",properties.AddSubnetIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AddSubnetIds):void 0),ret.addPropertyResult("options","Options",properties.Options!=null?cfn_parse.FromCloudFormation.getAny(properties.Options):void 0),ret.addPropertyResult("removeSubnetIds","RemoveSubnetIds",properties.RemoveSubnetIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.RemoveSubnetIds):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 CfnTransitGatewayVpcAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnTransitGatewayVpcAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTransitGatewayVpcAttachment),error}cdk.requireProperty(props,"subnetIds",this),cdk.requireProperty(props,"transitGatewayId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.subnetIds=props.subnetIds,this.transitGatewayId=props.transitGatewayId,this.vpcId=props.vpcId,this.addSubnetIds=props.addSubnetIds,this.options=props.options,this.removeSubnetIds=props.removeSubnetIds,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::TransitGatewayVpcAttachment",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTransitGatewayVpcAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnTransitGatewayVpcAttachment(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",CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{subnetIds:this.subnetIds,transitGatewayId:this.transitGatewayId,vpcId:this.vpcId,addSubnetIds:this.addSubnetIds,options:this.options,removeSubnetIds:this.removeSubnetIds,tags:this.tags.renderTags()}}renderProperties(props){return cfnTransitGatewayVpcAttachmentPropsToCloudFormation(props)}}exports.CfnTransitGatewayVpcAttachment=CfnTransitGatewayVpcAttachment,_41=JSII_RTTI_SYMBOL_1,CfnTransitGatewayVpcAttachment[_41]={fqn:"aws-cdk-lib.aws_ec2.CfnTransitGatewayVpcAttachment",version:"2.51.1"},CfnTransitGatewayVpcAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::TransitGatewayVpcAttachment";function CfnVPCPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("enableDnsHostnames",cdk.validateBoolean)(properties.enableDnsHostnames)),errors.collect(cdk.propertyValidator("enableDnsSupport",cdk.validateBoolean)(properties.enableDnsSupport)),errors.collect(cdk.propertyValidator("instanceTenancy",cdk.validateString)(properties.instanceTenancy)),errors.collect(cdk.propertyValidator("ipv4IpamPoolId",cdk.validateString)(properties.ipv4IpamPoolId)),errors.collect(cdk.propertyValidator("ipv4NetmaskLength",cdk.validateNumber)(properties.ipv4NetmaskLength)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnVPCProps"')}function cfnVPCPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCPropsValidator(properties).assertSuccess(),{CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),EnableDnsHostnames:cdk.booleanToCloudFormation(properties.enableDnsHostnames),EnableDnsSupport:cdk.booleanToCloudFormation(properties.enableDnsSupport),InstanceTenancy:cdk.stringToCloudFormation(properties.instanceTenancy),Ipv4IpamPoolId:cdk.stringToCloudFormation(properties.ipv4IpamPoolId),Ipv4NetmaskLength:cdk.numberToCloudFormation(properties.ipv4NetmaskLength),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPCPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("enableDnsHostnames","EnableDnsHostnames",properties.EnableDnsHostnames!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableDnsHostnames):void 0),ret.addPropertyResult("enableDnsSupport","EnableDnsSupport",properties.EnableDnsSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.EnableDnsSupport):void 0),ret.addPropertyResult("instanceTenancy","InstanceTenancy",properties.InstanceTenancy!=null?cfn_parse.FromCloudFormation.getString(properties.InstanceTenancy):void 0),ret.addPropertyResult("ipv4IpamPoolId","Ipv4IpamPoolId",properties.Ipv4IpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv4IpamPoolId):void 0),ret.addPropertyResult("ipv4NetmaskLength","Ipv4NetmaskLength",properties.Ipv4NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv4NetmaskLength):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 CfnVPC extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnVPC.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPC),error}this.attrCidrBlock=cdk.Token.asString(this.getAtt("CidrBlock")),this.attrCidrBlockAssociations=cdk.Token.asList(this.getAtt("CidrBlockAssociations")),this.attrDefaultNetworkAcl=cdk.Token.asString(this.getAtt("DefaultNetworkAcl")),this.attrDefaultSecurityGroup=cdk.Token.asString(this.getAtt("DefaultSecurityGroup")),this.attrIpv6CidrBlocks=cdk.Token.asList(this.getAtt("Ipv6CidrBlocks")),this.attrVpcId=cdk.Token.asString(this.getAtt("VpcId")),this.cidrBlock=props.cidrBlock,this.enableDnsHostnames=props.enableDnsHostnames,this.enableDnsSupport=props.enableDnsSupport,this.instanceTenancy=props.instanceTenancy,this.ipv4IpamPoolId=props.ipv4IpamPoolId,this.ipv4NetmaskLength=props.ipv4NetmaskLength,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPC",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCPropsFromCloudFormation(resourceProperties),ret=new CfnVPC(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",CfnVPC.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{cidrBlock:this.cidrBlock,enableDnsHostnames:this.enableDnsHostnames,enableDnsSupport:this.enableDnsSupport,instanceTenancy:this.instanceTenancy,ipv4IpamPoolId:this.ipv4IpamPoolId,ipv4NetmaskLength:this.ipv4NetmaskLength,tags:this.tags.renderTags()}}renderProperties(props){return cfnVPCPropsToCloudFormation(props)}}exports.CfnVPC=CfnVPC,_42=JSII_RTTI_SYMBOL_1,CfnVPC[_42]={fqn:"aws-cdk-lib.aws_ec2.CfnVPC",version:"2.51.1"},CfnVPC.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPC";function CfnVPCCidrBlockPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("amazonProvidedIpv6CidrBlock",cdk.validateBoolean)(properties.amazonProvidedIpv6CidrBlock)),errors.collect(cdk.propertyValidator("cidrBlock",cdk.validateString)(properties.cidrBlock)),errors.collect(cdk.propertyValidator("ipv4IpamPoolId",cdk.validateString)(properties.ipv4IpamPoolId)),errors.collect(cdk.propertyValidator("ipv4NetmaskLength",cdk.validateNumber)(properties.ipv4NetmaskLength)),errors.collect(cdk.propertyValidator("ipv6CidrBlock",cdk.validateString)(properties.ipv6CidrBlock)),errors.collect(cdk.propertyValidator("ipv6IpamPoolId",cdk.validateString)(properties.ipv6IpamPoolId)),errors.collect(cdk.propertyValidator("ipv6NetmaskLength",cdk.validateNumber)(properties.ipv6NetmaskLength)),errors.collect(cdk.propertyValidator("ipv6Pool",cdk.validateString)(properties.ipv6Pool)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCCidrBlockProps"')}function cfnVPCCidrBlockPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCCidrBlockPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),AmazonProvidedIpv6CidrBlock:cdk.booleanToCloudFormation(properties.amazonProvidedIpv6CidrBlock),CidrBlock:cdk.stringToCloudFormation(properties.cidrBlock),Ipv4IpamPoolId:cdk.stringToCloudFormation(properties.ipv4IpamPoolId),Ipv4NetmaskLength:cdk.numberToCloudFormation(properties.ipv4NetmaskLength),Ipv6CidrBlock:cdk.stringToCloudFormation(properties.ipv6CidrBlock),Ipv6IpamPoolId:cdk.stringToCloudFormation(properties.ipv6IpamPoolId),Ipv6NetmaskLength:cdk.numberToCloudFormation(properties.ipv6NetmaskLength),Ipv6Pool:cdk.stringToCloudFormation(properties.ipv6Pool)}):properties}function CfnVPCCidrBlockPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("amazonProvidedIpv6CidrBlock","AmazonProvidedIpv6CidrBlock",properties.AmazonProvidedIpv6CidrBlock!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AmazonProvidedIpv6CidrBlock):void 0),ret.addPropertyResult("cidrBlock","CidrBlock",properties.CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.CidrBlock):void 0),ret.addPropertyResult("ipv4IpamPoolId","Ipv4IpamPoolId",properties.Ipv4IpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv4IpamPoolId):void 0),ret.addPropertyResult("ipv4NetmaskLength","Ipv4NetmaskLength",properties.Ipv4NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv4NetmaskLength):void 0),ret.addPropertyResult("ipv6CidrBlock","Ipv6CidrBlock",properties.Ipv6CidrBlock!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6CidrBlock):void 0),ret.addPropertyResult("ipv6IpamPoolId","Ipv6IpamPoolId",properties.Ipv6IpamPoolId!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6IpamPoolId):void 0),ret.addPropertyResult("ipv6NetmaskLength","Ipv6NetmaskLength",properties.Ipv6NetmaskLength!=null?cfn_parse.FromCloudFormation.getNumber(properties.Ipv6NetmaskLength):void 0),ret.addPropertyResult("ipv6Pool","Ipv6Pool",properties.Ipv6Pool!=null?cfn_parse.FromCloudFormation.getString(properties.Ipv6Pool):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCCidrBlock extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCCidrBlockProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCCidrBlock),error}cdk.requireProperty(props,"vpcId",this),this.vpcId=props.vpcId,this.amazonProvidedIpv6CidrBlock=props.amazonProvidedIpv6CidrBlock,this.cidrBlock=props.cidrBlock,this.ipv4IpamPoolId=props.ipv4IpamPoolId,this.ipv4NetmaskLength=props.ipv4NetmaskLength,this.ipv6CidrBlock=props.ipv6CidrBlock,this.ipv6IpamPoolId=props.ipv6IpamPoolId,this.ipv6NetmaskLength=props.ipv6NetmaskLength,this.ipv6Pool=props.ipv6Pool}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCCidrBlockPropsFromCloudFormation(resourceProperties),ret=new CfnVPCCidrBlock(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",CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,amazonProvidedIpv6CidrBlock:this.amazonProvidedIpv6CidrBlock,cidrBlock:this.cidrBlock,ipv4IpamPoolId:this.ipv4IpamPoolId,ipv4NetmaskLength:this.ipv4NetmaskLength,ipv6CidrBlock:this.ipv6CidrBlock,ipv6IpamPoolId:this.ipv6IpamPoolId,ipv6NetmaskLength:this.ipv6NetmaskLength,ipv6Pool:this.ipv6Pool}}renderProperties(props){return cfnVPCCidrBlockPropsToCloudFormation(props)}}exports.CfnVPCCidrBlock=CfnVPCCidrBlock,_43=JSII_RTTI_SYMBOL_1,CfnVPCCidrBlock[_43]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCCidrBlock",version:"2.51.1"},CfnVPCCidrBlock.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCCidrBlock";function CfnVPCDHCPOptionsAssociationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("dhcpOptionsId",cdk.requiredValidator)(properties.dhcpOptionsId)),errors.collect(cdk.propertyValidator("dhcpOptionsId",cdk.validateString)(properties.dhcpOptionsId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCDHCPOptionsAssociationProps"')}function cfnVPCDHCPOptionsAssociationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCDHCPOptionsAssociationPropsValidator(properties).assertSuccess(),{DhcpOptionsId:cdk.stringToCloudFormation(properties.dhcpOptionsId),VpcId:cdk.stringToCloudFormation(properties.vpcId)}):properties}function CfnVPCDHCPOptionsAssociationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("dhcpOptionsId","DhcpOptionsId",cfn_parse.FromCloudFormation.getString(properties.DhcpOptionsId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCDHCPOptionsAssociation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCDHCPOptionsAssociationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCDHCPOptionsAssociation),error}cdk.requireProperty(props,"dhcpOptionsId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.dhcpOptionsId=props.dhcpOptionsId,this.vpcId=props.vpcId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCDHCPOptionsAssociationPropsFromCloudFormation(resourceProperties),ret=new CfnVPCDHCPOptionsAssociation(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",CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{dhcpOptionsId:this.dhcpOptionsId,vpcId:this.vpcId}}renderProperties(props){return cfnVPCDHCPOptionsAssociationPropsToCloudFormation(props)}}exports.CfnVPCDHCPOptionsAssociation=CfnVPCDHCPOptionsAssociation,_44=JSII_RTTI_SYMBOL_1,CfnVPCDHCPOptionsAssociation[_44]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCDHCPOptionsAssociation",version:"2.51.1"},CfnVPCDHCPOptionsAssociation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCDHCPOptionsAssociation";function CfnVPCEndpointPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("policyDocument",cdk.validateObject)(properties.policyDocument)),errors.collect(cdk.propertyValidator("privateDnsEnabled",cdk.validateBoolean)(properties.privateDnsEnabled)),errors.collect(cdk.propertyValidator("routeTableIds",cdk.listValidator(cdk.validateString))(properties.routeTableIds)),errors.collect(cdk.propertyValidator("securityGroupIds",cdk.listValidator(cdk.validateString))(properties.securityGroupIds)),errors.collect(cdk.propertyValidator("serviceName",cdk.requiredValidator)(properties.serviceName)),errors.collect(cdk.propertyValidator("serviceName",cdk.validateString)(properties.serviceName)),errors.collect(cdk.propertyValidator("subnetIds",cdk.listValidator(cdk.validateString))(properties.subnetIds)),errors.collect(cdk.propertyValidator("vpcEndpointType",cdk.validateString)(properties.vpcEndpointType)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointProps"')}function cfnVPCEndpointPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointPropsValidator(properties).assertSuccess(),{ServiceName:cdk.stringToCloudFormation(properties.serviceName),VpcId:cdk.stringToCloudFormation(properties.vpcId),PolicyDocument:cdk.objectToCloudFormation(properties.policyDocument),PrivateDnsEnabled:cdk.booleanToCloudFormation(properties.privateDnsEnabled),RouteTableIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.routeTableIds),SecurityGroupIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.securityGroupIds),SubnetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.subnetIds),VpcEndpointType:cdk.stringToCloudFormation(properties.vpcEndpointType)}):properties}function CfnVPCEndpointPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("serviceName","ServiceName",cfn_parse.FromCloudFormation.getString(properties.ServiceName)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse.FromCloudFormation.getAny(properties.PolicyDocument):void 0),ret.addPropertyResult("privateDnsEnabled","PrivateDnsEnabled",properties.PrivateDnsEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.PrivateDnsEnabled):void 0),ret.addPropertyResult("routeTableIds","RouteTableIds",properties.RouteTableIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.RouteTableIds):void 0),ret.addPropertyResult("securityGroupIds","SecurityGroupIds",properties.SecurityGroupIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SecurityGroupIds):void 0),ret.addPropertyResult("subnetIds","SubnetIds",properties.SubnetIds!=null?cfn_parse.FromCloudFormation.getStringArray(properties.SubnetIds):void 0),ret.addPropertyResult("vpcEndpointType","VpcEndpointType",properties.VpcEndpointType!=null?cfn_parse.FromCloudFormation.getString(properties.VpcEndpointType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpoint extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpoint),error}cdk.requireProperty(props,"serviceName",this),cdk.requireProperty(props,"vpcId",this),this.attrCreationTimestamp=cdk.Token.asString(this.getAtt("CreationTimestamp")),this.attrDnsEntries=cdk.Token.asList(this.getAtt("DnsEntries")),this.attrNetworkInterfaceIds=cdk.Token.asList(this.getAtt("NetworkInterfaceIds")),this.serviceName=props.serviceName,this.vpcId=props.vpcId,this.policyDocument=props.policyDocument,this.privateDnsEnabled=props.privateDnsEnabled,this.routeTableIds=props.routeTableIds,this.securityGroupIds=props.securityGroupIds,this.subnetIds=props.subnetIds,this.vpcEndpointType=props.vpcEndpointType}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointPropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpoint(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",CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{serviceName:this.serviceName,vpcId:this.vpcId,policyDocument:this.policyDocument,privateDnsEnabled:this.privateDnsEnabled,routeTableIds:this.routeTableIds,securityGroupIds:this.securityGroupIds,subnetIds:this.subnetIds,vpcEndpointType:this.vpcEndpointType}}renderProperties(props){return cfnVPCEndpointPropsToCloudFormation(props)}}exports.CfnVPCEndpoint=CfnVPCEndpoint,_45=JSII_RTTI_SYMBOL_1,CfnVPCEndpoint[_45]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpoint",version:"2.51.1"},CfnVPCEndpoint.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpoint";function CfnVPCEndpointConnectionNotificationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("connectionEvents",cdk.requiredValidator)(properties.connectionEvents)),errors.collect(cdk.propertyValidator("connectionEvents",cdk.listValidator(cdk.validateString))(properties.connectionEvents)),errors.collect(cdk.propertyValidator("connectionNotificationArn",cdk.requiredValidator)(properties.connectionNotificationArn)),errors.collect(cdk.propertyValidator("connectionNotificationArn",cdk.validateString)(properties.connectionNotificationArn)),errors.collect(cdk.propertyValidator("serviceId",cdk.validateString)(properties.serviceId)),errors.collect(cdk.propertyValidator("vpcEndpointId",cdk.validateString)(properties.vpcEndpointId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointConnectionNotificationProps"')}function cfnVPCEndpointConnectionNotificationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointConnectionNotificationPropsValidator(properties).assertSuccess(),{ConnectionEvents:cdk.listMapper(cdk.stringToCloudFormation)(properties.connectionEvents),ConnectionNotificationArn:cdk.stringToCloudFormation(properties.connectionNotificationArn),ServiceId:cdk.stringToCloudFormation(properties.serviceId),VPCEndpointId:cdk.stringToCloudFormation(properties.vpcEndpointId)}):properties}function CfnVPCEndpointConnectionNotificationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("connectionEvents","ConnectionEvents",cfn_parse.FromCloudFormation.getStringArray(properties.ConnectionEvents)),ret.addPropertyResult("connectionNotificationArn","ConnectionNotificationArn",cfn_parse.FromCloudFormation.getString(properties.ConnectionNotificationArn)),ret.addPropertyResult("serviceId","ServiceId",properties.ServiceId!=null?cfn_parse.FromCloudFormation.getString(properties.ServiceId):void 0),ret.addPropertyResult("vpcEndpointId","VPCEndpointId",properties.VPCEndpointId!=null?cfn_parse.FromCloudFormation.getString(properties.VPCEndpointId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointConnectionNotification extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointConnectionNotificationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointConnectionNotification),error}cdk.requireProperty(props,"connectionEvents",this),cdk.requireProperty(props,"connectionNotificationArn",this),this.connectionEvents=props.connectionEvents,this.connectionNotificationArn=props.connectionNotificationArn,this.serviceId=props.serviceId,this.vpcEndpointId=props.vpcEndpointId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointConnectionNotificationPropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpointConnectionNotification(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",CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{connectionEvents:this.connectionEvents,connectionNotificationArn:this.connectionNotificationArn,serviceId:this.serviceId,vpcEndpointId:this.vpcEndpointId}}renderProperties(props){return cfnVPCEndpointConnectionNotificationPropsToCloudFormation(props)}}exports.CfnVPCEndpointConnectionNotification=CfnVPCEndpointConnectionNotification,_46=JSII_RTTI_SYMBOL_1,CfnVPCEndpointConnectionNotification[_46]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointConnectionNotification",version:"2.51.1"},CfnVPCEndpointConnectionNotification.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointConnectionNotification";function CfnVPCEndpointServicePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("acceptanceRequired",cdk.validateBoolean)(properties.acceptanceRequired)),errors.collect(cdk.propertyValidator("contributorInsightsEnabled",cdk.validateBoolean)(properties.contributorInsightsEnabled)),errors.collect(cdk.propertyValidator("gatewayLoadBalancerArns",cdk.listValidator(cdk.validateString))(properties.gatewayLoadBalancerArns)),errors.collect(cdk.propertyValidator("networkLoadBalancerArns",cdk.listValidator(cdk.validateString))(properties.networkLoadBalancerArns)),errors.collect(cdk.propertyValidator("payerResponsibility",cdk.validateString)(properties.payerResponsibility)),errors.wrap('supplied properties not correct for "CfnVPCEndpointServiceProps"')}function cfnVPCEndpointServicePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointServicePropsValidator(properties).assertSuccess(),{AcceptanceRequired:cdk.booleanToCloudFormation(properties.acceptanceRequired),ContributorInsightsEnabled:cdk.booleanToCloudFormation(properties.contributorInsightsEnabled),GatewayLoadBalancerArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.gatewayLoadBalancerArns),NetworkLoadBalancerArns:cdk.listMapper(cdk.stringToCloudFormation)(properties.networkLoadBalancerArns),PayerResponsibility:cdk.stringToCloudFormation(properties.payerResponsibility)}):properties}function CfnVPCEndpointServicePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("acceptanceRequired","AcceptanceRequired",properties.AcceptanceRequired!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AcceptanceRequired):void 0),ret.addPropertyResult("contributorInsightsEnabled","ContributorInsightsEnabled",properties.ContributorInsightsEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ContributorInsightsEnabled):void 0),ret.addPropertyResult("gatewayLoadBalancerArns","GatewayLoadBalancerArns",properties.GatewayLoadBalancerArns!=null?cfn_parse.FromCloudFormation.getStringArray(properties.GatewayLoadBalancerArns):void 0),ret.addPropertyResult("networkLoadBalancerArns","NetworkLoadBalancerArns",properties.NetworkLoadBalancerArns!=null?cfn_parse.FromCloudFormation.getStringArray(properties.NetworkLoadBalancerArns):void 0),ret.addPropertyResult("payerResponsibility","PayerResponsibility",properties.PayerResponsibility!=null?cfn_parse.FromCloudFormation.getString(properties.PayerResponsibility):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointService extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointService),error}this.acceptanceRequired=props.acceptanceRequired,this.contributorInsightsEnabled=props.contributorInsightsEnabled,this.gatewayLoadBalancerArns=props.gatewayLoadBalancerArns,this.networkLoadBalancerArns=props.networkLoadBalancerArns,this.payerResponsibility=props.payerResponsibility}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointServicePropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpointService(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",CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{acceptanceRequired:this.acceptanceRequired,contributorInsightsEnabled:this.contributorInsightsEnabled,gatewayLoadBalancerArns:this.gatewayLoadBalancerArns,networkLoadBalancerArns:this.networkLoadBalancerArns,payerResponsibility:this.payerResponsibility}}renderProperties(props){return cfnVPCEndpointServicePropsToCloudFormation(props)}}exports.CfnVPCEndpointService=CfnVPCEndpointService,_47=JSII_RTTI_SYMBOL_1,CfnVPCEndpointService[_47]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointService",version:"2.51.1"},CfnVPCEndpointService.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointService";function CfnVPCEndpointServicePermissionsPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("allowedPrincipals",cdk.listValidator(cdk.validateString))(properties.allowedPrincipals)),errors.collect(cdk.propertyValidator("serviceId",cdk.requiredValidator)(properties.serviceId)),errors.collect(cdk.propertyValidator("serviceId",cdk.validateString)(properties.serviceId)),errors.wrap('supplied properties not correct for "CfnVPCEndpointServicePermissionsProps"')}function cfnVPCEndpointServicePermissionsPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCEndpointServicePermissionsPropsValidator(properties).assertSuccess(),{ServiceId:cdk.stringToCloudFormation(properties.serviceId),AllowedPrincipals:cdk.listMapper(cdk.stringToCloudFormation)(properties.allowedPrincipals)}):properties}function CfnVPCEndpointServicePermissionsPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("serviceId","ServiceId",cfn_parse.FromCloudFormation.getString(properties.ServiceId)),ret.addPropertyResult("allowedPrincipals","AllowedPrincipals",properties.AllowedPrincipals!=null?cfn_parse.FromCloudFormation.getStringArray(properties.AllowedPrincipals):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCEndpointServicePermissions extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCEndpointServicePermissionsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCEndpointServicePermissions),error}cdk.requireProperty(props,"serviceId",this),this.serviceId=props.serviceId,this.allowedPrincipals=props.allowedPrincipals}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCEndpointServicePermissionsPropsFromCloudFormation(resourceProperties),ret=new CfnVPCEndpointServicePermissions(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",CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{serviceId:this.serviceId,allowedPrincipals:this.allowedPrincipals}}renderProperties(props){return cfnVPCEndpointServicePermissionsPropsToCloudFormation(props)}}exports.CfnVPCEndpointServicePermissions=CfnVPCEndpointServicePermissions,_48=JSII_RTTI_SYMBOL_1,CfnVPCEndpointServicePermissions[_48]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCEndpointServicePermissions",version:"2.51.1"},CfnVPCEndpointServicePermissions.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCEndpointServicePermissions";function CfnVPCGatewayAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("internetGatewayId",cdk.validateString)(properties.internetGatewayId)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.validateString)(properties.vpnGatewayId)),errors.wrap('supplied properties not correct for "CfnVPCGatewayAttachmentProps"')}function cfnVPCGatewayAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCGatewayAttachmentPropsValidator(properties).assertSuccess(),{VpcId:cdk.stringToCloudFormation(properties.vpcId),InternetGatewayId:cdk.stringToCloudFormation(properties.internetGatewayId),VpnGatewayId:cdk.stringToCloudFormation(properties.vpnGatewayId)}):properties}function CfnVPCGatewayAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("internetGatewayId","InternetGatewayId",properties.InternetGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.InternetGatewayId):void 0),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",properties.VpnGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.VpnGatewayId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPCGatewayAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCGatewayAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCGatewayAttachment),error}cdk.requireProperty(props,"vpcId",this),this.vpcId=props.vpcId,this.internetGatewayId=props.internetGatewayId,this.vpnGatewayId=props.vpnGatewayId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCGatewayAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnVPCGatewayAttachment(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",CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{vpcId:this.vpcId,internetGatewayId:this.internetGatewayId,vpnGatewayId:this.vpnGatewayId}}renderProperties(props){return cfnVPCGatewayAttachmentPropsToCloudFormation(props)}}exports.CfnVPCGatewayAttachment=CfnVPCGatewayAttachment,_49=JSII_RTTI_SYMBOL_1,CfnVPCGatewayAttachment[_49]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCGatewayAttachment",version:"2.51.1"},CfnVPCGatewayAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCGatewayAttachment";function CfnVPCPeeringConnectionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("peerOwnerId",cdk.validateString)(properties.peerOwnerId)),errors.collect(cdk.propertyValidator("peerRegion",cdk.validateString)(properties.peerRegion)),errors.collect(cdk.propertyValidator("peerRoleArn",cdk.validateString)(properties.peerRoleArn)),errors.collect(cdk.propertyValidator("peerVpcId",cdk.requiredValidator)(properties.peerVpcId)),errors.collect(cdk.propertyValidator("peerVpcId",cdk.validateString)(properties.peerVpcId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("vpcId",cdk.requiredValidator)(properties.vpcId)),errors.collect(cdk.propertyValidator("vpcId",cdk.validateString)(properties.vpcId)),errors.wrap('supplied properties not correct for "CfnVPCPeeringConnectionProps"')}function cfnVPCPeeringConnectionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPCPeeringConnectionPropsValidator(properties).assertSuccess(),{PeerVpcId:cdk.stringToCloudFormation(properties.peerVpcId),VpcId:cdk.stringToCloudFormation(properties.vpcId),PeerOwnerId:cdk.stringToCloudFormation(properties.peerOwnerId),PeerRegion:cdk.stringToCloudFormation(properties.peerRegion),PeerRoleArn:cdk.stringToCloudFormation(properties.peerRoleArn),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPCPeeringConnectionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("peerVpcId","PeerVpcId",cfn_parse.FromCloudFormation.getString(properties.PeerVpcId)),ret.addPropertyResult("vpcId","VpcId",cfn_parse.FromCloudFormation.getString(properties.VpcId)),ret.addPropertyResult("peerOwnerId","PeerOwnerId",properties.PeerOwnerId!=null?cfn_parse.FromCloudFormation.getString(properties.PeerOwnerId):void 0),ret.addPropertyResult("peerRegion","PeerRegion",properties.PeerRegion!=null?cfn_parse.FromCloudFormation.getString(properties.PeerRegion):void 0),ret.addPropertyResult("peerRoleArn","PeerRoleArn",properties.PeerRoleArn!=null?cfn_parse.FromCloudFormation.getString(properties.PeerRoleArn):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 CfnVPCPeeringConnection extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPCPeeringConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPCPeeringConnection),error}cdk.requireProperty(props,"peerVpcId",this),cdk.requireProperty(props,"vpcId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.peerVpcId=props.peerVpcId,this.vpcId=props.vpcId,this.peerOwnerId=props.peerOwnerId,this.peerRegion=props.peerRegion,this.peerRoleArn=props.peerRoleArn,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPCPeeringConnection",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPCPeeringConnectionPropsFromCloudFormation(resourceProperties),ret=new CfnVPCPeeringConnection(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",CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{peerVpcId:this.peerVpcId,vpcId:this.vpcId,peerOwnerId:this.peerOwnerId,peerRegion:this.peerRegion,peerRoleArn:this.peerRoleArn,tags:this.tags.renderTags()}}renderProperties(props){return cfnVPCPeeringConnectionPropsToCloudFormation(props)}}exports.CfnVPCPeeringConnection=CfnVPCPeeringConnection,_50=JSII_RTTI_SYMBOL_1,CfnVPCPeeringConnection[_50]={fqn:"aws-cdk-lib.aws_ec2.CfnVPCPeeringConnection",version:"2.51.1"},CfnVPCPeeringConnection.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPCPeeringConnection";function CfnVPNConnectionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("customerGatewayId",cdk.requiredValidator)(properties.customerGatewayId)),errors.collect(cdk.propertyValidator("customerGatewayId",cdk.validateString)(properties.customerGatewayId)),errors.collect(cdk.propertyValidator("staticRoutesOnly",cdk.validateBoolean)(properties.staticRoutesOnly)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("transitGatewayId",cdk.validateString)(properties.transitGatewayId)),errors.collect(cdk.propertyValidator("type",cdk.requiredValidator)(properties.type)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.validateString)(properties.vpnGatewayId)),errors.collect(cdk.propertyValidator("vpnTunnelOptionsSpecifications",cdk.listValidator(CfnVPNConnection_VpnTunnelOptionsSpecificationPropertyValidator))(properties.vpnTunnelOptionsSpecifications)),errors.wrap('supplied properties not correct for "CfnVPNConnectionProps"')}function cfnVPNConnectionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNConnectionPropsValidator(properties).assertSuccess(),{CustomerGatewayId:cdk.stringToCloudFormation(properties.customerGatewayId),Type:cdk.stringToCloudFormation(properties.type),StaticRoutesOnly:cdk.booleanToCloudFormation(properties.staticRoutesOnly),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),TransitGatewayId:cdk.stringToCloudFormation(properties.transitGatewayId),VpnGatewayId:cdk.stringToCloudFormation(properties.vpnGatewayId),VpnTunnelOptionsSpecifications:cdk.listMapper(cfnVPNConnectionVpnTunnelOptionsSpecificationPropertyToCloudFormation)(properties.vpnTunnelOptionsSpecifications)}):properties}function CfnVPNConnectionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("customerGatewayId","CustomerGatewayId",cfn_parse.FromCloudFormation.getString(properties.CustomerGatewayId)),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addPropertyResult("staticRoutesOnly","StaticRoutesOnly",properties.StaticRoutesOnly!=null?cfn_parse.FromCloudFormation.getBoolean(properties.StaticRoutesOnly):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("transitGatewayId","TransitGatewayId",properties.TransitGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.TransitGatewayId):void 0),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",properties.VpnGatewayId!=null?cfn_parse.FromCloudFormation.getString(properties.VpnGatewayId):void 0),ret.addPropertyResult("vpnTunnelOptionsSpecifications","VpnTunnelOptionsSpecifications",properties.VpnTunnelOptionsSpecifications!=null?cfn_parse.FromCloudFormation.getArray(CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyFromCloudFormation)(properties.VpnTunnelOptionsSpecifications):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNConnection extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNConnection.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNConnection),error}cdk.requireProperty(props,"customerGatewayId",this),cdk.requireProperty(props,"type",this),this.attrVpnConnectionId=cdk.Token.asString(this.getAtt("VpnConnectionId")),this.customerGatewayId=props.customerGatewayId,this.type=props.type,this.staticRoutesOnly=props.staticRoutesOnly,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPNConnection",props.tags,{tagPropertyName:"tags"}),this.transitGatewayId=props.transitGatewayId,this.vpnGatewayId=props.vpnGatewayId,this.vpnTunnelOptionsSpecifications=props.vpnTunnelOptionsSpecifications}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNConnectionPropsFromCloudFormation(resourceProperties),ret=new CfnVPNConnection(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",CfnVPNConnection.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{customerGatewayId:this.customerGatewayId,type:this.type,staticRoutesOnly:this.staticRoutesOnly,tags:this.tags.renderTags(),transitGatewayId:this.transitGatewayId,vpnGatewayId:this.vpnGatewayId,vpnTunnelOptionsSpecifications:this.vpnTunnelOptionsSpecifications}}renderProperties(props){return cfnVPNConnectionPropsToCloudFormation(props)}}exports.CfnVPNConnection=CfnVPNConnection,_51=JSII_RTTI_SYMBOL_1,CfnVPNConnection[_51]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNConnection",version:"2.51.1"},CfnVPNConnection.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNConnection";function CfnVPNConnection_VpnTunnelOptionsSpecificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("preSharedKey",cdk.validateString)(properties.preSharedKey)),errors.collect(cdk.propertyValidator("tunnelInsideCidr",cdk.validateString)(properties.tunnelInsideCidr)),errors.wrap('supplied properties not correct for "VpnTunnelOptionsSpecificationProperty"')}function cfnVPNConnectionVpnTunnelOptionsSpecificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNConnection_VpnTunnelOptionsSpecificationPropertyValidator(properties).assertSuccess(),{PreSharedKey:cdk.stringToCloudFormation(properties.preSharedKey),TunnelInsideCidr:cdk.stringToCloudFormation(properties.tunnelInsideCidr)}):properties}function CfnVPNConnectionVpnTunnelOptionsSpecificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("preSharedKey","PreSharedKey",properties.PreSharedKey!=null?cfn_parse.FromCloudFormation.getString(properties.PreSharedKey):void 0),ret.addPropertyResult("tunnelInsideCidr","TunnelInsideCidr",properties.TunnelInsideCidr!=null?cfn_parse.FromCloudFormation.getString(properties.TunnelInsideCidr):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnVPNConnectionRoutePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.requiredValidator)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("destinationCidrBlock",cdk.validateString)(properties.destinationCidrBlock)),errors.collect(cdk.propertyValidator("vpnConnectionId",cdk.requiredValidator)(properties.vpnConnectionId)),errors.collect(cdk.propertyValidator("vpnConnectionId",cdk.validateString)(properties.vpnConnectionId)),errors.wrap('supplied properties not correct for "CfnVPNConnectionRouteProps"')}function cfnVPNConnectionRoutePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNConnectionRoutePropsValidator(properties).assertSuccess(),{DestinationCidrBlock:cdk.stringToCloudFormation(properties.destinationCidrBlock),VpnConnectionId:cdk.stringToCloudFormation(properties.vpnConnectionId)}):properties}function CfnVPNConnectionRoutePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinationCidrBlock","DestinationCidrBlock",cfn_parse.FromCloudFormation.getString(properties.DestinationCidrBlock)),ret.addPropertyResult("vpnConnectionId","VpnConnectionId",cfn_parse.FromCloudFormation.getString(properties.VpnConnectionId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNConnectionRoute extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNConnectionRouteProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNConnectionRoute),error}cdk.requireProperty(props,"destinationCidrBlock",this),cdk.requireProperty(props,"vpnConnectionId",this),this.destinationCidrBlock=props.destinationCidrBlock,this.vpnConnectionId=props.vpnConnectionId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNConnectionRoutePropsFromCloudFormation(resourceProperties),ret=new CfnVPNConnectionRoute(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",CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{destinationCidrBlock:this.destinationCidrBlock,vpnConnectionId:this.vpnConnectionId}}renderProperties(props){return cfnVPNConnectionRoutePropsToCloudFormation(props)}}exports.CfnVPNConnectionRoute=CfnVPNConnectionRoute,_52=JSII_RTTI_SYMBOL_1,CfnVPNConnectionRoute[_52]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNConnectionRoute",version:"2.51.1"},CfnVPNConnectionRoute.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNConnectionRoute";function CfnVPNGatewayPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("amazonSideAsn",cdk.validateNumber)(properties.amazonSideAsn)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),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 "CfnVPNGatewayProps"')}function cfnVPNGatewayPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNGatewayPropsValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type),AmazonSideAsn:cdk.numberToCloudFormation(properties.amazonSideAsn),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnVPNGatewayPropsFromCloudFormation(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.addPropertyResult("amazonSideAsn","AmazonSideAsn",properties.AmazonSideAsn!=null?cfn_parse.FromCloudFormation.getNumber(properties.AmazonSideAsn):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 CfnVPNGateway extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNGateway.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNGateway),error}cdk.requireProperty(props,"type",this),this.attrVpnGatewayId=cdk.Token.asString(this.getAtt("VPNGatewayId")),this.type=props.type,this.amazonSideAsn=props.amazonSideAsn,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::VPNGateway",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNGatewayPropsFromCloudFormation(resourceProperties),ret=new CfnVPNGateway(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",CfnVPNGateway.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{type:this.type,amazonSideAsn:this.amazonSideAsn,tags:this.tags.renderTags()}}renderProperties(props){return cfnVPNGatewayPropsToCloudFormation(props)}}exports.CfnVPNGateway=CfnVPNGateway,_53=JSII_RTTI_SYMBOL_1,CfnVPNGateway[_53]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNGateway",version:"2.51.1"},CfnVPNGateway.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNGateway";function CfnVPNGatewayRoutePropagationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("routeTableIds",cdk.requiredValidator)(properties.routeTableIds)),errors.collect(cdk.propertyValidator("routeTableIds",cdk.listValidator(cdk.validateString))(properties.routeTableIds)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.requiredValidator)(properties.vpnGatewayId)),errors.collect(cdk.propertyValidator("vpnGatewayId",cdk.validateString)(properties.vpnGatewayId)),errors.wrap('supplied properties not correct for "CfnVPNGatewayRoutePropagationProps"')}function cfnVPNGatewayRoutePropagationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVPNGatewayRoutePropagationPropsValidator(properties).assertSuccess(),{RouteTableIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.routeTableIds),VpnGatewayId:cdk.stringToCloudFormation(properties.vpnGatewayId)}):properties}function CfnVPNGatewayRoutePropagationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("routeTableIds","RouteTableIds",cfn_parse.FromCloudFormation.getStringArray(properties.RouteTableIds)),ret.addPropertyResult("vpnGatewayId","VpnGatewayId",cfn_parse.FromCloudFormation.getString(properties.VpnGatewayId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVPNGatewayRoutePropagation extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVPNGatewayRoutePropagationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVPNGatewayRoutePropagation),error}cdk.requireProperty(props,"routeTableIds",this),cdk.requireProperty(props,"vpnGatewayId",this),this.attrId=cdk.Token.asString(this.getAtt("Id")),this.routeTableIds=props.routeTableIds,this.vpnGatewayId=props.vpnGatewayId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVPNGatewayRoutePropagationPropsFromCloudFormation(resourceProperties),ret=new CfnVPNGatewayRoutePropagation(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",CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{routeTableIds:this.routeTableIds,vpnGatewayId:this.vpnGatewayId}}renderProperties(props){return cfnVPNGatewayRoutePropagationPropsToCloudFormation(props)}}exports.CfnVPNGatewayRoutePropagation=CfnVPNGatewayRoutePropagation,_54=JSII_RTTI_SYMBOL_1,CfnVPNGatewayRoutePropagation[_54]={fqn:"aws-cdk-lib.aws_ec2.CfnVPNGatewayRoutePropagation",version:"2.51.1"},CfnVPNGatewayRoutePropagation.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VPNGatewayRoutePropagation";function CfnVolumePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoEnableIo",cdk.validateBoolean)(properties.autoEnableIo)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.requiredValidator)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("availabilityZone",cdk.validateString)(properties.availabilityZone)),errors.collect(cdk.propertyValidator("encrypted",cdk.validateBoolean)(properties.encrypted)),errors.collect(cdk.propertyValidator("iops",cdk.validateNumber)(properties.iops)),errors.collect(cdk.propertyValidator("kmsKeyId",cdk.validateString)(properties.kmsKeyId)),errors.collect(cdk.propertyValidator("multiAttachEnabled",cdk.validateBoolean)(properties.multiAttachEnabled)),errors.collect(cdk.propertyValidator("outpostArn",cdk.validateString)(properties.outpostArn)),errors.collect(cdk.propertyValidator("size",cdk.validateNumber)(properties.size)),errors.collect(cdk.propertyValidator("snapshotId",cdk.validateString)(properties.snapshotId)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.collect(cdk.propertyValidator("throughput",cdk.validateNumber)(properties.throughput)),errors.collect(cdk.propertyValidator("volumeType",cdk.validateString)(properties.volumeType)),errors.wrap('supplied properties not correct for "CfnVolumeProps"')}function cfnVolumePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVolumePropsValidator(properties).assertSuccess(),{AvailabilityZone:cdk.stringToCloudFormation(properties.availabilityZone),AutoEnableIO:cdk.booleanToCloudFormation(properties.autoEnableIo),Encrypted:cdk.booleanToCloudFormation(properties.encrypted),Iops:cdk.numberToCloudFormation(properties.iops),KmsKeyId:cdk.stringToCloudFormation(properties.kmsKeyId),MultiAttachEnabled:cdk.booleanToCloudFormation(properties.multiAttachEnabled),OutpostArn:cdk.stringToCloudFormation(properties.outpostArn),Size:cdk.numberToCloudFormation(properties.size),SnapshotId:cdk.stringToCloudFormation(properties.snapshotId),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags),Throughput:cdk.numberToCloudFormation(properties.throughput),VolumeType:cdk.stringToCloudFormation(properties.volumeType)}):properties}function CfnVolumePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("availabilityZone","AvailabilityZone",cfn_parse.FromCloudFormation.getString(properties.AvailabilityZone)),ret.addPropertyResult("autoEnableIo","AutoEnableIO",properties.AutoEnableIO!=null?cfn_parse.FromCloudFormation.getBoolean(properties.AutoEnableIO):void 0),ret.addPropertyResult("encrypted","Encrypted",properties.Encrypted!=null?cfn_parse.FromCloudFormation.getBoolean(properties.Encrypted):void 0),ret.addPropertyResult("iops","Iops",properties.Iops!=null?cfn_parse.FromCloudFormation.getNumber(properties.Iops):void 0),ret.addPropertyResult("kmsKeyId","KmsKeyId",properties.KmsKeyId!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKeyId):void 0),ret.addPropertyResult("multiAttachEnabled","MultiAttachEnabled",properties.MultiAttachEnabled!=null?cfn_parse.FromCloudFormation.getBoolean(properties.MultiAttachEnabled):void 0),ret.addPropertyResult("outpostArn","OutpostArn",properties.OutpostArn!=null?cfn_parse.FromCloudFormation.getString(properties.OutpostArn):void 0),ret.addPropertyResult("size","Size",properties.Size!=null?cfn_parse.FromCloudFormation.getNumber(properties.Size):void 0),ret.addPropertyResult("snapshotId","SnapshotId",properties.SnapshotId!=null?cfn_parse.FromCloudFormation.getString(properties.SnapshotId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("throughput","Throughput",properties.Throughput!=null?cfn_parse.FromCloudFormation.getNumber(properties.Throughput):void 0),ret.addPropertyResult("volumeType","VolumeType",properties.VolumeType!=null?cfn_parse.FromCloudFormation.getString(properties.VolumeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVolume extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVolume.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVolumeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVolume),error}cdk.requireProperty(props,"availabilityZone",this),this.attrVolumeId=cdk.Token.asString(this.getAtt("VolumeId")),this.availabilityZone=props.availabilityZone,this.autoEnableIo=props.autoEnableIo,this.encrypted=props.encrypted,this.iops=props.iops,this.kmsKeyId=props.kmsKeyId,this.multiAttachEnabled=props.multiAttachEnabled,this.outpostArn=props.outpostArn,this.size=props.size,this.snapshotId=props.snapshotId,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::EC2::Volume",props.tags,{tagPropertyName:"tags"}),this.throughput=props.throughput,this.volumeType=props.volumeType,this.node.scope&&cdk.Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::EC2::Volume' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVolumePropsFromCloudFormation(resourceProperties),ret=new CfnVolume(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",CfnVolume.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{availabilityZone:this.availabilityZone,autoEnableIo:this.autoEnableIo,encrypted:this.encrypted,iops:this.iops,kmsKeyId:this.kmsKeyId,multiAttachEnabled:this.multiAttachEnabled,outpostArn:this.outpostArn,size:this.size,snapshotId:this.snapshotId,tags:this.tags.renderTags(),throughput:this.throughput,volumeType:this.volumeType}}renderProperties(props){return cfnVolumePropsToCloudFormation(props)}}exports.CfnVolume=CfnVolume,_55=JSII_RTTI_SYMBOL_1,CfnVolume[_55]={fqn:"aws-cdk-lib.aws_ec2.CfnVolume",version:"2.51.1"},CfnVolume.CFN_RESOURCE_TYPE_NAME="AWS::EC2::Volume";function CfnVolumeAttachmentPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("device",cdk.requiredValidator)(properties.device)),errors.collect(cdk.propertyValidator("device",cdk.validateString)(properties.device)),errors.collect(cdk.propertyValidator("instanceId",cdk.requiredValidator)(properties.instanceId)),errors.collect(cdk.propertyValidator("instanceId",cdk.validateString)(properties.instanceId)),errors.collect(cdk.propertyValidator("volumeId",cdk.requiredValidator)(properties.volumeId)),errors.collect(cdk.propertyValidator("volumeId",cdk.validateString)(properties.volumeId)),errors.wrap('supplied properties not correct for "CfnVolumeAttachmentProps"')}function cfnVolumeAttachmentPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnVolumeAttachmentPropsValidator(properties).assertSuccess(),{Device:cdk.stringToCloudFormation(properties.device),InstanceId:cdk.stringToCloudFormation(properties.instanceId),VolumeId:cdk.stringToCloudFormation(properties.volumeId)}):properties}function CfnVolumeAttachmentPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("device","Device",cfn_parse.FromCloudFormation.getString(properties.Device)),ret.addPropertyResult("instanceId","InstanceId",cfn_parse.FromCloudFormation.getString(properties.InstanceId)),ret.addPropertyResult("volumeId","VolumeId",cfn_parse.FromCloudFormation.getString(properties.VolumeId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnVolumeAttachment extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_CfnVolumeAttachmentProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnVolumeAttachment),error}cdk.requireProperty(props,"device",this),cdk.requireProperty(props,"instanceId",this),cdk.requireProperty(props,"volumeId",this),this.device=props.device,this.instanceId=props.instanceId,this.volumeId=props.volumeId}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnVolumeAttachmentPropsFromCloudFormation(resourceProperties),ret=new CfnVolumeAttachment(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",CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{device:this.device,instanceId:this.instanceId,volumeId:this.volumeId}}renderProperties(props){return cfnVolumeAttachmentPropsToCloudFormation(props)}}exports.CfnVolumeAttachment=CfnVolumeAttachment,_56=JSII_RTTI_SYMBOL_1,CfnVolumeAttachment[_56]={fqn:"aws-cdk-lib.aws_ec2.CfnVolumeAttachment",version:"2.51.1"},CfnVolumeAttachment.CFN_RESOURCE_TYPE_NAME="AWS::EC2::VolumeAttachment";
|
|
2
2
|
//# sourceMappingURL=ec2.generated.js.map
|