aws-cdk-lib 2.52.0 → 2.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/.jsii.gz +0 -0
  2. package/alexa-ask/lib/ask.generated.js +1 -1
  3. package/assertions/lib/annotations.js +1 -1
  4. package/assertions/lib/capture.js +1 -1
  5. package/assertions/lib/match.js +1 -1
  6. package/assertions/lib/matcher.js +1 -1
  7. package/assertions/lib/template.js +1 -1
  8. package/assets/lib/staging.js +1 -1
  9. package/aws-accessanalyzer/lib/accessanalyzer.generated.js +1 -1
  10. package/aws-acmpca/lib/acmpca.generated.js +1 -1
  11. package/aws-acmpca/lib/certificate-authority.js +1 -1
  12. package/aws-amazonmq/lib/amazonmq.generated.js +1 -1
  13. package/aws-amplify/lib/amplify.generated.js +1 -1
  14. package/aws-amplifyuibuilder/lib/amplifyuibuilder.generated.js +1 -1
  15. package/aws-apigateway/lib/access-log.js +1 -1
  16. package/aws-apigateway/lib/api-definition.js +1 -1
  17. package/aws-apigateway/lib/api-key.js +1 -1
  18. package/aws-apigateway/lib/apigateway.generated.js +1 -1
  19. package/aws-apigateway/lib/apigatewayv2.js +1 -1
  20. package/aws-apigateway/lib/authorizer.js +1 -1
  21. package/aws-apigateway/lib/authorizers/cognito.js +1 -1
  22. package/aws-apigateway/lib/authorizers/identity-source.js +1 -1
  23. package/aws-apigateway/lib/authorizers/lambda.js +1 -1
  24. package/aws-apigateway/lib/base-path-mapping.js +1 -1
  25. package/aws-apigateway/lib/cors.js +1 -1
  26. package/aws-apigateway/lib/deployment.js +1 -1
  27. package/aws-apigateway/lib/domain-name.js +1 -1
  28. package/aws-apigateway/lib/gateway-response.js +1 -1
  29. package/aws-apigateway/lib/integration.js +1 -1
  30. package/aws-apigateway/lib/integrations/aws.js +1 -1
  31. package/aws-apigateway/lib/integrations/http.js +1 -1
  32. package/aws-apigateway/lib/integrations/lambda.js +1 -1
  33. package/aws-apigateway/lib/integrations/mock.js +1 -1
  34. package/aws-apigateway/lib/integrations/stepfunctions.js +1 -1
  35. package/aws-apigateway/lib/lambda-api.js +1 -1
  36. package/aws-apigateway/lib/method.js +1 -1
  37. package/aws-apigateway/lib/model.js +1 -1
  38. package/aws-apigateway/lib/requestvalidator.js +1 -1
  39. package/aws-apigateway/lib/resource.js +1 -1
  40. package/aws-apigateway/lib/restapi.js +1 -1
  41. package/aws-apigateway/lib/stage.js +1 -1
  42. package/aws-apigateway/lib/stepfunctions-api.js +1 -1
  43. package/aws-apigateway/lib/usage-plan.js +1 -1
  44. package/aws-apigateway/lib/vpc-link.js +1 -1
  45. package/aws-apigatewayv2/lib/apigatewayv2.generated.js +1 -1
  46. package/aws-appconfig/lib/appconfig.generated.js +1 -1
  47. package/aws-appflow/lib/appflow.generated.js +1 -1
  48. package/aws-appintegrations/lib/appintegrations.generated.js +1 -1
  49. package/aws-applicationautoscaling/lib/applicationautoscaling.generated.js +1 -1
  50. package/aws-applicationautoscaling/lib/base-scalable-attribute.js +1 -1
  51. package/aws-applicationautoscaling/lib/scalable-target.js +1 -1
  52. package/aws-applicationautoscaling/lib/schedule.js +1 -1
  53. package/aws-applicationautoscaling/lib/step-scaling-action.js +1 -1
  54. package/aws-applicationautoscaling/lib/step-scaling-policy.js +1 -1
  55. package/aws-applicationautoscaling/lib/target-tracking-scaling-policy.js +1 -1
  56. package/aws-applicationinsights/lib/applicationinsights.generated.js +1 -1
  57. package/aws-appmesh/lib/appmesh.generated.js +1 -1
  58. package/aws-appmesh/lib/gateway-route-spec.js +1 -1
  59. package/aws-appmesh/lib/gateway-route.js +1 -1
  60. package/aws-appmesh/lib/header-match.js +1 -1
  61. package/aws-appmesh/lib/health-checks.js +1 -1
  62. package/aws-appmesh/lib/http-route-path-match.js +1 -1
  63. package/aws-appmesh/lib/mesh.js +1 -1
  64. package/aws-appmesh/lib/query-parameter-match.js +1 -1
  65. package/aws-appmesh/lib/route-spec.js +1 -1
  66. package/aws-appmesh/lib/route.js +1 -1
  67. package/aws-appmesh/lib/service-discovery.js +1 -1
  68. package/aws-appmesh/lib/shared-interfaces.js +1 -1
  69. package/aws-appmesh/lib/tls-certificate.js +1 -1
  70. package/aws-appmesh/lib/tls-validation.js +1 -1
  71. package/aws-appmesh/lib/virtual-gateway-listener.js +1 -1
  72. package/aws-appmesh/lib/virtual-gateway.js +1 -1
  73. package/aws-appmesh/lib/virtual-node-listener.js +1 -1
  74. package/aws-appmesh/lib/virtual-node.js +1 -1
  75. package/aws-appmesh/lib/virtual-router-listener.js +1 -1
  76. package/aws-appmesh/lib/virtual-router.js +1 -1
  77. package/aws-appmesh/lib/virtual-service.js +1 -1
  78. package/aws-apprunner/lib/apprunner.generated.js +1 -1
  79. package/aws-appstream/lib/appstream.generated.js +1 -1
  80. package/aws-appsync/lib/appsync.generated.js +1 -1
  81. package/aws-aps/lib/aps.generated.js +1 -1
  82. package/aws-athena/lib/athena.generated.js +1 -1
  83. package/aws-auditmanager/lib/auditmanager.generated.js +1 -1
  84. package/aws-autoscaling/lib/aspects/require-imdsv2-aspect.js +1 -1
  85. package/aws-autoscaling/lib/auto-scaling-group.js +1 -1
  86. package/aws-autoscaling/lib/autoscaling.generated.js +1 -1
  87. package/aws-autoscaling/lib/lifecycle-hook.js +1 -1
  88. package/aws-autoscaling/lib/schedule.js +1 -1
  89. package/aws-autoscaling/lib/scheduled-action.js +1 -1
  90. package/aws-autoscaling/lib/step-scaling-action.js +1 -1
  91. package/aws-autoscaling/lib/step-scaling-policy.js +1 -1
  92. package/aws-autoscaling/lib/target-tracking-scaling-policy.js +1 -1
  93. package/aws-autoscaling/lib/volume.js +1 -1
  94. package/aws-autoscaling/lib/warm-pool.js +1 -1
  95. package/aws-autoscaling-hooktargets/lib/lambda-hook.js +1 -1
  96. package/aws-autoscaling-hooktargets/lib/queue-hook.js +1 -1
  97. package/aws-autoscaling-hooktargets/lib/topic-hook.js +1 -1
  98. package/aws-autoscalingplans/lib/autoscalingplans.generated.js +1 -1
  99. package/aws-backup/lib/backup.generated.js +1 -1
  100. package/aws-backup/lib/plan.js +1 -1
  101. package/aws-backup/lib/resource.js +1 -1
  102. package/aws-backup/lib/rule.js +1 -1
  103. package/aws-backup/lib/selection.js +1 -1
  104. package/aws-backup/lib/vault.js +1 -1
  105. package/aws-batch/lib/batch.generated.js +1 -1
  106. package/aws-billingconductor/lib/billingconductor.generated.js +1 -1
  107. package/aws-budgets/lib/budgets.generated.js +1 -1
  108. package/aws-cassandra/lib/cassandra.generated.js +1 -1
  109. package/aws-ce/lib/ce.generated.js +1 -1
  110. package/aws-certificatemanager/lib/certificate.js +1 -1
  111. package/aws-certificatemanager/lib/certificatemanager.generated.js +1 -1
  112. package/aws-certificatemanager/lib/dns-validated-certificate.js +1 -1
  113. package/aws-certificatemanager/lib/private-certificate.js +1 -1
  114. package/aws-chatbot/lib/chatbot.generated.js +1 -1
  115. package/aws-chatbot/lib/slack-channel-configuration.js +1 -1
  116. package/aws-cloud9/lib/cloud9.generated.js +1 -1
  117. package/aws-cloudformation/lib/cloudformation.generated.js +1 -1
  118. package/aws-cloudformation/lib/custom-resource.js +1 -1
  119. package/aws-cloudformation/lib/nested-stack.js +1 -1
  120. package/aws-cloudfront/lib/cache-policy.js +1 -1
  121. package/aws-cloudfront/lib/cloudfront.generated.js +1 -1
  122. package/aws-cloudfront/lib/distribution.js +1 -1
  123. package/aws-cloudfront/lib/experimental/edge-function.js +1 -1
  124. package/aws-cloudfront/lib/function.js +1 -1
  125. package/aws-cloudfront/lib/geo-restriction.js +1 -1
  126. package/aws-cloudfront/lib/key-group.js +1 -1
  127. package/aws-cloudfront/lib/origin-access-identity.js +1 -1
  128. package/aws-cloudfront/lib/origin-request-policy.js +1 -1
  129. package/aws-cloudfront/lib/origin.js +1 -1
  130. package/aws-cloudfront/lib/public-key.js +1 -1
  131. package/aws-cloudfront/lib/response-headers-policy.js +1 -1
  132. package/aws-cloudfront/lib/web-distribution.js +2 -2
  133. package/aws-cloudfront-origins/lib/http-origin.js +1 -1
  134. package/aws-cloudfront-origins/lib/load-balancer-origin.js +1 -1
  135. package/aws-cloudfront-origins/lib/origin-group.js +1 -1
  136. package/aws-cloudfront-origins/lib/rest-api-origin.js +1 -1
  137. package/aws-cloudfront-origins/lib/s3-origin.js +1 -1
  138. package/aws-cloudtrail/lib/cloudtrail.generated.js +1 -1
  139. package/aws-cloudtrail/lib/cloudtrail.js +1 -1
  140. package/aws-cloudwatch/lib/alarm-base.js +1 -1
  141. package/aws-cloudwatch/lib/alarm-rule.js +1 -1
  142. package/aws-cloudwatch/lib/alarm-status-widget.js +1 -1
  143. package/aws-cloudwatch/lib/alarm.js +1 -1
  144. package/aws-cloudwatch/lib/cloudwatch.generated.js +1 -1
  145. package/aws-cloudwatch/lib/composite-alarm.js +1 -1
  146. package/aws-cloudwatch/lib/dashboard.js +1 -1
  147. package/aws-cloudwatch/lib/graph.js +1 -1
  148. package/aws-cloudwatch/lib/layout.js +1 -1
  149. package/aws-cloudwatch/lib/log-query.js +1 -1
  150. package/aws-cloudwatch/lib/metric.js +1 -1
  151. package/aws-cloudwatch/lib/text.js +1 -1
  152. package/aws-cloudwatch/lib/widget.js +1 -1
  153. package/aws-cloudwatch-actions/lib/appscaling.js +1 -1
  154. package/aws-cloudwatch-actions/lib/autoscaling.js +1 -1
  155. package/aws-cloudwatch-actions/lib/ec2.js +1 -1
  156. package/aws-cloudwatch-actions/lib/sns.js +1 -1
  157. package/aws-cloudwatch-actions/lib/ssm.js +1 -1
  158. package/aws-codeartifact/lib/codeartifact.generated.js +1 -1
  159. package/aws-codebuild/lib/artifacts.js +1 -1
  160. package/aws-codebuild/lib/build-spec.js +1 -1
  161. package/aws-codebuild/lib/cache.js +1 -1
  162. package/aws-codebuild/lib/codebuild.generated.js +1 -1
  163. package/aws-codebuild/lib/events.js +1 -1
  164. package/aws-codebuild/lib/file-location.js +1 -1
  165. package/aws-codebuild/lib/linux-arm-build-image.js +1 -1
  166. package/aws-codebuild/lib/linux-gpu-build-image.js +1 -1
  167. package/aws-codebuild/lib/pipeline-project.js +1 -1
  168. package/aws-codebuild/lib/project.js +1 -1
  169. package/aws-codebuild/lib/report-group.js +1 -1
  170. package/aws-codebuild/lib/source-credentials.js +1 -1
  171. package/aws-codebuild/lib/source.js +1 -1
  172. package/aws-codebuild/lib/untrusted-code-boundary-policy.js +1 -1
  173. package/aws-codecommit/lib/code.js +1 -1
  174. package/aws-codecommit/lib/codecommit.generated.js +1 -1
  175. package/aws-codecommit/lib/events.js +1 -1
  176. package/aws-codecommit/lib/repository.js +1 -1
  177. package/aws-codedeploy/lib/base-deployment-config.js +1 -1
  178. package/aws-codedeploy/lib/codedeploy.generated.js +1 -1
  179. package/aws-codedeploy/lib/ecs/application.js +1 -1
  180. package/aws-codedeploy/lib/ecs/deployment-config.js +1 -1
  181. package/aws-codedeploy/lib/ecs/deployment-group.js +1 -1
  182. package/aws-codedeploy/lib/host-health-config.js +1 -1
  183. package/aws-codedeploy/lib/lambda/application.js +1 -1
  184. package/aws-codedeploy/lib/lambda/custom-deployment-config.js +1 -1
  185. package/aws-codedeploy/lib/lambda/deployment-config.js +1 -1
  186. package/aws-codedeploy/lib/lambda/deployment-group.js +1 -1
  187. package/aws-codedeploy/lib/server/application.js +1 -1
  188. package/aws-codedeploy/lib/server/deployment-config.js +1 -1
  189. package/aws-codedeploy/lib/server/deployment-group.js +1 -1
  190. package/aws-codedeploy/lib/server/load-balancer.js +1 -1
  191. package/aws-codedeploy/lib/traffic-routing-config.js +1 -1
  192. package/aws-codeguruprofiler/lib/codeguruprofiler.generated.js +1 -1
  193. package/aws-codeguruprofiler/lib/profiling-group.js +1 -1
  194. package/aws-codegurureviewer/lib/codegurureviewer.generated.js +1 -1
  195. package/aws-codepipeline/lib/action.js +1 -1
  196. package/aws-codepipeline/lib/artifact.js +1 -1
  197. package/aws-codepipeline/lib/codepipeline.generated.js +1 -1
  198. package/aws-codepipeline/lib/custom-action-registration.js +1 -1
  199. package/aws-codepipeline/lib/pipeline.js +1 -1
  200. package/aws-codepipeline-actions/lib/action.js +1 -1
  201. package/aws-codepipeline-actions/lib/alexa-ask/deploy-action.js +1 -1
  202. package/aws-codepipeline-actions/lib/bitbucket/source-action.js +1 -1
  203. package/aws-codepipeline-actions/lib/cloudformation/pipeline-actions.js +1 -1
  204. package/aws-codepipeline-actions/lib/cloudformation/stackinstances-action.js +1 -1
  205. package/aws-codepipeline-actions/lib/cloudformation/stackset-action.js +1 -1
  206. package/aws-codepipeline-actions/lib/cloudformation/stackset-types.js +1 -1
  207. package/aws-codepipeline-actions/lib/codebuild/build-action.js +1 -1
  208. package/aws-codepipeline-actions/lib/codecommit/source-action.js +1 -1
  209. package/aws-codepipeline-actions/lib/codedeploy/ecs-deploy-action.js +1 -1
  210. package/aws-codepipeline-actions/lib/codedeploy/server-deploy-action.js +1 -1
  211. package/aws-codepipeline-actions/lib/codestar-connections/source-action.js +1 -1
  212. package/aws-codepipeline-actions/lib/ecr/source-action.js +1 -1
  213. package/aws-codepipeline-actions/lib/ecs/deploy-action.js +1 -1
  214. package/aws-codepipeline-actions/lib/elastic-beanstalk/deploy-action.js +1 -1
  215. package/aws-codepipeline-actions/lib/github/source-action.js +1 -1
  216. package/aws-codepipeline-actions/lib/jenkins/jenkins-action.js +1 -1
  217. package/aws-codepipeline-actions/lib/jenkins/jenkins-provider.js +1 -1
  218. package/aws-codepipeline-actions/lib/lambda/invoke-action.js +1 -1
  219. package/aws-codepipeline-actions/lib/manual-approval-action.js +1 -1
  220. package/aws-codepipeline-actions/lib/s3/deploy-action.js +1 -1
  221. package/aws-codepipeline-actions/lib/s3/source-action.js +1 -1
  222. package/aws-codepipeline-actions/lib/servicecatalog/deploy-action-beta1.js +1 -1
  223. package/aws-codepipeline-actions/lib/stepfunctions/invoke-action.js +1 -1
  224. package/aws-codestar/lib/codestar.generated.js +1 -1
  225. package/aws-codestarconnections/lib/codestarconnections.generated.js +1 -1
  226. package/aws-codestarnotifications/lib/codestarnotifications.generated.js +1 -1
  227. package/aws-codestarnotifications/lib/notification-rule.js +1 -1
  228. package/aws-cognito/lib/cognito.generated.js +1 -1
  229. package/aws-cognito/lib/user-pool-attr.js +1 -1
  230. package/aws-cognito/lib/user-pool-client.js +1 -1
  231. package/aws-cognito/lib/user-pool-domain.js +1 -1
  232. package/aws-cognito/lib/user-pool-email.js +1 -1
  233. package/aws-cognito/lib/user-pool-idp.js +1 -1
  234. package/aws-cognito/lib/user-pool-idps/amazon.js +1 -1
  235. package/aws-cognito/lib/user-pool-idps/apple.js +1 -1
  236. package/aws-cognito/lib/user-pool-idps/base.js +1 -1
  237. package/aws-cognito/lib/user-pool-idps/facebook.js +1 -1
  238. package/aws-cognito/lib/user-pool-idps/google.js +1 -1
  239. package/aws-cognito/lib/user-pool-idps/oidc.js +1 -1
  240. package/aws-cognito/lib/user-pool-idps/saml.js +1 -1
  241. package/aws-cognito/lib/user-pool-resource-server.js +1 -1
  242. package/aws-cognito/lib/user-pool.js +1 -1
  243. package/aws-config/lib/config.generated.js +1 -1
  244. package/aws-config/lib/managed-rules.js +1 -1
  245. package/aws-config/lib/rule.js +1 -1
  246. package/aws-connect/lib/connect.generated.js +1 -1
  247. package/aws-connectcampaigns/lib/connectcampaigns.generated.js +1 -1
  248. package/aws-controltower/lib/controltower.generated.js +1 -1
  249. package/aws-cur/lib/cur.generated.js +1 -1
  250. package/aws-customerprofiles/lib/customerprofiles.generated.js +1 -1
  251. package/aws-databrew/lib/databrew.generated.js +1 -1
  252. package/aws-datapipeline/lib/datapipeline.generated.js +1 -1
  253. package/aws-datasync/lib/datasync.generated.js +1 -1
  254. package/aws-dax/lib/dax.generated.js +1 -1
  255. package/aws-detective/lib/detective.generated.js +1 -1
  256. package/aws-devopsguru/lib/devopsguru.generated.js +1 -1
  257. package/aws-directoryservice/lib/directoryservice.generated.js +1 -1
  258. package/aws-dlm/lib/dlm.generated.js +1 -1
  259. package/aws-dms/lib/dms.generated.js +1 -1
  260. package/aws-docdb/lib/cluster.js +1 -1
  261. package/aws-docdb/lib/database-secret.js +1 -1
  262. package/aws-docdb/lib/docdb.generated.js +1 -1
  263. package/aws-docdb/lib/endpoint.js +1 -1
  264. package/aws-docdb/lib/instance.js +1 -1
  265. package/aws-docdb/lib/parameter-group.js +1 -1
  266. package/aws-dynamodb/lib/dynamodb.generated.js +1 -1
  267. package/aws-dynamodb/lib/table.js +1 -1
  268. package/aws-ec2/lib/aspects/require-imdsv2-aspect.js +1 -1
  269. package/aws-ec2/lib/bastion-host.js +1 -1
  270. package/aws-ec2/lib/cfn-init-elements.js +1 -1
  271. package/aws-ec2/lib/cfn-init.js +1 -1
  272. package/aws-ec2/lib/client-vpn-authorization-rule.js +1 -1
  273. package/aws-ec2/lib/client-vpn-endpoint.js +1 -1
  274. package/aws-ec2/lib/client-vpn-route.js +1 -1
  275. package/aws-ec2/lib/connections.js +1 -1
  276. package/aws-ec2/lib/ec2.generated.js +1 -1
  277. package/aws-ec2/lib/instance-types.js +1 -1
  278. package/aws-ec2/lib/instance.js +1 -1
  279. package/aws-ec2/lib/ip-addresses.js +1 -1
  280. package/aws-ec2/lib/launch-template.js +1 -1
  281. package/aws-ec2/lib/machine-image.js +1 -1
  282. package/aws-ec2/lib/nat.js +1 -1
  283. package/aws-ec2/lib/network-acl-types.js +1 -1
  284. package/aws-ec2/lib/network-acl.js +1 -1
  285. package/aws-ec2/lib/peer.js +1 -1
  286. package/aws-ec2/lib/port.js +1 -1
  287. package/aws-ec2/lib/security-group.js +1 -1
  288. package/aws-ec2/lib/subnet.js +1 -1
  289. package/aws-ec2/lib/user-data.js +3 -3
  290. package/aws-ec2/lib/volume.js +1 -1
  291. package/aws-ec2/lib/vpc-endpoint-service.js +1 -1
  292. package/aws-ec2/lib/vpc-endpoint.js +1 -1
  293. package/aws-ec2/lib/vpc-flow-logs.js +1 -1
  294. package/aws-ec2/lib/vpc.js +1 -1
  295. package/aws-ec2/lib/vpn.js +1 -1
  296. package/aws-ecr/lib/auth-token.js +1 -1
  297. package/aws-ecr/lib/ecr.generated.js +1 -1
  298. package/aws-ecr/lib/repository.js +1 -1
  299. package/aws-ecr-assets/lib/image-asset.js +2 -2
  300. package/aws-ecr-assets/lib/tarball-asset.js +1 -1
  301. package/aws-ecs/lib/amis.js +1 -1
  302. package/aws-ecs/lib/base/base-service.js +1 -1
  303. package/aws-ecs/lib/base/scalable-task-count.js +1 -1
  304. package/aws-ecs/lib/base/task-definition.js +1 -1
  305. package/aws-ecs/lib/cluster.js +1 -1
  306. package/aws-ecs/lib/container-definition.js +1 -1
  307. package/aws-ecs/lib/container-image.js +1 -1
  308. package/aws-ecs/lib/ec2/ec2-service.js +1 -1
  309. package/aws-ecs/lib/ec2/ec2-task-definition.js +1 -1
  310. package/aws-ecs/lib/ecs.generated.js +1 -1
  311. package/aws-ecs/lib/environment-file.js +1 -1
  312. package/aws-ecs/lib/external/external-service.js +1 -1
  313. package/aws-ecs/lib/external/external-task-definition.js +1 -1
  314. package/aws-ecs/lib/fargate/fargate-service.js +1 -1
  315. package/aws-ecs/lib/fargate/fargate-task-definition.js +1 -1
  316. package/aws-ecs/lib/firelens-log-router.js +1 -1
  317. package/aws-ecs/lib/images/asset-image.js +1 -1
  318. package/aws-ecs/lib/images/ecr.js +1 -1
  319. package/aws-ecs/lib/images/repository.js +1 -1
  320. package/aws-ecs/lib/images/tag-parameter-container-image.js +1 -1
  321. package/aws-ecs/lib/linux-parameters.js +1 -1
  322. package/aws-ecs/lib/log-drivers/aws-log-driver.js +1 -1
  323. package/aws-ecs/lib/log-drivers/firelens-log-driver.js +1 -1
  324. package/aws-ecs/lib/log-drivers/fluentd-log-driver.js +1 -1
  325. package/aws-ecs/lib/log-drivers/gelf-log-driver.js +1 -1
  326. package/aws-ecs/lib/log-drivers/generic-log-driver.js +1 -1
  327. package/aws-ecs/lib/log-drivers/journald-log-driver.js +1 -1
  328. package/aws-ecs/lib/log-drivers/json-file-log-driver.js +1 -1
  329. package/aws-ecs/lib/log-drivers/log-driver.js +1 -1
  330. package/aws-ecs/lib/log-drivers/log-drivers.js +1 -1
  331. package/aws-ecs/lib/log-drivers/splunk-log-driver.js +1 -1
  332. package/aws-ecs/lib/log-drivers/syslog-log-driver.js +1 -1
  333. package/aws-ecs/lib/placement.js +1 -1
  334. package/aws-ecs/lib/proxy-configuration/app-mesh-proxy-configuration.js +1 -1
  335. package/aws-ecs/lib/proxy-configuration/proxy-configuration.js +1 -1
  336. package/aws-ecs/lib/proxy-configuration/proxy-configurations.js +1 -1
  337. package/aws-ecs/lib/runtime-platform.js +1 -1
  338. package/aws-ecs-patterns/lib/base/application-load-balanced-service-base.js +1 -1
  339. package/aws-ecs-patterns/lib/base/application-multiple-target-groups-service-base.js +1 -1
  340. package/aws-ecs-patterns/lib/base/network-load-balanced-service-base.js +1 -1
  341. package/aws-ecs-patterns/lib/base/network-multiple-target-groups-service-base.js +1 -1
  342. package/aws-ecs-patterns/lib/base/queue-processing-service-base.js +1 -1
  343. package/aws-ecs-patterns/lib/base/scheduled-task-base.js +1 -1
  344. package/aws-ecs-patterns/lib/ecs/application-load-balanced-ecs-service.js +1 -1
  345. package/aws-ecs-patterns/lib/ecs/application-multiple-target-groups-ecs-service.js +1 -1
  346. package/aws-ecs-patterns/lib/ecs/network-load-balanced-ecs-service.js +1 -1
  347. package/aws-ecs-patterns/lib/ecs/network-multiple-target-groups-ecs-service.js +1 -1
  348. package/aws-ecs-patterns/lib/ecs/queue-processing-ecs-service.js +1 -1
  349. package/aws-ecs-patterns/lib/ecs/scheduled-ecs-task.js +1 -1
  350. package/aws-ecs-patterns/lib/fargate/application-load-balanced-fargate-service.js +1 -1
  351. package/aws-ecs-patterns/lib/fargate/application-multiple-target-groups-fargate-service.js +1 -1
  352. package/aws-ecs-patterns/lib/fargate/network-load-balanced-fargate-service.js +1 -1
  353. package/aws-ecs-patterns/lib/fargate/network-multiple-target-groups-fargate-service.js +1 -1
  354. package/aws-ecs-patterns/lib/fargate/queue-processing-fargate-service.js +1 -1
  355. package/aws-ecs-patterns/lib/fargate/scheduled-fargate-task.js +1 -1
  356. package/aws-efs/lib/access-point.js +1 -1
  357. package/aws-efs/lib/efs-file-system.js +1 -1
  358. package/aws-efs/lib/efs.generated.js +1 -1
  359. package/aws-eks/lib/alb-controller.js +1 -1
  360. package/aws-eks/lib/aws-auth.js +1 -1
  361. package/aws-eks/lib/cluster.js +1 -1
  362. package/aws-eks/lib/eks.generated.js +1 -1
  363. package/aws-eks/lib/fargate-cluster.js +1 -1
  364. package/aws-eks/lib/fargate-profile.js +1 -1
  365. package/aws-eks/lib/helm-chart.js +1 -1
  366. package/aws-eks/lib/k8s-manifest.js +1 -1
  367. package/aws-eks/lib/k8s-object-value.js +1 -1
  368. package/aws-eks/lib/k8s-patch.js +1 -1
  369. package/aws-eks/lib/kubectl-provider.js +1 -1
  370. package/aws-eks/lib/managed-nodegroup.js +1 -1
  371. package/aws-eks/lib/oidc-provider.js +1 -1
  372. package/aws-eks/lib/service-account.js +1 -1
  373. package/aws-elasticache/lib/elasticache.generated.js +1 -1
  374. package/aws-elasticbeanstalk/lib/elasticbeanstalk.generated.js +1 -1
  375. package/aws-elasticloadbalancing/lib/elasticloadbalancing.generated.js +1 -1
  376. package/aws-elasticloadbalancing/lib/load-balancer.js +1 -1
  377. package/aws-elasticloadbalancingv2/lib/alb/application-listener-action.js +1 -1
  378. package/aws-elasticloadbalancingv2/lib/alb/application-listener-certificate.js +1 -1
  379. package/aws-elasticloadbalancingv2/lib/alb/application-listener-rule.js +1 -1
  380. package/aws-elasticloadbalancingv2/lib/alb/application-listener.js +1 -1
  381. package/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.js +1 -1
  382. package/aws-elasticloadbalancingv2/lib/alb/application-target-group.js +1 -1
  383. package/aws-elasticloadbalancingv2/lib/alb/conditions.js +1 -1
  384. package/aws-elasticloadbalancingv2/lib/elasticloadbalancingv2.generated.js +1 -1
  385. package/aws-elasticloadbalancingv2/lib/nlb/network-listener-action.js +1 -1
  386. package/aws-elasticloadbalancingv2/lib/nlb/network-listener.js +1 -1
  387. package/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.js +1 -1
  388. package/aws-elasticloadbalancingv2/lib/nlb/network-target-group.js +1 -1
  389. package/aws-elasticloadbalancingv2/lib/shared/base-listener.js +1 -1
  390. package/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.js +1 -1
  391. package/aws-elasticloadbalancingv2/lib/shared/base-target-group.js +1 -1
  392. package/aws-elasticloadbalancingv2/lib/shared/listener-certificate.js +1 -1
  393. package/aws-elasticloadbalancingv2/lib/shared/load-balancer-targets.js +1 -1
  394. package/aws-elasticloadbalancingv2-actions/lib/cognito-action.js +1 -1
  395. package/aws-elasticloadbalancingv2-targets/lib/alb-target.js +1 -1
  396. package/aws-elasticloadbalancingv2-targets/lib/instance-target.js +1 -1
  397. package/aws-elasticloadbalancingv2-targets/lib/ip-target.js +1 -1
  398. package/aws-elasticloadbalancingv2-targets/lib/lambda-target.js +1 -1
  399. package/aws-elasticsearch/lib/domain.js +1 -1
  400. package/aws-elasticsearch/lib/elasticsearch.generated.js +1 -1
  401. package/aws-emr/lib/emr.generated.js +1 -1
  402. package/aws-emrcontainers/lib/emrcontainers.generated.js +1 -1
  403. package/aws-emrserverless/lib/emrserverless.generated.js +1 -1
  404. package/aws-events/lib/api-destination.js +1 -1
  405. package/aws-events/lib/archive.js +1 -1
  406. package/aws-events/lib/connection.js +1 -1
  407. package/aws-events/lib/event-bus.js +1 -1
  408. package/aws-events/lib/event-pattern.js +1 -1
  409. package/aws-events/lib/events.generated.js +1 -1
  410. package/aws-events/lib/input.js +2 -2
  411. package/aws-events/lib/rule.js +1 -1
  412. package/aws-events/lib/schedule.js +1 -1
  413. package/aws-events-targets/lib/api-destination.js +1 -1
  414. package/aws-events-targets/lib/api-gateway.js +1 -1
  415. package/aws-events-targets/lib/aws-api.js +1 -1
  416. package/aws-events-targets/lib/batch.js +1 -1
  417. package/aws-events-targets/lib/codebuild.js +1 -1
  418. package/aws-events-targets/lib/codepipeline.js +1 -1
  419. package/aws-events-targets/lib/ecs-task.js +1 -1
  420. package/aws-events-targets/lib/event-bus.js +1 -1
  421. package/aws-events-targets/lib/kinesis-firehose-stream.js +1 -1
  422. package/aws-events-targets/lib/kinesis-stream.js +1 -1
  423. package/aws-events-targets/lib/lambda.js +1 -1
  424. package/aws-events-targets/lib/log-group.js +2 -2
  425. package/aws-events-targets/lib/sns.js +1 -1
  426. package/aws-events-targets/lib/sqs.js +1 -1
  427. package/aws-events-targets/lib/state-machine.js +1 -1
  428. package/aws-eventschemas/lib/eventschemas.generated.js +1 -1
  429. package/aws-evidently/lib/evidently.generated.js +1 -1
  430. package/aws-finspace/lib/finspace.generated.js +1 -1
  431. package/aws-fis/lib/fis.generated.js +1 -1
  432. package/aws-fms/lib/fms.generated.js +1 -1
  433. package/aws-forecast/lib/forecast.generated.js +1 -1
  434. package/aws-frauddetector/lib/frauddetector.generated.js +1 -1
  435. package/aws-fsx/lib/file-system.js +1 -1
  436. package/aws-fsx/lib/fsx.generated.js +1 -1
  437. package/aws-fsx/lib/lustre-file-system.js +1 -1
  438. package/aws-fsx/lib/maintenance-time.js +1 -1
  439. package/aws-gamelift/lib/gamelift.generated.js +1 -1
  440. package/aws-globalaccelerator/lib/accelerator.js +1 -1
  441. package/aws-globalaccelerator/lib/endpoint-group.js +1 -1
  442. package/aws-globalaccelerator/lib/endpoint.js +1 -1
  443. package/aws-globalaccelerator/lib/globalaccelerator.generated.js +1 -1
  444. package/aws-globalaccelerator/lib/listener.js +1 -1
  445. package/aws-globalaccelerator-endpoints/lib/alb.js +1 -1
  446. package/aws-globalaccelerator-endpoints/lib/eip.js +1 -1
  447. package/aws-globalaccelerator-endpoints/lib/instance.js +1 -1
  448. package/aws-globalaccelerator-endpoints/lib/nlb.js +1 -1
  449. package/aws-glue/lib/glue.generated.js +1 -1
  450. package/aws-greengrass/lib/greengrass.generated.js +1 -1
  451. package/aws-greengrassv2/lib/greengrassv2.generated.js +1 -1
  452. package/aws-groundstation/lib/groundstation.generated.js +1 -1
  453. package/aws-guardduty/lib/guardduty.generated.js +1 -1
  454. package/aws-healthlake/lib/healthlake.generated.js +1 -1
  455. package/aws-iam/lib/access-key.js +1 -1
  456. package/aws-iam/lib/grant.js +1 -1
  457. package/aws-iam/lib/group.js +1 -1
  458. package/aws-iam/lib/iam.generated.js +1 -1
  459. package/aws-iam/lib/lazy-role.js +1 -1
  460. package/aws-iam/lib/managed-policy.js +1 -1
  461. package/aws-iam/lib/oidc-provider.js +1 -1
  462. package/aws-iam/lib/permissions-boundary.js +1 -1
  463. package/aws-iam/lib/policy-document.js +1 -1
  464. package/aws-iam/lib/policy-statement.js +1 -1
  465. package/aws-iam/lib/policy.js +1 -1
  466. package/aws-iam/lib/principals.js +1 -1
  467. package/aws-iam/lib/role.js +1 -1
  468. package/aws-iam/lib/saml-provider.js +1 -1
  469. package/aws-iam/lib/unknown-principal.js +1 -1
  470. package/aws-iam/lib/user.js +1 -1
  471. package/aws-identitystore/lib/identitystore.generated.js +1 -1
  472. package/aws-imagebuilder/lib/imagebuilder.generated.js +1 -1
  473. package/aws-inspector/lib/inspector.generated.js +1 -1
  474. package/aws-inspectorv2/lib/inspectorv2.generated.js +1 -1
  475. package/aws-iot/lib/iot.generated.js +1 -1
  476. package/aws-iot1click/lib/iot1click.generated.js +1 -1
  477. package/aws-iotanalytics/lib/iotanalytics.generated.js +1 -1
  478. package/aws-iotcoredeviceadvisor/lib/iotcoredeviceadvisor.generated.js +1 -1
  479. package/aws-iotevents/lib/iotevents.generated.js +1 -1
  480. package/aws-iotfleethub/lib/iotfleethub.generated.js +1 -1
  481. package/aws-iotfleetwise/lib/iotfleetwise.generated.js +1 -1
  482. package/aws-iotsitewise/lib/iotsitewise.generated.js +1 -1
  483. package/aws-iotthingsgraph/lib/iotthingsgraph.generated.js +1 -1
  484. package/aws-iottwinmaker/lib/iottwinmaker.generated.js +1 -1
  485. package/aws-iotwireless/lib/iotwireless.generated.js +1 -1
  486. package/aws-ivs/lib/ivs.generated.js +1 -1
  487. package/aws-kafkaconnect/lib/kafkaconnect.generated.js +1 -1
  488. package/aws-kendra/lib/kendra.generated.js +1 -1
  489. package/aws-kinesis/lib/kinesis.generated.js +1 -1
  490. package/aws-kinesis/lib/stream.js +1 -1
  491. package/aws-kinesisanalytics/lib/kinesisanalytics.generated.js +1 -1
  492. package/aws-kinesisanalytics/lib/kinesisanalyticsv2.generated.js +1 -1
  493. package/aws-kinesisanalyticsv2/lib/kinesisanalyticsv2.generated.js +1 -1
  494. package/aws-kinesisfirehose/lib/kinesisfirehose.generated.js +1 -1
  495. package/aws-kinesisvideo/lib/kinesisvideo.generated.js +1 -1
  496. package/aws-kms/lib/alias.js +1 -1
  497. package/aws-kms/lib/key.js +1 -1
  498. package/aws-kms/lib/kms.generated.js +1 -1
  499. package/aws-kms/lib/via-service-principal.js +1 -1
  500. package/aws-lakeformation/lib/lakeformation.generated.js +1 -1
  501. package/aws-lambda/lib/alias.js +1 -1
  502. package/aws-lambda/lib/architecture.js +1 -1
  503. package/aws-lambda/lib/code-signing-config.js +1 -1
  504. package/aws-lambda/lib/code.js +1 -1
  505. package/aws-lambda/lib/event-invoke-config.js +1 -1
  506. package/aws-lambda/lib/event-source-filter.js +1 -1
  507. package/aws-lambda/lib/event-source-mapping.js +1 -1
  508. package/aws-lambda/lib/filesystem.js +1 -1
  509. package/aws-lambda/lib/function-base.js +1 -1
  510. package/aws-lambda/lib/function-url.js +1 -1
  511. package/aws-lambda/lib/function.js +1 -1
  512. package/aws-lambda/lib/handler.js +1 -1
  513. package/aws-lambda/lib/image-function.js +1 -1
  514. package/aws-lambda/lib/lambda-insights.js +1 -1
  515. package/aws-lambda/lib/lambda-version.js +1 -1
  516. package/aws-lambda/lib/lambda.generated.js +1 -1
  517. package/aws-lambda/lib/layers.js +1 -1
  518. package/aws-lambda/lib/log-retention.js +1 -1
  519. package/aws-lambda/lib/runtime.js +1 -1
  520. package/aws-lambda/lib/singleton-lambda.js +1 -1
  521. package/aws-lambda-destinations/lib/event-bridge.js +1 -1
  522. package/aws-lambda-destinations/lib/lambda.js +1 -1
  523. package/aws-lambda-destinations/lib/sns.js +1 -1
  524. package/aws-lambda-destinations/lib/sqs.js +1 -1
  525. package/aws-lambda-event-sources/lib/api.js +1 -1
  526. package/aws-lambda-event-sources/lib/dynamodb.js +1 -1
  527. package/aws-lambda-event-sources/lib/kafka.js +1 -1
  528. package/aws-lambda-event-sources/lib/kinesis.js +1 -1
  529. package/aws-lambda-event-sources/lib/s3.js +1 -1
  530. package/aws-lambda-event-sources/lib/sns-dlq.js +1 -1
  531. package/aws-lambda-event-sources/lib/sns.js +1 -1
  532. package/aws-lambda-event-sources/lib/sqs-dlq.js +1 -1
  533. package/aws-lambda-event-sources/lib/sqs.js +1 -1
  534. package/aws-lambda-event-sources/lib/stream.js +1 -1
  535. package/aws-lambda-nodejs/lib/function.js +1 -1
  536. package/aws-lex/lib/lex.generated.js +1 -1
  537. package/aws-licensemanager/lib/licensemanager.generated.js +1 -1
  538. package/aws-lightsail/lib/lightsail.generated.js +1 -1
  539. package/aws-location/lib/location.generated.js +1 -1
  540. package/aws-logs/lib/cross-account-destination.js +1 -1
  541. package/aws-logs/lib/log-group.js +1 -1
  542. package/aws-logs/lib/log-retention.js +1 -1
  543. package/aws-logs/lib/log-stream.js +1 -1
  544. package/aws-logs/lib/logs.generated.js +1 -1
  545. package/aws-logs/lib/metric-filter.js +1 -1
  546. package/aws-logs/lib/pattern.js +1 -1
  547. package/aws-logs/lib/policy.js +1 -1
  548. package/aws-logs/lib/query-definition.js +1 -1
  549. package/aws-logs/lib/subscription-filter.js +1 -1
  550. package/aws-logs-destinations/lib/kinesis.js +1 -1
  551. package/aws-logs-destinations/lib/lambda.js +1 -1
  552. package/aws-lookoutequipment/lib/lookoutequipment.generated.js +1 -1
  553. package/aws-lookoutmetrics/lib/lookoutmetrics.generated.js +1 -1
  554. package/aws-lookoutvision/lib/lookoutvision.generated.js +1 -1
  555. package/aws-m2/lib/m2.generated.js +1 -1
  556. package/aws-macie/lib/macie.generated.js +1 -1
  557. package/aws-managedblockchain/lib/managedblockchain.generated.js +1 -1
  558. package/aws-mediaconnect/lib/mediaconnect.generated.js +1 -1
  559. package/aws-mediaconvert/lib/mediaconvert.generated.js +1 -1
  560. package/aws-medialive/lib/medialive.generated.js +1 -1
  561. package/aws-mediapackage/lib/mediapackage.generated.js +1 -1
  562. package/aws-mediastore/lib/mediastore.generated.js +1 -1
  563. package/aws-mediatailor/lib/mediatailor.generated.js +1 -1
  564. package/aws-memorydb/lib/memorydb.generated.js +1 -1
  565. package/aws-msk/lib/msk.generated.js +1 -1
  566. package/aws-mwaa/lib/mwaa.generated.js +1 -1
  567. package/aws-neptune/lib/neptune.generated.js +1 -1
  568. package/aws-networkfirewall/lib/networkfirewall.generated.js +1 -1
  569. package/aws-networkmanager/lib/networkmanager.generated.js +1 -1
  570. package/aws-nimblestudio/lib/nimblestudio.generated.js +1 -1
  571. package/aws-opensearchservice/lib/domain.js +1 -1
  572. package/aws-opensearchservice/lib/opensearchservice.generated.js +1 -1
  573. package/aws-opensearchservice/lib/version.js +1 -1
  574. package/aws-opsworks/lib/opsworks.generated.js +1 -1
  575. package/aws-opsworkscm/lib/opsworkscm.generated.js +1 -1
  576. package/aws-organizations/lib/organizations.generated.js +1 -1
  577. package/aws-panorama/lib/panorama.generated.js +1 -1
  578. package/aws-personalize/lib/personalize.generated.js +1 -1
  579. package/aws-pinpoint/lib/pinpoint.generated.js +1 -1
  580. package/aws-pinpointemail/lib/pinpointemail.generated.js +1 -1
  581. package/aws-qldb/lib/qldb.generated.js +1 -1
  582. package/aws-quicksight/lib/quicksight.generated.js +1 -1
  583. package/aws-ram/lib/ram.generated.js +1 -1
  584. package/aws-rds/lib/cluster-engine.js +1 -1
  585. package/aws-rds/lib/cluster.js +1 -1
  586. package/aws-rds/lib/database-secret.js +1 -1
  587. package/aws-rds/lib/endpoint.js +1 -1
  588. package/aws-rds/lib/instance-engine.js +1 -1
  589. package/aws-rds/lib/instance.js +1 -1
  590. package/aws-rds/lib/option-group.js +1 -1
  591. package/aws-rds/lib/parameter-group.js +1 -1
  592. package/aws-rds/lib/props.js +1 -1
  593. package/aws-rds/lib/proxy.js +1 -1
  594. package/aws-rds/lib/rds.generated.js +1 -1
  595. package/aws-rds/lib/serverless-cluster.js +1 -1
  596. package/aws-rds/lib/subnet-group.js +1 -1
  597. package/aws-redshift/lib/redshift.generated.js +1 -1
  598. package/aws-redshiftserverless/lib/redshiftserverless.generated.js +1 -1
  599. package/aws-refactorspaces/lib/refactorspaces.generated.js +1 -1
  600. package/aws-rekognition/lib/rekognition.generated.js +1 -1
  601. package/aws-resiliencehub/lib/resiliencehub.generated.js +1 -1
  602. package/aws-resourceexplorer2/lib/resourceexplorer2.generated.js +1 -1
  603. package/aws-resourcegroups/lib/resourcegroups.generated.js +1 -1
  604. package/aws-robomaker/lib/robomaker.generated.js +1 -1
  605. package/aws-rolesanywhere/lib/rolesanywhere.generated.js +1 -1
  606. package/aws-route53/lib/hosted-zone.js +1 -1
  607. package/aws-route53/lib/record-set.js +1 -1
  608. package/aws-route53/lib/route53.generated.js +1 -1
  609. package/aws-route53/lib/vpc-endpoint-service-domain-name.js +1 -1
  610. package/aws-route53-patterns/lib/website-redirect.js +1 -1
  611. package/aws-route53-targets/lib/api-gateway-domain-name.js +1 -1
  612. package/aws-route53-targets/lib/api-gatewayv2-domain-name.js +1 -1
  613. package/aws-route53-targets/lib/bucket-website-target.js +1 -1
  614. package/aws-route53-targets/lib/classic-load-balancer-target.js +1 -1
  615. package/aws-route53-targets/lib/cloudfront-target.js +1 -1
  616. package/aws-route53-targets/lib/elastic-beanstalk-environment-target.js +1 -1
  617. package/aws-route53-targets/lib/global-accelerator-target.js +1 -1
  618. package/aws-route53-targets/lib/interface-vpc-endpoint-target.js +1 -1
  619. package/aws-route53-targets/lib/load-balancer-target.js +1 -1
  620. package/aws-route53-targets/lib/route53-record.js +1 -1
  621. package/aws-route53-targets/lib/userpool-domain.js +1 -1
  622. package/aws-route53recoverycontrol/lib/route53recoverycontrol.generated.js +1 -1
  623. package/aws-route53recoveryreadiness/lib/route53recoveryreadiness.generated.js +1 -1
  624. package/aws-route53resolver/lib/route53resolver.generated.js +1 -1
  625. package/aws-rum/lib/rum.generated.js +1 -1
  626. package/aws-s3/lib/bucket-policy.js +1 -1
  627. package/aws-s3/lib/bucket.js +1 -1
  628. package/aws-s3/lib/rule.js +1 -1
  629. package/aws-s3/lib/s3.generated.js +1 -1
  630. package/aws-s3-assets/lib/asset.js +1 -1
  631. package/aws-s3-deployment/lib/bucket-deployment.js +1 -1
  632. package/aws-s3-deployment/lib/source.js +1 -1
  633. package/aws-s3-notifications/lib/lambda.js +1 -1
  634. package/aws-s3-notifications/lib/sns.js +1 -1
  635. package/aws-s3-notifications/lib/sqs.js +1 -1
  636. package/aws-s3objectlambda/lib/s3objectlambda.generated.js +1 -1
  637. package/aws-s3outposts/lib/s3outposts.generated.js +1 -1
  638. package/aws-sagemaker/lib/sagemaker.generated.js +1 -1
  639. package/aws-sam/lib/sam.generated.js +1 -1
  640. package/aws-scheduler/lib/scheduler.generated.js +1 -1
  641. package/aws-sdb/lib/sdb.generated.js +1 -1
  642. package/aws-secretsmanager/lib/policy.js +1 -1
  643. package/aws-secretsmanager/lib/rotation-schedule.js +1 -1
  644. package/aws-secretsmanager/lib/secret-rotation.js +1 -1
  645. package/aws-secretsmanager/lib/secret.js +1 -1
  646. package/aws-secretsmanager/lib/secretsmanager.generated.js +1 -1
  647. package/aws-securityhub/lib/securityhub.generated.js +1 -1
  648. package/aws-servicecatalog/lib/cloudformation-template.js +1 -1
  649. package/aws-servicecatalog/lib/portfolio.js +1 -1
  650. package/aws-servicecatalog/lib/product-stack-history.js +1 -1
  651. package/aws-servicecatalog/lib/product-stack.js +1 -1
  652. package/aws-servicecatalog/lib/product.js +1 -1
  653. package/aws-servicecatalog/lib/servicecatalog.generated.js +1 -1
  654. package/aws-servicecatalog/lib/tag-options.js +1 -1
  655. package/aws-servicecatalogappregistry/lib/servicecatalogappregistry.generated.js +1 -1
  656. package/aws-servicediscovery/lib/alias-target-instance.js +1 -1
  657. package/aws-servicediscovery/lib/cname-instance.js +1 -1
  658. package/aws-servicediscovery/lib/http-namespace.js +1 -1
  659. package/aws-servicediscovery/lib/instance.js +1 -1
  660. package/aws-servicediscovery/lib/ip-instance.js +1 -1
  661. package/aws-servicediscovery/lib/non-ip-instance.js +1 -1
  662. package/aws-servicediscovery/lib/private-dns-namespace.js +1 -1
  663. package/aws-servicediscovery/lib/public-dns-namespace.js +1 -1
  664. package/aws-servicediscovery/lib/service.js +1 -1
  665. package/aws-servicediscovery/lib/servicediscovery.generated.js +1 -1
  666. package/aws-ses/lib/configuration-set.js +1 -1
  667. package/aws-ses/lib/dedicated-ip-pool.js +1 -1
  668. package/aws-ses/lib/email-identity.js +1 -1
  669. package/aws-ses/lib/receipt-filter.js +1 -1
  670. package/aws-ses/lib/receipt-rule-set.js +1 -1
  671. package/aws-ses/lib/receipt-rule.js +1 -1
  672. package/aws-ses/lib/ses.generated.js +1 -1
  673. package/aws-ses-actions/lib/add-header.js +1 -1
  674. package/aws-ses-actions/lib/bounce.js +1 -1
  675. package/aws-ses-actions/lib/lambda.js +1 -1
  676. package/aws-ses-actions/lib/s3.js +1 -1
  677. package/aws-ses-actions/lib/sns.js +1 -1
  678. package/aws-ses-actions/lib/stop.js +1 -1
  679. package/aws-signer/lib/signer.generated.js +1 -1
  680. package/aws-signer/lib/signing-profile.js +1 -1
  681. package/aws-sns/lib/policy.js +1 -1
  682. package/aws-sns/lib/sns.generated.js +1 -1
  683. package/aws-sns/lib/subscription-filter.js +1 -1
  684. package/aws-sns/lib/subscription.js +1 -1
  685. package/aws-sns/lib/topic-base.js +1 -1
  686. package/aws-sns/lib/topic.js +1 -1
  687. package/aws-sns-subscriptions/lib/email.js +1 -1
  688. package/aws-sns-subscriptions/lib/lambda.js +1 -1
  689. package/aws-sns-subscriptions/lib/sms.js +1 -1
  690. package/aws-sns-subscriptions/lib/sqs.js +1 -1
  691. package/aws-sns-subscriptions/lib/url.js +1 -1
  692. package/aws-sqs/lib/policy.js +1 -1
  693. package/aws-sqs/lib/queue-base.js +1 -1
  694. package/aws-sqs/lib/queue.js +1 -1
  695. package/aws-sqs/lib/sqs.generated.js +1 -1
  696. package/aws-ssm/lib/parameter.js +1 -1
  697. package/aws-ssm/lib/ssm.generated.js +1 -1
  698. package/aws-ssmcontacts/lib/ssmcontacts.generated.js +1 -1
  699. package/aws-ssmincidents/lib/ssmincidents.generated.js +1 -1
  700. package/aws-sso/lib/sso.generated.js +1 -1
  701. package/aws-stepfunctions/lib/activity.js +1 -1
  702. package/aws-stepfunctions/lib/chain.js +1 -1
  703. package/aws-stepfunctions/lib/condition.js +1 -1
  704. package/aws-stepfunctions/lib/fields.js +1 -1
  705. package/aws-stepfunctions/lib/input.js +1 -1
  706. package/aws-stepfunctions/lib/state-graph.js +1 -1
  707. package/aws-stepfunctions/lib/state-machine-fragment.js +1 -1
  708. package/aws-stepfunctions/lib/state-machine.js +1 -1
  709. package/aws-stepfunctions/lib/state-transition-metrics.js +1 -1
  710. package/aws-stepfunctions/lib/states/choice.js +1 -1
  711. package/aws-stepfunctions/lib/states/custom-state.js +1 -1
  712. package/aws-stepfunctions/lib/states/fail.js +1 -1
  713. package/aws-stepfunctions/lib/states/map.js +1 -1
  714. package/aws-stepfunctions/lib/states/parallel.js +1 -1
  715. package/aws-stepfunctions/lib/states/pass.js +1 -1
  716. package/aws-stepfunctions/lib/states/state.js +1 -1
  717. package/aws-stepfunctions/lib/states/succeed.js +1 -1
  718. package/aws-stepfunctions/lib/states/task-base.js +1 -1
  719. package/aws-stepfunctions/lib/states/task.js +1 -1
  720. package/aws-stepfunctions/lib/states/wait.js +1 -1
  721. package/aws-stepfunctions/lib/stepfunctions.generated.js +1 -1
  722. package/aws-stepfunctions/lib/types.js +1 -1
  723. package/aws-stepfunctions-tasks/lib/apigateway/call-http-api.js +1 -1
  724. package/aws-stepfunctions-tasks/lib/apigateway/call-rest-api.js +1 -1
  725. package/aws-stepfunctions-tasks/lib/athena/get-query-execution.js +1 -1
  726. package/aws-stepfunctions-tasks/lib/athena/get-query-results.js +1 -1
  727. package/aws-stepfunctions-tasks/lib/athena/start-query-execution.js +1 -1
  728. package/aws-stepfunctions-tasks/lib/athena/stop-query-execution.js +1 -1
  729. package/aws-stepfunctions-tasks/lib/aws-sdk/call-aws-service.js +1 -1
  730. package/aws-stepfunctions-tasks/lib/batch/run-batch-job.js +1 -1
  731. package/aws-stepfunctions-tasks/lib/batch/submit-job.js +1 -1
  732. package/aws-stepfunctions-tasks/lib/codebuild/start-build.js +1 -1
  733. package/aws-stepfunctions-tasks/lib/databrew/start-job-run.js +1 -1
  734. package/aws-stepfunctions-tasks/lib/dynamodb/delete-item.js +1 -1
  735. package/aws-stepfunctions-tasks/lib/dynamodb/get-item.js +1 -1
  736. package/aws-stepfunctions-tasks/lib/dynamodb/put-item.js +1 -1
  737. package/aws-stepfunctions-tasks/lib/dynamodb/shared-types.js +1 -1
  738. package/aws-stepfunctions-tasks/lib/dynamodb/update-item.js +1 -1
  739. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-ec2-task.js +1 -1
  740. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-fargate-task.js +1 -1
  741. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-task-base.js +1 -1
  742. package/aws-stepfunctions-tasks/lib/ecs/run-task.js +1 -1
  743. package/aws-stepfunctions-tasks/lib/eks/call.js +1 -1
  744. package/aws-stepfunctions-tasks/lib/emr/emr-add-step.js +1 -1
  745. package/aws-stepfunctions-tasks/lib/emr/emr-cancel-step.js +1 -1
  746. package/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.js +1 -1
  747. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-fleet-by-name.js +1 -1
  748. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-group-by-name.js +1 -1
  749. package/aws-stepfunctions-tasks/lib/emr/emr-set-cluster-termination-protection.js +1 -1
  750. package/aws-stepfunctions-tasks/lib/emr/emr-terminate-cluster.js +1 -1
  751. package/aws-stepfunctions-tasks/lib/emrcontainers/create-virtual-cluster.js +1 -1
  752. package/aws-stepfunctions-tasks/lib/emrcontainers/delete-virtual-cluster.js +1 -1
  753. package/aws-stepfunctions-tasks/lib/emrcontainers/start-job-run.js +1 -1
  754. package/aws-stepfunctions-tasks/lib/evaluate-expression.js +1 -1
  755. package/aws-stepfunctions-tasks/lib/eventbridge/put-events.js +1 -1
  756. package/aws-stepfunctions-tasks/lib/glue/run-glue-job-task.js +1 -1
  757. package/aws-stepfunctions-tasks/lib/glue/start-job-run.js +1 -1
  758. package/aws-stepfunctions-tasks/lib/invoke-activity.js +1 -1
  759. package/aws-stepfunctions-tasks/lib/lambda/invoke-function.js +1 -1
  760. package/aws-stepfunctions-tasks/lib/lambda/invoke.js +1 -1
  761. package/aws-stepfunctions-tasks/lib/lambda/run-lambda-task.js +1 -1
  762. package/aws-stepfunctions-tasks/lib/sagemaker/base-types.js +1 -1
  763. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint-config.js +1 -1
  764. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint.js +1 -1
  765. package/aws-stepfunctions-tasks/lib/sagemaker/create-model.js +1 -1
  766. package/aws-stepfunctions-tasks/lib/sagemaker/create-training-job.js +1 -1
  767. package/aws-stepfunctions-tasks/lib/sagemaker/create-transform-job.js +1 -1
  768. package/aws-stepfunctions-tasks/lib/sagemaker/update-endpoint.js +1 -1
  769. package/aws-stepfunctions-tasks/lib/sns/publish-to-topic.js +1 -1
  770. package/aws-stepfunctions-tasks/lib/sns/publish.js +1 -1
  771. package/aws-stepfunctions-tasks/lib/sqs/send-message.js +1 -1
  772. package/aws-stepfunctions-tasks/lib/sqs/send-to-queue.js +1 -1
  773. package/aws-stepfunctions-tasks/lib/start-execution.js +1 -1
  774. package/aws-stepfunctions-tasks/lib/stepfunctions/invoke-activity.js +1 -1
  775. package/aws-stepfunctions-tasks/lib/stepfunctions/start-execution.js +1 -1
  776. package/aws-supportapp/lib/supportapp.generated.js +1 -1
  777. package/aws-synthetics/lib/synthetics.generated.js +1 -1
  778. package/aws-timestream/lib/timestream.generated.js +1 -1
  779. package/aws-transfer/lib/transfer.generated.js +1 -1
  780. package/aws-voiceid/lib/voiceid.generated.js +1 -1
  781. package/aws-waf/lib/waf.generated.js +1 -1
  782. package/aws-wafregional/lib/wafregional.generated.js +1 -1
  783. package/aws-wafv2/lib/wafv2.generated.js +1 -1
  784. package/aws-wisdom/lib/wisdom.generated.js +1 -1
  785. package/aws-workspaces/lib/workspaces.generated.js +1 -1
  786. package/aws-xray/lib/xray.generated.js +1 -1
  787. package/cloud-assembly-schema/lib/manifest.js +1 -1
  788. package/cloudformation-include/lib/cfn-include.js +1 -1
  789. package/core/lib/annotations.js +1 -1
  790. package/core/lib/app.js +1 -1
  791. package/core/lib/arn.js +1 -1
  792. package/core/lib/aspect.js +1 -1
  793. package/core/lib/asset-staging.js +1 -1
  794. package/core/lib/bundling.js +1 -1
  795. package/core/lib/cfn-codedeploy-blue-green-hook.js +1 -1
  796. package/core/lib/cfn-condition.js +1 -1
  797. package/core/lib/cfn-dynamic-reference.js +1 -1
  798. package/core/lib/cfn-element.js +1 -1
  799. package/core/lib/cfn-fn.js +1 -1
  800. package/core/lib/cfn-hook.js +1 -1
  801. package/core/lib/cfn-include.js +1 -1
  802. package/core/lib/cfn-json.js +1 -1
  803. package/core/lib/cfn-mapping.js +1 -1
  804. package/core/lib/cfn-output.js +1 -1
  805. package/core/lib/cfn-parameter.js +1 -1
  806. package/core/lib/cfn-pseudo.js +1 -1
  807. package/core/lib/cfn-resource.js +1 -1
  808. package/core/lib/cfn-rule.js +1 -1
  809. package/core/lib/cloudformation.generated.js +1 -1
  810. package/core/lib/context-provider.js +1 -1
  811. package/core/lib/custom-resource-provider/custom-resource-provider.js +1 -1
  812. package/core/lib/custom-resource.js +1 -1
  813. package/core/lib/duration.js +1 -1
  814. package/core/lib/expiration.js +1 -1
  815. package/core/lib/feature-flags.js +1 -1
  816. package/core/lib/fs/ignore.js +1 -1
  817. package/core/lib/fs/index.js +1 -1
  818. package/core/lib/lazy.js +1 -1
  819. package/core/lib/names.js +1 -1
  820. package/core/lib/nested-stack.js +1 -1
  821. package/core/lib/physical-name.js +1 -1
  822. package/core/lib/private/intrinsic.js +1 -1
  823. package/core/lib/reference.js +1 -1
  824. package/core/lib/resolvable.js +2 -2
  825. package/core/lib/resource.js +1 -1
  826. package/core/lib/runtime.js +2 -2
  827. package/core/lib/secret-value.js +1 -1
  828. package/core/lib/size.js +1 -1
  829. package/core/lib/stack-synthesizers/asset-manifest-builder.js +1 -1
  830. package/core/lib/stack-synthesizers/bootstrapless-synthesizer.js +1 -1
  831. package/core/lib/stack-synthesizers/cli-credentials-synthesizer.js +1 -1
  832. package/core/lib/stack-synthesizers/default-synthesizer.js +1 -1
  833. package/core/lib/stack-synthesizers/legacy.js +1 -1
  834. package/core/lib/stack-synthesizers/nested.js +1 -1
  835. package/core/lib/stack-synthesizers/stack-synthesizer.js +1 -1
  836. package/core/lib/stack.js +1 -1
  837. package/core/lib/stage.js +1 -1
  838. package/core/lib/string-fragments.js +1 -1
  839. package/core/lib/tag-aspect.js +1 -1
  840. package/core/lib/tag-manager.js +1 -1
  841. package/core/lib/token.js +1 -1
  842. package/core/lib/tree.js +1 -1
  843. package/custom-resources/lib/aws-custom-resource/aws-custom-resource.js +1 -1
  844. package/custom-resources/lib/provider-framework/provider.js +1 -1
  845. package/cx-api/lib/artifacts/asset-manifest-artifact.js +1 -1
  846. package/cx-api/lib/artifacts/cloudformation-artifact.js +1 -1
  847. package/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js +1 -1
  848. package/cx-api/lib/artifacts/tree-cloud-artifact.js +1 -1
  849. package/cx-api/lib/cloud-artifact.js +1 -1
  850. package/cx-api/lib/cloud-assembly.js +1 -1
  851. package/cx-api/lib/environment.js +1 -1
  852. package/cx-api/lib/placeholders.js +1 -1
  853. package/lambda-layer-awscli/lib/awscli-layer.js +1 -1
  854. package/lambda-layer-kubectl/lib/kubectl-layer.js +1 -1
  855. package/lambda-layer-node-proxy-agent/lib/node-proxy-agent-layer.js +1 -1
  856. package/package.json +253 -253
  857. package/pipelines/lib/blueprint/file-set.js +1 -1
  858. package/pipelines/lib/blueprint/manual-approval.js +1 -1
  859. package/pipelines/lib/blueprint/shell-step.js +1 -1
  860. package/pipelines/lib/blueprint/stack-deployment.js +1 -1
  861. package/pipelines/lib/blueprint/stage-deployment.js +1 -1
  862. package/pipelines/lib/blueprint/step.js +1 -1
  863. package/pipelines/lib/blueprint/wave.js +1 -1
  864. package/pipelines/lib/codepipeline/artifact-map.js +1 -1
  865. package/pipelines/lib/codepipeline/codebuild-step.js +1 -1
  866. package/pipelines/lib/codepipeline/codepipeline-source.js +1 -1
  867. package/pipelines/lib/codepipeline/codepipeline.js +1 -1
  868. package/pipelines/lib/codepipeline/confirm-permissions-broadening.js +1 -1
  869. package/pipelines/lib/docker-credentials.js +1 -1
  870. package/pipelines/lib/legacy/actions/deploy-cdk-stack-action.js +1 -1
  871. package/pipelines/lib/legacy/actions/publish-assets-action.js +1 -1
  872. package/pipelines/lib/legacy/actions/update-pipeline-action.js +1 -1
  873. package/pipelines/lib/legacy/pipeline.js +1 -1
  874. package/pipelines/lib/legacy/stage.js +1 -1
  875. package/pipelines/lib/legacy/synths/simple-synth-action.js +1 -1
  876. package/pipelines/lib/legacy/validation/shell-script-action.js +1 -1
  877. package/pipelines/lib/main/pipeline-base.js +1 -1
  878. package/region-info/lib/built-ins.generated.d.ts +1 -1
  879. package/region-info/lib/default.js +1 -1
  880. package/region-info/lib/fact.js +1 -1
  881. package/region-info/lib/region-info.js +1 -1
  882. package/triggers/lib/trigger-function.js +1 -1
  883. package/triggers/lib/trigger.js +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Volume=exports.EbsDeviceVolumeType=exports.BlockDeviceVolume=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),aws_iam_1=require("../../aws-iam"),aws_kms_1=require("../../aws-kms"),core_1=require("../../core"),helpers_internal_1=require("../../core/lib/helpers-internal"),ec2_generated_1=require("./ec2.generated");class BlockDeviceVolume{constructor(ebsDevice,virtualName){this.ebsDevice=ebsDevice,this.virtualName=virtualName;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_EbsDeviceProps(ebsDevice)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BlockDeviceVolume),error}}static ebs(volumeSize,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_EbsDeviceOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.ebs),error}return new this({...options,volumeSize})}static ebsFromSnapshot(snapshotId,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_EbsDeviceSnapshotOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.ebsFromSnapshot),error}return new this({...options,snapshotId})}static ephemeral(volumeIndex){if(volumeIndex<0)throw new Error(`volumeIndex must be a number starting from 0, got "${volumeIndex}"`);return new this(void 0,`ephemeral${volumeIndex}`)}}exports.BlockDeviceVolume=BlockDeviceVolume,_a=JSII_RTTI_SYMBOL_1,BlockDeviceVolume[_a]={fqn:"aws-cdk-lib.aws_ec2.BlockDeviceVolume",version:"2.52.0"};var EbsDeviceVolumeType;(function(EbsDeviceVolumeType2){EbsDeviceVolumeType2.STANDARD="standard",EbsDeviceVolumeType2.IO1="io1",EbsDeviceVolumeType2.IO2="io2",EbsDeviceVolumeType2.GP2="gp2",EbsDeviceVolumeType2.GP3="gp3",EbsDeviceVolumeType2.ST1="st1",EbsDeviceVolumeType2.SC1="sc1",EbsDeviceVolumeType2.GENERAL_PURPOSE_SSD="gp2",EbsDeviceVolumeType2.GENERAL_PURPOSE_SSD_GP3="gp3",EbsDeviceVolumeType2.PROVISIONED_IOPS_SSD="io1",EbsDeviceVolumeType2.PROVISIONED_IOPS_SSD_IO2="io2",EbsDeviceVolumeType2.THROUGHPUT_OPTIMIZED_HDD="st1",EbsDeviceVolumeType2.COLD_HDD="sc1",EbsDeviceVolumeType2.MAGNETIC="standard"})(EbsDeviceVolumeType=exports.EbsDeviceVolumeType||(exports.EbsDeviceVolumeType={}));class VolumeBase extends core_1.Resource{grantAttachVolume(grantee,instances){const result=aws_iam_1.Grant.addToPrincipal({grantee,actions:["ec2:AttachVolume"],resourceArns:this.collectGrantResourceArns(instances)});return this.encryptionKey&&this.encryptionKey.grant(grantee,"kms:CreateGrant").principalStatement.addConditions({Bool:{"kms:GrantIsForAWSResource":!0},StringEquals:{"kms:ViaService":`ec2.${core_1.Stack.of(this).region}.amazonaws.com`,"kms:GrantConstraintType":"EncryptionContextSubset"}}),result}grantAttachVolumeByResourceTag(grantee,constructs,tagKeySuffix){const tagValue=this.calculateResourceTagValue([this,...constructs]),tagKey=`VolumeGrantAttach-${tagKeySuffix??tagValue.slice(0,10).toUpperCase()}`,grantCondition={};grantCondition[`ec2:ResourceTag/${tagKey}`]=tagValue;const result=this.grantAttachVolume(grantee);return result.principalStatement.addCondition("ForAnyValue:StringEquals",grantCondition),core_1.Tags.of(this).add(tagKey,tagValue),constructs.forEach(construct=>core_1.Tags.of(construct).add(tagKey,tagValue)),result}grantDetachVolume(grantee,instances){return aws_iam_1.Grant.addToPrincipal({grantee,actions:["ec2:DetachVolume"],resourceArns:this.collectGrantResourceArns(instances)})}grantDetachVolumeByResourceTag(grantee,constructs,tagKeySuffix){const tagValue=this.calculateResourceTagValue([this,...constructs]),tagKey=`VolumeGrantDetach-${tagKeySuffix??tagValue.slice(0,10).toUpperCase()}`,grantCondition={};grantCondition[`ec2:ResourceTag/${tagKey}`]=tagValue;const result=this.grantDetachVolume(grantee);return result.principalStatement.addCondition("ForAnyValue:StringEquals",grantCondition),core_1.Tags.of(this).add(tagKey,tagValue),constructs.forEach(construct=>core_1.Tags.of(construct).add(tagKey,tagValue)),result}collectGrantResourceArns(instances){const stack=core_1.Stack.of(this),resourceArns=[`arn:${stack.partition}:ec2:${stack.region}:${stack.account}:volume/${this.volumeId}`],instanceArnPrefix=`arn:${stack.partition}:ec2:${stack.region}:${stack.account}:instance`;return instances?instances.forEach(instance=>resourceArns.push(`${instanceArnPrefix}/${instance?.instanceId}`)):resourceArns.push(`${instanceArnPrefix}/*`),resourceArns}calculateResourceTagValue(constructs){return helpers_internal_1.md5hash(constructs.map(c=>core_1.Names.uniqueId(c)).join(""))}}class Volume extends VolumeBase{constructor(scope,id,props){super(scope,id,{physicalName:props.volumeName});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VolumeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Volume),error}this.validateProps(props);const resource=new ec2_generated_1.CfnVolume(this,"Resource",{availabilityZone:props.availabilityZone,autoEnableIo:props.autoEnableIo,encrypted:props.encrypted,kmsKeyId:props.encryptionKey?.keyArn,iops:props.iops,multiAttachEnabled:props.enableMultiAttach??!1,size:props.size?.toGibibytes({rounding:core_1.SizeRoundingBehavior.FAIL}),snapshotId:props.snapshotId,volumeType:props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD});if(resource.applyRemovalPolicy(props.removalPolicy),props.volumeName&&core_1.Tags.of(resource).add("Name",props.volumeName),this.volumeId=resource.ref,this.availabilityZone=props.availabilityZone,this.encryptionKey=props.encryptionKey,this.encryptionKey){const principal=new aws_kms_1.ViaServicePrincipal(`ec2.${core_1.Stack.of(this).region}.amazonaws.com`,new aws_iam_1.AccountRootPrincipal).withConditions({StringEquals:{"kms:CallerAccount":core_1.Stack.of(this).account}}),grant=this.encryptionKey.grant(principal,"kms:DescribeKey","kms:GenerateDataKeyWithoutPlainText");props.snapshotId&&grant.principalStatement?.addActions("kms:ReEncrypt*")}}static fromVolumeAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VolumeAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVolumeAttributes),error}class Import extends VolumeBase{constructor(){super(...arguments),this.volumeId=attrs.volumeId,this.availabilityZone=attrs.availabilityZone,this.encryptionKey=attrs.encryptionKey}}if(!core_1.Token.isUnresolved(attrs.volumeId)&&!/^vol-[0-9a-fA-F]+$/.test(attrs.volumeId))throw new Error("`volumeId` does not match expected pattern. Expected `vol-<hexadecmial value>` (ex: `vol-05abe246af`) or a Token");return new Import(scope,id)}validateProps(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VolumeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.validateProps),error}if(!(props.size||props.snapshotId))throw new Error("Must provide at least one of `size` or `snapshotId`");if(props.snapshotId&&!core_1.Token.isUnresolved(props.snapshotId)&&!/^snap-[0-9a-fA-F]+$/.test(props.snapshotId))throw new Error("`snapshotId` does match expected pattern. Expected `snap-<hexadecmial value>` (ex: `snap-05abe246af`) or Token");if(props.encryptionKey&&!props.encrypted)throw new Error("`encrypted` must be true when providing an `encryptionKey`.");if(props.volumeType&&[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD,EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2].includes(props.volumeType)&&!props.iops)throw new Error("`iops` must be specified if the `volumeType` is `PROVISIONED_IOPS_SSD` or `PROVISIONED_IOPS_SSD_IO2`.");if(props.iops){const volumeType=props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD;if(![EbsDeviceVolumeType.PROVISIONED_IOPS_SSD,EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2,EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3].includes(volumeType))throw new Error("`iops` may only be specified if the `volumeType` is `PROVISIONED_IOPS_SSD`, `PROVISIONED_IOPS_SSD_IO2` or `GENERAL_PURPOSE_SSD_GP3`.");const iopsRanges={};iopsRanges[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3]={Min:3e3,Max:16e3},iopsRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD]={Min:100,Max:64e3},iopsRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2]={Min:100,Max:64e3};const{Min,Max}=iopsRanges[volumeType];if(props.iops<Min||props.iops>Max)throw new Error(`\`${volumeType}\` volumes iops must be between ${Min} and ${Max}.`);const maximumRatios={};maximumRatios[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3]=500,maximumRatios[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD]=50,maximumRatios[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2]=500;const maximumRatio=maximumRatios[volumeType];if(props.size&&props.iops>maximumRatio*props.size.toGibibytes({rounding:core_1.SizeRoundingBehavior.FAIL}))throw new Error(`\`${volumeType}\` volumes iops has a maximum ratio of ${maximumRatio} IOPS/GiB.`)}if(props.enableMultiAttach){const volumeType=props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD;if(![EbsDeviceVolumeType.PROVISIONED_IOPS_SSD,EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2].includes(volumeType))throw new Error("multi-attach is supported exclusively on `PROVISIONED_IOPS_SSD` and `PROVISIONED_IOPS_SSD_IO2` volumes.")}if(props.size){const size=props.size.toGibibytes({rounding:core_1.SizeRoundingBehavior.FAIL}),sizeRanges={};sizeRanges[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD]={Min:1,Max:16384},sizeRanges[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3]={Min:1,Max:16384},sizeRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD]={Min:4,Max:16384},sizeRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2]={Min:4,Max:16384},sizeRanges[EbsDeviceVolumeType.THROUGHPUT_OPTIMIZED_HDD]={Min:125,Max:16384},sizeRanges[EbsDeviceVolumeType.COLD_HDD]={Min:125,Max:16384},sizeRanges[EbsDeviceVolumeType.MAGNETIC]={Min:1,Max:1024};const volumeType=props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD,{Min,Max}=sizeRanges[volumeType];if(size<Min||size>Max)throw new Error(`\`${volumeType}\` volumes must be between ${Min} GiB and ${Max} GiB in size.`)}}}exports.Volume=Volume,_b=JSII_RTTI_SYMBOL_1,Volume[_b]={fqn:"aws-cdk-lib.aws_ec2.Volume",version:"2.52.0"};
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Volume=exports.EbsDeviceVolumeType=exports.BlockDeviceVolume=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),aws_iam_1=require("../../aws-iam"),aws_kms_1=require("../../aws-kms"),core_1=require("../../core"),helpers_internal_1=require("../../core/lib/helpers-internal"),ec2_generated_1=require("./ec2.generated");class BlockDeviceVolume{constructor(ebsDevice,virtualName){this.ebsDevice=ebsDevice,this.virtualName=virtualName;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_EbsDeviceProps(ebsDevice)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BlockDeviceVolume),error}}static ebs(volumeSize,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_EbsDeviceOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.ebs),error}return new this({...options,volumeSize})}static ebsFromSnapshot(snapshotId,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_EbsDeviceSnapshotOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.ebsFromSnapshot),error}return new this({...options,snapshotId})}static ephemeral(volumeIndex){if(volumeIndex<0)throw new Error(`volumeIndex must be a number starting from 0, got "${volumeIndex}"`);return new this(void 0,`ephemeral${volumeIndex}`)}}exports.BlockDeviceVolume=BlockDeviceVolume,_a=JSII_RTTI_SYMBOL_1,BlockDeviceVolume[_a]={fqn:"aws-cdk-lib.aws_ec2.BlockDeviceVolume",version:"2.52.1"};var EbsDeviceVolumeType;(function(EbsDeviceVolumeType2){EbsDeviceVolumeType2.STANDARD="standard",EbsDeviceVolumeType2.IO1="io1",EbsDeviceVolumeType2.IO2="io2",EbsDeviceVolumeType2.GP2="gp2",EbsDeviceVolumeType2.GP3="gp3",EbsDeviceVolumeType2.ST1="st1",EbsDeviceVolumeType2.SC1="sc1",EbsDeviceVolumeType2.GENERAL_PURPOSE_SSD="gp2",EbsDeviceVolumeType2.GENERAL_PURPOSE_SSD_GP3="gp3",EbsDeviceVolumeType2.PROVISIONED_IOPS_SSD="io1",EbsDeviceVolumeType2.PROVISIONED_IOPS_SSD_IO2="io2",EbsDeviceVolumeType2.THROUGHPUT_OPTIMIZED_HDD="st1",EbsDeviceVolumeType2.COLD_HDD="sc1",EbsDeviceVolumeType2.MAGNETIC="standard"})(EbsDeviceVolumeType=exports.EbsDeviceVolumeType||(exports.EbsDeviceVolumeType={}));class VolumeBase extends core_1.Resource{grantAttachVolume(grantee,instances){const result=aws_iam_1.Grant.addToPrincipal({grantee,actions:["ec2:AttachVolume"],resourceArns:this.collectGrantResourceArns(instances)});return this.encryptionKey&&this.encryptionKey.grant(grantee,"kms:CreateGrant").principalStatement.addConditions({Bool:{"kms:GrantIsForAWSResource":!0},StringEquals:{"kms:ViaService":`ec2.${core_1.Stack.of(this).region}.amazonaws.com`,"kms:GrantConstraintType":"EncryptionContextSubset"}}),result}grantAttachVolumeByResourceTag(grantee,constructs,tagKeySuffix){const tagValue=this.calculateResourceTagValue([this,...constructs]),tagKey=`VolumeGrantAttach-${tagKeySuffix??tagValue.slice(0,10).toUpperCase()}`,grantCondition={};grantCondition[`ec2:ResourceTag/${tagKey}`]=tagValue;const result=this.grantAttachVolume(grantee);return result.principalStatement.addCondition("ForAnyValue:StringEquals",grantCondition),core_1.Tags.of(this).add(tagKey,tagValue),constructs.forEach(construct=>core_1.Tags.of(construct).add(tagKey,tagValue)),result}grantDetachVolume(grantee,instances){return aws_iam_1.Grant.addToPrincipal({grantee,actions:["ec2:DetachVolume"],resourceArns:this.collectGrantResourceArns(instances)})}grantDetachVolumeByResourceTag(grantee,constructs,tagKeySuffix){const tagValue=this.calculateResourceTagValue([this,...constructs]),tagKey=`VolumeGrantDetach-${tagKeySuffix??tagValue.slice(0,10).toUpperCase()}`,grantCondition={};grantCondition[`ec2:ResourceTag/${tagKey}`]=tagValue;const result=this.grantDetachVolume(grantee);return result.principalStatement.addCondition("ForAnyValue:StringEquals",grantCondition),core_1.Tags.of(this).add(tagKey,tagValue),constructs.forEach(construct=>core_1.Tags.of(construct).add(tagKey,tagValue)),result}collectGrantResourceArns(instances){const stack=core_1.Stack.of(this),resourceArns=[`arn:${stack.partition}:ec2:${stack.region}:${stack.account}:volume/${this.volumeId}`],instanceArnPrefix=`arn:${stack.partition}:ec2:${stack.region}:${stack.account}:instance`;return instances?instances.forEach(instance=>resourceArns.push(`${instanceArnPrefix}/${instance?.instanceId}`)):resourceArns.push(`${instanceArnPrefix}/*`),resourceArns}calculateResourceTagValue(constructs){return helpers_internal_1.md5hash(constructs.map(c=>core_1.Names.uniqueId(c)).join(""))}}class Volume extends VolumeBase{constructor(scope,id,props){super(scope,id,{physicalName:props.volumeName});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VolumeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Volume),error}this.validateProps(props);const resource=new ec2_generated_1.CfnVolume(this,"Resource",{availabilityZone:props.availabilityZone,autoEnableIo:props.autoEnableIo,encrypted:props.encrypted,kmsKeyId:props.encryptionKey?.keyArn,iops:props.iops,multiAttachEnabled:props.enableMultiAttach??!1,size:props.size?.toGibibytes({rounding:core_1.SizeRoundingBehavior.FAIL}),snapshotId:props.snapshotId,volumeType:props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD});if(resource.applyRemovalPolicy(props.removalPolicy),props.volumeName&&core_1.Tags.of(resource).add("Name",props.volumeName),this.volumeId=resource.ref,this.availabilityZone=props.availabilityZone,this.encryptionKey=props.encryptionKey,this.encryptionKey){const principal=new aws_kms_1.ViaServicePrincipal(`ec2.${core_1.Stack.of(this).region}.amazonaws.com`,new aws_iam_1.AccountRootPrincipal).withConditions({StringEquals:{"kms:CallerAccount":core_1.Stack.of(this).account}}),grant=this.encryptionKey.grant(principal,"kms:DescribeKey","kms:GenerateDataKeyWithoutPlainText");props.snapshotId&&grant.principalStatement?.addActions("kms:ReEncrypt*")}}static fromVolumeAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VolumeAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVolumeAttributes),error}class Import extends VolumeBase{constructor(){super(...arguments),this.volumeId=attrs.volumeId,this.availabilityZone=attrs.availabilityZone,this.encryptionKey=attrs.encryptionKey}}if(!core_1.Token.isUnresolved(attrs.volumeId)&&!/^vol-[0-9a-fA-F]+$/.test(attrs.volumeId))throw new Error("`volumeId` does not match expected pattern. Expected `vol-<hexadecmial value>` (ex: `vol-05abe246af`) or a Token");return new Import(scope,id)}validateProps(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VolumeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.validateProps),error}if(!(props.size||props.snapshotId))throw new Error("Must provide at least one of `size` or `snapshotId`");if(props.snapshotId&&!core_1.Token.isUnresolved(props.snapshotId)&&!/^snap-[0-9a-fA-F]+$/.test(props.snapshotId))throw new Error("`snapshotId` does match expected pattern. Expected `snap-<hexadecmial value>` (ex: `snap-05abe246af`) or Token");if(props.encryptionKey&&!props.encrypted)throw new Error("`encrypted` must be true when providing an `encryptionKey`.");if(props.volumeType&&[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD,EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2].includes(props.volumeType)&&!props.iops)throw new Error("`iops` must be specified if the `volumeType` is `PROVISIONED_IOPS_SSD` or `PROVISIONED_IOPS_SSD_IO2`.");if(props.iops){const volumeType=props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD;if(![EbsDeviceVolumeType.PROVISIONED_IOPS_SSD,EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2,EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3].includes(volumeType))throw new Error("`iops` may only be specified if the `volumeType` is `PROVISIONED_IOPS_SSD`, `PROVISIONED_IOPS_SSD_IO2` or `GENERAL_PURPOSE_SSD_GP3`.");const iopsRanges={};iopsRanges[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3]={Min:3e3,Max:16e3},iopsRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD]={Min:100,Max:64e3},iopsRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2]={Min:100,Max:64e3};const{Min,Max}=iopsRanges[volumeType];if(props.iops<Min||props.iops>Max)throw new Error(`\`${volumeType}\` volumes iops must be between ${Min} and ${Max}.`);const maximumRatios={};maximumRatios[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3]=500,maximumRatios[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD]=50,maximumRatios[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2]=500;const maximumRatio=maximumRatios[volumeType];if(props.size&&props.iops>maximumRatio*props.size.toGibibytes({rounding:core_1.SizeRoundingBehavior.FAIL}))throw new Error(`\`${volumeType}\` volumes iops has a maximum ratio of ${maximumRatio} IOPS/GiB.`)}if(props.enableMultiAttach){const volumeType=props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD;if(![EbsDeviceVolumeType.PROVISIONED_IOPS_SSD,EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2].includes(volumeType))throw new Error("multi-attach is supported exclusively on `PROVISIONED_IOPS_SSD` and `PROVISIONED_IOPS_SSD_IO2` volumes.")}if(props.size){const size=props.size.toGibibytes({rounding:core_1.SizeRoundingBehavior.FAIL}),sizeRanges={};sizeRanges[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD]={Min:1,Max:16384},sizeRanges[EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3]={Min:1,Max:16384},sizeRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD]={Min:4,Max:16384},sizeRanges[EbsDeviceVolumeType.PROVISIONED_IOPS_SSD_IO2]={Min:4,Max:16384},sizeRanges[EbsDeviceVolumeType.THROUGHPUT_OPTIMIZED_HDD]={Min:125,Max:16384},sizeRanges[EbsDeviceVolumeType.COLD_HDD]={Min:125,Max:16384},sizeRanges[EbsDeviceVolumeType.MAGNETIC]={Min:1,Max:1024};const volumeType=props.volumeType??EbsDeviceVolumeType.GENERAL_PURPOSE_SSD,{Min,Max}=sizeRanges[volumeType];if(size<Min||size>Max)throw new Error(`\`${volumeType}\` volumes must be between ${Min} GiB and ${Max} GiB in size.`)}}}exports.Volume=Volume,_b=JSII_RTTI_SYMBOL_1,Volume[_b]={fqn:"aws-cdk-lib.aws_ec2.Volume",version:"2.52.1"};
2
2
  //# sourceMappingURL=volume.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.VpcEndpointService=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),core_1=require("../../core"),region_info_1=require("../../region-info"),ec2_generated_1=require("./ec2.generated");class VpcEndpointService extends core_1.Resource{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcEndpointServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,VpcEndpointService),error}if(props.vpcEndpointServiceLoadBalancers===void 0||props.vpcEndpointServiceLoadBalancers.length===0)throw new Error("VPC Endpoint Service must have at least one load balancer specified.");if(this.vpcEndpointServiceLoadBalancers=props.vpcEndpointServiceLoadBalancers,this.acceptanceRequired=props.acceptanceRequired??!0,props.allowedPrincipals&&props.whitelistedPrincipals)throw new Error("`whitelistedPrincipals` is deprecated; please use `allowedPrincipals` instead");this.allowedPrincipals=props.allowedPrincipals??props.whitelistedPrincipals??[],this.whitelistedPrincipals=this.allowedPrincipals,this.endpointService=new ec2_generated_1.CfnVPCEndpointService(this,id,{networkLoadBalancerArns:this.vpcEndpointServiceLoadBalancers.map(lb=>lb.loadBalancerArn),acceptanceRequired:this.acceptanceRequired}),this.vpcEndpointServiceId=this.endpointService.ref;const{region}=core_1.Stack.of(this),serviceNamePrefix=core_1.Token.isUnresolved(region)?region_info_1.Default.VPC_ENDPOINT_SERVICE_NAME_PREFIX:region_info_1.RegionInfo.get(region).vpcEndpointServiceNamePrefix??region_info_1.Default.VPC_ENDPOINT_SERVICE_NAME_PREFIX;this.vpcEndpointServiceName=core_1.Fn.join(".",[serviceNamePrefix,core_1.Aws.REGION,this.vpcEndpointServiceId]),this.allowedPrincipals.length>0&&new ec2_generated_1.CfnVPCEndpointServicePermissions(this,"Permissions",{serviceId:this.endpointService.ref,allowedPrincipals:this.allowedPrincipals.map(x=>x.arn)})}}exports.VpcEndpointService=VpcEndpointService,_a=JSII_RTTI_SYMBOL_1,VpcEndpointService[_a]={fqn:"aws-cdk-lib.aws_ec2.VpcEndpointService",version:"2.52.0"};
1
+ "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.VpcEndpointService=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),core_1=require("../../core"),region_info_1=require("../../region-info"),ec2_generated_1=require("./ec2.generated");class VpcEndpointService extends core_1.Resource{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcEndpointServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,VpcEndpointService),error}if(props.vpcEndpointServiceLoadBalancers===void 0||props.vpcEndpointServiceLoadBalancers.length===0)throw new Error("VPC Endpoint Service must have at least one load balancer specified.");if(this.vpcEndpointServiceLoadBalancers=props.vpcEndpointServiceLoadBalancers,this.acceptanceRequired=props.acceptanceRequired??!0,props.allowedPrincipals&&props.whitelistedPrincipals)throw new Error("`whitelistedPrincipals` is deprecated; please use `allowedPrincipals` instead");this.allowedPrincipals=props.allowedPrincipals??props.whitelistedPrincipals??[],this.whitelistedPrincipals=this.allowedPrincipals,this.endpointService=new ec2_generated_1.CfnVPCEndpointService(this,id,{networkLoadBalancerArns:this.vpcEndpointServiceLoadBalancers.map(lb=>lb.loadBalancerArn),acceptanceRequired:this.acceptanceRequired}),this.vpcEndpointServiceId=this.endpointService.ref;const{region}=core_1.Stack.of(this),serviceNamePrefix=core_1.Token.isUnresolved(region)?region_info_1.Default.VPC_ENDPOINT_SERVICE_NAME_PREFIX:region_info_1.RegionInfo.get(region).vpcEndpointServiceNamePrefix??region_info_1.Default.VPC_ENDPOINT_SERVICE_NAME_PREFIX;this.vpcEndpointServiceName=core_1.Fn.join(".",[serviceNamePrefix,core_1.Aws.REGION,this.vpcEndpointServiceId]),this.allowedPrincipals.length>0&&new ec2_generated_1.CfnVPCEndpointServicePermissions(this,"Permissions",{serviceId:this.endpointService.ref,allowedPrincipals:this.allowedPrincipals.map(x=>x.arn)})}}exports.VpcEndpointService=VpcEndpointService,_a=JSII_RTTI_SYMBOL_1,VpcEndpointService[_a]={fqn:"aws-cdk-lib.aws_ec2.VpcEndpointService",version:"2.52.1"};
2
2
  //# sourceMappingURL=vpc-endpoint-service.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c,_d,_e,_f;Object.defineProperty(exports,"__esModule",{value:!0}),exports.InterfaceVpcEndpoint=exports.InterfaceVpcEndpointAwsService=exports.InterfaceVpcEndpointService=exports.GatewayVpcEndpoint=exports.GatewayVpcEndpointAwsService=exports.VpcEndpointType=exports.VpcEndpoint=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),iam=require("../../aws-iam"),cxschema=require("../../cloud-assembly-schema"),core_1=require("../../core"),connections_1=require("./connections"),ec2_generated_1=require("./ec2.generated"),peer_1=require("./peer"),port_1=require("./port"),security_group_1=require("./security-group"),util_1=require("./util");class VpcEndpoint extends core_1.Resource{addToPolicy(statement){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_PolicyStatement(statement)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addToPolicy),error}if(!statement.hasPrincipal)throw new Error("Statement must have a `Principal`.");this.policyDocument||(this.policyDocument=new iam.PolicyDocument),this.policyDocument.addStatements(statement)}}exports.VpcEndpoint=VpcEndpoint,_a=JSII_RTTI_SYMBOL_1,VpcEndpoint[_a]={fqn:"aws-cdk-lib.aws_ec2.VpcEndpoint",version:"2.52.0"};var VpcEndpointType;(function(VpcEndpointType2){VpcEndpointType2.INTERFACE="Interface",VpcEndpointType2.GATEWAY="Gateway"})(VpcEndpointType=exports.VpcEndpointType||(exports.VpcEndpointType={}));class GatewayVpcEndpointAwsService{constructor(name,prefix){this.name=`${prefix||"com.amazonaws"}.${core_1.Aws.REGION}.${name}`}}exports.GatewayVpcEndpointAwsService=GatewayVpcEndpointAwsService,_b=JSII_RTTI_SYMBOL_1,GatewayVpcEndpointAwsService[_b]={fqn:"aws-cdk-lib.aws_ec2.GatewayVpcEndpointAwsService",version:"2.52.0"},GatewayVpcEndpointAwsService.DYNAMODB=new GatewayVpcEndpointAwsService("dynamodb"),GatewayVpcEndpointAwsService.S3=new GatewayVpcEndpointAwsService("s3");class GatewayVpcEndpoint extends VpcEndpoint{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_GatewayVpcEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,GatewayVpcEndpoint),error}const subnets=props.subnets?util_1.flatten(props.subnets.map(s=>props.vpc.selectSubnets(s).subnets)):[...props.vpc.privateSubnets,...props.vpc.publicSubnets,...props.vpc.isolatedSubnets],routeTableIds=util_1.allRouteTableIds(subnets);if(routeTableIds.length===0)throw new Error("Can't add a gateway endpoint to VPC; route table IDs are not available");const endpoint=new ec2_generated_1.CfnVPCEndpoint(this,"Resource",{policyDocument:core_1.Lazy.any({produce:()=>this.policyDocument}),routeTableIds,serviceName:props.service.name,vpcEndpointType:VpcEndpointType.GATEWAY,vpcId:props.vpc.vpcId});this.vpcEndpointId=endpoint.ref,this.vpcEndpointCreationTimestamp=endpoint.attrCreationTimestamp,this.vpcEndpointDnsEntries=endpoint.attrDnsEntries,this.vpcEndpointNetworkInterfaceIds=endpoint.attrNetworkInterfaceIds}static fromGatewayVpcEndpointId(scope,id,gatewayVpcEndpointId){class Import extends VpcEndpoint{constructor(){super(...arguments),this.vpcEndpointId=gatewayVpcEndpointId}}return new Import(scope,id)}}exports.GatewayVpcEndpoint=GatewayVpcEndpoint,_c=JSII_RTTI_SYMBOL_1,GatewayVpcEndpoint[_c]={fqn:"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint",version:"2.52.0"};class InterfaceVpcEndpointService{constructor(name,port){this.privateDnsDefault=!1,this.name=name,this.port=port||443}}exports.InterfaceVpcEndpointService=InterfaceVpcEndpointService,_d=JSII_RTTI_SYMBOL_1,InterfaceVpcEndpointService[_d]={fqn:"aws-cdk-lib.aws_ec2.InterfaceVpcEndpointService",version:"2.52.0"};class InterfaceVpcEndpointAwsService{constructor(name,prefix,port){this.privateDnsDefault=!0;const region=core_1.Lazy.uncachedString({produce:context=>core_1.Stack.of(context.scope).region}),defaultEndpointPrefix=core_1.Lazy.uncachedString({produce:context=>{const regionName=core_1.Stack.of(context.scope).region;return this.getDefaultEndpointPrefix(name,regionName)}}),defaultEndpointSuffix=core_1.Lazy.uncachedString({produce:context=>{const regionName=core_1.Stack.of(context.scope).region;return this.getDefaultEndpointSuffix(name,regionName)}});this.name=`${prefix||defaultEndpointPrefix}.${region}.${name}${defaultEndpointSuffix}`,this.shortName=name,this.port=port||443}getDefaultEndpointPrefix(name,region){return{"cn-north-1":["application-autoscaling","athena","autoscaling","awsconnector","cassandra","cloudformation","codedeploy-commands-secure","databrew","dms","ebs","ec2","ecr.api","ecr.dkr","elasticbeanstalk","elasticfilesystem","elasticfilesystem-fips","execute-api","imagebuilder","iotsitewise.api","iotsitewise.data","kinesis-streams","lambda","license-manager","monitoring","rds","redshift","redshift-data","s3","sagemaker.api","sagemaker.featurestore-runtime","sagemaker.runtime","servicecatalog","sms","sqs","states","sts","synthetics","transcribe","transcribestreaming","transfer","xray"],"cn-northwest-1":["application-autoscaling","athena","autoscaling","awsconnector","cassandra","cloudformation","codedeploy-commands-secure","databrew","dms","ebs","ec2","ecr.api","ecr.dkr","elasticbeanstalk","elasticfilesystem","elasticfilesystem-fips","execute-api","imagebuilder","kinesis-streams","lambda","license-manager","monitoring","rds","redshift","redshift-data","s3","sagemaker.api","sagemaker.featurestore-runtime","sagemaker.runtime","servicecatalog","sms","sqs","states","sts","synthetics","transcribe","transcribestreaming","transfer","workspaces","xray"]}[region]?.includes(name)?"cn.com.amazonaws":"com.amazonaws"}getDefaultEndpointSuffix(name,region){return{"cn-north-1":["transcribe"],"cn-northwest-1":["transcribe"]}[region]?.includes(name)?".cn":""}}exports.InterfaceVpcEndpointAwsService=InterfaceVpcEndpointAwsService,_e=JSII_RTTI_SYMBOL_1,InterfaceVpcEndpointAwsService[_e]={fqn:"aws-cdk-lib.aws_ec2.InterfaceVpcEndpointAwsService",version:"2.52.0"},InterfaceVpcEndpointAwsService.SAGEMAKER_STUDIO=new InterfaceVpcEndpointAwsService("studio","aws.sagemaker"),InterfaceVpcEndpointAwsService.SAGEMAKER_NOTEBOOK=new InterfaceVpcEndpointAwsService("notebook","aws.sagemaker"),InterfaceVpcEndpointAwsService.ACCESS_ANALYZER=new InterfaceVpcEndpointAwsService("access-analyzer"),InterfaceVpcEndpointAwsService.ACCOUNT_MANAGEMENT=new InterfaceVpcEndpointAwsService("account"),InterfaceVpcEndpointAwsService.APP_MESH=new InterfaceVpcEndpointAwsService("appmesh-envoy-management"),InterfaceVpcEndpointAwsService.APP_RUNNER=new InterfaceVpcEndpointAwsService("apprunner"),InterfaceVpcEndpointAwsService.APPLICATION_MIGRATION_SERVICE=new InterfaceVpcEndpointAwsService("mgn"),InterfaceVpcEndpointAwsService.ATHENA=new InterfaceVpcEndpointAwsService("athena"),InterfaceVpcEndpointAwsService.AUDIT_MANAGER=new InterfaceVpcEndpointAwsService("auditmanager"),InterfaceVpcEndpointAwsService.APPLICATION_AUTOSCALING=new InterfaceVpcEndpointAwsService("application-autoscaling"),InterfaceVpcEndpointAwsService.AUTOSCALING=new InterfaceVpcEndpointAwsService("autoscaling"),InterfaceVpcEndpointAwsService.AUTOSCALING_PLANS=new InterfaceVpcEndpointAwsService("autoscaling-plans"),InterfaceVpcEndpointAwsService.BATCH=new InterfaceVpcEndpointAwsService("batch"),InterfaceVpcEndpointAwsService.BILLING_CONDUCTOR=new InterfaceVpcEndpointAwsService("billingconductor"),InterfaceVpcEndpointAwsService.BRAKET=new InterfaceVpcEndpointAwsService("braket"),InterfaceVpcEndpointAwsService.PRIVATE_CERTIFICATE_AUTHORITY=new InterfaceVpcEndpointAwsService("acm-pca"),InterfaceVpcEndpointAwsService.CLOUD_DIRECTORY=new InterfaceVpcEndpointAwsService("clouddirectory"),InterfaceVpcEndpointAwsService.CLOUDFORMATION=new InterfaceVpcEndpointAwsService("cloudformation"),InterfaceVpcEndpointAwsService.CLOUDHSM=new InterfaceVpcEndpointAwsService("cloudhsmv2"),InterfaceVpcEndpointAwsService.CLOUDTRAIL=new InterfaceVpcEndpointAwsService("cloudtrail"),InterfaceVpcEndpointAwsService.CODEARTIFACT_API=new InterfaceVpcEndpointAwsService("codeartifact.api"),InterfaceVpcEndpointAwsService.CODEARTIFACT_REPOSITORIES=new InterfaceVpcEndpointAwsService("codeartifact.repositories"),InterfaceVpcEndpointAwsService.CODEBUILD=new InterfaceVpcEndpointAwsService("codebuild"),InterfaceVpcEndpointAwsService.CODEBUILD_FIPS=new InterfaceVpcEndpointAwsService("codebuild-fips"),InterfaceVpcEndpointAwsService.CODECOMMIT=new InterfaceVpcEndpointAwsService("codecommit"),InterfaceVpcEndpointAwsService.CODECOMMIT_FIPS=new InterfaceVpcEndpointAwsService("codecommit-fips"),InterfaceVpcEndpointAwsService.CODEGURU_PROFILER=new InterfaceVpcEndpointAwsService("codeguru-profiler"),InterfaceVpcEndpointAwsService.CODEGURU_REVIEWER=new InterfaceVpcEndpointAwsService("codeguru-reviewer"),InterfaceVpcEndpointAwsService.CODEPIPELINE=new InterfaceVpcEndpointAwsService("codepipeline"),InterfaceVpcEndpointAwsService.CODESTAR_CONNECTIONS=new InterfaceVpcEndpointAwsService("codestar-connections.api"),InterfaceVpcEndpointAwsService.COMPREHEND=new InterfaceVpcEndpointAwsService("comprehend"),InterfaceVpcEndpointAwsService.COMPREHEND_MEDICAL=new InterfaceVpcEndpointAwsService("comprehendmedical"),InterfaceVpcEndpointAwsService.CONFIG=new InterfaceVpcEndpointAwsService("config"),InterfaceVpcEndpointAwsService.DATA_EXCHANGE=new InterfaceVpcEndpointAwsService("dataexchange"),InterfaceVpcEndpointAwsService.DATASYNC=new InterfaceVpcEndpointAwsService("datasync"),InterfaceVpcEndpointAwsService.DEVOPS_GURU=new InterfaceVpcEndpointAwsService("devops-guru"),InterfaceVpcEndpointAwsService.EBS_DIRECT=new InterfaceVpcEndpointAwsService("ebs"),InterfaceVpcEndpointAwsService.EC2=new InterfaceVpcEndpointAwsService("ec2"),InterfaceVpcEndpointAwsService.EC2_MESSAGES=new InterfaceVpcEndpointAwsService("ec2messages"),InterfaceVpcEndpointAwsService.IMAGE_BUILDER=new InterfaceVpcEndpointAwsService("imagebuilder"),InterfaceVpcEndpointAwsService.ECR=new InterfaceVpcEndpointAwsService("ecr.api"),InterfaceVpcEndpointAwsService.ECR_DOCKER=new InterfaceVpcEndpointAwsService("ecr.dkr"),InterfaceVpcEndpointAwsService.ECS=new InterfaceVpcEndpointAwsService("ecs"),InterfaceVpcEndpointAwsService.ECS_AGENT=new InterfaceVpcEndpointAwsService("ecs-agent"),InterfaceVpcEndpointAwsService.ECS_TELEMETRY=new InterfaceVpcEndpointAwsService("ecs-telemetry"),InterfaceVpcEndpointAwsService.ELASTIC_FILESYSTEM=new InterfaceVpcEndpointAwsService("elasticfilesystem"),InterfaceVpcEndpointAwsService.ELASTIC_FILESYSTEM_FIPS=new InterfaceVpcEndpointAwsService("elasticfilesystem-fips"),InterfaceVpcEndpointAwsService.ELASTIC_INFERENCE_RUNTIME=new InterfaceVpcEndpointAwsService("elastic-inference.runtime"),InterfaceVpcEndpointAwsService.ELASTIC_LOAD_BALANCING=new InterfaceVpcEndpointAwsService("elasticloadbalancing"),InterfaceVpcEndpointAwsService.ELASTICACHE=new InterfaceVpcEndpointAwsService("elasticache"),InterfaceVpcEndpointAwsService.EMR=new InterfaceVpcEndpointAwsService("elasticmapreduce"),InterfaceVpcEndpointAwsService.EMR_EKS=new InterfaceVpcEndpointAwsService("emr-containers"),InterfaceVpcEndpointAwsService.EMR_SERVERLESS=new InterfaceVpcEndpointAwsService(".emr-serverless"),InterfaceVpcEndpointAwsService.CLOUDWATCH_EVENTS=new InterfaceVpcEndpointAwsService("events"),InterfaceVpcEndpointAwsService.APIGATEWAY=new InterfaceVpcEndpointAwsService("execute-api"),InterfaceVpcEndpointAwsService.FAULT_INJECTION_SIMULATOR=new InterfaceVpcEndpointAwsService("fis"),InterfaceVpcEndpointAwsService.FRAUD_DETECTOR=new InterfaceVpcEndpointAwsService("frauddetector"),InterfaceVpcEndpointAwsService.CODECOMMIT_GIT=new InterfaceVpcEndpointAwsService("git-codecommit"),InterfaceVpcEndpointAwsService.CODECOMMIT_GIT_FIPS=new InterfaceVpcEndpointAwsService("git-codecommit-fips"),InterfaceVpcEndpointAwsService.GLUE=new InterfaceVpcEndpointAwsService("glue"),InterfaceVpcEndpointAwsService.GLUE_DATABREW=new InterfaceVpcEndpointAwsService("databrew"),InterfaceVpcEndpointAwsService.GRAFANA=new InterfaceVpcEndpointAwsService("grafana"),InterfaceVpcEndpointAwsService.GROUNDSTATION=new InterfaceVpcEndpointAwsService("groundstation"),InterfaceVpcEndpointAwsService.HEALTHLAKE=new InterfaceVpcEndpointAwsService("healthlake"),InterfaceVpcEndpointAwsService.IAM_IDENTITY_CENTER=new InterfaceVpcEndpointAwsService("identitystore"),InterfaceVpcEndpointAwsService.IAM_ROLES_ANYWHERE=new InterfaceVpcEndpointAwsService("rolesanywhere"),InterfaceVpcEndpointAwsService.INSPECTOR=new InterfaceVpcEndpointAwsService("inspector2"),InterfaceVpcEndpointAwsService.IOT_CORE=new InterfaceVpcEndpointAwsService("iot.data"),InterfaceVpcEndpointAwsService.IOT_GREENGRASS=new InterfaceVpcEndpointAwsService("greengrass"),InterfaceVpcEndpointAwsService.KEYSPACES=new InterfaceVpcEndpointAwsService("cassandra","",9142),InterfaceVpcEndpointAwsService.KINESIS_STREAMS=new InterfaceVpcEndpointAwsService("kinesis-streams"),InterfaceVpcEndpointAwsService.KINESIS_FIREHOSE=new InterfaceVpcEndpointAwsService("kinesis-firehose"),InterfaceVpcEndpointAwsService.KMS=new InterfaceVpcEndpointAwsService("kms"),InterfaceVpcEndpointAwsService.CLOUDWATCH_LOGS=new InterfaceVpcEndpointAwsService("logs"),InterfaceVpcEndpointAwsService.CLOUDWATCH=new InterfaceVpcEndpointAwsService("monitoring"),InterfaceVpcEndpointAwsService.RDS=new InterfaceVpcEndpointAwsService("rds"),InterfaceVpcEndpointAwsService.ROBOMAKER=new InterfaceVpcEndpointAwsService("robomaker"),InterfaceVpcEndpointAwsService.RDS_DATA=new InterfaceVpcEndpointAwsService("rds-data"),InterfaceVpcEndpointAwsService.S3=new InterfaceVpcEndpointAwsService("s3"),InterfaceVpcEndpointAwsService.S3_OUTPOSTS=new InterfaceVpcEndpointAwsService("s3-outposts"),InterfaceVpcEndpointAwsService.SAGEMAKER_API=new InterfaceVpcEndpointAwsService("sagemaker.api"),InterfaceVpcEndpointAwsService.SAGEMAKER_RUNTIME=new InterfaceVpcEndpointAwsService("sagemaker.runtime"),InterfaceVpcEndpointAwsService.SAGEMAKER_RUNTIME_FIPS=new InterfaceVpcEndpointAwsService("sagemaker.runtime-fips"),InterfaceVpcEndpointAwsService.SECRETS_MANAGER=new InterfaceVpcEndpointAwsService("secretsmanager"),InterfaceVpcEndpointAwsService.SERVICE_CATALOG=new InterfaceVpcEndpointAwsService("servicecatalog"),InterfaceVpcEndpointAwsService.SES=new InterfaceVpcEndpointAwsService("email-smtp"),InterfaceVpcEndpointAwsService.SNS=new InterfaceVpcEndpointAwsService("sns"),InterfaceVpcEndpointAwsService.SQS=new InterfaceVpcEndpointAwsService("sqs"),InterfaceVpcEndpointAwsService.SSM=new InterfaceVpcEndpointAwsService("ssm"),InterfaceVpcEndpointAwsService.SSM_MESSAGES=new InterfaceVpcEndpointAwsService("ssmmessages"),InterfaceVpcEndpointAwsService.STS=new InterfaceVpcEndpointAwsService("sts"),InterfaceVpcEndpointAwsService.SNOW_DEVICE_MANAGEMENT=new InterfaceVpcEndpointAwsService("snow-device-management"),InterfaceVpcEndpointAwsService.TEXTRACT=new InterfaceVpcEndpointAwsService("textract"),InterfaceVpcEndpointAwsService.TEXTRACT_FIPS=new InterfaceVpcEndpointAwsService("textract-fips"),InterfaceVpcEndpointAwsService.TRANSFER=new InterfaceVpcEndpointAwsService("transfer.server"),InterfaceVpcEndpointAwsService.STORAGE_GATEWAY=new InterfaceVpcEndpointAwsService("storagegateway"),InterfaceVpcEndpointAwsService.REKOGNITION=new InterfaceVpcEndpointAwsService("rekognition"),InterfaceVpcEndpointAwsService.REKOGNITION_FIPS=new InterfaceVpcEndpointAwsService("rekognition-fips"),InterfaceVpcEndpointAwsService.STEP_FUNCTIONS=new InterfaceVpcEndpointAwsService("states"),InterfaceVpcEndpointAwsService.LAMBDA=new InterfaceVpcEndpointAwsService("lambda"),InterfaceVpcEndpointAwsService.TRANSCRIBE=new InterfaceVpcEndpointAwsService("transcribe"),InterfaceVpcEndpointAwsService.WORKSPACES=new InterfaceVpcEndpointAwsService("workspaces"),InterfaceVpcEndpointAwsService.XRAY=new InterfaceVpcEndpointAwsService("xray"),InterfaceVpcEndpointAwsService.SECURITYHUB=new InterfaceVpcEndpointAwsService("securityhub"),InterfaceVpcEndpointAwsService.EMAIL_SMTP=new InterfaceVpcEndpointAwsService("email-smtp");class InterfaceVpcEndpoint extends VpcEndpoint{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_InterfaceVpcEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,InterfaceVpcEndpoint),error}const securityGroups=props.securityGroups||[new security_group_1.SecurityGroup(this,"SecurityGroup",{vpc:props.vpc})];this.securityGroupId=securityGroups[0].securityGroupId,this.connections=new connections_1.Connections({defaultPort:port_1.Port.tcp(props.service.port),securityGroups}),props.open!==!1&&this.connections.allowDefaultPortFrom(peer_1.Peer.ipv4(props.vpc.vpcCidrBlock));const subnetIds=this.endpointSubnets(props),endpoint=new ec2_generated_1.CfnVPCEndpoint(this,"Resource",{privateDnsEnabled:props.privateDnsEnabled??props.service.privateDnsDefault??!0,policyDocument:core_1.Lazy.any({produce:()=>this.policyDocument}),securityGroupIds:securityGroups.map(s=>s.securityGroupId),serviceName:props.service.name,vpcEndpointType:VpcEndpointType.INTERFACE,subnetIds,vpcId:props.vpc.vpcId});this.vpcEndpointId=endpoint.ref,this.vpcEndpointCreationTimestamp=endpoint.attrCreationTimestamp,this.vpcEndpointDnsEntries=endpoint.attrDnsEntries,this.vpcEndpointNetworkInterfaceIds=endpoint.attrNetworkInterfaceIds}static fromInterfaceVpcEndpointAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_InterfaceVpcEndpointAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromInterfaceVpcEndpointAttributes),error}const securityGroups=attrs.securityGroupId?[security_group_1.SecurityGroup.fromSecurityGroupId(scope,"SecurityGroup",attrs.securityGroupId)]:attrs.securityGroups;class Import extends core_1.Resource{constructor(){super(...arguments),this.vpcEndpointId=attrs.vpcEndpointId,this.connections=new connections_1.Connections({defaultPort:port_1.Port.tcp(attrs.port),securityGroups})}}return new Import(scope,id)}endpointSubnets(props){const lookupSupportedAzs=props.lookupSupportedAzs??!1,subnetSelection=props.vpc.selectSubnets({...props.subnets,onePerAz:!0}),subnets=subnetSelection.subnets;if(!subnetSelection.isPendingLookup&&subnetSelection.subnets.length==0)throw new Error("Cannot create a VPC Endpoint with no subnets");if(!lookupSupportedAzs)return subnetSelection.subnetIds;const lookupServiceName=core_1.Token.isUnresolved(props.service.name)&&props.service instanceof InterfaceVpcEndpointAwsService?core_1.Stack.of(this).resolve(props.service.name):props.service.name;this.validateCanLookupSupportedAzs(subnets,lookupServiceName);const availableAZs=this.availableAvailabilityZones(lookupServiceName),filteredSubnets=subnets.filter(s=>availableAZs.includes(s.availabilityZone));if(filteredSubnets.length==0)throw new Error(`lookupSupportedAzs returned ${availableAZs} but subnets have AZs ${subnets.map(s=>s.availabilityZone)}`);return filteredSubnets.map(s=>s.subnetId)}validateCanLookupSupportedAzs(subnets,serviceName){const agnosticAcct=core_1.Token.isUnresolved(this.env.account),agnosticRegion=core_1.Token.isUnresolved(this.env.region),agnosticService=core_1.Token.isUnresolved(serviceName),agnosticSubnets=subnets.some(s=>core_1.Token.isUnresolved(s.availabilityZone)),agnosticSubnetList=core_1.Token.isUnresolved(subnets.map(s=>s.availabilityZone));if(agnosticAcct||agnosticRegion)throw new Error("Cannot look up VPC endpoint availability zones if account/region are not specified");if(agnosticService)throw new Error(`Cannot lookup AZs for a service name with a Token: ${serviceName}`);if(agnosticSubnets||agnosticSubnetList){const agnostic=subnets.filter(s=>core_1.Token.isUnresolved(s.availabilityZone));throw new Error(`lookupSupportedAzs cannot filter on subnets with Token AZs: ${agnostic}`)}}availableAvailabilityZones(serviceName){const availableAZs=core_1.ContextProvider.getValue(this,{provider:cxschema.ContextProvider.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER,dummyValue:this.stack.availabilityZones,props:{serviceName}}).value;if(!Array.isArray(availableAZs))throw new Error(`Discovered AZs for endpoint service ${serviceName} must be an array`);return availableAZs}}exports.InterfaceVpcEndpoint=InterfaceVpcEndpoint,_f=JSII_RTTI_SYMBOL_1,InterfaceVpcEndpoint[_f]={fqn:"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint",version:"2.52.0"};
1
+ "use strict";var _a,_b,_c,_d,_e,_f;Object.defineProperty(exports,"__esModule",{value:!0}),exports.InterfaceVpcEndpoint=exports.InterfaceVpcEndpointAwsService=exports.InterfaceVpcEndpointService=exports.GatewayVpcEndpoint=exports.GatewayVpcEndpointAwsService=exports.VpcEndpointType=exports.VpcEndpoint=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),iam=require("../../aws-iam"),cxschema=require("../../cloud-assembly-schema"),core_1=require("../../core"),connections_1=require("./connections"),ec2_generated_1=require("./ec2.generated"),peer_1=require("./peer"),port_1=require("./port"),security_group_1=require("./security-group"),util_1=require("./util");class VpcEndpoint extends core_1.Resource{addToPolicy(statement){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_PolicyStatement(statement)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addToPolicy),error}if(!statement.hasPrincipal)throw new Error("Statement must have a `Principal`.");this.policyDocument||(this.policyDocument=new iam.PolicyDocument),this.policyDocument.addStatements(statement)}}exports.VpcEndpoint=VpcEndpoint,_a=JSII_RTTI_SYMBOL_1,VpcEndpoint[_a]={fqn:"aws-cdk-lib.aws_ec2.VpcEndpoint",version:"2.52.1"};var VpcEndpointType;(function(VpcEndpointType2){VpcEndpointType2.INTERFACE="Interface",VpcEndpointType2.GATEWAY="Gateway"})(VpcEndpointType=exports.VpcEndpointType||(exports.VpcEndpointType={}));class GatewayVpcEndpointAwsService{constructor(name,prefix){this.name=`${prefix||"com.amazonaws"}.${core_1.Aws.REGION}.${name}`}}exports.GatewayVpcEndpointAwsService=GatewayVpcEndpointAwsService,_b=JSII_RTTI_SYMBOL_1,GatewayVpcEndpointAwsService[_b]={fqn:"aws-cdk-lib.aws_ec2.GatewayVpcEndpointAwsService",version:"2.52.1"},GatewayVpcEndpointAwsService.DYNAMODB=new GatewayVpcEndpointAwsService("dynamodb"),GatewayVpcEndpointAwsService.S3=new GatewayVpcEndpointAwsService("s3");class GatewayVpcEndpoint extends VpcEndpoint{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_GatewayVpcEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,GatewayVpcEndpoint),error}const subnets=props.subnets?util_1.flatten(props.subnets.map(s=>props.vpc.selectSubnets(s).subnets)):[...props.vpc.privateSubnets,...props.vpc.publicSubnets,...props.vpc.isolatedSubnets],routeTableIds=util_1.allRouteTableIds(subnets);if(routeTableIds.length===0)throw new Error("Can't add a gateway endpoint to VPC; route table IDs are not available");const endpoint=new ec2_generated_1.CfnVPCEndpoint(this,"Resource",{policyDocument:core_1.Lazy.any({produce:()=>this.policyDocument}),routeTableIds,serviceName:props.service.name,vpcEndpointType:VpcEndpointType.GATEWAY,vpcId:props.vpc.vpcId});this.vpcEndpointId=endpoint.ref,this.vpcEndpointCreationTimestamp=endpoint.attrCreationTimestamp,this.vpcEndpointDnsEntries=endpoint.attrDnsEntries,this.vpcEndpointNetworkInterfaceIds=endpoint.attrNetworkInterfaceIds}static fromGatewayVpcEndpointId(scope,id,gatewayVpcEndpointId){class Import extends VpcEndpoint{constructor(){super(...arguments),this.vpcEndpointId=gatewayVpcEndpointId}}return new Import(scope,id)}}exports.GatewayVpcEndpoint=GatewayVpcEndpoint,_c=JSII_RTTI_SYMBOL_1,GatewayVpcEndpoint[_c]={fqn:"aws-cdk-lib.aws_ec2.GatewayVpcEndpoint",version:"2.52.1"};class InterfaceVpcEndpointService{constructor(name,port){this.privateDnsDefault=!1,this.name=name,this.port=port||443}}exports.InterfaceVpcEndpointService=InterfaceVpcEndpointService,_d=JSII_RTTI_SYMBOL_1,InterfaceVpcEndpointService[_d]={fqn:"aws-cdk-lib.aws_ec2.InterfaceVpcEndpointService",version:"2.52.1"};class InterfaceVpcEndpointAwsService{constructor(name,prefix,port){this.privateDnsDefault=!0;const region=core_1.Lazy.uncachedString({produce:context=>core_1.Stack.of(context.scope).region}),defaultEndpointPrefix=core_1.Lazy.uncachedString({produce:context=>{const regionName=core_1.Stack.of(context.scope).region;return this.getDefaultEndpointPrefix(name,regionName)}}),defaultEndpointSuffix=core_1.Lazy.uncachedString({produce:context=>{const regionName=core_1.Stack.of(context.scope).region;return this.getDefaultEndpointSuffix(name,regionName)}});this.name=`${prefix||defaultEndpointPrefix}.${region}.${name}${defaultEndpointSuffix}`,this.shortName=name,this.port=port||443}getDefaultEndpointPrefix(name,region){return{"cn-north-1":["application-autoscaling","athena","autoscaling","awsconnector","cassandra","cloudformation","codedeploy-commands-secure","databrew","dms","ebs","ec2","ecr.api","ecr.dkr","elasticbeanstalk","elasticfilesystem","elasticfilesystem-fips","execute-api","imagebuilder","iotsitewise.api","iotsitewise.data","kinesis-streams","lambda","license-manager","monitoring","rds","redshift","redshift-data","s3","sagemaker.api","sagemaker.featurestore-runtime","sagemaker.runtime","servicecatalog","sms","sqs","states","sts","synthetics","transcribe","transcribestreaming","transfer","xray"],"cn-northwest-1":["application-autoscaling","athena","autoscaling","awsconnector","cassandra","cloudformation","codedeploy-commands-secure","databrew","dms","ebs","ec2","ecr.api","ecr.dkr","elasticbeanstalk","elasticfilesystem","elasticfilesystem-fips","execute-api","imagebuilder","kinesis-streams","lambda","license-manager","monitoring","rds","redshift","redshift-data","s3","sagemaker.api","sagemaker.featurestore-runtime","sagemaker.runtime","servicecatalog","sms","sqs","states","sts","synthetics","transcribe","transcribestreaming","transfer","workspaces","xray"]}[region]?.includes(name)?"cn.com.amazonaws":"com.amazonaws"}getDefaultEndpointSuffix(name,region){return{"cn-north-1":["transcribe"],"cn-northwest-1":["transcribe"]}[region]?.includes(name)?".cn":""}}exports.InterfaceVpcEndpointAwsService=InterfaceVpcEndpointAwsService,_e=JSII_RTTI_SYMBOL_1,InterfaceVpcEndpointAwsService[_e]={fqn:"aws-cdk-lib.aws_ec2.InterfaceVpcEndpointAwsService",version:"2.52.1"},InterfaceVpcEndpointAwsService.SAGEMAKER_STUDIO=new InterfaceVpcEndpointAwsService("studio","aws.sagemaker"),InterfaceVpcEndpointAwsService.SAGEMAKER_NOTEBOOK=new InterfaceVpcEndpointAwsService("notebook","aws.sagemaker"),InterfaceVpcEndpointAwsService.ACCESS_ANALYZER=new InterfaceVpcEndpointAwsService("access-analyzer"),InterfaceVpcEndpointAwsService.ACCOUNT_MANAGEMENT=new InterfaceVpcEndpointAwsService("account"),InterfaceVpcEndpointAwsService.APP_MESH=new InterfaceVpcEndpointAwsService("appmesh-envoy-management"),InterfaceVpcEndpointAwsService.APP_RUNNER=new InterfaceVpcEndpointAwsService("apprunner"),InterfaceVpcEndpointAwsService.APPLICATION_MIGRATION_SERVICE=new InterfaceVpcEndpointAwsService("mgn"),InterfaceVpcEndpointAwsService.ATHENA=new InterfaceVpcEndpointAwsService("athena"),InterfaceVpcEndpointAwsService.AUDIT_MANAGER=new InterfaceVpcEndpointAwsService("auditmanager"),InterfaceVpcEndpointAwsService.APPLICATION_AUTOSCALING=new InterfaceVpcEndpointAwsService("application-autoscaling"),InterfaceVpcEndpointAwsService.AUTOSCALING=new InterfaceVpcEndpointAwsService("autoscaling"),InterfaceVpcEndpointAwsService.AUTOSCALING_PLANS=new InterfaceVpcEndpointAwsService("autoscaling-plans"),InterfaceVpcEndpointAwsService.BATCH=new InterfaceVpcEndpointAwsService("batch"),InterfaceVpcEndpointAwsService.BILLING_CONDUCTOR=new InterfaceVpcEndpointAwsService("billingconductor"),InterfaceVpcEndpointAwsService.BRAKET=new InterfaceVpcEndpointAwsService("braket"),InterfaceVpcEndpointAwsService.PRIVATE_CERTIFICATE_AUTHORITY=new InterfaceVpcEndpointAwsService("acm-pca"),InterfaceVpcEndpointAwsService.CLOUD_DIRECTORY=new InterfaceVpcEndpointAwsService("clouddirectory"),InterfaceVpcEndpointAwsService.CLOUDFORMATION=new InterfaceVpcEndpointAwsService("cloudformation"),InterfaceVpcEndpointAwsService.CLOUDHSM=new InterfaceVpcEndpointAwsService("cloudhsmv2"),InterfaceVpcEndpointAwsService.CLOUDTRAIL=new InterfaceVpcEndpointAwsService("cloudtrail"),InterfaceVpcEndpointAwsService.CODEARTIFACT_API=new InterfaceVpcEndpointAwsService("codeartifact.api"),InterfaceVpcEndpointAwsService.CODEARTIFACT_REPOSITORIES=new InterfaceVpcEndpointAwsService("codeartifact.repositories"),InterfaceVpcEndpointAwsService.CODEBUILD=new InterfaceVpcEndpointAwsService("codebuild"),InterfaceVpcEndpointAwsService.CODEBUILD_FIPS=new InterfaceVpcEndpointAwsService("codebuild-fips"),InterfaceVpcEndpointAwsService.CODECOMMIT=new InterfaceVpcEndpointAwsService("codecommit"),InterfaceVpcEndpointAwsService.CODECOMMIT_FIPS=new InterfaceVpcEndpointAwsService("codecommit-fips"),InterfaceVpcEndpointAwsService.CODEGURU_PROFILER=new InterfaceVpcEndpointAwsService("codeguru-profiler"),InterfaceVpcEndpointAwsService.CODEGURU_REVIEWER=new InterfaceVpcEndpointAwsService("codeguru-reviewer"),InterfaceVpcEndpointAwsService.CODEPIPELINE=new InterfaceVpcEndpointAwsService("codepipeline"),InterfaceVpcEndpointAwsService.CODESTAR_CONNECTIONS=new InterfaceVpcEndpointAwsService("codestar-connections.api"),InterfaceVpcEndpointAwsService.COMPREHEND=new InterfaceVpcEndpointAwsService("comprehend"),InterfaceVpcEndpointAwsService.COMPREHEND_MEDICAL=new InterfaceVpcEndpointAwsService("comprehendmedical"),InterfaceVpcEndpointAwsService.CONFIG=new InterfaceVpcEndpointAwsService("config"),InterfaceVpcEndpointAwsService.DATA_EXCHANGE=new InterfaceVpcEndpointAwsService("dataexchange"),InterfaceVpcEndpointAwsService.DATASYNC=new InterfaceVpcEndpointAwsService("datasync"),InterfaceVpcEndpointAwsService.DEVOPS_GURU=new InterfaceVpcEndpointAwsService("devops-guru"),InterfaceVpcEndpointAwsService.EBS_DIRECT=new InterfaceVpcEndpointAwsService("ebs"),InterfaceVpcEndpointAwsService.EC2=new InterfaceVpcEndpointAwsService("ec2"),InterfaceVpcEndpointAwsService.EC2_MESSAGES=new InterfaceVpcEndpointAwsService("ec2messages"),InterfaceVpcEndpointAwsService.IMAGE_BUILDER=new InterfaceVpcEndpointAwsService("imagebuilder"),InterfaceVpcEndpointAwsService.ECR=new InterfaceVpcEndpointAwsService("ecr.api"),InterfaceVpcEndpointAwsService.ECR_DOCKER=new InterfaceVpcEndpointAwsService("ecr.dkr"),InterfaceVpcEndpointAwsService.ECS=new InterfaceVpcEndpointAwsService("ecs"),InterfaceVpcEndpointAwsService.ECS_AGENT=new InterfaceVpcEndpointAwsService("ecs-agent"),InterfaceVpcEndpointAwsService.ECS_TELEMETRY=new InterfaceVpcEndpointAwsService("ecs-telemetry"),InterfaceVpcEndpointAwsService.ELASTIC_FILESYSTEM=new InterfaceVpcEndpointAwsService("elasticfilesystem"),InterfaceVpcEndpointAwsService.ELASTIC_FILESYSTEM_FIPS=new InterfaceVpcEndpointAwsService("elasticfilesystem-fips"),InterfaceVpcEndpointAwsService.ELASTIC_INFERENCE_RUNTIME=new InterfaceVpcEndpointAwsService("elastic-inference.runtime"),InterfaceVpcEndpointAwsService.ELASTIC_LOAD_BALANCING=new InterfaceVpcEndpointAwsService("elasticloadbalancing"),InterfaceVpcEndpointAwsService.ELASTICACHE=new InterfaceVpcEndpointAwsService("elasticache"),InterfaceVpcEndpointAwsService.EMR=new InterfaceVpcEndpointAwsService("elasticmapreduce"),InterfaceVpcEndpointAwsService.EMR_EKS=new InterfaceVpcEndpointAwsService("emr-containers"),InterfaceVpcEndpointAwsService.EMR_SERVERLESS=new InterfaceVpcEndpointAwsService(".emr-serverless"),InterfaceVpcEndpointAwsService.CLOUDWATCH_EVENTS=new InterfaceVpcEndpointAwsService("events"),InterfaceVpcEndpointAwsService.APIGATEWAY=new InterfaceVpcEndpointAwsService("execute-api"),InterfaceVpcEndpointAwsService.FAULT_INJECTION_SIMULATOR=new InterfaceVpcEndpointAwsService("fis"),InterfaceVpcEndpointAwsService.FRAUD_DETECTOR=new InterfaceVpcEndpointAwsService("frauddetector"),InterfaceVpcEndpointAwsService.CODECOMMIT_GIT=new InterfaceVpcEndpointAwsService("git-codecommit"),InterfaceVpcEndpointAwsService.CODECOMMIT_GIT_FIPS=new InterfaceVpcEndpointAwsService("git-codecommit-fips"),InterfaceVpcEndpointAwsService.GLUE=new InterfaceVpcEndpointAwsService("glue"),InterfaceVpcEndpointAwsService.GLUE_DATABREW=new InterfaceVpcEndpointAwsService("databrew"),InterfaceVpcEndpointAwsService.GRAFANA=new InterfaceVpcEndpointAwsService("grafana"),InterfaceVpcEndpointAwsService.GROUNDSTATION=new InterfaceVpcEndpointAwsService("groundstation"),InterfaceVpcEndpointAwsService.HEALTHLAKE=new InterfaceVpcEndpointAwsService("healthlake"),InterfaceVpcEndpointAwsService.IAM_IDENTITY_CENTER=new InterfaceVpcEndpointAwsService("identitystore"),InterfaceVpcEndpointAwsService.IAM_ROLES_ANYWHERE=new InterfaceVpcEndpointAwsService("rolesanywhere"),InterfaceVpcEndpointAwsService.INSPECTOR=new InterfaceVpcEndpointAwsService("inspector2"),InterfaceVpcEndpointAwsService.IOT_CORE=new InterfaceVpcEndpointAwsService("iot.data"),InterfaceVpcEndpointAwsService.IOT_GREENGRASS=new InterfaceVpcEndpointAwsService("greengrass"),InterfaceVpcEndpointAwsService.KEYSPACES=new InterfaceVpcEndpointAwsService("cassandra","",9142),InterfaceVpcEndpointAwsService.KINESIS_STREAMS=new InterfaceVpcEndpointAwsService("kinesis-streams"),InterfaceVpcEndpointAwsService.KINESIS_FIREHOSE=new InterfaceVpcEndpointAwsService("kinesis-firehose"),InterfaceVpcEndpointAwsService.KMS=new InterfaceVpcEndpointAwsService("kms"),InterfaceVpcEndpointAwsService.CLOUDWATCH_LOGS=new InterfaceVpcEndpointAwsService("logs"),InterfaceVpcEndpointAwsService.CLOUDWATCH=new InterfaceVpcEndpointAwsService("monitoring"),InterfaceVpcEndpointAwsService.RDS=new InterfaceVpcEndpointAwsService("rds"),InterfaceVpcEndpointAwsService.ROBOMAKER=new InterfaceVpcEndpointAwsService("robomaker"),InterfaceVpcEndpointAwsService.RDS_DATA=new InterfaceVpcEndpointAwsService("rds-data"),InterfaceVpcEndpointAwsService.S3=new InterfaceVpcEndpointAwsService("s3"),InterfaceVpcEndpointAwsService.S3_OUTPOSTS=new InterfaceVpcEndpointAwsService("s3-outposts"),InterfaceVpcEndpointAwsService.SAGEMAKER_API=new InterfaceVpcEndpointAwsService("sagemaker.api"),InterfaceVpcEndpointAwsService.SAGEMAKER_RUNTIME=new InterfaceVpcEndpointAwsService("sagemaker.runtime"),InterfaceVpcEndpointAwsService.SAGEMAKER_RUNTIME_FIPS=new InterfaceVpcEndpointAwsService("sagemaker.runtime-fips"),InterfaceVpcEndpointAwsService.SECRETS_MANAGER=new InterfaceVpcEndpointAwsService("secretsmanager"),InterfaceVpcEndpointAwsService.SERVICE_CATALOG=new InterfaceVpcEndpointAwsService("servicecatalog"),InterfaceVpcEndpointAwsService.SES=new InterfaceVpcEndpointAwsService("email-smtp"),InterfaceVpcEndpointAwsService.SNS=new InterfaceVpcEndpointAwsService("sns"),InterfaceVpcEndpointAwsService.SQS=new InterfaceVpcEndpointAwsService("sqs"),InterfaceVpcEndpointAwsService.SSM=new InterfaceVpcEndpointAwsService("ssm"),InterfaceVpcEndpointAwsService.SSM_MESSAGES=new InterfaceVpcEndpointAwsService("ssmmessages"),InterfaceVpcEndpointAwsService.STS=new InterfaceVpcEndpointAwsService("sts"),InterfaceVpcEndpointAwsService.SNOW_DEVICE_MANAGEMENT=new InterfaceVpcEndpointAwsService("snow-device-management"),InterfaceVpcEndpointAwsService.TEXTRACT=new InterfaceVpcEndpointAwsService("textract"),InterfaceVpcEndpointAwsService.TEXTRACT_FIPS=new InterfaceVpcEndpointAwsService("textract-fips"),InterfaceVpcEndpointAwsService.TRANSFER=new InterfaceVpcEndpointAwsService("transfer.server"),InterfaceVpcEndpointAwsService.STORAGE_GATEWAY=new InterfaceVpcEndpointAwsService("storagegateway"),InterfaceVpcEndpointAwsService.REKOGNITION=new InterfaceVpcEndpointAwsService("rekognition"),InterfaceVpcEndpointAwsService.REKOGNITION_FIPS=new InterfaceVpcEndpointAwsService("rekognition-fips"),InterfaceVpcEndpointAwsService.STEP_FUNCTIONS=new InterfaceVpcEndpointAwsService("states"),InterfaceVpcEndpointAwsService.LAMBDA=new InterfaceVpcEndpointAwsService("lambda"),InterfaceVpcEndpointAwsService.TRANSCRIBE=new InterfaceVpcEndpointAwsService("transcribe"),InterfaceVpcEndpointAwsService.WORKSPACES=new InterfaceVpcEndpointAwsService("workspaces"),InterfaceVpcEndpointAwsService.XRAY=new InterfaceVpcEndpointAwsService("xray"),InterfaceVpcEndpointAwsService.SECURITYHUB=new InterfaceVpcEndpointAwsService("securityhub"),InterfaceVpcEndpointAwsService.EMAIL_SMTP=new InterfaceVpcEndpointAwsService("email-smtp");class InterfaceVpcEndpoint extends VpcEndpoint{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_InterfaceVpcEndpointProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,InterfaceVpcEndpoint),error}const securityGroups=props.securityGroups||[new security_group_1.SecurityGroup(this,"SecurityGroup",{vpc:props.vpc})];this.securityGroupId=securityGroups[0].securityGroupId,this.connections=new connections_1.Connections({defaultPort:port_1.Port.tcp(props.service.port),securityGroups}),props.open!==!1&&this.connections.allowDefaultPortFrom(peer_1.Peer.ipv4(props.vpc.vpcCidrBlock));const subnetIds=this.endpointSubnets(props),endpoint=new ec2_generated_1.CfnVPCEndpoint(this,"Resource",{privateDnsEnabled:props.privateDnsEnabled??props.service.privateDnsDefault??!0,policyDocument:core_1.Lazy.any({produce:()=>this.policyDocument}),securityGroupIds:securityGroups.map(s=>s.securityGroupId),serviceName:props.service.name,vpcEndpointType:VpcEndpointType.INTERFACE,subnetIds,vpcId:props.vpc.vpcId});this.vpcEndpointId=endpoint.ref,this.vpcEndpointCreationTimestamp=endpoint.attrCreationTimestamp,this.vpcEndpointDnsEntries=endpoint.attrDnsEntries,this.vpcEndpointNetworkInterfaceIds=endpoint.attrNetworkInterfaceIds}static fromInterfaceVpcEndpointAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_InterfaceVpcEndpointAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromInterfaceVpcEndpointAttributes),error}const securityGroups=attrs.securityGroupId?[security_group_1.SecurityGroup.fromSecurityGroupId(scope,"SecurityGroup",attrs.securityGroupId)]:attrs.securityGroups;class Import extends core_1.Resource{constructor(){super(...arguments),this.vpcEndpointId=attrs.vpcEndpointId,this.connections=new connections_1.Connections({defaultPort:port_1.Port.tcp(attrs.port),securityGroups})}}return new Import(scope,id)}endpointSubnets(props){const lookupSupportedAzs=props.lookupSupportedAzs??!1,subnetSelection=props.vpc.selectSubnets({...props.subnets,onePerAz:!0}),subnets=subnetSelection.subnets;if(!subnetSelection.isPendingLookup&&subnetSelection.subnets.length==0)throw new Error("Cannot create a VPC Endpoint with no subnets");if(!lookupSupportedAzs)return subnetSelection.subnetIds;const lookupServiceName=core_1.Token.isUnresolved(props.service.name)&&props.service instanceof InterfaceVpcEndpointAwsService?core_1.Stack.of(this).resolve(props.service.name):props.service.name;this.validateCanLookupSupportedAzs(subnets,lookupServiceName);const availableAZs=this.availableAvailabilityZones(lookupServiceName),filteredSubnets=subnets.filter(s=>availableAZs.includes(s.availabilityZone));if(filteredSubnets.length==0)throw new Error(`lookupSupportedAzs returned ${availableAZs} but subnets have AZs ${subnets.map(s=>s.availabilityZone)}`);return filteredSubnets.map(s=>s.subnetId)}validateCanLookupSupportedAzs(subnets,serviceName){const agnosticAcct=core_1.Token.isUnresolved(this.env.account),agnosticRegion=core_1.Token.isUnresolved(this.env.region),agnosticService=core_1.Token.isUnresolved(serviceName),agnosticSubnets=subnets.some(s=>core_1.Token.isUnresolved(s.availabilityZone)),agnosticSubnetList=core_1.Token.isUnresolved(subnets.map(s=>s.availabilityZone));if(agnosticAcct||agnosticRegion)throw new Error("Cannot look up VPC endpoint availability zones if account/region are not specified");if(agnosticService)throw new Error(`Cannot lookup AZs for a service name with a Token: ${serviceName}`);if(agnosticSubnets||agnosticSubnetList){const agnostic=subnets.filter(s=>core_1.Token.isUnresolved(s.availabilityZone));throw new Error(`lookupSupportedAzs cannot filter on subnets with Token AZs: ${agnostic}`)}}availableAvailabilityZones(serviceName){const availableAZs=core_1.ContextProvider.getValue(this,{provider:cxschema.ContextProvider.ENDPOINT_SERVICE_AVAILABILITY_ZONE_PROVIDER,dummyValue:this.stack.availabilityZones,props:{serviceName}}).value;if(!Array.isArray(availableAZs))throw new Error(`Discovered AZs for endpoint service ${serviceName} must be an array`);return availableAZs}}exports.InterfaceVpcEndpoint=InterfaceVpcEndpoint,_f=JSII_RTTI_SYMBOL_1,InterfaceVpcEndpoint[_f]={fqn:"aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint",version:"2.52.1"};
2
2
  //# sourceMappingURL=vpc-endpoint.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c,_d;Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlowLog=exports.LogFormat=exports.FlowLogMaxAggregationInterval=exports.FlowLogDestination=exports.FlowLogFileFormat=exports.FlowLogResourceType=exports.FlowLogDestinationType=exports.FlowLogTrafficType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),iam=require("../../aws-iam"),logs=require("../../aws-logs"),s3=require("../../aws-s3"),core_1=require("../../core"),cx_api_1=require("../../cx-api"),ec2_generated_1=require("./ec2.generated");var FlowLogTrafficType;(function(FlowLogTrafficType2){FlowLogTrafficType2.ACCEPT="ACCEPT",FlowLogTrafficType2.ALL="ALL",FlowLogTrafficType2.REJECT="REJECT"})(FlowLogTrafficType=exports.FlowLogTrafficType||(exports.FlowLogTrafficType={}));var FlowLogDestinationType;(function(FlowLogDestinationType2){FlowLogDestinationType2.CLOUD_WATCH_LOGS="cloud-watch-logs",FlowLogDestinationType2.S3="s3"})(FlowLogDestinationType=exports.FlowLogDestinationType||(exports.FlowLogDestinationType={}));class FlowLogResourceType{static fromSubnet(subnet){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_ISubnet(subnet)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSubnet),error}return{resourceType:"Subnet",resourceId:subnet.subnetId}}static fromVpc(vpc){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_IVpc(vpc)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVpc),error}return{resourceType:"VPC",resourceId:vpc.vpcId}}static fromNetworkInterfaceId(id){return{resourceType:"NetworkInterface",resourceId:id}}}exports.FlowLogResourceType=FlowLogResourceType,_a=JSII_RTTI_SYMBOL_1,FlowLogResourceType[_a]={fqn:"aws-cdk-lib.aws_ec2.FlowLogResourceType",version:"2.52.0"};var FlowLogFileFormat;(function(FlowLogFileFormat2){FlowLogFileFormat2.PLAIN_TEXT="plain-text",FlowLogFileFormat2.PARQUET="parquet"})(FlowLogFileFormat=exports.FlowLogFileFormat||(exports.FlowLogFileFormat={}));class FlowLogDestination{static toCloudWatchLogs(logGroup,iamRole){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_logs_ILogGroup(logGroup),jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IRole(iamRole)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.toCloudWatchLogs),error}return new CloudWatchLogsDestination({logDestinationType:FlowLogDestinationType.CLOUD_WATCH_LOGS,logGroup,iamRole})}static toS3(bucket,keyPrefix,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_s3_IBucket(bucket),jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_S3DestinationOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.toS3),error}return new S3Destination({logDestinationType:FlowLogDestinationType.S3,s3Bucket:bucket,keyPrefix,destinationOptions:options})}}exports.FlowLogDestination=FlowLogDestination,_b=JSII_RTTI_SYMBOL_1,FlowLogDestination[_b]={fqn:"aws-cdk-lib.aws_ec2.FlowLogDestination",version:"2.52.0"};class S3Destination extends FlowLogDestination{constructor(props){super(),this.props=props}bind(scope,_flowLog){let s3Bucket;if(this.props.s3Bucket===void 0?s3Bucket=new s3.Bucket(scope,"Bucket",{encryption:s3.BucketEncryption.UNENCRYPTED,removalPolicy:core_1.RemovalPolicy.RETAIN}):s3Bucket=this.props.s3Bucket,core_1.FeatureFlags.of(scope).isEnabled(cx_api_1.S3_CREATE_DEFAULT_LOGGING_POLICY)){const stack=core_1.Stack.of(scope);let keyPrefix=this.props.keyPrefix??"";keyPrefix&&!keyPrefix.endsWith("/")&&(keyPrefix=keyPrefix+"/");const prefix=this.props.destinationOptions?.hiveCompatiblePartitions?s3Bucket.arnForObjects(`${keyPrefix}AWSLogs/aws-account-id=${stack.account}/*`):s3Bucket.arnForObjects(`${keyPrefix}AWSLogs/${stack.account}/*`);s3Bucket.addToResourcePolicy(new iam.PolicyStatement({effect:iam.Effect.ALLOW,principals:[new iam.ServicePrincipal("delivery.logs.amazonaws.com")],resources:[prefix],actions:["s3:PutObject"],conditions:{StringEquals:{"s3:x-amz-acl":"bucket-owner-full-control","aws:SourceAccount":stack.account},ArnLike:{"aws:SourceArn":stack.formatArn({service:"logs",resource:"*"})}}})),s3Bucket.addToResourcePolicy(new iam.PolicyStatement({effect:iam.Effect.ALLOW,principals:[new iam.ServicePrincipal("delivery.logs.amazonaws.com")],resources:[s3Bucket.bucketArn],actions:["s3:GetBucketAcl","s3:ListBucket"],conditions:{StringEquals:{"aws:SourceAccount":stack.account},ArnLike:{"aws:SourceArn":stack.formatArn({service:"logs",resource:"*"})}}}))}return{logDestinationType:FlowLogDestinationType.S3,s3Bucket,keyPrefix:this.props.keyPrefix,destinationOptions:this.props.destinationOptions?.fileFormat||this.props.destinationOptions?.perHourPartition||this.props.destinationOptions?.hiveCompatiblePartitions?{fileFormat:this.props.destinationOptions.fileFormat??FlowLogFileFormat.PLAIN_TEXT,perHourPartition:this.props.destinationOptions.perHourPartition??!1,hiveCompatiblePartitions:this.props.destinationOptions.hiveCompatiblePartitions??!1}:void 0}}}class CloudWatchLogsDestination extends FlowLogDestination{constructor(props){super(),this.props=props}bind(scope,_flowLog){let iamRole,logGroup;return this.props.iamRole===void 0?iamRole=new iam.Role(scope,"IAMRole",{roleName:core_1.PhysicalName.GENERATE_IF_NEEDED,assumedBy:new iam.ServicePrincipal("vpc-flow-logs.amazonaws.com")}):iamRole=this.props.iamRole,this.props.logGroup===void 0?logGroup=new logs.LogGroup(scope,"LogGroup"):logGroup=this.props.logGroup,iamRole.addToPrincipalPolicy(new iam.PolicyStatement({actions:["logs:CreateLogStream","logs:PutLogEvents","logs:DescribeLogStreams"],effect:iam.Effect.ALLOW,resources:[logGroup.logGroupArn]})),iamRole.addToPrincipalPolicy(new iam.PolicyStatement({actions:["iam:PassRole"],effect:iam.Effect.ALLOW,resources:[iamRole.roleArn]})),{logDestinationType:FlowLogDestinationType.CLOUD_WATCH_LOGS,logGroup,iamRole}}}var FlowLogMaxAggregationInterval;(function(FlowLogMaxAggregationInterval2){FlowLogMaxAggregationInterval2[FlowLogMaxAggregationInterval2.ONE_MINUTE=60]="ONE_MINUTE",FlowLogMaxAggregationInterval2[FlowLogMaxAggregationInterval2.TEN_MINUTES=600]="TEN_MINUTES"})(FlowLogMaxAggregationInterval=exports.FlowLogMaxAggregationInterval||(exports.FlowLogMaxAggregationInterval={}));class LogFormat{constructor(value){this.value=value}static custom(formatString){return new LogFormat(formatString)}static field(field){return new LogFormat(`\${${field}}`)}}exports.LogFormat=LogFormat,_c=JSII_RTTI_SYMBOL_1,LogFormat[_c]={fqn:"aws-cdk-lib.aws_ec2.LogFormat",version:"2.52.0"},LogFormat.VERSION=new LogFormat("${version}"),LogFormat.ACCOUNT_ID=new LogFormat("${account-id}"),LogFormat.INTERFACE_ID=new LogFormat("${interface-id"),LogFormat.SRC_ADDR=new LogFormat("${srcaddr}"),LogFormat.DST_ADDR=new LogFormat("${dstaddr}"),LogFormat.SRC_PORT=new LogFormat("${srcport}"),LogFormat.DST_PORT=new LogFormat("${dstport}"),LogFormat.PROTOCOL=new LogFormat("${protocol}"),LogFormat.PACKETS=new LogFormat("${packets}"),LogFormat.BYTES=new LogFormat("${bytes}"),LogFormat.PKT_SRC_ADDR=new LogFormat("${pkt-srcaddr}"),LogFormat.PKT_DST_ADDR=new LogFormat("${pkt-dstaddr}"),LogFormat.REGION=new LogFormat("${region}"),LogFormat.AZ_ID=new LogFormat("${az-id}"),LogFormat.SUBLOCATION_TYPE=new LogFormat("${sublocation-type}"),LogFormat.SUBLOCATION_ID=new LogFormat("${sublocation-id}"),LogFormat.PKT_SRC_AWS_SERVICE=new LogFormat("${pkt-src-aws-service}"),LogFormat.PKT_DST_AWS_SERVICE=new LogFormat("${pkt-dst-aws-service}"),LogFormat.FLOW_DIRECTION=new LogFormat("${flow-direction}"),LogFormat.TRAFFIC_PATH=new LogFormat("${traffic-path}"),LogFormat.ALL_DEFAULT_FIELDS=new LogFormat("${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status}");class FlowLogBase extends core_1.Resource{}class FlowLog extends FlowLogBase{constructor(scope,id,props){super(scope,id,{physicalName:props.flowLogName});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_FlowLogProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,FlowLog),error}const destinationConfig=(props.destination||FlowLogDestination.toCloudWatchLogs()).bind(this,this);this.logGroup=destinationConfig.logGroup,this.bucket=destinationConfig.s3Bucket,this.iamRole=destinationConfig.iamRole,this.keyPrefix=destinationConfig.keyPrefix;let logDestination;this.bucket&&(logDestination=this.keyPrefix?this.bucket.arnForObjects(this.keyPrefix):this.bucket.bucketArn);let customLogFormat;props.logFormat&&(customLogFormat=props.logFormat.map(elm=>elm.value).join(" "));const flowLog=new ec2_generated_1.CfnFlowLog(this,"FlowLog",{destinationOptions:destinationConfig.destinationOptions,deliverLogsPermissionArn:this.iamRole?this.iamRole.roleArn:void 0,logDestinationType:destinationConfig.logDestinationType,logGroupName:this.logGroup?this.logGroup.logGroupName:void 0,maxAggregationInterval:props.maxAggregationInterval,resourceId:props.resourceType.resourceId,resourceType:props.resourceType.resourceType,trafficType:props.trafficType?props.trafficType:FlowLogTrafficType.ALL,logFormat:customLogFormat,logDestination});this.flowLogId=flowLog.ref,this.node.defaultChild=flowLog}static fromFlowLogId(scope,id,flowLogId){class Import extends FlowLogBase{constructor(){super(...arguments),this.flowLogId=flowLogId}}return new Import(scope,id)}}exports.FlowLog=FlowLog,_d=JSII_RTTI_SYMBOL_1,FlowLog[_d]={fqn:"aws-cdk-lib.aws_ec2.FlowLog",version:"2.52.0"};
1
+ "use strict";var _a,_b,_c,_d;Object.defineProperty(exports,"__esModule",{value:!0}),exports.FlowLog=exports.LogFormat=exports.FlowLogMaxAggregationInterval=exports.FlowLogDestination=exports.FlowLogFileFormat=exports.FlowLogResourceType=exports.FlowLogDestinationType=exports.FlowLogTrafficType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),iam=require("../../aws-iam"),logs=require("../../aws-logs"),s3=require("../../aws-s3"),core_1=require("../../core"),cx_api_1=require("../../cx-api"),ec2_generated_1=require("./ec2.generated");var FlowLogTrafficType;(function(FlowLogTrafficType2){FlowLogTrafficType2.ACCEPT="ACCEPT",FlowLogTrafficType2.ALL="ALL",FlowLogTrafficType2.REJECT="REJECT"})(FlowLogTrafficType=exports.FlowLogTrafficType||(exports.FlowLogTrafficType={}));var FlowLogDestinationType;(function(FlowLogDestinationType2){FlowLogDestinationType2.CLOUD_WATCH_LOGS="cloud-watch-logs",FlowLogDestinationType2.S3="s3"})(FlowLogDestinationType=exports.FlowLogDestinationType||(exports.FlowLogDestinationType={}));class FlowLogResourceType{static fromSubnet(subnet){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_ISubnet(subnet)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSubnet),error}return{resourceType:"Subnet",resourceId:subnet.subnetId}}static fromVpc(vpc){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_IVpc(vpc)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVpc),error}return{resourceType:"VPC",resourceId:vpc.vpcId}}static fromNetworkInterfaceId(id){return{resourceType:"NetworkInterface",resourceId:id}}}exports.FlowLogResourceType=FlowLogResourceType,_a=JSII_RTTI_SYMBOL_1,FlowLogResourceType[_a]={fqn:"aws-cdk-lib.aws_ec2.FlowLogResourceType",version:"2.52.1"};var FlowLogFileFormat;(function(FlowLogFileFormat2){FlowLogFileFormat2.PLAIN_TEXT="plain-text",FlowLogFileFormat2.PARQUET="parquet"})(FlowLogFileFormat=exports.FlowLogFileFormat||(exports.FlowLogFileFormat={}));class FlowLogDestination{static toCloudWatchLogs(logGroup,iamRole){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_logs_ILogGroup(logGroup),jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IRole(iamRole)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.toCloudWatchLogs),error}return new CloudWatchLogsDestination({logDestinationType:FlowLogDestinationType.CLOUD_WATCH_LOGS,logGroup,iamRole})}static toS3(bucket,keyPrefix,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_s3_IBucket(bucket),jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_S3DestinationOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.toS3),error}return new S3Destination({logDestinationType:FlowLogDestinationType.S3,s3Bucket:bucket,keyPrefix,destinationOptions:options})}}exports.FlowLogDestination=FlowLogDestination,_b=JSII_RTTI_SYMBOL_1,FlowLogDestination[_b]={fqn:"aws-cdk-lib.aws_ec2.FlowLogDestination",version:"2.52.1"};class S3Destination extends FlowLogDestination{constructor(props){super(),this.props=props}bind(scope,_flowLog){let s3Bucket;if(this.props.s3Bucket===void 0?s3Bucket=new s3.Bucket(scope,"Bucket",{encryption:s3.BucketEncryption.UNENCRYPTED,removalPolicy:core_1.RemovalPolicy.RETAIN}):s3Bucket=this.props.s3Bucket,core_1.FeatureFlags.of(scope).isEnabled(cx_api_1.S3_CREATE_DEFAULT_LOGGING_POLICY)){const stack=core_1.Stack.of(scope);let keyPrefix=this.props.keyPrefix??"";keyPrefix&&!keyPrefix.endsWith("/")&&(keyPrefix=keyPrefix+"/");const prefix=this.props.destinationOptions?.hiveCompatiblePartitions?s3Bucket.arnForObjects(`${keyPrefix}AWSLogs/aws-account-id=${stack.account}/*`):s3Bucket.arnForObjects(`${keyPrefix}AWSLogs/${stack.account}/*`);s3Bucket.addToResourcePolicy(new iam.PolicyStatement({effect:iam.Effect.ALLOW,principals:[new iam.ServicePrincipal("delivery.logs.amazonaws.com")],resources:[prefix],actions:["s3:PutObject"],conditions:{StringEquals:{"s3:x-amz-acl":"bucket-owner-full-control","aws:SourceAccount":stack.account},ArnLike:{"aws:SourceArn":stack.formatArn({service:"logs",resource:"*"})}}})),s3Bucket.addToResourcePolicy(new iam.PolicyStatement({effect:iam.Effect.ALLOW,principals:[new iam.ServicePrincipal("delivery.logs.amazonaws.com")],resources:[s3Bucket.bucketArn],actions:["s3:GetBucketAcl","s3:ListBucket"],conditions:{StringEquals:{"aws:SourceAccount":stack.account},ArnLike:{"aws:SourceArn":stack.formatArn({service:"logs",resource:"*"})}}}))}return{logDestinationType:FlowLogDestinationType.S3,s3Bucket,keyPrefix:this.props.keyPrefix,destinationOptions:this.props.destinationOptions?.fileFormat||this.props.destinationOptions?.perHourPartition||this.props.destinationOptions?.hiveCompatiblePartitions?{fileFormat:this.props.destinationOptions.fileFormat??FlowLogFileFormat.PLAIN_TEXT,perHourPartition:this.props.destinationOptions.perHourPartition??!1,hiveCompatiblePartitions:this.props.destinationOptions.hiveCompatiblePartitions??!1}:void 0}}}class CloudWatchLogsDestination extends FlowLogDestination{constructor(props){super(),this.props=props}bind(scope,_flowLog){let iamRole,logGroup;return this.props.iamRole===void 0?iamRole=new iam.Role(scope,"IAMRole",{roleName:core_1.PhysicalName.GENERATE_IF_NEEDED,assumedBy:new iam.ServicePrincipal("vpc-flow-logs.amazonaws.com")}):iamRole=this.props.iamRole,this.props.logGroup===void 0?logGroup=new logs.LogGroup(scope,"LogGroup"):logGroup=this.props.logGroup,iamRole.addToPrincipalPolicy(new iam.PolicyStatement({actions:["logs:CreateLogStream","logs:PutLogEvents","logs:DescribeLogStreams"],effect:iam.Effect.ALLOW,resources:[logGroup.logGroupArn]})),iamRole.addToPrincipalPolicy(new iam.PolicyStatement({actions:["iam:PassRole"],effect:iam.Effect.ALLOW,resources:[iamRole.roleArn]})),{logDestinationType:FlowLogDestinationType.CLOUD_WATCH_LOGS,logGroup,iamRole}}}var FlowLogMaxAggregationInterval;(function(FlowLogMaxAggregationInterval2){FlowLogMaxAggregationInterval2[FlowLogMaxAggregationInterval2.ONE_MINUTE=60]="ONE_MINUTE",FlowLogMaxAggregationInterval2[FlowLogMaxAggregationInterval2.TEN_MINUTES=600]="TEN_MINUTES"})(FlowLogMaxAggregationInterval=exports.FlowLogMaxAggregationInterval||(exports.FlowLogMaxAggregationInterval={}));class LogFormat{constructor(value){this.value=value}static custom(formatString){return new LogFormat(formatString)}static field(field){return new LogFormat(`\${${field}}`)}}exports.LogFormat=LogFormat,_c=JSII_RTTI_SYMBOL_1,LogFormat[_c]={fqn:"aws-cdk-lib.aws_ec2.LogFormat",version:"2.52.1"},LogFormat.VERSION=new LogFormat("${version}"),LogFormat.ACCOUNT_ID=new LogFormat("${account-id}"),LogFormat.INTERFACE_ID=new LogFormat("${interface-id"),LogFormat.SRC_ADDR=new LogFormat("${srcaddr}"),LogFormat.DST_ADDR=new LogFormat("${dstaddr}"),LogFormat.SRC_PORT=new LogFormat("${srcport}"),LogFormat.DST_PORT=new LogFormat("${dstport}"),LogFormat.PROTOCOL=new LogFormat("${protocol}"),LogFormat.PACKETS=new LogFormat("${packets}"),LogFormat.BYTES=new LogFormat("${bytes}"),LogFormat.PKT_SRC_ADDR=new LogFormat("${pkt-srcaddr}"),LogFormat.PKT_DST_ADDR=new LogFormat("${pkt-dstaddr}"),LogFormat.REGION=new LogFormat("${region}"),LogFormat.AZ_ID=new LogFormat("${az-id}"),LogFormat.SUBLOCATION_TYPE=new LogFormat("${sublocation-type}"),LogFormat.SUBLOCATION_ID=new LogFormat("${sublocation-id}"),LogFormat.PKT_SRC_AWS_SERVICE=new LogFormat("${pkt-src-aws-service}"),LogFormat.PKT_DST_AWS_SERVICE=new LogFormat("${pkt-dst-aws-service}"),LogFormat.FLOW_DIRECTION=new LogFormat("${flow-direction}"),LogFormat.TRAFFIC_PATH=new LogFormat("${traffic-path}"),LogFormat.ALL_DEFAULT_FIELDS=new LogFormat("${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status}");class FlowLogBase extends core_1.Resource{}class FlowLog extends FlowLogBase{constructor(scope,id,props){super(scope,id,{physicalName:props.flowLogName});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_FlowLogProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,FlowLog),error}const destinationConfig=(props.destination||FlowLogDestination.toCloudWatchLogs()).bind(this,this);this.logGroup=destinationConfig.logGroup,this.bucket=destinationConfig.s3Bucket,this.iamRole=destinationConfig.iamRole,this.keyPrefix=destinationConfig.keyPrefix;let logDestination;this.bucket&&(logDestination=this.keyPrefix?this.bucket.arnForObjects(this.keyPrefix):this.bucket.bucketArn);let customLogFormat;props.logFormat&&(customLogFormat=props.logFormat.map(elm=>elm.value).join(" "));const flowLog=new ec2_generated_1.CfnFlowLog(this,"FlowLog",{destinationOptions:destinationConfig.destinationOptions,deliverLogsPermissionArn:this.iamRole?this.iamRole.roleArn:void 0,logDestinationType:destinationConfig.logDestinationType,logGroupName:this.logGroup?this.logGroup.logGroupName:void 0,maxAggregationInterval:props.maxAggregationInterval,resourceId:props.resourceType.resourceId,resourceType:props.resourceType.resourceType,trafficType:props.trafficType?props.trafficType:FlowLogTrafficType.ALL,logFormat:customLogFormat,logDestination});this.flowLogId=flowLog.ref,this.node.defaultChild=flowLog}static fromFlowLogId(scope,id,flowLogId){class Import extends FlowLogBase{constructor(){super(...arguments),this.flowLogId=flowLogId}}return new Import(scope,id)}}exports.FlowLog=FlowLog,_d=JSII_RTTI_SYMBOL_1,FlowLog[_d]={fqn:"aws-cdk-lib.aws_ec2.FlowLog",version:"2.52.1"};
2
2
  //# sourceMappingURL=vpc-flow-logs.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c,_d;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PrivateSubnet=exports.PublicSubnet=exports.RouterType=exports.Subnet=exports.Vpc=exports.DefaultInstanceTenancy=exports.SubnetType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cxschema=require("../../cloud-assembly-schema"),core_1=require("../../core"),cxapi=require("../../cx-api"),constructs_1=require("constructs"),client_vpn_endpoint_1=require("./client-vpn-endpoint"),ec2_generated_1=require("./ec2.generated"),ip_addresses_1=require("./ip-addresses"),nat_1=require("./nat"),network_acl_1=require("./network-acl"),subnet_1=require("./subnet"),util_1=require("./util"),vpc_endpoint_1=require("./vpc-endpoint"),vpc_flow_logs_1=require("./vpc-flow-logs"),vpn_1=require("./vpn"),VPC_SUBNET_SYMBOL=Symbol.for("@aws-cdk/aws-ec2.VpcSubnet"),FAKE_AZ_NAME="fake-az";var SubnetType;(function(SubnetType2){SubnetType2.PRIVATE_ISOLATED="Isolated",SubnetType2.ISOLATED="Deprecated_Isolated",SubnetType2.PRIVATE_WITH_EGRESS="Private",SubnetType2.PRIVATE_WITH_NAT="Deprecated_Private_NAT",SubnetType2.PRIVATE="Deprecated_Private",SubnetType2.PUBLIC="Public"})(SubnetType=exports.SubnetType||(exports.SubnetType={}));class VpcBase extends core_1.Resource{constructor(){super(...arguments),this.natDependencies=new Array,this.incompleteSubnetDefinition=!1}selectSubnets(selection={}){const subnets=this.selectSubnetObjects(selection),pubs=new Set(this.publicSubnets);return{subnetIds:subnets.map(s=>s.subnetId),get availabilityZones(){return subnets.map(s=>s.availabilityZone)},internetConnectivityEstablished:tap(new CompositeDependable,d=>subnets.forEach(s=>d.add(s.internetConnectivityEstablished))),subnets,hasPublic:subnets.some(s=>pubs.has(s)),isPendingLookup:this.incompleteSubnetDefinition}}enableVpnGateway(options){if(this.vpnGatewayId)throw new Error("The VPN Gateway has already been enabled.");const vpnGateway=new vpn_1.VpnGateway(this,"VpnGateway",{amazonSideAsn:options.amazonSideAsn,type:vpn_1.VpnConnectionType.IPSEC_1});this._vpnGatewayId=vpnGateway.gatewayId;const attachment=new ec2_generated_1.CfnVPCGatewayAttachment(this,"VPCVPNGW",{vpcId:this.vpcId,vpnGatewayId:this._vpnGatewayId}),vpnRoutePropagation=options.vpnRoutePropagation??[{}],routeTableIds=util_1.allRouteTableIds(util_1.flatten(vpnRoutePropagation.map(s=>this.selectSubnets(s).subnets)));routeTableIds.length===0&&core_1.Annotations.of(this).addError(`enableVpnGateway: no subnets matching selection: '${JSON.stringify(vpnRoutePropagation)}'. Select other subnets to add routes to.`),new ec2_generated_1.CfnVPNGatewayRoutePropagation(this,"RoutePropagation",{routeTableIds,vpnGatewayId:this._vpnGatewayId}).node.addDependency(attachment)}addVpnConnection(id,options){return new vpn_1.VpnConnection(this,id,{vpc:this,...options})}addClientVpnEndpoint(id,options){return new client_vpn_endpoint_1.ClientVpnEndpoint(this,id,{...options,vpc:this})}addInterfaceEndpoint(id,options){return new vpc_endpoint_1.InterfaceVpcEndpoint(this,id,{vpc:this,...options})}addGatewayEndpoint(id,options){return new vpc_endpoint_1.GatewayVpcEndpoint(this,id,{vpc:this,...options})}addFlowLog(id,options){return new vpc_flow_logs_1.FlowLog(this,id,{resourceType:vpc_flow_logs_1.FlowLogResourceType.fromVpc(this),...options})}get vpnGatewayId(){return this._vpnGatewayId}selectSubnetObjects(selection={}){if(selection=this.reifySelectionDefaults(selection),selection.subnets!==void 0)return selection.subnets;let subnets;if(selection.subnetGroupName!==void 0)subnets=this.selectSubnetObjectsByName(selection.subnetGroupName);else{const type=selection.subnetType||SubnetType.PRIVATE_WITH_EGRESS;subnets=this.selectSubnetObjectsByType(type)}return subnets=this.applySubnetFilters(subnets,selection.subnetFilters??[]),subnets}applySubnetFilters(subnets,filters){let filtered=subnets;for(const filter of filters)filtered=filter.selectSubnets(filtered);return filtered}selectSubnetObjectsByName(groupName){const allSubnets=[...this.publicSubnets,...this.privateSubnets,...this.isolatedSubnets],subnets=allSubnets.filter(s=>util_1.subnetGroupNameFromConstructId(s)===groupName);if(subnets.length===0&&!this.incompleteSubnetDefinition){const names=Array.from(new Set(allSubnets.map(util_1.subnetGroupNameFromConstructId)));throw new Error(`There are no subnet groups with name '${groupName}' in this VPC. Available names: ${names}`)}return subnets}selectSubnetObjectsByType(subnetType){const allSubnets={[SubnetType.PRIVATE_ISOLATED]:this.isolatedSubnets,[SubnetType.ISOLATED]:this.isolatedSubnets,[SubnetType.PRIVATE_WITH_NAT]:this.privateSubnets,[SubnetType.PRIVATE_WITH_EGRESS]:this.privateSubnets,[SubnetType.PRIVATE]:this.privateSubnets,[SubnetType.PUBLIC]:this.publicSubnets},subnets=allSubnets[subnetType];if(subnets.length===0&&!this.incompleteSubnetDefinition){const availableTypes=Object.entries(allSubnets).filter(([_,subs])=>subs.length>0).map(([typeName,_])=>typeName);throw new Error(`There are no '${subnetType}' subnet groups in this VPC. Available types: ${availableTypes}`)}return subnets}reifySelectionDefaults(placement){if(placement.subnetName!==void 0){if(placement.subnetGroupName!==void 0)throw new Error("Please use only 'subnetGroupName' ('subnetName' is deprecated and has the same behavior)");core_1.Annotations.of(this).addWarning("Usage of 'subnetName' in SubnetSelection is deprecated, use 'subnetGroupName' instead"),placement={...placement,subnetGroupName:placement.subnetName}}const providedSelections=["subnets","subnetType","subnetGroupName"].filter(key=>placement[key]!==void 0);if(providedSelections.length>1)throw new Error(`Only one of '${providedSelections}' can be supplied to subnet selection.`);if(placement.subnetType===void 0&&placement.subnetGroupName===void 0&&placement.subnets===void 0){let subnetType=this.privateSubnets.length?SubnetType.PRIVATE_WITH_EGRESS:this.isolatedSubnets.length?SubnetType.PRIVATE_ISOLATED:SubnetType.PUBLIC;placement={...placement,subnetType}}let subnetFilters=placement.subnetFilters??[];placement.availabilityZones!==void 0&&subnetFilters.push(subnet_1.SubnetFilter.availabilityZones(placement.availabilityZones)),placement.onePerAz&&subnetFilters.push(subnet_1.SubnetFilter.onePerAz()),placement={...placement,subnetFilters,availabilityZones:void 0,onePerAz:void 0};const{availabilityZones,onePerAz,...rest}=placement;return rest}}const NAME_TAG="Name";var DefaultInstanceTenancy;(function(DefaultInstanceTenancy2){DefaultInstanceTenancy2.DEFAULT="default",DefaultInstanceTenancy2.DEDICATED="dedicated"})(DefaultInstanceTenancy=exports.DefaultInstanceTenancy||(exports.DefaultInstanceTenancy={}));class Vpc extends VpcBase{constructor(scope,id,props={}){super(scope,id),this.publicSubnets=[],this.privateSubnets=[],this.isolatedSubnets=[],this.subnetConfiguration=[],this._internetConnectivityEstablished=new constructs_1.DependencyGroup;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Vpc),error}const stack=core_1.Stack.of(this);if(props.enableDnsHostnames&&!props.enableDnsSupport)throw new Error("To use DNS Hostnames, DNS Support must be enabled, however, it was explicitly disabled.");if(props.availabilityZones&&props.maxAzs)throw new Error("Vpc supports 'availabilityZones' or 'maxAzs', but not both.");const cidrBlock=ifUndefined(props.cidr,Vpc.DEFAULT_CIDR_RANGE);if(core_1.Token.isUnresolved(cidrBlock))throw new Error("'cidr' property must be a concrete CIDR string, got a Token (we need to parse it for automatic subdivision)");if(props.ipAddresses&&props.cidr)throw new Error("supply at most one of ipAddresses or cidr");this.ipAddresses=props.ipAddresses??ip_addresses_1.IpAddresses.cidr(cidrBlock),this.dnsHostnamesEnabled=props.enableDnsHostnames==null?!0:props.enableDnsHostnames,this.dnsSupportEnabled=props.enableDnsSupport==null?!0:props.enableDnsSupport;const instanceTenancy=props.defaultInstanceTenancy||"default";this.internetConnectivityEstablished=this._internetConnectivityEstablished;const vpcIpAddressOptions=this.ipAddresses.allocateVpcCidr();if(this.resource=new ec2_generated_1.CfnVPC(this,"Resource",{cidrBlock:vpcIpAddressOptions.cidrBlock,ipv4IpamPoolId:vpcIpAddressOptions.ipv4IpamPoolId,ipv4NetmaskLength:vpcIpAddressOptions.ipv4NetmaskLength,enableDnsHostnames:this.dnsHostnamesEnabled,enableDnsSupport:this.dnsSupportEnabled,instanceTenancy}),this.vpcDefaultNetworkAcl=this.resource.attrDefaultNetworkAcl,this.vpcCidrBlockAssociations=this.resource.attrCidrBlockAssociations,this.vpcCidrBlock=this.resource.attrCidrBlock,this.vpcDefaultSecurityGroup=this.resource.attrDefaultSecurityGroup,this.vpcIpv6CidrBlocks=this.resource.attrIpv6CidrBlocks,core_1.Tags.of(this).add(NAME_TAG,props.vpcName||this.node.path),props.availabilityZones){const resolvedStackAzs=stack.availabilityZones.filter(az=>!core_1.Token.isUnresolved(az));if(!(resolvedStackAzs.length===0||props.availabilityZones.every(az=>core_1.Token.isUnresolved(az)||resolvedStackAzs.includes(az))))throw new Error(`Given VPC 'availabilityZones' ${props.availabilityZones} must be a subset of the stack's availability zones ${stack.availabilityZones}`);this.availabilityZones=props.availabilityZones}else{const maxAZs=props.maxAzs??3;this.availabilityZones=stack.availabilityZones.slice(0,maxAZs)}for(let i=0;props.reservedAzs&&i<props.reservedAzs;i++)this.availabilityZones.push(FAKE_AZ_NAME);this.vpcId=this.resource.ref,this.vpcArn=core_1.Arn.format({service:"ec2",resource:"vpc",resourceName:this.vpcId},stack);const defaultSubnet=props.natGateways===0?Vpc.DEFAULT_SUBNETS_NO_NAT:Vpc.DEFAULT_SUBNETS;this.subnetConfiguration=ifUndefined(props.subnetConfiguration,defaultSubnet);const natGatewayPlacement=props.natGatewaySubnets||{subnetType:SubnetType.PUBLIC},natGatewayCount=determineNatGatewayCount(props.natGateways,this.subnetConfiguration,this.availabilityZones.length);if(this.createSubnets(),this.subnetConfiguration.filter(subnet=>subnet.subnetType!==SubnetType.PRIVATE_ISOLATED&&subnet.subnetType!==SubnetType.ISOLATED).length>0){const igw=new ec2_generated_1.CfnInternetGateway(this,"IGW",{});this.internetGatewayId=igw.ref,this._internetConnectivityEstablished.add(igw);const att=new ec2_generated_1.CfnVPCGatewayAttachment(this,"VPCGW",{internetGatewayId:igw.ref,vpcId:this.resource.ref});if(this.publicSubnets.forEach(publicSubnet=>{publicSubnet.addDefaultInternetRoute(igw.ref,att)}),natGatewayCount>0){const provider=props.natGatewayProvider||nat_1.NatProvider.gateway();this.createNatGateways(provider,natGatewayCount,natGatewayPlacement)}}if(props.vpnGateway&&this.publicSubnets.length===0&&this.privateSubnets.length===0&&this.isolatedSubnets.length===0)throw new Error("Can not enable the VPN gateway while the VPC has no subnets at all");if((props.vpnConnections||props.vpnGatewayAsn)&&props.vpnGateway===!1)throw new Error("Cannot specify `vpnConnections` or `vpnGatewayAsn` when `vpnGateway` is set to false.");if(props.vpnGateway||props.vpnConnections||props.vpnGatewayAsn){this.enableVpnGateway({amazonSideAsn:props.vpnGatewayAsn,type:vpn_1.VpnConnectionType.IPSEC_1,vpnRoutePropagation:props.vpnRoutePropagation});const vpnConnections=props.vpnConnections||{};for(const[connectionId,connection]of Object.entries(vpnConnections))this.addVpnConnection(connectionId,connection)}if(props.gatewayEndpoints){const gatewayEndpoints=props.gatewayEndpoints||{};for(const[endpointId,endpoint]of Object.entries(gatewayEndpoints))this.addGatewayEndpoint(endpointId,endpoint)}if(props.flowLogs){const flowLogs=props.flowLogs||{};for(const[flowLogId,flowLog]of Object.entries(flowLogs))this.addFlowLog(flowLogId,flowLog)}}static fromVpcAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVpcAttributes),error}return new ImportedVpc(scope,id,attrs,!1)}static fromLookup(scope,id,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcLookupOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromLookup),error}if(core_1.Token.isUnresolved(options.vpcId)||core_1.Token.isUnresolved(options.vpcName)||Object.values(options.tags||{}).some(core_1.Token.isUnresolved)||Object.keys(options.tags||{}).some(core_1.Token.isUnresolved))throw new Error("All arguments to Vpc.fromLookup() must be concrete (no Tokens)");const filter=makeTagFilter(options.tags);options.vpcId&&(filter["vpc-id"]=options.vpcId),options.vpcName&&(filter["tag:Name"]=options.vpcName),options.isDefault!==void 0&&(filter.isDefault=options.isDefault?"true":"false");const overrides={};options.region&&(overrides.region=options.region);const attributes=core_1.ContextProvider.getValue(scope,{provider:cxschema.ContextProvider.VPC_PROVIDER,props:{...overrides,filter,returnAsymmetricSubnets:!0,subnetGroupNameTag:options.subnetGroupNameTag},dummyValue:void 0}).value;return new LookedUpVpc(scope,id,attributes??DUMMY_VPC_PROPS,attributes===void 0);function makeTagFilter(tags){const result={};for(const[name,value]of Object.entries(tags||{}))result[`tag:${name}`]=value;return result}}addS3Endpoint(id,subnets){return new vpc_endpoint_1.GatewayVpcEndpoint(this,id,{service:vpc_endpoint_1.GatewayVpcEndpointAwsService.S3,vpc:this,subnets})}addDynamoDbEndpoint(id,subnets){return new vpc_endpoint_1.GatewayVpcEndpoint(this,id,{service:vpc_endpoint_1.GatewayVpcEndpointAwsService.DYNAMODB,vpc:this,subnets})}createNatGateways(provider,natCount,placement){const natSubnets=this.selectSubnetObjects(placement);for(const sub of natSubnets)if(this.publicSubnets.indexOf(sub)===-1)throw new Error(`natGatewayPlacement ${placement} contains non public subnet ${sub}`);provider.configureNat({vpc:this,natSubnets:natSubnets.slice(0,natCount),privateSubnets:this.privateSubnets})}createSubnets(){const requestedSubnets=[];this.subnetConfiguration.forEach(configuration=>this.availabilityZones.forEach((az,index)=>{requestedSubnets.push({availabilityZone:az,subnetConstructId:util_1.subnetId(configuration.name,index),configuration})}));const{allocatedSubnets}=this.ipAddresses.allocateSubnetsCidr({vpcCidr:this.vpcCidrBlock,requestedSubnets});if(allocatedSubnets.length!=requestedSubnets.length)throw new Error("Incomplete Subnet Allocation; response array dose not equal input array");this.createSubnetResources(requestedSubnets,allocatedSubnets)}createSubnetResources(requestedSubnets,allocatedSubnets){allocatedSubnets.forEach((allocated,i)=>{const{configuration:subnetConfig,subnetConstructId,availabilityZone}=requestedSubnets[i];if(subnetConfig.reserved===!0||availabilityZone===FAKE_AZ_NAME)return;let mapPublicIpOnLaunch=!1;if(subnetConfig.subnetType!==SubnetType.PUBLIC&&subnetConfig.mapPublicIpOnLaunch!==void 0)throw new Error(`${subnetConfig.subnetType} subnet cannot include mapPublicIpOnLaunch parameter`);subnetConfig.subnetType===SubnetType.PUBLIC&&(mapPublicIpOnLaunch=subnetConfig.mapPublicIpOnLaunch!==void 0?subnetConfig.mapPublicIpOnLaunch:!0);const subnetProps={availabilityZone,vpcId:this.vpcId,cidrBlock:allocated.cidr,mapPublicIpOnLaunch};let subnet;switch(subnetConfig.subnetType){case SubnetType.PUBLIC:const publicSubnet=new PublicSubnet(this,subnetConstructId,subnetProps);this.publicSubnets.push(publicSubnet),subnet=publicSubnet;break;case SubnetType.PRIVATE_WITH_EGRESS:case SubnetType.PRIVATE_WITH_NAT:case SubnetType.PRIVATE:const privateSubnet=new PrivateSubnet(this,subnetConstructId,subnetProps);this.privateSubnets.push(privateSubnet),subnet=privateSubnet;break;case SubnetType.PRIVATE_ISOLATED:case SubnetType.ISOLATED:const isolatedSubnet=new PrivateSubnet(this,subnetConstructId,subnetProps);this.isolatedSubnets.push(isolatedSubnet),subnet=isolatedSubnet;break;default:throw new Error(`Unrecognized subnet type: ${subnetConfig.subnetType}`)}const includeResourceTypes=[ec2_generated_1.CfnSubnet.CFN_RESOURCE_TYPE_NAME];core_1.Tags.of(subnet).add(SUBNETNAME_TAG,subnetConfig.name,{includeResourceTypes}),core_1.Tags.of(subnet).add(SUBNETTYPE_TAG,subnetTypeTagValue(subnetConfig.subnetType),{includeResourceTypes})})}}exports.Vpc=Vpc,_a=JSII_RTTI_SYMBOL_1,Vpc[_a]={fqn:"aws-cdk-lib.aws_ec2.Vpc",version:"2.52.0"},Vpc.DEFAULT_CIDR_RANGE="10.0.0.0/16",Vpc.DEFAULT_SUBNETS=[{subnetType:SubnetType.PUBLIC,name:util_1.defaultSubnetName(SubnetType.PUBLIC)},{subnetType:SubnetType.PRIVATE_WITH_EGRESS,name:util_1.defaultSubnetName(SubnetType.PRIVATE_WITH_EGRESS)}],Vpc.DEFAULT_SUBNETS_NO_NAT=[{subnetType:SubnetType.PUBLIC,name:util_1.defaultSubnetName(SubnetType.PUBLIC)},{subnetType:SubnetType.PRIVATE_ISOLATED,name:util_1.defaultSubnetName(SubnetType.PRIVATE_ISOLATED)}];const SUBNETTYPE_TAG="aws-cdk:subnet-type",SUBNETNAME_TAG="aws-cdk:subnet-name";function subnetTypeTagValue(type){switch(type){case SubnetType.PUBLIC:return"Public";case SubnetType.PRIVATE_WITH_EGRESS:case SubnetType.PRIVATE_WITH_NAT:case SubnetType.PRIVATE:return"Private";case SubnetType.PRIVATE_ISOLATED:case SubnetType.ISOLATED:return"Isolated"}}class Subnet extends core_1.Resource{constructor(scope,id,props){super(scope,id),this.dependencyElements=[],this._internetConnectivityEstablished=new constructs_1.DependencyGroup;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_SubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Subnet),error}Object.defineProperty(this,VPC_SUBNET_SYMBOL,{value:!0}),core_1.Tags.of(this).add(NAME_TAG,this.node.path),this.availabilityZone=props.availabilityZone,this.ipv4CidrBlock=props.cidrBlock;const subnet=new ec2_generated_1.CfnSubnet(this,"Subnet",{vpcId:props.vpcId,cidrBlock:props.cidrBlock,availabilityZone:props.availabilityZone,mapPublicIpOnLaunch:props.mapPublicIpOnLaunch});this.subnetId=subnet.ref,this.subnetVpcId=subnet.attrVpcId,this.subnetAvailabilityZone=subnet.attrAvailabilityZone,this.subnetIpv6CidrBlocks=subnet.attrIpv6CidrBlocks,this.subnetOutpostArn=subnet.attrOutpostArn,this._networkAcl=network_acl_1.NetworkAcl.fromNetworkAclId(this,"Acl",subnet.attrNetworkAclAssociationId),this.subnetNetworkAclAssociationId=core_1.Lazy.string({produce:()=>this._networkAcl.networkAclId}),this.node.defaultChild=subnet;const table=new ec2_generated_1.CfnRouteTable(this,"RouteTable",{vpcId:props.vpcId});this.routeTable={routeTableId:table.ref};const routeAssoc=new ec2_generated_1.CfnSubnetRouteTableAssociation(this,"RouteTableAssociation",{subnetId:this.subnetId,routeTableId:table.ref});this._internetConnectivityEstablished.add(routeAssoc),this.internetConnectivityEstablished=this._internetConnectivityEstablished}static isVpcSubnet(x){return VPC_SUBNET_SYMBOL in x}static fromSubnetAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_SubnetAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSubnetAttributes),error}return new ImportedSubnet(scope,id,attrs)}static fromSubnetId(scope,id,subnetId){return this.fromSubnetAttributes(scope,id,{subnetId})}addDefaultInternetRoute(gatewayId,gatewayAttachment){const route=new ec2_generated_1.CfnRoute(this,"DefaultRoute",{routeTableId:this.routeTable.routeTableId,destinationCidrBlock:"0.0.0.0/0",gatewayId});route.node.addDependency(gatewayAttachment),this._internetConnectivityEstablished.add(route)}get networkAcl(){return this._networkAcl}addDefaultNatRoute(natGatewayId){this.addRoute("DefaultRoute",{routerType:RouterType.NAT_GATEWAY,routerId:natGatewayId,enablesInternetConnectivity:!0})}addRoute(id,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_AddRouteOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addRoute),error}if(options.destinationCidrBlock&&options.destinationIpv6CidrBlock)throw new Error("Cannot specify both 'destinationCidrBlock' and 'destinationIpv6CidrBlock'");const route=new ec2_generated_1.CfnRoute(this,id,{routeTableId:this.routeTable.routeTableId,destinationCidrBlock:options.destinationCidrBlock||(options.destinationIpv6CidrBlock===void 0?"0.0.0.0/0":void 0),destinationIpv6CidrBlock:options.destinationIpv6CidrBlock,[routerTypeToPropName(options.routerType)]:options.routerId});options.enablesInternetConnectivity&&this._internetConnectivityEstablished.add(route)}associateNetworkAcl(id,networkAcl){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_INetworkAcl(networkAcl)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.associateNetworkAcl),error}this._networkAcl=networkAcl;const scope=networkAcl instanceof constructs_1.Construct?networkAcl:this,other=networkAcl instanceof constructs_1.Construct?this:networkAcl;new network_acl_1.SubnetNetworkAclAssociation(scope,id+core_1.Names.nodeUniqueId(other.node),{networkAcl,subnet:this})}}exports.Subnet=Subnet,_b=JSII_RTTI_SYMBOL_1,Subnet[_b]={fqn:"aws-cdk-lib.aws_ec2.Subnet",version:"2.52.0"};var RouterType;(function(RouterType2){RouterType2.CARRIER_GATEWAY="CarrierGateway",RouterType2.EGRESS_ONLY_INTERNET_GATEWAY="EgressOnlyInternetGateway",RouterType2.GATEWAY="Gateway",RouterType2.INSTANCE="Instance",RouterType2.LOCAL_GATEWAY="LocalGateway",RouterType2.NAT_GATEWAY="NatGateway",RouterType2.NETWORK_INTERFACE="NetworkInterface",RouterType2.TRANSIT_GATEWAY="TransitGateway",RouterType2.VPC_PEERING_CONNECTION="VpcPeeringConnection",RouterType2.VPC_ENDPOINT="VpcEndpoint"})(RouterType=exports.RouterType||(exports.RouterType={}));function routerTypeToPropName(routerType){return{[RouterType.CARRIER_GATEWAY]:"carrierGatewayId",[RouterType.EGRESS_ONLY_INTERNET_GATEWAY]:"egressOnlyInternetGatewayId",[RouterType.GATEWAY]:"gatewayId",[RouterType.INSTANCE]:"instanceId",[RouterType.LOCAL_GATEWAY]:"localGatewayId",[RouterType.NAT_GATEWAY]:"natGatewayId",[RouterType.NETWORK_INTERFACE]:"networkInterfaceId",[RouterType.TRANSIT_GATEWAY]:"transitGatewayId",[RouterType.VPC_PEERING_CONNECTION]:"vpcPeeringConnectionId",[RouterType.VPC_ENDPOINT]:"vpcEndpointId"}[routerType]}class PublicSubnet extends Subnet{constructor(scope,id,props){super(scope,id,props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PublicSubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,PublicSubnet),error}}static fromPublicSubnetAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PublicSubnetAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromPublicSubnetAttributes),error}return new ImportedSubnet(scope,id,attrs)}addNatGateway(eipAllocationId){const ngw=new ec2_generated_1.CfnNatGateway(this,"NATGateway",{subnetId:this.subnetId,allocationId:eipAllocationId??new ec2_generated_1.CfnEIP(this,"EIP",{domain:"vpc"}).attrAllocationId});return ngw.node.addDependency(this.internetConnectivityEstablished),ngw}}exports.PublicSubnet=PublicSubnet,_c=JSII_RTTI_SYMBOL_1,PublicSubnet[_c]={fqn:"aws-cdk-lib.aws_ec2.PublicSubnet",version:"2.52.0"};class PrivateSubnet extends Subnet{constructor(scope,id,props){super(scope,id,props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PrivateSubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,PrivateSubnet),error}}static fromPrivateSubnetAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PrivateSubnetAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromPrivateSubnetAttributes),error}return new ImportedSubnet(scope,id,attrs)}}exports.PrivateSubnet=PrivateSubnet,_d=JSII_RTTI_SYMBOL_1,PrivateSubnet[_d]={fqn:"aws-cdk-lib.aws_ec2.PrivateSubnet",version:"2.52.0"};function ifUndefined(value,defaultValue){return value??defaultValue}class ImportedVpc extends VpcBase{constructor(scope,id,props,isIncomplete){super(scope,id,{region:props.region}),this.internetConnectivityEstablished=new constructs_1.DependencyGroup,this.vpcId=props.vpcId,this.vpcArn=core_1.Arn.format({service:"ec2",resource:"vpc",resourceName:this.vpcId},core_1.Stack.of(this)),this.cidr=props.vpcCidrBlock,this.availabilityZones=props.availabilityZones,this._vpnGatewayId=props.vpnGatewayId,this.incompleteSubnetDefinition=isIncomplete;for(const k of Object.keys(props))Array.isArray(props[k])&&core_1.Token.isUnresolved(props[k])&&core_1.Annotations.of(this).addWarning(`fromVpcAttributes: '${k}' is a list token: the imported VPC will not work with constructs that require a list of subnets at synthesis time. Use 'Vpc.fromLookup()' or 'Fn.importListValue' instead.`);const pub=new util_1.ImportSubnetGroup(props.publicSubnetIds,props.publicSubnetNames,props.publicSubnetRouteTableIds,SubnetType.PUBLIC,this.availabilityZones,"publicSubnetIds","publicSubnetNames","publicSubnetRouteTableIds"),priv=new util_1.ImportSubnetGroup(props.privateSubnetIds,props.privateSubnetNames,props.privateSubnetRouteTableIds,SubnetType.PRIVATE_WITH_EGRESS,this.availabilityZones,"privateSubnetIds","privateSubnetNames","privateSubnetRouteTableIds"),iso=new util_1.ImportSubnetGroup(props.isolatedSubnetIds,props.isolatedSubnetNames,props.isolatedSubnetRouteTableIds,SubnetType.PRIVATE_ISOLATED,this.availabilityZones,"isolatedSubnetIds","isolatedSubnetNames","isolatedSubnetRouteTableIds");this.publicSubnets=pub.import(this),this.privateSubnets=priv.import(this),this.isolatedSubnets=iso.import(this)}get vpcCidrBlock(){if(this.cidr===void 0)throw new Error("Cannot perform this operation: 'vpcCidrBlock' was not supplied when creating this VPC");return this.cidr}}class LookedUpVpc extends VpcBase{constructor(scope,id,props,isIncomplete){super(scope,id,{region:props.region}),this.internetConnectivityEstablished=new constructs_1.DependencyGroup,this.vpcId=props.vpcId,this.vpcArn=core_1.Arn.format({service:"ec2",resource:"vpc",resourceName:this.vpcId},core_1.Stack.of(this)),this.cidr=props.vpcCidrBlock,this._vpnGatewayId=props.vpnGatewayId,this.incompleteSubnetDefinition=isIncomplete;const subnetGroups=props.subnetGroups||[],availabilityZones=Array.from(new Set(flatMap(subnetGroups,subnetGroup=>subnetGroup.subnets.map(subnet=>subnet.availabilityZone))));availabilityZones.sort((az1,az2)=>az1.localeCompare(az2)),this.availabilityZones=availabilityZones,this.publicSubnets=this.extractSubnetsOfType(subnetGroups,cxapi.VpcSubnetGroupType.PUBLIC),this.privateSubnets=this.extractSubnetsOfType(subnetGroups,cxapi.VpcSubnetGroupType.PRIVATE),this.isolatedSubnets=this.extractSubnetsOfType(subnetGroups,cxapi.VpcSubnetGroupType.ISOLATED)}get vpcCidrBlock(){if(this.cidr===void 0)throw new Error("Cannot perform this operation: 'vpcCidrBlock' was not found when looking up this VPC. Use a newer version of the CDK CLI and clear the old context value.");return this.cidr}extractSubnetsOfType(subnetGroups,subnetGroupType){return flatMap(subnetGroups.filter(subnetGroup=>subnetGroup.type===subnetGroupType),subnetGroup=>this.subnetGroupToSubnets(subnetGroup))}subnetGroupToSubnets(subnetGroup){const ret=new Array;for(let i=0;i<subnetGroup.subnets.length;i++){const vpcSubnet=subnetGroup.subnets[i];ret.push(Subnet.fromSubnetAttributes(this,`${subnetGroup.name}Subnet${i+1}`,{availabilityZone:vpcSubnet.availabilityZone,subnetId:vpcSubnet.subnetId,routeTableId:vpcSubnet.routeTableId,ipv4CidrBlock:vpcSubnet.cidr}))}return ret}}function flatMap(xs,fn){const ret=new Array;for(const x of xs)ret.push(...fn(x));return ret}class CompositeDependable{constructor(){this.dependables=new Array;const self=this;constructs_1.Dependable.implement(this,{get dependencyRoots(){const ret=new Array;for(const dep of self.dependables)ret.push(...constructs_1.Dependable.of(dep).dependencyRoots);return ret}})}add(dep){this.dependables.push(dep)}}function tap(x,fn){return fn(x),x}class ImportedSubnet extends core_1.Resource{constructor(scope,id,attrs){if(super(scope,id),this.internetConnectivityEstablished=new constructs_1.DependencyGroup,!attrs.routeTableId){const ref=core_1.Token.isUnresolved(attrs.subnetId)||core_1.Token.isUnresolved([attrs.subnetId])?`at '${constructs_1.Node.of(scope).path}/${id}'`:`'${attrs.subnetId}'`;core_1.Annotations.of(this).addWarning(`No routeTableId was provided to the subnet ${ref}. Attempting to read its .routeTable.routeTableId will return null/undefined. (More info: https://github.com/aws/aws-cdk/pull/3171)`)}this._ipv4CidrBlock=attrs.ipv4CidrBlock,this._availabilityZone=attrs.availabilityZone,this.subnetId=attrs.subnetId,this.routeTable={routeTableId:attrs.routeTableId}}get availabilityZone(){if(!this._availabilityZone)throw new Error("You cannot reference a Subnet's availability zone if it was not supplied. Add the availabilityZone when importing using Subnet.fromSubnetAttributes()");return this._availabilityZone}get ipv4CidrBlock(){if(!this._ipv4CidrBlock)throw new Error("You cannot reference an imported Subnet's IPv4 CIDR if it was not supplied. Add the ipv4CidrBlock when importing using Subnet.fromSubnetAttributes()");return this._ipv4CidrBlock}associateNetworkAcl(id,networkAcl){const scope=networkAcl instanceof constructs_1.Construct?networkAcl:this,other=networkAcl instanceof constructs_1.Construct?this:networkAcl;new network_acl_1.SubnetNetworkAclAssociation(scope,id+core_1.Names.nodeUniqueId(other.node),{networkAcl,subnet:this})}}function determineNatGatewayCount(requestedCount,subnetConfig,azCount){const hasPrivateSubnets=subnetConfig.some(c=>(c.subnetType===SubnetType.PRIVATE_WITH_EGRESS||c.subnetType===SubnetType.PRIVATE||c.subnetType===SubnetType.PRIVATE_WITH_NAT)&&!c.reserved),hasPublicSubnets=subnetConfig.some(c=>c.subnetType===SubnetType.PUBLIC),hasCustomEgress=subnetConfig.some(c=>c.subnetType===SubnetType.PRIVATE_WITH_EGRESS),count=requestedCount!==void 0?Math.min(requestedCount,azCount):hasPrivateSubnets?azCount:0;if(count===0&&hasPrivateSubnets&&!hasCustomEgress)throw new Error("If you do not want NAT gateways (natGateways=0), make sure you don't configure any PRIVATE(_WITH_NAT) subnets in 'subnetConfiguration' (make them PUBLIC or ISOLATED instead)");if(count>0&&!hasPublicSubnets)throw new Error(`If you configure PRIVATE subnets in 'subnetConfiguration', you must also configure PUBLIC subnets to put the NAT gateways into (got ${JSON.stringify(subnetConfig)}.`);return count}const DUMMY_VPC_PROPS={availabilityZones:[],vpcCidrBlock:"1.2.3.4/5",isolatedSubnetIds:void 0,isolatedSubnetNames:void 0,isolatedSubnetRouteTableIds:void 0,privateSubnetIds:void 0,privateSubnetNames:void 0,privateSubnetRouteTableIds:void 0,publicSubnetIds:void 0,publicSubnetNames:void 0,publicSubnetRouteTableIds:void 0,subnetGroups:[{name:"Public",type:cxapi.VpcSubnetGroupType.PUBLIC,subnets:[{availabilityZone:"dummy1a",subnetId:"s-12345",routeTableId:"rtb-12345s",cidr:"1.2.3.4/5"},{availabilityZone:"dummy1b",subnetId:"s-67890",routeTableId:"rtb-67890s",cidr:"1.2.3.4/5"}]},{name:"Private",type:cxapi.VpcSubnetGroupType.PRIVATE,subnets:[{availabilityZone:"dummy1a",subnetId:"p-12345",routeTableId:"rtb-12345p",cidr:"1.2.3.4/5"},{availabilityZone:"dummy1b",subnetId:"p-67890",routeTableId:"rtb-57890p",cidr:"1.2.3.4/5"}]},{name:"Isolated",type:cxapi.VpcSubnetGroupType.ISOLATED,subnets:[{availabilityZone:"dummy1a",subnetId:"p-12345",routeTableId:"rtb-12345p",cidr:"1.2.3.4/5"},{availabilityZone:"dummy1b",subnetId:"p-67890",routeTableId:"rtb-57890p",cidr:"1.2.3.4/5"}]}],vpcId:"vpc-12345"};
1
+ "use strict";var _a,_b,_c,_d;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PrivateSubnet=exports.PublicSubnet=exports.RouterType=exports.Subnet=exports.Vpc=exports.DefaultInstanceTenancy=exports.SubnetType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cxschema=require("../../cloud-assembly-schema"),core_1=require("../../core"),cxapi=require("../../cx-api"),constructs_1=require("constructs"),client_vpn_endpoint_1=require("./client-vpn-endpoint"),ec2_generated_1=require("./ec2.generated"),ip_addresses_1=require("./ip-addresses"),nat_1=require("./nat"),network_acl_1=require("./network-acl"),subnet_1=require("./subnet"),util_1=require("./util"),vpc_endpoint_1=require("./vpc-endpoint"),vpc_flow_logs_1=require("./vpc-flow-logs"),vpn_1=require("./vpn"),VPC_SUBNET_SYMBOL=Symbol.for("@aws-cdk/aws-ec2.VpcSubnet"),FAKE_AZ_NAME="fake-az";var SubnetType;(function(SubnetType2){SubnetType2.PRIVATE_ISOLATED="Isolated",SubnetType2.ISOLATED="Deprecated_Isolated",SubnetType2.PRIVATE_WITH_EGRESS="Private",SubnetType2.PRIVATE_WITH_NAT="Deprecated_Private_NAT",SubnetType2.PRIVATE="Deprecated_Private",SubnetType2.PUBLIC="Public"})(SubnetType=exports.SubnetType||(exports.SubnetType={}));class VpcBase extends core_1.Resource{constructor(){super(...arguments),this.natDependencies=new Array,this.incompleteSubnetDefinition=!1}selectSubnets(selection={}){const subnets=this.selectSubnetObjects(selection),pubs=new Set(this.publicSubnets);return{subnetIds:subnets.map(s=>s.subnetId),get availabilityZones(){return subnets.map(s=>s.availabilityZone)},internetConnectivityEstablished:tap(new CompositeDependable,d=>subnets.forEach(s=>d.add(s.internetConnectivityEstablished))),subnets,hasPublic:subnets.some(s=>pubs.has(s)),isPendingLookup:this.incompleteSubnetDefinition}}enableVpnGateway(options){if(this.vpnGatewayId)throw new Error("The VPN Gateway has already been enabled.");const vpnGateway=new vpn_1.VpnGateway(this,"VpnGateway",{amazonSideAsn:options.amazonSideAsn,type:vpn_1.VpnConnectionType.IPSEC_1});this._vpnGatewayId=vpnGateway.gatewayId;const attachment=new ec2_generated_1.CfnVPCGatewayAttachment(this,"VPCVPNGW",{vpcId:this.vpcId,vpnGatewayId:this._vpnGatewayId}),vpnRoutePropagation=options.vpnRoutePropagation??[{}],routeTableIds=util_1.allRouteTableIds(util_1.flatten(vpnRoutePropagation.map(s=>this.selectSubnets(s).subnets)));routeTableIds.length===0&&core_1.Annotations.of(this).addError(`enableVpnGateway: no subnets matching selection: '${JSON.stringify(vpnRoutePropagation)}'. Select other subnets to add routes to.`),new ec2_generated_1.CfnVPNGatewayRoutePropagation(this,"RoutePropagation",{routeTableIds,vpnGatewayId:this._vpnGatewayId}).node.addDependency(attachment)}addVpnConnection(id,options){return new vpn_1.VpnConnection(this,id,{vpc:this,...options})}addClientVpnEndpoint(id,options){return new client_vpn_endpoint_1.ClientVpnEndpoint(this,id,{...options,vpc:this})}addInterfaceEndpoint(id,options){return new vpc_endpoint_1.InterfaceVpcEndpoint(this,id,{vpc:this,...options})}addGatewayEndpoint(id,options){return new vpc_endpoint_1.GatewayVpcEndpoint(this,id,{vpc:this,...options})}addFlowLog(id,options){return new vpc_flow_logs_1.FlowLog(this,id,{resourceType:vpc_flow_logs_1.FlowLogResourceType.fromVpc(this),...options})}get vpnGatewayId(){return this._vpnGatewayId}selectSubnetObjects(selection={}){if(selection=this.reifySelectionDefaults(selection),selection.subnets!==void 0)return selection.subnets;let subnets;if(selection.subnetGroupName!==void 0)subnets=this.selectSubnetObjectsByName(selection.subnetGroupName);else{const type=selection.subnetType||SubnetType.PRIVATE_WITH_EGRESS;subnets=this.selectSubnetObjectsByType(type)}return subnets=this.applySubnetFilters(subnets,selection.subnetFilters??[]),subnets}applySubnetFilters(subnets,filters){let filtered=subnets;for(const filter of filters)filtered=filter.selectSubnets(filtered);return filtered}selectSubnetObjectsByName(groupName){const allSubnets=[...this.publicSubnets,...this.privateSubnets,...this.isolatedSubnets],subnets=allSubnets.filter(s=>util_1.subnetGroupNameFromConstructId(s)===groupName);if(subnets.length===0&&!this.incompleteSubnetDefinition){const names=Array.from(new Set(allSubnets.map(util_1.subnetGroupNameFromConstructId)));throw new Error(`There are no subnet groups with name '${groupName}' in this VPC. Available names: ${names}`)}return subnets}selectSubnetObjectsByType(subnetType){const allSubnets={[SubnetType.PRIVATE_ISOLATED]:this.isolatedSubnets,[SubnetType.ISOLATED]:this.isolatedSubnets,[SubnetType.PRIVATE_WITH_NAT]:this.privateSubnets,[SubnetType.PRIVATE_WITH_EGRESS]:this.privateSubnets,[SubnetType.PRIVATE]:this.privateSubnets,[SubnetType.PUBLIC]:this.publicSubnets},subnets=allSubnets[subnetType];if(subnets.length===0&&!this.incompleteSubnetDefinition){const availableTypes=Object.entries(allSubnets).filter(([_,subs])=>subs.length>0).map(([typeName,_])=>typeName);throw new Error(`There are no '${subnetType}' subnet groups in this VPC. Available types: ${availableTypes}`)}return subnets}reifySelectionDefaults(placement){if(placement.subnetName!==void 0){if(placement.subnetGroupName!==void 0)throw new Error("Please use only 'subnetGroupName' ('subnetName' is deprecated and has the same behavior)");core_1.Annotations.of(this).addWarning("Usage of 'subnetName' in SubnetSelection is deprecated, use 'subnetGroupName' instead"),placement={...placement,subnetGroupName:placement.subnetName}}const providedSelections=["subnets","subnetType","subnetGroupName"].filter(key=>placement[key]!==void 0);if(providedSelections.length>1)throw new Error(`Only one of '${providedSelections}' can be supplied to subnet selection.`);if(placement.subnetType===void 0&&placement.subnetGroupName===void 0&&placement.subnets===void 0){let subnetType=this.privateSubnets.length?SubnetType.PRIVATE_WITH_EGRESS:this.isolatedSubnets.length?SubnetType.PRIVATE_ISOLATED:SubnetType.PUBLIC;placement={...placement,subnetType}}let subnetFilters=placement.subnetFilters??[];placement.availabilityZones!==void 0&&subnetFilters.push(subnet_1.SubnetFilter.availabilityZones(placement.availabilityZones)),placement.onePerAz&&subnetFilters.push(subnet_1.SubnetFilter.onePerAz()),placement={...placement,subnetFilters,availabilityZones:void 0,onePerAz:void 0};const{availabilityZones,onePerAz,...rest}=placement;return rest}}const NAME_TAG="Name";var DefaultInstanceTenancy;(function(DefaultInstanceTenancy2){DefaultInstanceTenancy2.DEFAULT="default",DefaultInstanceTenancy2.DEDICATED="dedicated"})(DefaultInstanceTenancy=exports.DefaultInstanceTenancy||(exports.DefaultInstanceTenancy={}));class Vpc extends VpcBase{constructor(scope,id,props={}){super(scope,id),this.publicSubnets=[],this.privateSubnets=[],this.isolatedSubnets=[],this.subnetConfiguration=[],this._internetConnectivityEstablished=new constructs_1.DependencyGroup;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Vpc),error}const stack=core_1.Stack.of(this);if(props.enableDnsHostnames&&!props.enableDnsSupport)throw new Error("To use DNS Hostnames, DNS Support must be enabled, however, it was explicitly disabled.");if(props.availabilityZones&&props.maxAzs)throw new Error("Vpc supports 'availabilityZones' or 'maxAzs', but not both.");const cidrBlock=ifUndefined(props.cidr,Vpc.DEFAULT_CIDR_RANGE);if(core_1.Token.isUnresolved(cidrBlock))throw new Error("'cidr' property must be a concrete CIDR string, got a Token (we need to parse it for automatic subdivision)");if(props.ipAddresses&&props.cidr)throw new Error("supply at most one of ipAddresses or cidr");this.ipAddresses=props.ipAddresses??ip_addresses_1.IpAddresses.cidr(cidrBlock),this.dnsHostnamesEnabled=props.enableDnsHostnames==null?!0:props.enableDnsHostnames,this.dnsSupportEnabled=props.enableDnsSupport==null?!0:props.enableDnsSupport;const instanceTenancy=props.defaultInstanceTenancy||"default";this.internetConnectivityEstablished=this._internetConnectivityEstablished;const vpcIpAddressOptions=this.ipAddresses.allocateVpcCidr();if(this.resource=new ec2_generated_1.CfnVPC(this,"Resource",{cidrBlock:vpcIpAddressOptions.cidrBlock,ipv4IpamPoolId:vpcIpAddressOptions.ipv4IpamPoolId,ipv4NetmaskLength:vpcIpAddressOptions.ipv4NetmaskLength,enableDnsHostnames:this.dnsHostnamesEnabled,enableDnsSupport:this.dnsSupportEnabled,instanceTenancy}),this.vpcDefaultNetworkAcl=this.resource.attrDefaultNetworkAcl,this.vpcCidrBlockAssociations=this.resource.attrCidrBlockAssociations,this.vpcCidrBlock=this.resource.attrCidrBlock,this.vpcDefaultSecurityGroup=this.resource.attrDefaultSecurityGroup,this.vpcIpv6CidrBlocks=this.resource.attrIpv6CidrBlocks,core_1.Tags.of(this).add(NAME_TAG,props.vpcName||this.node.path),props.availabilityZones){const resolvedStackAzs=stack.availabilityZones.filter(az=>!core_1.Token.isUnresolved(az));if(!(resolvedStackAzs.length===0||props.availabilityZones.every(az=>core_1.Token.isUnresolved(az)||resolvedStackAzs.includes(az))))throw new Error(`Given VPC 'availabilityZones' ${props.availabilityZones} must be a subset of the stack's availability zones ${stack.availabilityZones}`);this.availabilityZones=props.availabilityZones}else{const maxAZs=props.maxAzs??3;this.availabilityZones=stack.availabilityZones.slice(0,maxAZs)}for(let i=0;props.reservedAzs&&i<props.reservedAzs;i++)this.availabilityZones.push(FAKE_AZ_NAME);this.vpcId=this.resource.ref,this.vpcArn=core_1.Arn.format({service:"ec2",resource:"vpc",resourceName:this.vpcId},stack);const defaultSubnet=props.natGateways===0?Vpc.DEFAULT_SUBNETS_NO_NAT:Vpc.DEFAULT_SUBNETS;this.subnetConfiguration=ifUndefined(props.subnetConfiguration,defaultSubnet);const natGatewayPlacement=props.natGatewaySubnets||{subnetType:SubnetType.PUBLIC},natGatewayCount=determineNatGatewayCount(props.natGateways,this.subnetConfiguration,this.availabilityZones.length);if(this.createSubnets(),this.subnetConfiguration.filter(subnet=>subnet.subnetType!==SubnetType.PRIVATE_ISOLATED&&subnet.subnetType!==SubnetType.ISOLATED).length>0){const igw=new ec2_generated_1.CfnInternetGateway(this,"IGW",{});this.internetGatewayId=igw.ref,this._internetConnectivityEstablished.add(igw);const att=new ec2_generated_1.CfnVPCGatewayAttachment(this,"VPCGW",{internetGatewayId:igw.ref,vpcId:this.resource.ref});if(this.publicSubnets.forEach(publicSubnet=>{publicSubnet.addDefaultInternetRoute(igw.ref,att)}),natGatewayCount>0){const provider=props.natGatewayProvider||nat_1.NatProvider.gateway();this.createNatGateways(provider,natGatewayCount,natGatewayPlacement)}}if(props.vpnGateway&&this.publicSubnets.length===0&&this.privateSubnets.length===0&&this.isolatedSubnets.length===0)throw new Error("Can not enable the VPN gateway while the VPC has no subnets at all");if((props.vpnConnections||props.vpnGatewayAsn)&&props.vpnGateway===!1)throw new Error("Cannot specify `vpnConnections` or `vpnGatewayAsn` when `vpnGateway` is set to false.");if(props.vpnGateway||props.vpnConnections||props.vpnGatewayAsn){this.enableVpnGateway({amazonSideAsn:props.vpnGatewayAsn,type:vpn_1.VpnConnectionType.IPSEC_1,vpnRoutePropagation:props.vpnRoutePropagation});const vpnConnections=props.vpnConnections||{};for(const[connectionId,connection]of Object.entries(vpnConnections))this.addVpnConnection(connectionId,connection)}if(props.gatewayEndpoints){const gatewayEndpoints=props.gatewayEndpoints||{};for(const[endpointId,endpoint]of Object.entries(gatewayEndpoints))this.addGatewayEndpoint(endpointId,endpoint)}if(props.flowLogs){const flowLogs=props.flowLogs||{};for(const[flowLogId,flowLog]of Object.entries(flowLogs))this.addFlowLog(flowLogId,flowLog)}}static fromVpcAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVpcAttributes),error}return new ImportedVpc(scope,id,attrs,!1)}static fromLookup(scope,id,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpcLookupOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromLookup),error}if(core_1.Token.isUnresolved(options.vpcId)||core_1.Token.isUnresolved(options.vpcName)||Object.values(options.tags||{}).some(core_1.Token.isUnresolved)||Object.keys(options.tags||{}).some(core_1.Token.isUnresolved))throw new Error("All arguments to Vpc.fromLookup() must be concrete (no Tokens)");const filter=makeTagFilter(options.tags);options.vpcId&&(filter["vpc-id"]=options.vpcId),options.vpcName&&(filter["tag:Name"]=options.vpcName),options.isDefault!==void 0&&(filter.isDefault=options.isDefault?"true":"false");const overrides={};options.region&&(overrides.region=options.region);const attributes=core_1.ContextProvider.getValue(scope,{provider:cxschema.ContextProvider.VPC_PROVIDER,props:{...overrides,filter,returnAsymmetricSubnets:!0,subnetGroupNameTag:options.subnetGroupNameTag},dummyValue:void 0}).value;return new LookedUpVpc(scope,id,attributes??DUMMY_VPC_PROPS,attributes===void 0);function makeTagFilter(tags){const result={};for(const[name,value]of Object.entries(tags||{}))result[`tag:${name}`]=value;return result}}addS3Endpoint(id,subnets){return new vpc_endpoint_1.GatewayVpcEndpoint(this,id,{service:vpc_endpoint_1.GatewayVpcEndpointAwsService.S3,vpc:this,subnets})}addDynamoDbEndpoint(id,subnets){return new vpc_endpoint_1.GatewayVpcEndpoint(this,id,{service:vpc_endpoint_1.GatewayVpcEndpointAwsService.DYNAMODB,vpc:this,subnets})}createNatGateways(provider,natCount,placement){const natSubnets=this.selectSubnetObjects(placement);for(const sub of natSubnets)if(this.publicSubnets.indexOf(sub)===-1)throw new Error(`natGatewayPlacement ${placement} contains non public subnet ${sub}`);provider.configureNat({vpc:this,natSubnets:natSubnets.slice(0,natCount),privateSubnets:this.privateSubnets})}createSubnets(){const requestedSubnets=[];this.subnetConfiguration.forEach(configuration=>this.availabilityZones.forEach((az,index)=>{requestedSubnets.push({availabilityZone:az,subnetConstructId:util_1.subnetId(configuration.name,index),configuration})}));const{allocatedSubnets}=this.ipAddresses.allocateSubnetsCidr({vpcCidr:this.vpcCidrBlock,requestedSubnets});if(allocatedSubnets.length!=requestedSubnets.length)throw new Error("Incomplete Subnet Allocation; response array dose not equal input array");this.createSubnetResources(requestedSubnets,allocatedSubnets)}createSubnetResources(requestedSubnets,allocatedSubnets){allocatedSubnets.forEach((allocated,i)=>{const{configuration:subnetConfig,subnetConstructId,availabilityZone}=requestedSubnets[i];if(subnetConfig.reserved===!0||availabilityZone===FAKE_AZ_NAME)return;let mapPublicIpOnLaunch=!1;if(subnetConfig.subnetType!==SubnetType.PUBLIC&&subnetConfig.mapPublicIpOnLaunch!==void 0)throw new Error(`${subnetConfig.subnetType} subnet cannot include mapPublicIpOnLaunch parameter`);subnetConfig.subnetType===SubnetType.PUBLIC&&(mapPublicIpOnLaunch=subnetConfig.mapPublicIpOnLaunch!==void 0?subnetConfig.mapPublicIpOnLaunch:!0);const subnetProps={availabilityZone,vpcId:this.vpcId,cidrBlock:allocated.cidr,mapPublicIpOnLaunch};let subnet;switch(subnetConfig.subnetType){case SubnetType.PUBLIC:const publicSubnet=new PublicSubnet(this,subnetConstructId,subnetProps);this.publicSubnets.push(publicSubnet),subnet=publicSubnet;break;case SubnetType.PRIVATE_WITH_EGRESS:case SubnetType.PRIVATE_WITH_NAT:case SubnetType.PRIVATE:const privateSubnet=new PrivateSubnet(this,subnetConstructId,subnetProps);this.privateSubnets.push(privateSubnet),subnet=privateSubnet;break;case SubnetType.PRIVATE_ISOLATED:case SubnetType.ISOLATED:const isolatedSubnet=new PrivateSubnet(this,subnetConstructId,subnetProps);this.isolatedSubnets.push(isolatedSubnet),subnet=isolatedSubnet;break;default:throw new Error(`Unrecognized subnet type: ${subnetConfig.subnetType}`)}const includeResourceTypes=[ec2_generated_1.CfnSubnet.CFN_RESOURCE_TYPE_NAME];core_1.Tags.of(subnet).add(SUBNETNAME_TAG,subnetConfig.name,{includeResourceTypes}),core_1.Tags.of(subnet).add(SUBNETTYPE_TAG,subnetTypeTagValue(subnetConfig.subnetType),{includeResourceTypes})})}}exports.Vpc=Vpc,_a=JSII_RTTI_SYMBOL_1,Vpc[_a]={fqn:"aws-cdk-lib.aws_ec2.Vpc",version:"2.52.1"},Vpc.DEFAULT_CIDR_RANGE="10.0.0.0/16",Vpc.DEFAULT_SUBNETS=[{subnetType:SubnetType.PUBLIC,name:util_1.defaultSubnetName(SubnetType.PUBLIC)},{subnetType:SubnetType.PRIVATE_WITH_EGRESS,name:util_1.defaultSubnetName(SubnetType.PRIVATE_WITH_EGRESS)}],Vpc.DEFAULT_SUBNETS_NO_NAT=[{subnetType:SubnetType.PUBLIC,name:util_1.defaultSubnetName(SubnetType.PUBLIC)},{subnetType:SubnetType.PRIVATE_ISOLATED,name:util_1.defaultSubnetName(SubnetType.PRIVATE_ISOLATED)}];const SUBNETTYPE_TAG="aws-cdk:subnet-type",SUBNETNAME_TAG="aws-cdk:subnet-name";function subnetTypeTagValue(type){switch(type){case SubnetType.PUBLIC:return"Public";case SubnetType.PRIVATE_WITH_EGRESS:case SubnetType.PRIVATE_WITH_NAT:case SubnetType.PRIVATE:return"Private";case SubnetType.PRIVATE_ISOLATED:case SubnetType.ISOLATED:return"Isolated"}}class Subnet extends core_1.Resource{constructor(scope,id,props){super(scope,id),this.dependencyElements=[],this._internetConnectivityEstablished=new constructs_1.DependencyGroup;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_SubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Subnet),error}Object.defineProperty(this,VPC_SUBNET_SYMBOL,{value:!0}),core_1.Tags.of(this).add(NAME_TAG,this.node.path),this.availabilityZone=props.availabilityZone,this.ipv4CidrBlock=props.cidrBlock;const subnet=new ec2_generated_1.CfnSubnet(this,"Subnet",{vpcId:props.vpcId,cidrBlock:props.cidrBlock,availabilityZone:props.availabilityZone,mapPublicIpOnLaunch:props.mapPublicIpOnLaunch});this.subnetId=subnet.ref,this.subnetVpcId=subnet.attrVpcId,this.subnetAvailabilityZone=subnet.attrAvailabilityZone,this.subnetIpv6CidrBlocks=subnet.attrIpv6CidrBlocks,this.subnetOutpostArn=subnet.attrOutpostArn,this._networkAcl=network_acl_1.NetworkAcl.fromNetworkAclId(this,"Acl",subnet.attrNetworkAclAssociationId),this.subnetNetworkAclAssociationId=core_1.Lazy.string({produce:()=>this._networkAcl.networkAclId}),this.node.defaultChild=subnet;const table=new ec2_generated_1.CfnRouteTable(this,"RouteTable",{vpcId:props.vpcId});this.routeTable={routeTableId:table.ref};const routeAssoc=new ec2_generated_1.CfnSubnetRouteTableAssociation(this,"RouteTableAssociation",{subnetId:this.subnetId,routeTableId:table.ref});this._internetConnectivityEstablished.add(routeAssoc),this.internetConnectivityEstablished=this._internetConnectivityEstablished}static isVpcSubnet(x){return VPC_SUBNET_SYMBOL in x}static fromSubnetAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_SubnetAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSubnetAttributes),error}return new ImportedSubnet(scope,id,attrs)}static fromSubnetId(scope,id,subnetId){return this.fromSubnetAttributes(scope,id,{subnetId})}addDefaultInternetRoute(gatewayId,gatewayAttachment){const route=new ec2_generated_1.CfnRoute(this,"DefaultRoute",{routeTableId:this.routeTable.routeTableId,destinationCidrBlock:"0.0.0.0/0",gatewayId});route.node.addDependency(gatewayAttachment),this._internetConnectivityEstablished.add(route)}get networkAcl(){return this._networkAcl}addDefaultNatRoute(natGatewayId){this.addRoute("DefaultRoute",{routerType:RouterType.NAT_GATEWAY,routerId:natGatewayId,enablesInternetConnectivity:!0})}addRoute(id,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_AddRouteOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addRoute),error}if(options.destinationCidrBlock&&options.destinationIpv6CidrBlock)throw new Error("Cannot specify both 'destinationCidrBlock' and 'destinationIpv6CidrBlock'");const route=new ec2_generated_1.CfnRoute(this,id,{routeTableId:this.routeTable.routeTableId,destinationCidrBlock:options.destinationCidrBlock||(options.destinationIpv6CidrBlock===void 0?"0.0.0.0/0":void 0),destinationIpv6CidrBlock:options.destinationIpv6CidrBlock,[routerTypeToPropName(options.routerType)]:options.routerId});options.enablesInternetConnectivity&&this._internetConnectivityEstablished.add(route)}associateNetworkAcl(id,networkAcl){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_INetworkAcl(networkAcl)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.associateNetworkAcl),error}this._networkAcl=networkAcl;const scope=networkAcl instanceof constructs_1.Construct?networkAcl:this,other=networkAcl instanceof constructs_1.Construct?this:networkAcl;new network_acl_1.SubnetNetworkAclAssociation(scope,id+core_1.Names.nodeUniqueId(other.node),{networkAcl,subnet:this})}}exports.Subnet=Subnet,_b=JSII_RTTI_SYMBOL_1,Subnet[_b]={fqn:"aws-cdk-lib.aws_ec2.Subnet",version:"2.52.1"};var RouterType;(function(RouterType2){RouterType2.CARRIER_GATEWAY="CarrierGateway",RouterType2.EGRESS_ONLY_INTERNET_GATEWAY="EgressOnlyInternetGateway",RouterType2.GATEWAY="Gateway",RouterType2.INSTANCE="Instance",RouterType2.LOCAL_GATEWAY="LocalGateway",RouterType2.NAT_GATEWAY="NatGateway",RouterType2.NETWORK_INTERFACE="NetworkInterface",RouterType2.TRANSIT_GATEWAY="TransitGateway",RouterType2.VPC_PEERING_CONNECTION="VpcPeeringConnection",RouterType2.VPC_ENDPOINT="VpcEndpoint"})(RouterType=exports.RouterType||(exports.RouterType={}));function routerTypeToPropName(routerType){return{[RouterType.CARRIER_GATEWAY]:"carrierGatewayId",[RouterType.EGRESS_ONLY_INTERNET_GATEWAY]:"egressOnlyInternetGatewayId",[RouterType.GATEWAY]:"gatewayId",[RouterType.INSTANCE]:"instanceId",[RouterType.LOCAL_GATEWAY]:"localGatewayId",[RouterType.NAT_GATEWAY]:"natGatewayId",[RouterType.NETWORK_INTERFACE]:"networkInterfaceId",[RouterType.TRANSIT_GATEWAY]:"transitGatewayId",[RouterType.VPC_PEERING_CONNECTION]:"vpcPeeringConnectionId",[RouterType.VPC_ENDPOINT]:"vpcEndpointId"}[routerType]}class PublicSubnet extends Subnet{constructor(scope,id,props){super(scope,id,props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PublicSubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,PublicSubnet),error}}static fromPublicSubnetAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PublicSubnetAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromPublicSubnetAttributes),error}return new ImportedSubnet(scope,id,attrs)}addNatGateway(eipAllocationId){const ngw=new ec2_generated_1.CfnNatGateway(this,"NATGateway",{subnetId:this.subnetId,allocationId:eipAllocationId??new ec2_generated_1.CfnEIP(this,"EIP",{domain:"vpc"}).attrAllocationId});return ngw.node.addDependency(this.internetConnectivityEstablished),ngw}}exports.PublicSubnet=PublicSubnet,_c=JSII_RTTI_SYMBOL_1,PublicSubnet[_c]={fqn:"aws-cdk-lib.aws_ec2.PublicSubnet",version:"2.52.1"};class PrivateSubnet extends Subnet{constructor(scope,id,props){super(scope,id,props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PrivateSubnetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,PrivateSubnet),error}}static fromPrivateSubnetAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_PrivateSubnetAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromPrivateSubnetAttributes),error}return new ImportedSubnet(scope,id,attrs)}}exports.PrivateSubnet=PrivateSubnet,_d=JSII_RTTI_SYMBOL_1,PrivateSubnet[_d]={fqn:"aws-cdk-lib.aws_ec2.PrivateSubnet",version:"2.52.1"};function ifUndefined(value,defaultValue){return value??defaultValue}class ImportedVpc extends VpcBase{constructor(scope,id,props,isIncomplete){super(scope,id,{region:props.region}),this.internetConnectivityEstablished=new constructs_1.DependencyGroup,this.vpcId=props.vpcId,this.vpcArn=core_1.Arn.format({service:"ec2",resource:"vpc",resourceName:this.vpcId},core_1.Stack.of(this)),this.cidr=props.vpcCidrBlock,this.availabilityZones=props.availabilityZones,this._vpnGatewayId=props.vpnGatewayId,this.incompleteSubnetDefinition=isIncomplete;for(const k of Object.keys(props))Array.isArray(props[k])&&core_1.Token.isUnresolved(props[k])&&core_1.Annotations.of(this).addWarning(`fromVpcAttributes: '${k}' is a list token: the imported VPC will not work with constructs that require a list of subnets at synthesis time. Use 'Vpc.fromLookup()' or 'Fn.importListValue' instead.`);const pub=new util_1.ImportSubnetGroup(props.publicSubnetIds,props.publicSubnetNames,props.publicSubnetRouteTableIds,SubnetType.PUBLIC,this.availabilityZones,"publicSubnetIds","publicSubnetNames","publicSubnetRouteTableIds"),priv=new util_1.ImportSubnetGroup(props.privateSubnetIds,props.privateSubnetNames,props.privateSubnetRouteTableIds,SubnetType.PRIVATE_WITH_EGRESS,this.availabilityZones,"privateSubnetIds","privateSubnetNames","privateSubnetRouteTableIds"),iso=new util_1.ImportSubnetGroup(props.isolatedSubnetIds,props.isolatedSubnetNames,props.isolatedSubnetRouteTableIds,SubnetType.PRIVATE_ISOLATED,this.availabilityZones,"isolatedSubnetIds","isolatedSubnetNames","isolatedSubnetRouteTableIds");this.publicSubnets=pub.import(this),this.privateSubnets=priv.import(this),this.isolatedSubnets=iso.import(this)}get vpcCidrBlock(){if(this.cidr===void 0)throw new Error("Cannot perform this operation: 'vpcCidrBlock' was not supplied when creating this VPC");return this.cidr}}class LookedUpVpc extends VpcBase{constructor(scope,id,props,isIncomplete){super(scope,id,{region:props.region}),this.internetConnectivityEstablished=new constructs_1.DependencyGroup,this.vpcId=props.vpcId,this.vpcArn=core_1.Arn.format({service:"ec2",resource:"vpc",resourceName:this.vpcId},core_1.Stack.of(this)),this.cidr=props.vpcCidrBlock,this._vpnGatewayId=props.vpnGatewayId,this.incompleteSubnetDefinition=isIncomplete;const subnetGroups=props.subnetGroups||[],availabilityZones=Array.from(new Set(flatMap(subnetGroups,subnetGroup=>subnetGroup.subnets.map(subnet=>subnet.availabilityZone))));availabilityZones.sort((az1,az2)=>az1.localeCompare(az2)),this.availabilityZones=availabilityZones,this.publicSubnets=this.extractSubnetsOfType(subnetGroups,cxapi.VpcSubnetGroupType.PUBLIC),this.privateSubnets=this.extractSubnetsOfType(subnetGroups,cxapi.VpcSubnetGroupType.PRIVATE),this.isolatedSubnets=this.extractSubnetsOfType(subnetGroups,cxapi.VpcSubnetGroupType.ISOLATED)}get vpcCidrBlock(){if(this.cidr===void 0)throw new Error("Cannot perform this operation: 'vpcCidrBlock' was not found when looking up this VPC. Use a newer version of the CDK CLI and clear the old context value.");return this.cidr}extractSubnetsOfType(subnetGroups,subnetGroupType){return flatMap(subnetGroups.filter(subnetGroup=>subnetGroup.type===subnetGroupType),subnetGroup=>this.subnetGroupToSubnets(subnetGroup))}subnetGroupToSubnets(subnetGroup){const ret=new Array;for(let i=0;i<subnetGroup.subnets.length;i++){const vpcSubnet=subnetGroup.subnets[i];ret.push(Subnet.fromSubnetAttributes(this,`${subnetGroup.name}Subnet${i+1}`,{availabilityZone:vpcSubnet.availabilityZone,subnetId:vpcSubnet.subnetId,routeTableId:vpcSubnet.routeTableId,ipv4CidrBlock:vpcSubnet.cidr}))}return ret}}function flatMap(xs,fn){const ret=new Array;for(const x of xs)ret.push(...fn(x));return ret}class CompositeDependable{constructor(){this.dependables=new Array;const self=this;constructs_1.Dependable.implement(this,{get dependencyRoots(){const ret=new Array;for(const dep of self.dependables)ret.push(...constructs_1.Dependable.of(dep).dependencyRoots);return ret}})}add(dep){this.dependables.push(dep)}}function tap(x,fn){return fn(x),x}class ImportedSubnet extends core_1.Resource{constructor(scope,id,attrs){if(super(scope,id),this.internetConnectivityEstablished=new constructs_1.DependencyGroup,!attrs.routeTableId){const ref=core_1.Token.isUnresolved(attrs.subnetId)||core_1.Token.isUnresolved([attrs.subnetId])?`at '${constructs_1.Node.of(scope).path}/${id}'`:`'${attrs.subnetId}'`;core_1.Annotations.of(this).addWarning(`No routeTableId was provided to the subnet ${ref}. Attempting to read its .routeTable.routeTableId will return null/undefined. (More info: https://github.com/aws/aws-cdk/pull/3171)`)}this._ipv4CidrBlock=attrs.ipv4CidrBlock,this._availabilityZone=attrs.availabilityZone,this.subnetId=attrs.subnetId,this.routeTable={routeTableId:attrs.routeTableId}}get availabilityZone(){if(!this._availabilityZone)throw new Error("You cannot reference a Subnet's availability zone if it was not supplied. Add the availabilityZone when importing using Subnet.fromSubnetAttributes()");return this._availabilityZone}get ipv4CidrBlock(){if(!this._ipv4CidrBlock)throw new Error("You cannot reference an imported Subnet's IPv4 CIDR if it was not supplied. Add the ipv4CidrBlock when importing using Subnet.fromSubnetAttributes()");return this._ipv4CidrBlock}associateNetworkAcl(id,networkAcl){const scope=networkAcl instanceof constructs_1.Construct?networkAcl:this,other=networkAcl instanceof constructs_1.Construct?this:networkAcl;new network_acl_1.SubnetNetworkAclAssociation(scope,id+core_1.Names.nodeUniqueId(other.node),{networkAcl,subnet:this})}}function determineNatGatewayCount(requestedCount,subnetConfig,azCount){const hasPrivateSubnets=subnetConfig.some(c=>(c.subnetType===SubnetType.PRIVATE_WITH_EGRESS||c.subnetType===SubnetType.PRIVATE||c.subnetType===SubnetType.PRIVATE_WITH_NAT)&&!c.reserved),hasPublicSubnets=subnetConfig.some(c=>c.subnetType===SubnetType.PUBLIC),hasCustomEgress=subnetConfig.some(c=>c.subnetType===SubnetType.PRIVATE_WITH_EGRESS),count=requestedCount!==void 0?Math.min(requestedCount,azCount):hasPrivateSubnets?azCount:0;if(count===0&&hasPrivateSubnets&&!hasCustomEgress)throw new Error("If you do not want NAT gateways (natGateways=0), make sure you don't configure any PRIVATE(_WITH_NAT) subnets in 'subnetConfiguration' (make them PUBLIC or ISOLATED instead)");if(count>0&&!hasPublicSubnets)throw new Error(`If you configure PRIVATE subnets in 'subnetConfiguration', you must also configure PUBLIC subnets to put the NAT gateways into (got ${JSON.stringify(subnetConfig)}.`);return count}const DUMMY_VPC_PROPS={availabilityZones:[],vpcCidrBlock:"1.2.3.4/5",isolatedSubnetIds:void 0,isolatedSubnetNames:void 0,isolatedSubnetRouteTableIds:void 0,privateSubnetIds:void 0,privateSubnetNames:void 0,privateSubnetRouteTableIds:void 0,publicSubnetIds:void 0,publicSubnetNames:void 0,publicSubnetRouteTableIds:void 0,subnetGroups:[{name:"Public",type:cxapi.VpcSubnetGroupType.PUBLIC,subnets:[{availabilityZone:"dummy1a",subnetId:"s-12345",routeTableId:"rtb-12345s",cidr:"1.2.3.4/5"},{availabilityZone:"dummy1b",subnetId:"s-67890",routeTableId:"rtb-67890s",cidr:"1.2.3.4/5"}]},{name:"Private",type:cxapi.VpcSubnetGroupType.PRIVATE,subnets:[{availabilityZone:"dummy1a",subnetId:"p-12345",routeTableId:"rtb-12345p",cidr:"1.2.3.4/5"},{availabilityZone:"dummy1b",subnetId:"p-67890",routeTableId:"rtb-57890p",cidr:"1.2.3.4/5"}]},{name:"Isolated",type:cxapi.VpcSubnetGroupType.ISOLATED,subnets:[{availabilityZone:"dummy1a",subnetId:"p-12345",routeTableId:"rtb-12345p",cidr:"1.2.3.4/5"},{availabilityZone:"dummy1b",subnetId:"p-67890",routeTableId:"rtb-57890p",cidr:"1.2.3.4/5"}]}],vpcId:"vpc-12345"};
2
2
  //# sourceMappingURL=vpc.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RESERVED_TUNNEL_INSIDE_CIDR=exports.VpnConnection=exports.VpnConnectionBase=exports.VpnGateway=exports.VpnConnectionType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),net=require("net"),cloudwatch=require("../../aws-cloudwatch"),core_1=require("../../core"),ec2_generated_1=require("./ec2.generated");var VpnConnectionType;(function(VpnConnectionType2){VpnConnectionType2.IPSEC_1="ipsec.1",VpnConnectionType2.DUMMY="dummy"})(VpnConnectionType=exports.VpnConnectionType||(exports.VpnConnectionType={}));class VpnGateway extends core_1.Resource{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpnGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,VpnGateway),error}const vpnGW=new ec2_generated_1.CfnVPNGateway(this,"Default",props);this.gatewayId=vpnGW.ref}}exports.VpnGateway=VpnGateway,_a=JSII_RTTI_SYMBOL_1,VpnGateway[_a]={fqn:"aws-cdk-lib.aws_ec2.VpnGateway",version:"2.52.0"};class VpnConnectionBase extends core_1.Resource{}exports.VpnConnectionBase=VpnConnectionBase,_b=JSII_RTTI_SYMBOL_1,VpnConnectionBase[_b]={fqn:"aws-cdk-lib.aws_ec2.VpnConnectionBase",version:"2.52.0"};class VpnConnection extends VpnConnectionBase{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpnConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,VpnConnection),error}if(props.vpc.vpnGatewayId||props.vpc.enableVpnGateway({type:"ipsec.1",amazonSideAsn:props.asn}),!core_1.Token.isUnresolved(props.ip)&&!net.isIPv4(props.ip))throw new Error(`The \`ip\` ${props.ip} is not a valid IPv4 address.`);const type=VpnConnectionType.IPSEC_1,bgpAsn=props.asn||65e3,customerGateway=new ec2_generated_1.CfnCustomerGateway(this,"CustomerGateway",{bgpAsn,ipAddress:props.ip,type});if(this.customerGatewayId=customerGateway.ref,this.customerGatewayAsn=bgpAsn,this.customerGatewayIp=props.ip,props.tunnelOptions){if(props.tunnelOptions.length>2)throw new Error("Cannot specify more than two `tunnelOptions`");if(props.tunnelOptions.length===2&&props.tunnelOptions[0].tunnelInsideCidr===props.tunnelOptions[1].tunnelInsideCidr)throw new Error(`Same ${props.tunnelOptions[0].tunnelInsideCidr} \`tunnelInsideCidr\` cannot be used for both tunnels.`);props.tunnelOptions.forEach((options,index)=>{if(options.preSharedKey&&options.preSharedKeySecret)throw new Error("Specify at most one of 'preSharedKey' and 'preSharedKeySecret'.");if(options.preSharedKey&&!core_1.Token.isUnresolved(options.preSharedKey)&&!/^[a-zA-Z1-9._][a-zA-Z\d._]{7,63}$/.test(options.preSharedKey))throw new Error(`The \`preSharedKey\` ${options.preSharedKey} for tunnel ${index+1} is invalid. Allowed characters are alphanumeric characters and ._. Must be between 8 and 64 characters in length and cannot start with zero (0).`);if(options.tunnelInsideCidr){if(exports.RESERVED_TUNNEL_INSIDE_CIDR.includes(options.tunnelInsideCidr))throw new Error(`The \`tunnelInsideCidr\` ${options.tunnelInsideCidr} for tunnel ${index+1} is a reserved inside CIDR.`);if(!/^169\.254\.\d{1,3}\.\d{1,3}\/30$/.test(options.tunnelInsideCidr))throw new Error(`The \`tunnelInsideCidr\` ${options.tunnelInsideCidr} for tunnel ${index+1} is not a size /30 CIDR block from the 169.254.0.0/16 range.`)}})}const vpnConnection=new ec2_generated_1.CfnVPNConnection(this,"Resource",{type,customerGatewayId:customerGateway.ref,staticRoutesOnly:!!props.staticRoutes,vpnGatewayId:props.vpc.vpnGatewayId,vpnTunnelOptionsSpecifications:props.tunnelOptions?.map(t=>({preSharedKey:t.preSharedKeySecret?.unsafeUnwrap()??t.preSharedKey,tunnelInsideCidr:t.tunnelInsideCidr}))});this.vpnId=vpnConnection.ref,props.staticRoutes&&props.staticRoutes.forEach(route=>{new ec2_generated_1.CfnVPNConnectionRoute(this,`Route${route.replace(/[^\d]/g,"")}`,{destinationCidrBlock:route,vpnConnectionId:this.vpnId})})}static fromVpnConnectionAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpnConnectionAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVpnConnectionAttributes),error}class Import extends VpnConnectionBase{constructor(){super(...arguments),this.vpnId=attrs.vpnId,this.customerGatewayId=attrs.customerGatewayId,this.customerGatewayIp=attrs.customerGatewayIp,this.customerGatewayAsn=attrs.customerGatewayAsn}}return new Import(scope,id)}static metricAll(metricName,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAll),error}return new cloudwatch.Metric({namespace:"AWS/VPN",metricName,...props})}static metricAllTunnelState(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAllTunnelState),error}return this.metricAll("TunnelState",{statistic:"avg",...props})}static metricAllTunnelDataIn(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAllTunnelDataIn),error}return this.metricAll("TunnelDataIn",{statistic:"sum",...props})}static metricAllTunnelDataOut(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAllTunnelDataOut),error}return this.metricAll("TunnelDataOut",{statistic:"sum",...props})}}exports.VpnConnection=VpnConnection,_c=JSII_RTTI_SYMBOL_1,VpnConnection[_c]={fqn:"aws-cdk-lib.aws_ec2.VpnConnection",version:"2.52.0"},exports.RESERVED_TUNNEL_INSIDE_CIDR=["169.254.0.0/30","169.254.1.0/30","169.254.2.0/30","169.254.3.0/30","169.254.4.0/30","169.254.5.0/30","169.254.169.252/30"];
1
+ "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RESERVED_TUNNEL_INSIDE_CIDR=exports.VpnConnection=exports.VpnConnectionBase=exports.VpnGateway=exports.VpnConnectionType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),net=require("net"),cloudwatch=require("../../aws-cloudwatch"),core_1=require("../../core"),ec2_generated_1=require("./ec2.generated");var VpnConnectionType;(function(VpnConnectionType2){VpnConnectionType2.IPSEC_1="ipsec.1",VpnConnectionType2.DUMMY="dummy"})(VpnConnectionType=exports.VpnConnectionType||(exports.VpnConnectionType={}));class VpnGateway extends core_1.Resource{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpnGatewayProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,VpnGateway),error}const vpnGW=new ec2_generated_1.CfnVPNGateway(this,"Default",props);this.gatewayId=vpnGW.ref}}exports.VpnGateway=VpnGateway,_a=JSII_RTTI_SYMBOL_1,VpnGateway[_a]={fqn:"aws-cdk-lib.aws_ec2.VpnGateway",version:"2.52.1"};class VpnConnectionBase extends core_1.Resource{}exports.VpnConnectionBase=VpnConnectionBase,_b=JSII_RTTI_SYMBOL_1,VpnConnectionBase[_b]={fqn:"aws-cdk-lib.aws_ec2.VpnConnectionBase",version:"2.52.1"};class VpnConnection extends VpnConnectionBase{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpnConnectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,VpnConnection),error}if(props.vpc.vpnGatewayId||props.vpc.enableVpnGateway({type:"ipsec.1",amazonSideAsn:props.asn}),!core_1.Token.isUnresolved(props.ip)&&!net.isIPv4(props.ip))throw new Error(`The \`ip\` ${props.ip} is not a valid IPv4 address.`);const type=VpnConnectionType.IPSEC_1,bgpAsn=props.asn||65e3,customerGateway=new ec2_generated_1.CfnCustomerGateway(this,"CustomerGateway",{bgpAsn,ipAddress:props.ip,type});if(this.customerGatewayId=customerGateway.ref,this.customerGatewayAsn=bgpAsn,this.customerGatewayIp=props.ip,props.tunnelOptions){if(props.tunnelOptions.length>2)throw new Error("Cannot specify more than two `tunnelOptions`");if(props.tunnelOptions.length===2&&props.tunnelOptions[0].tunnelInsideCidr===props.tunnelOptions[1].tunnelInsideCidr)throw new Error(`Same ${props.tunnelOptions[0].tunnelInsideCidr} \`tunnelInsideCidr\` cannot be used for both tunnels.`);props.tunnelOptions.forEach((options,index)=>{if(options.preSharedKey&&options.preSharedKeySecret)throw new Error("Specify at most one of 'preSharedKey' and 'preSharedKeySecret'.");if(options.preSharedKey&&!core_1.Token.isUnresolved(options.preSharedKey)&&!/^[a-zA-Z1-9._][a-zA-Z\d._]{7,63}$/.test(options.preSharedKey))throw new Error(`The \`preSharedKey\` ${options.preSharedKey} for tunnel ${index+1} is invalid. Allowed characters are alphanumeric characters and ._. Must be between 8 and 64 characters in length and cannot start with zero (0).`);if(options.tunnelInsideCidr){if(exports.RESERVED_TUNNEL_INSIDE_CIDR.includes(options.tunnelInsideCidr))throw new Error(`The \`tunnelInsideCidr\` ${options.tunnelInsideCidr} for tunnel ${index+1} is a reserved inside CIDR.`);if(!/^169\.254\.\d{1,3}\.\d{1,3}\/30$/.test(options.tunnelInsideCidr))throw new Error(`The \`tunnelInsideCidr\` ${options.tunnelInsideCidr} for tunnel ${index+1} is not a size /30 CIDR block from the 169.254.0.0/16 range.`)}})}const vpnConnection=new ec2_generated_1.CfnVPNConnection(this,"Resource",{type,customerGatewayId:customerGateway.ref,staticRoutesOnly:!!props.staticRoutes,vpnGatewayId:props.vpc.vpnGatewayId,vpnTunnelOptionsSpecifications:props.tunnelOptions?.map(t=>({preSharedKey:t.preSharedKeySecret?.unsafeUnwrap()??t.preSharedKey,tunnelInsideCidr:t.tunnelInsideCidr}))});this.vpnId=vpnConnection.ref,props.staticRoutes&&props.staticRoutes.forEach(route=>{new ec2_generated_1.CfnVPNConnectionRoute(this,`Route${route.replace(/[^\d]/g,"")}`,{destinationCidrBlock:route,vpnConnectionId:this.vpnId})})}static fromVpnConnectionAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_VpnConnectionAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromVpnConnectionAttributes),error}class Import extends VpnConnectionBase{constructor(){super(...arguments),this.vpnId=attrs.vpnId,this.customerGatewayId=attrs.customerGatewayId,this.customerGatewayIp=attrs.customerGatewayIp,this.customerGatewayAsn=attrs.customerGatewayAsn}}return new Import(scope,id)}static metricAll(metricName,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAll),error}return new cloudwatch.Metric({namespace:"AWS/VPN",metricName,...props})}static metricAllTunnelState(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAllTunnelState),error}return this.metricAll("TunnelState",{statistic:"avg",...props})}static metricAllTunnelDataIn(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAllTunnelDataIn),error}return this.metricAll("TunnelDataIn",{statistic:"sum",...props})}static metricAllTunnelDataOut(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_cloudwatch_MetricOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.metricAllTunnelDataOut),error}return this.metricAll("TunnelDataOut",{statistic:"sum",...props})}}exports.VpnConnection=VpnConnection,_c=JSII_RTTI_SYMBOL_1,VpnConnection[_c]={fqn:"aws-cdk-lib.aws_ec2.VpnConnection",version:"2.52.1"},exports.RESERVED_TUNNEL_INSIDE_CIDR=["169.254.0.0/30","169.254.1.0/30","169.254.2.0/30","169.254.3.0/30","169.254.4.0/30","169.254.5.0/30","169.254.169.252/30"];
2
2
  //# sourceMappingURL=vpn.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PublicGalleryAuthorizationToken=exports.AuthorizationToken=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),iam=require("../../aws-iam");class AuthorizationToken{constructor(){}static grantRead(grantee){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IGrantable(grantee)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.grantRead),error}grantee.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({actions:["ecr:GetAuthorizationToken"],resources:["*"]}))}}exports.AuthorizationToken=AuthorizationToken,_a=JSII_RTTI_SYMBOL_1,AuthorizationToken[_a]={fqn:"aws-cdk-lib.aws_ecr.AuthorizationToken",version:"2.52.0"};class PublicGalleryAuthorizationToken{constructor(){}static grantRead(grantee){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IGrantable(grantee)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.grantRead),error}grantee.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({actions:["ecr-public:GetAuthorizationToken","sts:GetServiceBearerToken"],resources:["*"]}))}}exports.PublicGalleryAuthorizationToken=PublicGalleryAuthorizationToken,_b=JSII_RTTI_SYMBOL_1,PublicGalleryAuthorizationToken[_b]={fqn:"aws-cdk-lib.aws_ecr.PublicGalleryAuthorizationToken",version:"2.52.0"};
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PublicGalleryAuthorizationToken=exports.AuthorizationToken=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),iam=require("../../aws-iam");class AuthorizationToken{constructor(){}static grantRead(grantee){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IGrantable(grantee)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.grantRead),error}grantee.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({actions:["ecr:GetAuthorizationToken"],resources:["*"]}))}}exports.AuthorizationToken=AuthorizationToken,_a=JSII_RTTI_SYMBOL_1,AuthorizationToken[_a]={fqn:"aws-cdk-lib.aws_ecr.AuthorizationToken",version:"2.52.1"};class PublicGalleryAuthorizationToken{constructor(){}static grantRead(grantee){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IGrantable(grantee)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.grantRead),error}grantee.grantPrincipal.addToPrincipalPolicy(new iam.PolicyStatement({actions:["ecr-public:GetAuthorizationToken","sts:GetServiceBearerToken"],resources:["*"]}))}}exports.PublicGalleryAuthorizationToken=PublicGalleryAuthorizationToken,_b=JSII_RTTI_SYMBOL_1,PublicGalleryAuthorizationToken[_b]={fqn:"aws-cdk-lib.aws_ecr.PublicGalleryAuthorizationToken",version:"2.52.1"};
2
2
  //# sourceMappingURL=auth-token.js.map