aws-cdk-lib 2.51.0 → 2.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. package/.jsii.gz +0 -0
  2. package/alexa-ask/lib/ask.generated.js +1 -1
  3. package/assertions/lib/annotations.js +1 -1
  4. package/assertions/lib/capture.js +1 -1
  5. package/assertions/lib/match.js +1 -1
  6. package/assertions/lib/matcher.js +1 -1
  7. package/assertions/lib/template.js +1 -1
  8. package/assets/lib/staging.js +1 -1
  9. package/aws-accessanalyzer/lib/accessanalyzer.generated.js +1 -1
  10. package/aws-acmpca/lib/acmpca.generated.js +1 -1
  11. package/aws-acmpca/lib/certificate-authority.js +1 -1
  12. package/aws-amazonmq/lib/amazonmq.generated.js +1 -1
  13. package/aws-amplify/lib/amplify.generated.js +1 -1
  14. package/aws-amplifyuibuilder/lib/amplifyuibuilder.generated.js +1 -1
  15. package/aws-apigateway/lib/access-log.js +1 -1
  16. package/aws-apigateway/lib/api-definition.js +1 -1
  17. package/aws-apigateway/lib/api-key.js +1 -1
  18. package/aws-apigateway/lib/apigateway.generated.js +1 -1
  19. package/aws-apigateway/lib/apigatewayv2.js +1 -1
  20. package/aws-apigateway/lib/authorizer.js +1 -1
  21. package/aws-apigateway/lib/authorizers/cognito.js +1 -1
  22. package/aws-apigateway/lib/authorizers/identity-source.js +1 -1
  23. package/aws-apigateway/lib/authorizers/lambda.js +1 -1
  24. package/aws-apigateway/lib/base-path-mapping.js +1 -1
  25. package/aws-apigateway/lib/cors.js +1 -1
  26. package/aws-apigateway/lib/deployment.js +1 -1
  27. package/aws-apigateway/lib/domain-name.js +1 -1
  28. package/aws-apigateway/lib/gateway-response.js +1 -1
  29. package/aws-apigateway/lib/integration.js +1 -1
  30. package/aws-apigateway/lib/integrations/aws.js +1 -1
  31. package/aws-apigateway/lib/integrations/http.js +1 -1
  32. package/aws-apigateway/lib/integrations/lambda.js +1 -1
  33. package/aws-apigateway/lib/integrations/mock.js +1 -1
  34. package/aws-apigateway/lib/integrations/stepfunctions.js +1 -1
  35. package/aws-apigateway/lib/lambda-api.js +1 -1
  36. package/aws-apigateway/lib/method.js +1 -1
  37. package/aws-apigateway/lib/model.js +1 -1
  38. package/aws-apigateway/lib/requestvalidator.js +1 -1
  39. package/aws-apigateway/lib/resource.js +1 -1
  40. package/aws-apigateway/lib/restapi.js +1 -1
  41. package/aws-apigateway/lib/stage.js +1 -1
  42. package/aws-apigateway/lib/stepfunctions-api.js +1 -1
  43. package/aws-apigateway/lib/usage-plan.js +1 -1
  44. package/aws-apigateway/lib/vpc-link.js +1 -1
  45. package/aws-apigatewayv2/lib/apigatewayv2.generated.js +1 -1
  46. package/aws-appconfig/lib/appconfig.generated.js +1 -1
  47. package/aws-appflow/lib/appflow.generated.js +1 -1
  48. package/aws-appintegrations/lib/appintegrations.generated.js +1 -1
  49. package/aws-applicationautoscaling/lib/applicationautoscaling.generated.js +1 -1
  50. package/aws-applicationautoscaling/lib/base-scalable-attribute.js +1 -1
  51. package/aws-applicationautoscaling/lib/scalable-target.js +1 -1
  52. package/aws-applicationautoscaling/lib/schedule.js +1 -1
  53. package/aws-applicationautoscaling/lib/step-scaling-action.js +1 -1
  54. package/aws-applicationautoscaling/lib/step-scaling-policy.js +1 -1
  55. package/aws-applicationautoscaling/lib/target-tracking-scaling-policy.js +1 -1
  56. package/aws-applicationinsights/lib/applicationinsights.generated.js +1 -1
  57. package/aws-appmesh/lib/appmesh.generated.js +1 -1
  58. package/aws-appmesh/lib/gateway-route-spec.js +1 -1
  59. package/aws-appmesh/lib/gateway-route.js +1 -1
  60. package/aws-appmesh/lib/header-match.js +1 -1
  61. package/aws-appmesh/lib/health-checks.js +1 -1
  62. package/aws-appmesh/lib/http-route-path-match.js +1 -1
  63. package/aws-appmesh/lib/mesh.js +1 -1
  64. package/aws-appmesh/lib/query-parameter-match.js +1 -1
  65. package/aws-appmesh/lib/route-spec.js +1 -1
  66. package/aws-appmesh/lib/route.js +1 -1
  67. package/aws-appmesh/lib/service-discovery.js +1 -1
  68. package/aws-appmesh/lib/shared-interfaces.js +1 -1
  69. package/aws-appmesh/lib/tls-certificate.js +1 -1
  70. package/aws-appmesh/lib/tls-validation.js +1 -1
  71. package/aws-appmesh/lib/virtual-gateway-listener.js +1 -1
  72. package/aws-appmesh/lib/virtual-gateway.js +1 -1
  73. package/aws-appmesh/lib/virtual-node-listener.js +1 -1
  74. package/aws-appmesh/lib/virtual-node.js +1 -1
  75. package/aws-appmesh/lib/virtual-router-listener.js +1 -1
  76. package/aws-appmesh/lib/virtual-router.js +1 -1
  77. package/aws-appmesh/lib/virtual-service.js +1 -1
  78. package/aws-apprunner/lib/apprunner.generated.js +1 -1
  79. package/aws-appstream/lib/appstream.generated.js +1 -1
  80. package/aws-appsync/lib/appsync.generated.js +1 -1
  81. package/aws-aps/lib/aps.generated.js +1 -1
  82. package/aws-athena/lib/athena.generated.js +1 -1
  83. package/aws-auditmanager/lib/auditmanager.generated.js +1 -1
  84. package/aws-autoscaling/lib/aspects/require-imdsv2-aspect.js +1 -1
  85. package/aws-autoscaling/lib/auto-scaling-group.js +1 -1
  86. package/aws-autoscaling/lib/autoscaling.generated.js +1 -1
  87. package/aws-autoscaling/lib/lifecycle-hook.js +1 -1
  88. package/aws-autoscaling/lib/schedule.js +1 -1
  89. package/aws-autoscaling/lib/scheduled-action.js +1 -1
  90. package/aws-autoscaling/lib/step-scaling-action.js +1 -1
  91. package/aws-autoscaling/lib/step-scaling-policy.js +1 -1
  92. package/aws-autoscaling/lib/target-tracking-scaling-policy.js +1 -1
  93. package/aws-autoscaling/lib/volume.js +1 -1
  94. package/aws-autoscaling/lib/warm-pool.js +1 -1
  95. package/aws-autoscaling-hooktargets/lib/lambda-hook.js +1 -1
  96. package/aws-autoscaling-hooktargets/lib/queue-hook.js +1 -1
  97. package/aws-autoscaling-hooktargets/lib/topic-hook.js +1 -1
  98. package/aws-autoscalingplans/lib/autoscalingplans.generated.js +1 -1
  99. package/aws-backup/lib/backup.generated.js +1 -1
  100. package/aws-backup/lib/plan.js +1 -1
  101. package/aws-backup/lib/resource.js +1 -1
  102. package/aws-backup/lib/rule.js +1 -1
  103. package/aws-backup/lib/selection.js +1 -1
  104. package/aws-backup/lib/vault.js +1 -1
  105. package/aws-batch/lib/batch.generated.js +1 -1
  106. package/aws-billingconductor/lib/billingconductor.generated.js +1 -1
  107. package/aws-budgets/lib/budgets.generated.js +1 -1
  108. package/aws-cassandra/lib/cassandra.generated.js +1 -1
  109. package/aws-ce/lib/ce.generated.js +1 -1
  110. package/aws-certificatemanager/lib/certificate.js +1 -1
  111. package/aws-certificatemanager/lib/certificatemanager.generated.js +1 -1
  112. package/aws-certificatemanager/lib/dns-validated-certificate.js +1 -1
  113. package/aws-certificatemanager/lib/private-certificate.js +1 -1
  114. package/aws-chatbot/lib/chatbot.generated.js +1 -1
  115. package/aws-chatbot/lib/slack-channel-configuration.js +1 -1
  116. package/aws-cloud9/lib/cloud9.generated.js +1 -1
  117. package/aws-cloudformation/lib/cloudformation.generated.js +1 -1
  118. package/aws-cloudformation/lib/custom-resource.js +1 -1
  119. package/aws-cloudformation/lib/nested-stack.js +1 -1
  120. package/aws-cloudfront/lib/cache-policy.js +1 -1
  121. package/aws-cloudfront/lib/cloudfront.generated.js +1 -1
  122. package/aws-cloudfront/lib/distribution.js +1 -1
  123. package/aws-cloudfront/lib/experimental/edge-function.js +1 -1
  124. package/aws-cloudfront/lib/function.js +1 -1
  125. package/aws-cloudfront/lib/geo-restriction.js +1 -1
  126. package/aws-cloudfront/lib/key-group.js +1 -1
  127. package/aws-cloudfront/lib/origin-access-identity.js +1 -1
  128. package/aws-cloudfront/lib/origin-request-policy.js +1 -1
  129. package/aws-cloudfront/lib/origin.js +1 -1
  130. package/aws-cloudfront/lib/public-key.js +1 -1
  131. package/aws-cloudfront/lib/response-headers-policy.js +1 -1
  132. package/aws-cloudfront/lib/web-distribution.js +2 -2
  133. package/aws-cloudfront-origins/lib/http-origin.js +1 -1
  134. package/aws-cloudfront-origins/lib/load-balancer-origin.js +1 -1
  135. package/aws-cloudfront-origins/lib/origin-group.js +1 -1
  136. package/aws-cloudfront-origins/lib/rest-api-origin.js +1 -1
  137. package/aws-cloudfront-origins/lib/s3-origin.js +1 -1
  138. package/aws-cloudtrail/lib/cloudtrail.generated.js +1 -1
  139. package/aws-cloudtrail/lib/cloudtrail.js +1 -1
  140. package/aws-cloudwatch/lib/alarm-base.js +1 -1
  141. package/aws-cloudwatch/lib/alarm-rule.js +1 -1
  142. package/aws-cloudwatch/lib/alarm-status-widget.js +1 -1
  143. package/aws-cloudwatch/lib/alarm.js +1 -1
  144. package/aws-cloudwatch/lib/cloudwatch.generated.js +1 -1
  145. package/aws-cloudwatch/lib/composite-alarm.js +1 -1
  146. package/aws-cloudwatch/lib/dashboard.js +1 -1
  147. package/aws-cloudwatch/lib/graph.js +1 -1
  148. package/aws-cloudwatch/lib/layout.js +1 -1
  149. package/aws-cloudwatch/lib/log-query.js +1 -1
  150. package/aws-cloudwatch/lib/metric.js +1 -1
  151. package/aws-cloudwatch/lib/text.js +1 -1
  152. package/aws-cloudwatch/lib/widget.js +1 -1
  153. package/aws-cloudwatch-actions/lib/appscaling.js +1 -1
  154. package/aws-cloudwatch-actions/lib/autoscaling.js +1 -1
  155. package/aws-cloudwatch-actions/lib/ec2.js +1 -1
  156. package/aws-cloudwatch-actions/lib/sns.js +1 -1
  157. package/aws-cloudwatch-actions/lib/ssm.js +1 -1
  158. package/aws-codeartifact/lib/codeartifact.generated.js +1 -1
  159. package/aws-codebuild/lib/artifacts.js +1 -1
  160. package/aws-codebuild/lib/build-spec.js +1 -1
  161. package/aws-codebuild/lib/cache.js +1 -1
  162. package/aws-codebuild/lib/codebuild.generated.js +1 -1
  163. package/aws-codebuild/lib/events.js +1 -1
  164. package/aws-codebuild/lib/file-location.js +1 -1
  165. package/aws-codebuild/lib/linux-arm-build-image.js +1 -1
  166. package/aws-codebuild/lib/linux-gpu-build-image.js +1 -1
  167. package/aws-codebuild/lib/pipeline-project.js +1 -1
  168. package/aws-codebuild/lib/project.js +1 -1
  169. package/aws-codebuild/lib/report-group.js +1 -1
  170. package/aws-codebuild/lib/source-credentials.js +1 -1
  171. package/aws-codebuild/lib/source.js +1 -1
  172. package/aws-codebuild/lib/untrusted-code-boundary-policy.js +1 -1
  173. package/aws-codecommit/lib/code.js +1 -1
  174. package/aws-codecommit/lib/codecommit.generated.js +1 -1
  175. package/aws-codecommit/lib/events.js +1 -1
  176. package/aws-codecommit/lib/repository.js +1 -1
  177. package/aws-codedeploy/lib/base-deployment-config.js +1 -1
  178. package/aws-codedeploy/lib/codedeploy.generated.js +1 -1
  179. package/aws-codedeploy/lib/ecs/application.js +1 -1
  180. package/aws-codedeploy/lib/ecs/deployment-config.js +1 -1
  181. package/aws-codedeploy/lib/ecs/deployment-group.js +1 -1
  182. package/aws-codedeploy/lib/host-health-config.js +1 -1
  183. package/aws-codedeploy/lib/lambda/application.js +1 -1
  184. package/aws-codedeploy/lib/lambda/custom-deployment-config.js +1 -1
  185. package/aws-codedeploy/lib/lambda/deployment-config.js +1 -1
  186. package/aws-codedeploy/lib/lambda/deployment-group.js +1 -1
  187. package/aws-codedeploy/lib/server/application.js +1 -1
  188. package/aws-codedeploy/lib/server/deployment-config.js +1 -1
  189. package/aws-codedeploy/lib/server/deployment-group.js +1 -1
  190. package/aws-codedeploy/lib/server/load-balancer.js +1 -1
  191. package/aws-codedeploy/lib/traffic-routing-config.js +1 -1
  192. package/aws-codeguruprofiler/lib/codeguruprofiler.generated.js +1 -1
  193. package/aws-codeguruprofiler/lib/profiling-group.js +1 -1
  194. package/aws-codegurureviewer/lib/codegurureviewer.generated.js +1 -1
  195. package/aws-codepipeline/lib/action.js +1 -1
  196. package/aws-codepipeline/lib/artifact.js +1 -1
  197. package/aws-codepipeline/lib/codepipeline.generated.js +1 -1
  198. package/aws-codepipeline/lib/custom-action-registration.js +1 -1
  199. package/aws-codepipeline/lib/pipeline.js +1 -1
  200. package/aws-codepipeline-actions/lib/action.js +1 -1
  201. package/aws-codepipeline-actions/lib/alexa-ask/deploy-action.js +1 -1
  202. package/aws-codepipeline-actions/lib/bitbucket/source-action.js +1 -1
  203. package/aws-codepipeline-actions/lib/cloudformation/pipeline-actions.js +1 -1
  204. package/aws-codepipeline-actions/lib/cloudformation/stackinstances-action.js +1 -1
  205. package/aws-codepipeline-actions/lib/cloudformation/stackset-action.js +1 -1
  206. package/aws-codepipeline-actions/lib/cloudformation/stackset-types.js +1 -1
  207. package/aws-codepipeline-actions/lib/codebuild/build-action.js +1 -1
  208. package/aws-codepipeline-actions/lib/codecommit/source-action.js +1 -1
  209. package/aws-codepipeline-actions/lib/codedeploy/ecs-deploy-action.js +1 -1
  210. package/aws-codepipeline-actions/lib/codedeploy/server-deploy-action.js +1 -1
  211. package/aws-codepipeline-actions/lib/codestar-connections/source-action.js +1 -1
  212. package/aws-codepipeline-actions/lib/ecr/source-action.js +1 -1
  213. package/aws-codepipeline-actions/lib/ecs/deploy-action.js +1 -1
  214. package/aws-codepipeline-actions/lib/elastic-beanstalk/deploy-action.js +1 -1
  215. package/aws-codepipeline-actions/lib/github/source-action.js +1 -1
  216. package/aws-codepipeline-actions/lib/jenkins/jenkins-action.js +1 -1
  217. package/aws-codepipeline-actions/lib/jenkins/jenkins-provider.js +1 -1
  218. package/aws-codepipeline-actions/lib/lambda/invoke-action.js +1 -1
  219. package/aws-codepipeline-actions/lib/manual-approval-action.js +1 -1
  220. package/aws-codepipeline-actions/lib/s3/deploy-action.js +1 -1
  221. package/aws-codepipeline-actions/lib/s3/source-action.js +1 -1
  222. package/aws-codepipeline-actions/lib/servicecatalog/deploy-action-beta1.js +1 -1
  223. package/aws-codepipeline-actions/lib/stepfunctions/invoke-action.js +1 -1
  224. package/aws-codestar/lib/codestar.generated.js +1 -1
  225. package/aws-codestarconnections/lib/codestarconnections.generated.js +1 -1
  226. package/aws-codestarnotifications/lib/codestarnotifications.generated.js +1 -1
  227. package/aws-codestarnotifications/lib/notification-rule.js +1 -1
  228. package/aws-cognito/lib/cognito.generated.js +1 -1
  229. package/aws-cognito/lib/user-pool-attr.js +1 -1
  230. package/aws-cognito/lib/user-pool-client.js +1 -1
  231. package/aws-cognito/lib/user-pool-domain.js +1 -1
  232. package/aws-cognito/lib/user-pool-email.js +1 -1
  233. package/aws-cognito/lib/user-pool-idp.js +1 -1
  234. package/aws-cognito/lib/user-pool-idps/amazon.js +1 -1
  235. package/aws-cognito/lib/user-pool-idps/apple.js +1 -1
  236. package/aws-cognito/lib/user-pool-idps/base.js +1 -1
  237. package/aws-cognito/lib/user-pool-idps/facebook.js +1 -1
  238. package/aws-cognito/lib/user-pool-idps/google.js +1 -1
  239. package/aws-cognito/lib/user-pool-idps/oidc.js +1 -1
  240. package/aws-cognito/lib/user-pool-idps/saml.js +1 -1
  241. package/aws-cognito/lib/user-pool-resource-server.js +1 -1
  242. package/aws-cognito/lib/user-pool.js +1 -1
  243. package/aws-config/lib/config.generated.js +1 -1
  244. package/aws-config/lib/managed-rules.js +1 -1
  245. package/aws-config/lib/rule.js +1 -1
  246. package/aws-connect/lib/connect.generated.js +1 -1
  247. package/aws-connectcampaigns/lib/connectcampaigns.generated.js +1 -1
  248. package/aws-controltower/lib/controltower.generated.js +1 -1
  249. package/aws-cur/lib/cur.generated.js +1 -1
  250. package/aws-customerprofiles/lib/customerprofiles.generated.js +1 -1
  251. package/aws-databrew/lib/databrew.generated.js +1 -1
  252. package/aws-datapipeline/lib/datapipeline.generated.js +1 -1
  253. package/aws-datasync/lib/datasync.generated.js +1 -1
  254. package/aws-dax/lib/dax.generated.js +1 -1
  255. package/aws-detective/lib/detective.generated.js +1 -1
  256. package/aws-devopsguru/lib/devopsguru.generated.js +1 -1
  257. package/aws-directoryservice/lib/directoryservice.generated.js +1 -1
  258. package/aws-dlm/lib/dlm.generated.js +1 -1
  259. package/aws-dms/lib/dms.generated.js +1 -1
  260. package/aws-docdb/lib/cluster.js +1 -1
  261. package/aws-docdb/lib/database-secret.js +1 -1
  262. package/aws-docdb/lib/docdb.generated.js +1 -1
  263. package/aws-docdb/lib/endpoint.js +1 -1
  264. package/aws-docdb/lib/instance.js +1 -1
  265. package/aws-docdb/lib/parameter-group.js +1 -1
  266. package/aws-dynamodb/lib/dynamodb.generated.js +1 -1
  267. package/aws-dynamodb/lib/table.js +1 -1
  268. package/aws-ec2/lib/aspects/require-imdsv2-aspect.js +1 -1
  269. package/aws-ec2/lib/bastion-host.js +1 -1
  270. package/aws-ec2/lib/cfn-init-elements.js +1 -1
  271. package/aws-ec2/lib/cfn-init.js +1 -1
  272. package/aws-ec2/lib/client-vpn-authorization-rule.js +1 -1
  273. package/aws-ec2/lib/client-vpn-endpoint.js +1 -1
  274. package/aws-ec2/lib/client-vpn-route.js +1 -1
  275. package/aws-ec2/lib/connections.js +1 -1
  276. package/aws-ec2/lib/ec2.generated.js +1 -1
  277. package/aws-ec2/lib/instance-types.js +1 -1
  278. package/aws-ec2/lib/instance.js +1 -1
  279. package/aws-ec2/lib/ip-addresses.js +1 -1
  280. package/aws-ec2/lib/launch-template.js +1 -1
  281. package/aws-ec2/lib/machine-image.js +1 -1
  282. package/aws-ec2/lib/nat.js +1 -1
  283. package/aws-ec2/lib/network-acl-types.js +1 -1
  284. package/aws-ec2/lib/network-acl.js +1 -1
  285. package/aws-ec2/lib/peer.js +1 -1
  286. package/aws-ec2/lib/port.js +1 -1
  287. package/aws-ec2/lib/security-group.js +1 -1
  288. package/aws-ec2/lib/subnet.js +1 -1
  289. package/aws-ec2/lib/user-data.js +3 -3
  290. package/aws-ec2/lib/volume.js +1 -1
  291. package/aws-ec2/lib/vpc-endpoint-service.js +1 -1
  292. package/aws-ec2/lib/vpc-endpoint.js +1 -1
  293. package/aws-ec2/lib/vpc-flow-logs.js +1 -1
  294. package/aws-ec2/lib/vpc.js +1 -1
  295. package/aws-ec2/lib/vpn.js +1 -1
  296. package/aws-ecr/lib/auth-token.js +1 -1
  297. package/aws-ecr/lib/ecr.generated.js +1 -1
  298. package/aws-ecr/lib/repository.js +1 -1
  299. package/aws-ecr-assets/lib/image-asset.js +2 -2
  300. package/aws-ecr-assets/lib/tarball-asset.js +1 -1
  301. package/aws-ecs/lib/amis.js +1 -1
  302. package/aws-ecs/lib/base/base-service.js +1 -1
  303. package/aws-ecs/lib/base/scalable-task-count.js +1 -1
  304. package/aws-ecs/lib/base/task-definition.js +1 -1
  305. package/aws-ecs/lib/cluster.js +1 -1
  306. package/aws-ecs/lib/container-definition.js +1 -1
  307. package/aws-ecs/lib/container-image.js +1 -1
  308. package/aws-ecs/lib/ec2/ec2-service.js +1 -1
  309. package/aws-ecs/lib/ec2/ec2-task-definition.js +1 -1
  310. package/aws-ecs/lib/ecs.generated.js +1 -1
  311. package/aws-ecs/lib/environment-file.js +1 -1
  312. package/aws-ecs/lib/external/external-service.js +1 -1
  313. package/aws-ecs/lib/external/external-task-definition.js +1 -1
  314. package/aws-ecs/lib/fargate/fargate-service.js +1 -1
  315. package/aws-ecs/lib/fargate/fargate-task-definition.js +1 -1
  316. package/aws-ecs/lib/firelens-log-router.js +1 -1
  317. package/aws-ecs/lib/images/asset-image.js +1 -1
  318. package/aws-ecs/lib/images/ecr.js +1 -1
  319. package/aws-ecs/lib/images/repository.js +1 -1
  320. package/aws-ecs/lib/images/tag-parameter-container-image.js +1 -1
  321. package/aws-ecs/lib/linux-parameters.js +1 -1
  322. package/aws-ecs/lib/log-drivers/aws-log-driver.js +1 -1
  323. package/aws-ecs/lib/log-drivers/firelens-log-driver.js +1 -1
  324. package/aws-ecs/lib/log-drivers/fluentd-log-driver.js +1 -1
  325. package/aws-ecs/lib/log-drivers/gelf-log-driver.js +1 -1
  326. package/aws-ecs/lib/log-drivers/generic-log-driver.js +1 -1
  327. package/aws-ecs/lib/log-drivers/journald-log-driver.js +1 -1
  328. package/aws-ecs/lib/log-drivers/json-file-log-driver.js +1 -1
  329. package/aws-ecs/lib/log-drivers/log-driver.js +1 -1
  330. package/aws-ecs/lib/log-drivers/log-drivers.js +1 -1
  331. package/aws-ecs/lib/log-drivers/splunk-log-driver.js +1 -1
  332. package/aws-ecs/lib/log-drivers/syslog-log-driver.js +1 -1
  333. package/aws-ecs/lib/placement.js +1 -1
  334. package/aws-ecs/lib/proxy-configuration/app-mesh-proxy-configuration.js +1 -1
  335. package/aws-ecs/lib/proxy-configuration/proxy-configuration.js +1 -1
  336. package/aws-ecs/lib/proxy-configuration/proxy-configurations.js +1 -1
  337. package/aws-ecs/lib/runtime-platform.js +1 -1
  338. package/aws-ecs-patterns/lib/base/application-load-balanced-service-base.js +1 -1
  339. package/aws-ecs-patterns/lib/base/application-multiple-target-groups-service-base.js +1 -1
  340. package/aws-ecs-patterns/lib/base/network-load-balanced-service-base.js +1 -1
  341. package/aws-ecs-patterns/lib/base/network-multiple-target-groups-service-base.js +1 -1
  342. package/aws-ecs-patterns/lib/base/queue-processing-service-base.js +1 -1
  343. package/aws-ecs-patterns/lib/base/scheduled-task-base.js +1 -1
  344. package/aws-ecs-patterns/lib/ecs/application-load-balanced-ecs-service.js +1 -1
  345. package/aws-ecs-patterns/lib/ecs/application-multiple-target-groups-ecs-service.js +1 -1
  346. package/aws-ecs-patterns/lib/ecs/network-load-balanced-ecs-service.js +1 -1
  347. package/aws-ecs-patterns/lib/ecs/network-multiple-target-groups-ecs-service.js +1 -1
  348. package/aws-ecs-patterns/lib/ecs/queue-processing-ecs-service.js +1 -1
  349. package/aws-ecs-patterns/lib/ecs/scheduled-ecs-task.js +1 -1
  350. package/aws-ecs-patterns/lib/fargate/application-load-balanced-fargate-service.js +1 -1
  351. package/aws-ecs-patterns/lib/fargate/application-multiple-target-groups-fargate-service.js +1 -1
  352. package/aws-ecs-patterns/lib/fargate/network-load-balanced-fargate-service.js +1 -1
  353. package/aws-ecs-patterns/lib/fargate/network-multiple-target-groups-fargate-service.js +1 -1
  354. package/aws-ecs-patterns/lib/fargate/queue-processing-fargate-service.js +1 -1
  355. package/aws-ecs-patterns/lib/fargate/scheduled-fargate-task.js +1 -1
  356. package/aws-efs/lib/access-point.js +1 -1
  357. package/aws-efs/lib/efs-file-system.js +1 -1
  358. package/aws-efs/lib/efs.generated.js +1 -1
  359. package/aws-eks/lib/alb-controller.js +1 -1
  360. package/aws-eks/lib/aws-auth.js +1 -1
  361. package/aws-eks/lib/cluster.js +1 -1
  362. package/aws-eks/lib/eks.generated.js +1 -1
  363. package/aws-eks/lib/fargate-cluster.js +1 -1
  364. package/aws-eks/lib/fargate-profile.js +1 -1
  365. package/aws-eks/lib/helm-chart.js +1 -1
  366. package/aws-eks/lib/k8s-manifest.js +1 -1
  367. package/aws-eks/lib/k8s-object-value.js +1 -1
  368. package/aws-eks/lib/k8s-patch.js +1 -1
  369. package/aws-eks/lib/kubectl-provider.js +1 -1
  370. package/aws-eks/lib/managed-nodegroup.js +1 -1
  371. package/aws-eks/lib/oidc-provider.js +1 -1
  372. package/aws-eks/lib/service-account.js +1 -1
  373. package/aws-elasticache/lib/elasticache.generated.js +1 -1
  374. package/aws-elasticbeanstalk/lib/elasticbeanstalk.generated.js +1 -1
  375. package/aws-elasticloadbalancing/lib/elasticloadbalancing.generated.js +1 -1
  376. package/aws-elasticloadbalancing/lib/load-balancer.js +1 -1
  377. package/aws-elasticloadbalancingv2/lib/alb/application-listener-action.js +1 -1
  378. package/aws-elasticloadbalancingv2/lib/alb/application-listener-certificate.js +1 -1
  379. package/aws-elasticloadbalancingv2/lib/alb/application-listener-rule.js +1 -1
  380. package/aws-elasticloadbalancingv2/lib/alb/application-listener.js +1 -1
  381. package/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.js +1 -1
  382. package/aws-elasticloadbalancingv2/lib/alb/application-target-group.js +1 -1
  383. package/aws-elasticloadbalancingv2/lib/alb/conditions.js +1 -1
  384. package/aws-elasticloadbalancingv2/lib/elasticloadbalancingv2.generated.js +1 -1
  385. package/aws-elasticloadbalancingv2/lib/nlb/network-listener-action.js +1 -1
  386. package/aws-elasticloadbalancingv2/lib/nlb/network-listener.js +1 -1
  387. package/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.js +1 -1
  388. package/aws-elasticloadbalancingv2/lib/nlb/network-target-group.js +1 -1
  389. package/aws-elasticloadbalancingv2/lib/shared/base-listener.js +1 -1
  390. package/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.js +1 -1
  391. package/aws-elasticloadbalancingv2/lib/shared/base-target-group.js +1 -1
  392. package/aws-elasticloadbalancingv2/lib/shared/listener-certificate.js +1 -1
  393. package/aws-elasticloadbalancingv2/lib/shared/load-balancer-targets.js +1 -1
  394. package/aws-elasticloadbalancingv2-actions/lib/cognito-action.js +1 -1
  395. package/aws-elasticloadbalancingv2-targets/lib/alb-target.js +1 -1
  396. package/aws-elasticloadbalancingv2-targets/lib/instance-target.js +1 -1
  397. package/aws-elasticloadbalancingv2-targets/lib/ip-target.js +1 -1
  398. package/aws-elasticloadbalancingv2-targets/lib/lambda-target.js +1 -1
  399. package/aws-elasticsearch/lib/domain.js +1 -1
  400. package/aws-elasticsearch/lib/elasticsearch.generated.js +1 -1
  401. package/aws-emr/lib/emr.generated.js +1 -1
  402. package/aws-emrcontainers/lib/emrcontainers.generated.js +1 -1
  403. package/aws-emrserverless/lib/emrserverless.generated.js +1 -1
  404. package/aws-events/lib/api-destination.js +1 -1
  405. package/aws-events/lib/archive.js +1 -1
  406. package/aws-events/lib/connection.js +1 -1
  407. package/aws-events/lib/event-bus.js +1 -1
  408. package/aws-events/lib/event-pattern.js +1 -1
  409. package/aws-events/lib/events.generated.js +1 -1
  410. package/aws-events/lib/input.js +2 -2
  411. package/aws-events/lib/rule.js +1 -1
  412. package/aws-events/lib/schedule.js +1 -1
  413. package/aws-events-targets/lib/api-destination.js +1 -1
  414. package/aws-events-targets/lib/api-gateway.js +1 -1
  415. package/aws-events-targets/lib/aws-api.js +1 -1
  416. package/aws-events-targets/lib/batch.js +1 -1
  417. package/aws-events-targets/lib/codebuild.js +1 -1
  418. package/aws-events-targets/lib/codepipeline.js +1 -1
  419. package/aws-events-targets/lib/ecs-task.js +1 -1
  420. package/aws-events-targets/lib/event-bus.js +1 -1
  421. package/aws-events-targets/lib/kinesis-firehose-stream.js +1 -1
  422. package/aws-events-targets/lib/kinesis-stream.js +1 -1
  423. package/aws-events-targets/lib/lambda.js +1 -1
  424. package/aws-events-targets/lib/log-group.js +2 -2
  425. package/aws-events-targets/lib/sns.js +1 -1
  426. package/aws-events-targets/lib/sqs.js +1 -1
  427. package/aws-events-targets/lib/state-machine.js +1 -1
  428. package/aws-eventschemas/lib/eventschemas.generated.js +1 -1
  429. package/aws-evidently/lib/evidently.generated.js +1 -1
  430. package/aws-finspace/lib/finspace.generated.js +1 -1
  431. package/aws-fis/lib/fis.generated.js +1 -1
  432. package/aws-fms/lib/fms.generated.js +1 -1
  433. package/aws-forecast/lib/forecast.generated.js +1 -1
  434. package/aws-frauddetector/lib/frauddetector.generated.js +1 -1
  435. package/aws-fsx/lib/file-system.js +1 -1
  436. package/aws-fsx/lib/fsx.generated.js +1 -1
  437. package/aws-fsx/lib/lustre-file-system.js +1 -1
  438. package/aws-fsx/lib/maintenance-time.js +1 -1
  439. package/aws-gamelift/lib/gamelift.generated.js +1 -1
  440. package/aws-globalaccelerator/lib/accelerator.js +1 -1
  441. package/aws-globalaccelerator/lib/endpoint-group.js +1 -1
  442. package/aws-globalaccelerator/lib/endpoint.js +1 -1
  443. package/aws-globalaccelerator/lib/globalaccelerator.generated.js +1 -1
  444. package/aws-globalaccelerator/lib/listener.js +1 -1
  445. package/aws-globalaccelerator-endpoints/lib/alb.js +1 -1
  446. package/aws-globalaccelerator-endpoints/lib/eip.js +1 -1
  447. package/aws-globalaccelerator-endpoints/lib/instance.js +1 -1
  448. package/aws-globalaccelerator-endpoints/lib/nlb.js +1 -1
  449. package/aws-glue/lib/glue.generated.js +1 -1
  450. package/aws-greengrass/lib/greengrass.generated.js +1 -1
  451. package/aws-greengrassv2/lib/greengrassv2.generated.js +1 -1
  452. package/aws-groundstation/lib/groundstation.generated.js +1 -1
  453. package/aws-guardduty/lib/guardduty.generated.js +1 -1
  454. package/aws-healthlake/lib/healthlake.generated.js +1 -1
  455. package/aws-iam/lib/access-key.js +1 -1
  456. package/aws-iam/lib/grant.js +1 -1
  457. package/aws-iam/lib/group.js +1 -1
  458. package/aws-iam/lib/iam.generated.js +1 -1
  459. package/aws-iam/lib/lazy-role.js +1 -1
  460. package/aws-iam/lib/managed-policy.js +1 -1
  461. package/aws-iam/lib/oidc-provider.js +1 -1
  462. package/aws-iam/lib/permissions-boundary.js +1 -1
  463. package/aws-iam/lib/policy-document.js +1 -1
  464. package/aws-iam/lib/policy-statement.js +1 -1
  465. package/aws-iam/lib/policy.js +1 -1
  466. package/aws-iam/lib/principals.js +1 -1
  467. package/aws-iam/lib/role.js +1 -1
  468. package/aws-iam/lib/saml-provider.js +1 -1
  469. package/aws-iam/lib/unknown-principal.js +1 -1
  470. package/aws-iam/lib/user.js +1 -1
  471. package/aws-identitystore/lib/identitystore.generated.js +1 -1
  472. package/aws-imagebuilder/lib/imagebuilder.generated.js +1 -1
  473. package/aws-inspector/lib/inspector.generated.js +1 -1
  474. package/aws-inspectorv2/lib/inspectorv2.generated.js +1 -1
  475. package/aws-iot/lib/iot.generated.js +1 -1
  476. package/aws-iot1click/lib/iot1click.generated.js +1 -1
  477. package/aws-iotanalytics/lib/iotanalytics.generated.js +1 -1
  478. package/aws-iotcoredeviceadvisor/lib/iotcoredeviceadvisor.generated.js +1 -1
  479. package/aws-iotevents/lib/iotevents.generated.js +1 -1
  480. package/aws-iotfleethub/lib/iotfleethub.generated.js +1 -1
  481. package/aws-iotfleetwise/lib/iotfleetwise.generated.js +1 -1
  482. package/aws-iotsitewise/lib/iotsitewise.generated.js +1 -1
  483. package/aws-iotthingsgraph/lib/iotthingsgraph.generated.js +1 -1
  484. package/aws-iottwinmaker/lib/iottwinmaker.generated.js +1 -1
  485. package/aws-iotwireless/lib/iotwireless.generated.js +1 -1
  486. package/aws-ivs/lib/ivs.generated.js +1 -1
  487. package/aws-kafkaconnect/lib/kafkaconnect.generated.js +1 -1
  488. package/aws-kendra/lib/kendra.generated.js +1 -1
  489. package/aws-kinesis/lib/kinesis.generated.js +1 -1
  490. package/aws-kinesis/lib/stream.js +1 -1
  491. package/aws-kinesisanalytics/lib/kinesisanalytics.generated.js +1 -1
  492. package/aws-kinesisanalytics/lib/kinesisanalyticsv2.generated.js +1 -1
  493. package/aws-kinesisanalyticsv2/lib/kinesisanalyticsv2.generated.js +1 -1
  494. package/aws-kinesisfirehose/lib/kinesisfirehose.generated.js +1 -1
  495. package/aws-kinesisvideo/lib/kinesisvideo.generated.js +1 -1
  496. package/aws-kms/lib/alias.js +1 -1
  497. package/aws-kms/lib/key.js +1 -1
  498. package/aws-kms/lib/kms.generated.js +1 -1
  499. package/aws-kms/lib/via-service-principal.js +1 -1
  500. package/aws-lakeformation/lib/lakeformation.generated.js +1 -1
  501. package/aws-lambda/lib/alias.js +1 -1
  502. package/aws-lambda/lib/architecture.js +1 -1
  503. package/aws-lambda/lib/code-signing-config.js +1 -1
  504. package/aws-lambda/lib/code.js +1 -1
  505. package/aws-lambda/lib/event-invoke-config.js +1 -1
  506. package/aws-lambda/lib/event-source-filter.js +1 -1
  507. package/aws-lambda/lib/event-source-mapping.js +1 -1
  508. package/aws-lambda/lib/filesystem.js +1 -1
  509. package/aws-lambda/lib/function-base.js +1 -1
  510. package/aws-lambda/lib/function-url.js +1 -1
  511. package/aws-lambda/lib/function.js +1 -1
  512. package/aws-lambda/lib/handler.js +1 -1
  513. package/aws-lambda/lib/image-function.js +1 -1
  514. package/aws-lambda/lib/lambda-insights.js +1 -1
  515. package/aws-lambda/lib/lambda-version.js +1 -1
  516. package/aws-lambda/lib/lambda.generated.js +1 -1
  517. package/aws-lambda/lib/layers.js +1 -1
  518. package/aws-lambda/lib/log-retention.js +1 -1
  519. package/aws-lambda/lib/runtime.js +1 -1
  520. package/aws-lambda/lib/singleton-lambda.js +1 -1
  521. package/aws-lambda-destinations/lib/event-bridge.js +1 -1
  522. package/aws-lambda-destinations/lib/lambda.js +1 -1
  523. package/aws-lambda-destinations/lib/sns.js +1 -1
  524. package/aws-lambda-destinations/lib/sqs.js +1 -1
  525. package/aws-lambda-event-sources/lib/api.js +1 -1
  526. package/aws-lambda-event-sources/lib/dynamodb.js +1 -1
  527. package/aws-lambda-event-sources/lib/kafka.js +1 -1
  528. package/aws-lambda-event-sources/lib/kinesis.js +1 -1
  529. package/aws-lambda-event-sources/lib/s3.js +1 -1
  530. package/aws-lambda-event-sources/lib/sns-dlq.js +1 -1
  531. package/aws-lambda-event-sources/lib/sns.js +1 -1
  532. package/aws-lambda-event-sources/lib/sqs-dlq.js +1 -1
  533. package/aws-lambda-event-sources/lib/sqs.js +1 -1
  534. package/aws-lambda-event-sources/lib/stream.js +1 -1
  535. package/aws-lambda-nodejs/lib/function.js +1 -1
  536. package/aws-lex/lib/lex.generated.js +1 -1
  537. package/aws-licensemanager/lib/licensemanager.generated.js +1 -1
  538. package/aws-lightsail/lib/lightsail.generated.js +1 -1
  539. package/aws-location/lib/location.generated.js +1 -1
  540. package/aws-logs/lib/cross-account-destination.js +1 -1
  541. package/aws-logs/lib/log-group.js +1 -1
  542. package/aws-logs/lib/log-retention.js +1 -1
  543. package/aws-logs/lib/log-stream.js +1 -1
  544. package/aws-logs/lib/logs.generated.js +1 -1
  545. package/aws-logs/lib/metric-filter.js +1 -1
  546. package/aws-logs/lib/pattern.js +1 -1
  547. package/aws-logs/lib/policy.js +1 -1
  548. package/aws-logs/lib/query-definition.js +1 -1
  549. package/aws-logs/lib/subscription-filter.js +1 -1
  550. package/aws-logs-destinations/lib/kinesis.js +1 -1
  551. package/aws-logs-destinations/lib/lambda.js +1 -1
  552. package/aws-lookoutequipment/lib/lookoutequipment.generated.js +1 -1
  553. package/aws-lookoutmetrics/lib/lookoutmetrics.generated.js +1 -1
  554. package/aws-lookoutvision/lib/lookoutvision.generated.js +1 -1
  555. package/aws-m2/lib/m2.generated.js +1 -1
  556. package/aws-macie/lib/macie.generated.js +1 -1
  557. package/aws-managedblockchain/lib/managedblockchain.generated.js +1 -1
  558. package/aws-mediaconnect/lib/mediaconnect.generated.js +1 -1
  559. package/aws-mediaconvert/lib/mediaconvert.generated.js +1 -1
  560. package/aws-medialive/lib/medialive.generated.js +1 -1
  561. package/aws-mediapackage/lib/mediapackage.generated.js +1 -1
  562. package/aws-mediastore/lib/mediastore.generated.js +1 -1
  563. package/aws-mediatailor/lib/mediatailor.generated.js +1 -1
  564. package/aws-memorydb/lib/memorydb.generated.js +1 -1
  565. package/aws-msk/lib/msk.generated.js +1 -1
  566. package/aws-mwaa/lib/mwaa.generated.js +1 -1
  567. package/aws-neptune/lib/neptune.generated.js +1 -1
  568. package/aws-networkfirewall/lib/networkfirewall.generated.js +1 -1
  569. package/aws-networkmanager/lib/networkmanager.generated.js +1 -1
  570. package/aws-nimblestudio/lib/nimblestudio.generated.js +1 -1
  571. package/aws-opensearchservice/lib/domain.js +1 -1
  572. package/aws-opensearchservice/lib/opensearchservice.generated.js +1 -1
  573. package/aws-opensearchservice/lib/version.js +1 -1
  574. package/aws-opsworks/lib/opsworks.generated.js +1 -1
  575. package/aws-opsworkscm/lib/opsworkscm.generated.js +1 -1
  576. package/aws-organizations/lib/organizations.generated.js +1 -1
  577. package/aws-panorama/lib/panorama.generated.js +1 -1
  578. package/aws-personalize/lib/personalize.generated.js +1 -1
  579. package/aws-pinpoint/lib/pinpoint.generated.js +1 -1
  580. package/aws-pinpointemail/lib/pinpointemail.generated.js +1 -1
  581. package/aws-qldb/lib/qldb.generated.js +1 -1
  582. package/aws-quicksight/lib/quicksight.generated.js +1 -1
  583. package/aws-ram/lib/ram.generated.js +1 -1
  584. package/aws-rds/lib/cluster-engine.js +1 -1
  585. package/aws-rds/lib/cluster.js +1 -1
  586. package/aws-rds/lib/database-secret.js +1 -1
  587. package/aws-rds/lib/endpoint.js +1 -1
  588. package/aws-rds/lib/instance-engine.js +1 -1
  589. package/aws-rds/lib/instance.js +1 -1
  590. package/aws-rds/lib/option-group.js +1 -1
  591. package/aws-rds/lib/parameter-group.js +1 -1
  592. package/aws-rds/lib/props.js +1 -1
  593. package/aws-rds/lib/proxy.js +1 -1
  594. package/aws-rds/lib/rds.generated.js +1 -1
  595. package/aws-rds/lib/serverless-cluster.js +1 -1
  596. package/aws-rds/lib/subnet-group.js +1 -1
  597. package/aws-redshift/lib/redshift.generated.js +1 -1
  598. package/aws-redshiftserverless/lib/redshiftserverless.generated.js +1 -1
  599. package/aws-refactorspaces/lib/refactorspaces.generated.js +1 -1
  600. package/aws-rekognition/lib/rekognition.generated.js +1 -1
  601. package/aws-resiliencehub/lib/resiliencehub.generated.js +1 -1
  602. package/aws-resourceexplorer2/lib/resourceexplorer2.generated.js +1 -1
  603. package/aws-resourcegroups/lib/resourcegroups.generated.js +1 -1
  604. package/aws-robomaker/lib/robomaker.generated.js +1 -1
  605. package/aws-rolesanywhere/lib/rolesanywhere.generated.js +1 -1
  606. package/aws-route53/lib/hosted-zone.js +1 -1
  607. package/aws-route53/lib/record-set.js +1 -1
  608. package/aws-route53/lib/route53.generated.js +1 -1
  609. package/aws-route53/lib/vpc-endpoint-service-domain-name.js +1 -1
  610. package/aws-route53-patterns/lib/website-redirect.js +1 -1
  611. package/aws-route53-targets/lib/api-gateway-domain-name.js +1 -1
  612. package/aws-route53-targets/lib/api-gatewayv2-domain-name.js +1 -1
  613. package/aws-route53-targets/lib/bucket-website-target.js +1 -1
  614. package/aws-route53-targets/lib/classic-load-balancer-target.js +1 -1
  615. package/aws-route53-targets/lib/cloudfront-target.js +1 -1
  616. package/aws-route53-targets/lib/elastic-beanstalk-environment-target.js +1 -1
  617. package/aws-route53-targets/lib/global-accelerator-target.js +1 -1
  618. package/aws-route53-targets/lib/interface-vpc-endpoint-target.js +1 -1
  619. package/aws-route53-targets/lib/load-balancer-target.js +1 -1
  620. package/aws-route53-targets/lib/route53-record.js +1 -1
  621. package/aws-route53-targets/lib/userpool-domain.js +1 -1
  622. package/aws-route53recoverycontrol/lib/route53recoverycontrol.generated.js +1 -1
  623. package/aws-route53recoveryreadiness/lib/route53recoveryreadiness.generated.js +1 -1
  624. package/aws-route53resolver/lib/route53resolver.generated.js +1 -1
  625. package/aws-rum/lib/rum.generated.js +1 -1
  626. package/aws-s3/lib/bucket-policy.js +1 -1
  627. package/aws-s3/lib/bucket.js +1 -1
  628. package/aws-s3/lib/rule.js +1 -1
  629. package/aws-s3/lib/s3.generated.js +1 -1
  630. package/aws-s3-assets/lib/asset.js +1 -1
  631. package/aws-s3-deployment/lib/bucket-deployment.js +1 -1
  632. package/aws-s3-deployment/lib/source.js +1 -1
  633. package/aws-s3-notifications/lib/lambda.js +1 -1
  634. package/aws-s3-notifications/lib/sns.js +1 -1
  635. package/aws-s3-notifications/lib/sqs.js +1 -1
  636. package/aws-s3objectlambda/lib/s3objectlambda.generated.js +1 -1
  637. package/aws-s3outposts/lib/s3outposts.generated.js +1 -1
  638. package/aws-sagemaker/lib/sagemaker.generated.js +1 -1
  639. package/aws-sam/lib/sam.generated.js +1 -1
  640. package/aws-scheduler/lib/scheduler.generated.js +1 -1
  641. package/aws-sdb/lib/sdb.generated.js +1 -1
  642. package/aws-secretsmanager/lib/policy.js +1 -1
  643. package/aws-secretsmanager/lib/rotation-schedule.js +1 -1
  644. package/aws-secretsmanager/lib/secret-rotation.js +1 -1
  645. package/aws-secretsmanager/lib/secret.js +1 -1
  646. package/aws-secretsmanager/lib/secretsmanager.generated.js +1 -1
  647. package/aws-securityhub/lib/securityhub.generated.js +1 -1
  648. package/aws-servicecatalog/lib/cloudformation-template.js +1 -1
  649. package/aws-servicecatalog/lib/portfolio.js +1 -1
  650. package/aws-servicecatalog/lib/product-stack-history.js +1 -1
  651. package/aws-servicecatalog/lib/product-stack.js +1 -1
  652. package/aws-servicecatalog/lib/product.js +1 -1
  653. package/aws-servicecatalog/lib/servicecatalog.generated.js +1 -1
  654. package/aws-servicecatalog/lib/tag-options.js +1 -1
  655. package/aws-servicecatalogappregistry/lib/servicecatalogappregistry.generated.js +1 -1
  656. package/aws-servicediscovery/lib/alias-target-instance.js +1 -1
  657. package/aws-servicediscovery/lib/cname-instance.js +1 -1
  658. package/aws-servicediscovery/lib/http-namespace.js +1 -1
  659. package/aws-servicediscovery/lib/instance.js +1 -1
  660. package/aws-servicediscovery/lib/ip-instance.js +1 -1
  661. package/aws-servicediscovery/lib/non-ip-instance.js +1 -1
  662. package/aws-servicediscovery/lib/private-dns-namespace.js +1 -1
  663. package/aws-servicediscovery/lib/public-dns-namespace.js +1 -1
  664. package/aws-servicediscovery/lib/service.js +1 -1
  665. package/aws-servicediscovery/lib/servicediscovery.generated.js +1 -1
  666. package/aws-ses/lib/configuration-set.js +1 -1
  667. package/aws-ses/lib/dedicated-ip-pool.js +1 -1
  668. package/aws-ses/lib/email-identity.js +1 -1
  669. package/aws-ses/lib/receipt-filter.js +1 -1
  670. package/aws-ses/lib/receipt-rule-set.js +1 -1
  671. package/aws-ses/lib/receipt-rule.js +1 -1
  672. package/aws-ses/lib/ses.generated.js +1 -1
  673. package/aws-ses-actions/lib/add-header.js +1 -1
  674. package/aws-ses-actions/lib/bounce.js +1 -1
  675. package/aws-ses-actions/lib/lambda.js +1 -1
  676. package/aws-ses-actions/lib/s3.js +1 -1
  677. package/aws-ses-actions/lib/sns.js +1 -1
  678. package/aws-ses-actions/lib/stop.js +1 -1
  679. package/aws-signer/lib/signer.generated.js +1 -1
  680. package/aws-signer/lib/signing-profile.js +1 -1
  681. package/aws-sns/lib/policy.js +1 -1
  682. package/aws-sns/lib/sns.generated.js +1 -1
  683. package/aws-sns/lib/subscription-filter.js +1 -1
  684. package/aws-sns/lib/subscription.js +1 -1
  685. package/aws-sns/lib/topic-base.js +1 -1
  686. package/aws-sns/lib/topic.js +1 -1
  687. package/aws-sns-subscriptions/lib/email.js +1 -1
  688. package/aws-sns-subscriptions/lib/lambda.js +1 -1
  689. package/aws-sns-subscriptions/lib/sms.js +1 -1
  690. package/aws-sns-subscriptions/lib/sqs.js +1 -1
  691. package/aws-sns-subscriptions/lib/url.js +1 -1
  692. package/aws-sqs/lib/policy.js +1 -1
  693. package/aws-sqs/lib/queue-base.js +1 -1
  694. package/aws-sqs/lib/queue.js +1 -1
  695. package/aws-sqs/lib/sqs.generated.js +1 -1
  696. package/aws-ssm/lib/parameter.js +1 -1
  697. package/aws-ssm/lib/ssm.generated.js +1 -1
  698. package/aws-ssmcontacts/lib/ssmcontacts.generated.js +1 -1
  699. package/aws-ssmincidents/lib/ssmincidents.generated.js +1 -1
  700. package/aws-sso/lib/sso.generated.js +1 -1
  701. package/aws-stepfunctions/lib/activity.js +1 -1
  702. package/aws-stepfunctions/lib/chain.js +1 -1
  703. package/aws-stepfunctions/lib/condition.js +1 -1
  704. package/aws-stepfunctions/lib/fields.js +1 -1
  705. package/aws-stepfunctions/lib/input.js +1 -1
  706. package/aws-stepfunctions/lib/state-graph.js +1 -1
  707. package/aws-stepfunctions/lib/state-machine-fragment.js +1 -1
  708. package/aws-stepfunctions/lib/state-machine.js +1 -1
  709. package/aws-stepfunctions/lib/state-transition-metrics.js +1 -1
  710. package/aws-stepfunctions/lib/states/choice.js +1 -1
  711. package/aws-stepfunctions/lib/states/custom-state.js +1 -1
  712. package/aws-stepfunctions/lib/states/fail.js +1 -1
  713. package/aws-stepfunctions/lib/states/map.js +1 -1
  714. package/aws-stepfunctions/lib/states/parallel.js +1 -1
  715. package/aws-stepfunctions/lib/states/pass.js +1 -1
  716. package/aws-stepfunctions/lib/states/state.js +1 -1
  717. package/aws-stepfunctions/lib/states/succeed.js +1 -1
  718. package/aws-stepfunctions/lib/states/task-base.js +1 -1
  719. package/aws-stepfunctions/lib/states/task.js +1 -1
  720. package/aws-stepfunctions/lib/states/wait.js +1 -1
  721. package/aws-stepfunctions/lib/stepfunctions.generated.js +1 -1
  722. package/aws-stepfunctions/lib/types.js +1 -1
  723. package/aws-stepfunctions-tasks/lib/apigateway/call-http-api.js +1 -1
  724. package/aws-stepfunctions-tasks/lib/apigateway/call-rest-api.js +1 -1
  725. package/aws-stepfunctions-tasks/lib/athena/get-query-execution.js +1 -1
  726. package/aws-stepfunctions-tasks/lib/athena/get-query-results.js +1 -1
  727. package/aws-stepfunctions-tasks/lib/athena/start-query-execution.js +1 -1
  728. package/aws-stepfunctions-tasks/lib/athena/stop-query-execution.js +1 -1
  729. package/aws-stepfunctions-tasks/lib/aws-sdk/call-aws-service.js +1 -1
  730. package/aws-stepfunctions-tasks/lib/batch/run-batch-job.js +1 -1
  731. package/aws-stepfunctions-tasks/lib/batch/submit-job.js +1 -1
  732. package/aws-stepfunctions-tasks/lib/codebuild/start-build.js +1 -1
  733. package/aws-stepfunctions-tasks/lib/databrew/start-job-run.js +1 -1
  734. package/aws-stepfunctions-tasks/lib/dynamodb/delete-item.js +1 -1
  735. package/aws-stepfunctions-tasks/lib/dynamodb/get-item.js +1 -1
  736. package/aws-stepfunctions-tasks/lib/dynamodb/put-item.js +1 -1
  737. package/aws-stepfunctions-tasks/lib/dynamodb/shared-types.js +1 -1
  738. package/aws-stepfunctions-tasks/lib/dynamodb/update-item.js +1 -1
  739. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-ec2-task.js +1 -1
  740. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-fargate-task.js +1 -1
  741. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-task-base.js +1 -1
  742. package/aws-stepfunctions-tasks/lib/ecs/run-task.js +1 -1
  743. package/aws-stepfunctions-tasks/lib/eks/call.js +1 -1
  744. package/aws-stepfunctions-tasks/lib/emr/emr-add-step.js +1 -1
  745. package/aws-stepfunctions-tasks/lib/emr/emr-cancel-step.js +1 -1
  746. package/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.js +1 -1
  747. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-fleet-by-name.js +1 -1
  748. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-group-by-name.js +1 -1
  749. package/aws-stepfunctions-tasks/lib/emr/emr-set-cluster-termination-protection.js +1 -1
  750. package/aws-stepfunctions-tasks/lib/emr/emr-terminate-cluster.js +1 -1
  751. package/aws-stepfunctions-tasks/lib/emrcontainers/create-virtual-cluster.js +1 -1
  752. package/aws-stepfunctions-tasks/lib/emrcontainers/delete-virtual-cluster.js +1 -1
  753. package/aws-stepfunctions-tasks/lib/emrcontainers/start-job-run.js +1 -1
  754. package/aws-stepfunctions-tasks/lib/evaluate-expression.js +1 -1
  755. package/aws-stepfunctions-tasks/lib/eventbridge/put-events.js +1 -1
  756. package/aws-stepfunctions-tasks/lib/glue/run-glue-job-task.js +1 -1
  757. package/aws-stepfunctions-tasks/lib/glue/start-job-run.js +1 -1
  758. package/aws-stepfunctions-tasks/lib/invoke-activity.js +1 -1
  759. package/aws-stepfunctions-tasks/lib/lambda/invoke-function.js +1 -1
  760. package/aws-stepfunctions-tasks/lib/lambda/invoke.js +1 -1
  761. package/aws-stepfunctions-tasks/lib/lambda/run-lambda-task.js +1 -1
  762. package/aws-stepfunctions-tasks/lib/sagemaker/base-types.js +1 -1
  763. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint-config.js +1 -1
  764. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint.js +1 -1
  765. package/aws-stepfunctions-tasks/lib/sagemaker/create-model.js +1 -1
  766. package/aws-stepfunctions-tasks/lib/sagemaker/create-training-job.js +1 -1
  767. package/aws-stepfunctions-tasks/lib/sagemaker/create-transform-job.js +1 -1
  768. package/aws-stepfunctions-tasks/lib/sagemaker/update-endpoint.js +1 -1
  769. package/aws-stepfunctions-tasks/lib/sns/publish-to-topic.js +1 -1
  770. package/aws-stepfunctions-tasks/lib/sns/publish.js +1 -1
  771. package/aws-stepfunctions-tasks/lib/sqs/send-message.js +1 -1
  772. package/aws-stepfunctions-tasks/lib/sqs/send-to-queue.js +1 -1
  773. package/aws-stepfunctions-tasks/lib/start-execution.js +1 -1
  774. package/aws-stepfunctions-tasks/lib/stepfunctions/invoke-activity.js +1 -1
  775. package/aws-stepfunctions-tasks/lib/stepfunctions/start-execution.js +1 -1
  776. package/aws-supportapp/lib/supportapp.generated.js +1 -1
  777. package/aws-synthetics/lib/synthetics.generated.js +1 -1
  778. package/aws-timestream/lib/timestream.generated.js +1 -1
  779. package/aws-transfer/lib/transfer.generated.js +1 -1
  780. package/aws-voiceid/lib/voiceid.generated.js +1 -1
  781. package/aws-waf/lib/waf.generated.js +1 -1
  782. package/aws-wafregional/lib/wafregional.generated.js +1 -1
  783. package/aws-wafv2/lib/wafv2.generated.js +1 -1
  784. package/aws-wisdom/lib/wisdom.generated.js +1 -1
  785. package/aws-workspaces/lib/workspaces.generated.js +1 -1
  786. package/aws-xray/lib/xray.generated.js +1 -1
  787. package/cloud-assembly-schema/lib/manifest.js +1 -1
  788. package/cloudformation-include/lib/cfn-include.js +1 -1
  789. package/core/lib/annotations.js +1 -1
  790. package/core/lib/app.js +1 -1
  791. package/core/lib/arn.js +1 -1
  792. package/core/lib/aspect.js +1 -1
  793. package/core/lib/asset-staging.js +1 -1
  794. package/core/lib/bundling.js +1 -1
  795. package/core/lib/cfn-codedeploy-blue-green-hook.js +1 -1
  796. package/core/lib/cfn-condition.js +1 -1
  797. package/core/lib/cfn-dynamic-reference.js +1 -1
  798. package/core/lib/cfn-element.js +1 -1
  799. package/core/lib/cfn-fn.js +1 -1
  800. package/core/lib/cfn-hook.js +1 -1
  801. package/core/lib/cfn-include.js +1 -1
  802. package/core/lib/cfn-json.js +1 -1
  803. package/core/lib/cfn-mapping.js +1 -1
  804. package/core/lib/cfn-output.js +1 -1
  805. package/core/lib/cfn-parameter.js +1 -1
  806. package/core/lib/cfn-pseudo.js +1 -1
  807. package/core/lib/cfn-resource.js +1 -1
  808. package/core/lib/cfn-rule.js +1 -1
  809. package/core/lib/cloudformation.generated.js +1 -1
  810. package/core/lib/context-provider.js +1 -1
  811. package/core/lib/custom-resource-provider/custom-resource-provider.js +1 -1
  812. package/core/lib/custom-resource.js +1 -1
  813. package/core/lib/duration.js +1 -1
  814. package/core/lib/expiration.js +1 -1
  815. package/core/lib/feature-flags.js +1 -1
  816. package/core/lib/fs/ignore.js +1 -1
  817. package/core/lib/fs/index.js +1 -1
  818. package/core/lib/lazy.js +1 -1
  819. package/core/lib/names.js +1 -1
  820. package/core/lib/nested-stack.js +1 -1
  821. package/core/lib/physical-name.js +1 -1
  822. package/core/lib/private/intrinsic.js +1 -1
  823. package/core/lib/reference.js +1 -1
  824. package/core/lib/resolvable.js +2 -2
  825. package/core/lib/resource.js +1 -1
  826. package/core/lib/runtime.js +2 -2
  827. package/core/lib/secret-value.js +1 -1
  828. package/core/lib/size.js +1 -1
  829. package/core/lib/stack-synthesizers/asset-manifest-builder.js +1 -1
  830. package/core/lib/stack-synthesizers/bootstrapless-synthesizer.js +1 -1
  831. package/core/lib/stack-synthesizers/cli-credentials-synthesizer.js +1 -1
  832. package/core/lib/stack-synthesizers/default-synthesizer.js +1 -1
  833. package/core/lib/stack-synthesizers/legacy.js +1 -1
  834. package/core/lib/stack-synthesizers/nested.js +1 -1
  835. package/core/lib/stack-synthesizers/stack-synthesizer.js +1 -1
  836. package/core/lib/stack.js +1 -1
  837. package/core/lib/stage.js +1 -1
  838. package/core/lib/string-fragments.js +1 -1
  839. package/core/lib/tag-aspect.js +1 -1
  840. package/core/lib/tag-manager.js +1 -1
  841. package/core/lib/token.js +1 -1
  842. package/core/lib/tree.js +1 -1
  843. package/custom-resources/lib/aws-custom-resource/aws-custom-resource.js +1 -1
  844. package/custom-resources/lib/provider-framework/provider.js +1 -1
  845. package/cx-api/lib/artifacts/asset-manifest-artifact.js +1 -1
  846. package/cx-api/lib/artifacts/cloudformation-artifact.js +1 -1
  847. package/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js +1 -1
  848. package/cx-api/lib/artifacts/tree-cloud-artifact.js +1 -1
  849. package/cx-api/lib/cloud-artifact.js +1 -1
  850. package/cx-api/lib/cloud-assembly.js +1 -1
  851. package/cx-api/lib/environment.js +1 -1
  852. package/cx-api/lib/placeholders.js +1 -1
  853. package/lambda-layer-awscli/lib/awscli-layer.js +1 -1
  854. package/lambda-layer-kubectl/lib/kubectl-layer.js +1 -1
  855. package/lambda-layer-node-proxy-agent/lib/node-proxy-agent-layer.js +1 -1
  856. package/package.json +253 -253
  857. package/pipelines/lib/blueprint/file-set.js +1 -1
  858. package/pipelines/lib/blueprint/manual-approval.js +1 -1
  859. package/pipelines/lib/blueprint/shell-step.js +1 -1
  860. package/pipelines/lib/blueprint/stack-deployment.js +1 -1
  861. package/pipelines/lib/blueprint/stage-deployment.js +1 -1
  862. package/pipelines/lib/blueprint/step.js +1 -1
  863. package/pipelines/lib/blueprint/wave.js +1 -1
  864. package/pipelines/lib/codepipeline/artifact-map.js +1 -1
  865. package/pipelines/lib/codepipeline/codebuild-step.js +1 -1
  866. package/pipelines/lib/codepipeline/codepipeline-source.js +1 -1
  867. package/pipelines/lib/codepipeline/codepipeline.js +1 -1
  868. package/pipelines/lib/codepipeline/confirm-permissions-broadening.js +1 -1
  869. package/pipelines/lib/docker-credentials.js +1 -1
  870. package/pipelines/lib/legacy/actions/deploy-cdk-stack-action.js +1 -1
  871. package/pipelines/lib/legacy/actions/publish-assets-action.js +1 -1
  872. package/pipelines/lib/legacy/actions/update-pipeline-action.js +1 -1
  873. package/pipelines/lib/legacy/pipeline.js +1 -1
  874. package/pipelines/lib/legacy/stage.js +1 -1
  875. package/pipelines/lib/legacy/synths/simple-synth-action.js +1 -1
  876. package/pipelines/lib/legacy/validation/shell-script-action.js +1 -1
  877. package/pipelines/lib/main/pipeline-base.js +1 -1
  878. package/region-info/lib/built-ins.generated.d.ts +1 -1
  879. package/region-info/lib/default.js +1 -1
  880. package/region-info/lib/fact.js +1 -1
  881. package/region-info/lib/region-info.js +1 -1
  882. package/triggers/lib/trigger-function.js +1 -1
  883. package/triggers/lib/trigger.js +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c,_d,_e;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnRepository=exports.CfnReplicationConfiguration=exports.CfnRegistryPolicy=exports.CfnPullThroughCacheRule=exports.CfnPublicRepository=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnPublicRepositoryPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("repositoryCatalogData",cdk.validateObject)(properties.repositoryCatalogData)),errors.collect(cdk.propertyValidator("repositoryName",cdk.validateString)(properties.repositoryName)),errors.collect(cdk.propertyValidator("repositoryPolicyText",cdk.validateObject)(properties.repositoryPolicyText)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnPublicRepositoryProps"')}function cfnPublicRepositoryPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPublicRepositoryPropsValidator(properties).assertSuccess(),{RepositoryCatalogData:cdk.objectToCloudFormation(properties.repositoryCatalogData),RepositoryName:cdk.stringToCloudFormation(properties.repositoryName),RepositoryPolicyText:cdk.objectToCloudFormation(properties.repositoryPolicyText),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnPublicRepositoryPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("repositoryCatalogData","RepositoryCatalogData",properties.RepositoryCatalogData!=null?cfn_parse.FromCloudFormation.getAny(properties.RepositoryCatalogData):void 0),ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse.FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addPropertyResult("repositoryPolicyText","RepositoryPolicyText",properties.RepositoryPolicyText!=null?cfn_parse.FromCloudFormation.getAny(properties.RepositoryPolicyText):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPublicRepository extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnPublicRepository.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnPublicRepositoryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPublicRepository),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.repositoryCatalogData=props.repositoryCatalogData,this.repositoryName=props.repositoryName,this.repositoryPolicyText=props.repositoryPolicyText,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::ECR::PublicRepository",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPublicRepositoryPropsFromCloudFormation(resourceProperties),ret=new CfnPublicRepository(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPublicRepository.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{repositoryCatalogData:this.repositoryCatalogData,repositoryName:this.repositoryName,repositoryPolicyText:this.repositoryPolicyText,tags:this.tags.renderTags()}}renderProperties(props){return cfnPublicRepositoryPropsToCloudFormation(props)}}exports.CfnPublicRepository=CfnPublicRepository,_a=JSII_RTTI_SYMBOL_1,CfnPublicRepository[_a]={fqn:"aws-cdk-lib.aws_ecr.CfnPublicRepository",version:"2.51.0"},CfnPublicRepository.CFN_RESOURCE_TYPE_NAME="AWS::ECR::PublicRepository";function CfnPullThroughCacheRulePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ecrRepositoryPrefix",cdk.validateString)(properties.ecrRepositoryPrefix)),errors.collect(cdk.propertyValidator("upstreamRegistryUrl",cdk.validateString)(properties.upstreamRegistryUrl)),errors.wrap('supplied properties not correct for "CfnPullThroughCacheRuleProps"')}function cfnPullThroughCacheRulePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPullThroughCacheRulePropsValidator(properties).assertSuccess(),{EcrRepositoryPrefix:cdk.stringToCloudFormation(properties.ecrRepositoryPrefix),UpstreamRegistryUrl:cdk.stringToCloudFormation(properties.upstreamRegistryUrl)}):properties}function CfnPullThroughCacheRulePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ecrRepositoryPrefix","EcrRepositoryPrefix",properties.EcrRepositoryPrefix!=null?cfn_parse.FromCloudFormation.getString(properties.EcrRepositoryPrefix):void 0),ret.addPropertyResult("upstreamRegistryUrl","UpstreamRegistryUrl",properties.UpstreamRegistryUrl!=null?cfn_parse.FromCloudFormation.getString(properties.UpstreamRegistryUrl):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPullThroughCacheRule extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnPullThroughCacheRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnPullThroughCacheRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPullThroughCacheRule),error}this.ecrRepositoryPrefix=props.ecrRepositoryPrefix,this.upstreamRegistryUrl=props.upstreamRegistryUrl}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPullThroughCacheRulePropsFromCloudFormation(resourceProperties),ret=new CfnPullThroughCacheRule(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPullThroughCacheRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ecrRepositoryPrefix:this.ecrRepositoryPrefix,upstreamRegistryUrl:this.upstreamRegistryUrl}}renderProperties(props){return cfnPullThroughCacheRulePropsToCloudFormation(props)}}exports.CfnPullThroughCacheRule=CfnPullThroughCacheRule,_b=JSII_RTTI_SYMBOL_1,CfnPullThroughCacheRule[_b]={fqn:"aws-cdk-lib.aws_ecr.CfnPullThroughCacheRule",version:"2.51.0"},CfnPullThroughCacheRule.CFN_RESOURCE_TYPE_NAME="AWS::ECR::PullThroughCacheRule";function CfnRegistryPolicyPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("policyText",cdk.requiredValidator)(properties.policyText)),errors.collect(cdk.propertyValidator("policyText",cdk.validateObject)(properties.policyText)),errors.wrap('supplied properties not correct for "CfnRegistryPolicyProps"')}function cfnRegistryPolicyPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRegistryPolicyPropsValidator(properties).assertSuccess(),{PolicyText:cdk.objectToCloudFormation(properties.policyText)}):properties}function CfnRegistryPolicyPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("policyText","PolicyText",cfn_parse.FromCloudFormation.getAny(properties.PolicyText)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRegistryPolicy extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnRegistryPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnRegistryPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRegistryPolicy),error}cdk.requireProperty(props,"policyText",this),this.attrRegistryId=cdk.Token.asString(this.getAtt("RegistryId")),this.policyText=props.policyText}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRegistryPolicyPropsFromCloudFormation(resourceProperties),ret=new CfnRegistryPolicy(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRegistryPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{policyText:this.policyText}}renderProperties(props){return cfnRegistryPolicyPropsToCloudFormation(props)}}exports.CfnRegistryPolicy=CfnRegistryPolicy,_c=JSII_RTTI_SYMBOL_1,CfnRegistryPolicy[_c]={fqn:"aws-cdk-lib.aws_ecr.CfnRegistryPolicy",version:"2.51.0"},CfnRegistryPolicy.CFN_RESOURCE_TYPE_NAME="AWS::ECR::RegistryPolicy";function CfnReplicationConfigurationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("replicationConfiguration",cdk.requiredValidator)(properties.replicationConfiguration)),errors.collect(cdk.propertyValidator("replicationConfiguration",CfnReplicationConfiguration_ReplicationConfigurationPropertyValidator)(properties.replicationConfiguration)),errors.wrap('supplied properties not correct for "CfnReplicationConfigurationProps"')}function cfnReplicationConfigurationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfigurationPropsValidator(properties).assertSuccess(),{ReplicationConfiguration:cfnReplicationConfigurationReplicationConfigurationPropertyToCloudFormation(properties.replicationConfiguration)}):properties}function CfnReplicationConfigurationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("replicationConfiguration","ReplicationConfiguration",CfnReplicationConfigurationReplicationConfigurationPropertyFromCloudFormation(properties.ReplicationConfiguration)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnReplicationConfiguration extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnReplicationConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnReplicationConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnReplicationConfiguration),error}cdk.requireProperty(props,"replicationConfiguration",this),this.attrRegistryId=cdk.Token.asString(this.getAtt("RegistryId")),this.replicationConfiguration=props.replicationConfiguration}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnReplicationConfigurationPropsFromCloudFormation(resourceProperties),ret=new CfnReplicationConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnReplicationConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{replicationConfiguration:this.replicationConfiguration}}renderProperties(props){return cfnReplicationConfigurationPropsToCloudFormation(props)}}exports.CfnReplicationConfiguration=CfnReplicationConfiguration,_d=JSII_RTTI_SYMBOL_1,CfnReplicationConfiguration[_d]={fqn:"aws-cdk-lib.aws_ecr.CfnReplicationConfiguration",version:"2.51.0"},CfnReplicationConfiguration.CFN_RESOURCE_TYPE_NAME="AWS::ECR::ReplicationConfiguration";function CfnReplicationConfiguration_ReplicationConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("rules",cdk.requiredValidator)(properties.rules)),errors.collect(cdk.propertyValidator("rules",cdk.listValidator(CfnReplicationConfiguration_ReplicationRulePropertyValidator))(properties.rules)),errors.wrap('supplied properties not correct for "ReplicationConfigurationProperty"')}function cfnReplicationConfigurationReplicationConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_ReplicationConfigurationPropertyValidator(properties).assertSuccess(),{Rules:cdk.listMapper(cfnReplicationConfigurationReplicationRulePropertyToCloudFormation)(properties.rules)}):properties}function CfnReplicationConfigurationReplicationConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("rules","Rules",cfn_parse.FromCloudFormation.getArray(CfnReplicationConfigurationReplicationRulePropertyFromCloudFormation)(properties.Rules)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnReplicationConfiguration_ReplicationDestinationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("region",cdk.requiredValidator)(properties.region)),errors.collect(cdk.propertyValidator("region",cdk.validateString)(properties.region)),errors.collect(cdk.propertyValidator("registryId",cdk.requiredValidator)(properties.registryId)),errors.collect(cdk.propertyValidator("registryId",cdk.validateString)(properties.registryId)),errors.wrap('supplied properties not correct for "ReplicationDestinationProperty"')}function cfnReplicationConfigurationReplicationDestinationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_ReplicationDestinationPropertyValidator(properties).assertSuccess(),{Region:cdk.stringToCloudFormation(properties.region),RegistryId:cdk.stringToCloudFormation(properties.registryId)}):properties}function CfnReplicationConfigurationReplicationDestinationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("region","Region",cfn_parse.FromCloudFormation.getString(properties.Region)),ret.addPropertyResult("registryId","RegistryId",cfn_parse.FromCloudFormation.getString(properties.RegistryId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnReplicationConfiguration_ReplicationRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinations",cdk.requiredValidator)(properties.destinations)),errors.collect(cdk.propertyValidator("destinations",cdk.listValidator(CfnReplicationConfiguration_ReplicationDestinationPropertyValidator))(properties.destinations)),errors.collect(cdk.propertyValidator("repositoryFilters",cdk.listValidator(CfnReplicationConfiguration_RepositoryFilterPropertyValidator))(properties.repositoryFilters)),errors.wrap('supplied properties not correct for "ReplicationRuleProperty"')}function cfnReplicationConfigurationReplicationRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_ReplicationRulePropertyValidator(properties).assertSuccess(),{Destinations:cdk.listMapper(cfnReplicationConfigurationReplicationDestinationPropertyToCloudFormation)(properties.destinations),RepositoryFilters:cdk.listMapper(cfnReplicationConfigurationRepositoryFilterPropertyToCloudFormation)(properties.repositoryFilters)}):properties}function CfnReplicationConfigurationReplicationRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinations","Destinations",cfn_parse.FromCloudFormation.getArray(CfnReplicationConfigurationReplicationDestinationPropertyFromCloudFormation)(properties.Destinations)),ret.addPropertyResult("repositoryFilters","RepositoryFilters",properties.RepositoryFilters!=null?cfn_parse.FromCloudFormation.getArray(CfnReplicationConfigurationRepositoryFilterPropertyFromCloudFormation)(properties.RepositoryFilters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnReplicationConfiguration_RepositoryFilterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("filter",cdk.requiredValidator)(properties.filter)),errors.collect(cdk.propertyValidator("filter",cdk.validateString)(properties.filter)),errors.collect(cdk.propertyValidator("filterType",cdk.requiredValidator)(properties.filterType)),errors.collect(cdk.propertyValidator("filterType",cdk.validateString)(properties.filterType)),errors.wrap('supplied properties not correct for "RepositoryFilterProperty"')}function cfnReplicationConfigurationRepositoryFilterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_RepositoryFilterPropertyValidator(properties).assertSuccess(),{Filter:cdk.stringToCloudFormation(properties.filter),FilterType:cdk.stringToCloudFormation(properties.filterType)}):properties}function CfnReplicationConfigurationRepositoryFilterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("filter","Filter",cfn_parse.FromCloudFormation.getString(properties.Filter)),ret.addPropertyResult("filterType","FilterType",cfn_parse.FromCloudFormation.getString(properties.FilterType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRepositoryPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("encryptionConfiguration",CfnRepository_EncryptionConfigurationPropertyValidator)(properties.encryptionConfiguration)),errors.collect(cdk.propertyValidator("imageScanningConfiguration",CfnRepository_ImageScanningConfigurationPropertyValidator)(properties.imageScanningConfiguration)),errors.collect(cdk.propertyValidator("imageTagMutability",cdk.validateString)(properties.imageTagMutability)),errors.collect(cdk.propertyValidator("lifecyclePolicy",CfnRepository_LifecyclePolicyPropertyValidator)(properties.lifecyclePolicy)),errors.collect(cdk.propertyValidator("repositoryName",cdk.validateString)(properties.repositoryName)),errors.collect(cdk.propertyValidator("repositoryPolicyText",cdk.validateObject)(properties.repositoryPolicyText)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRepositoryProps"')}function cfnRepositoryPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepositoryPropsValidator(properties).assertSuccess(),{EncryptionConfiguration:cfnRepositoryEncryptionConfigurationPropertyToCloudFormation(properties.encryptionConfiguration),ImageScanningConfiguration:cfnRepositoryImageScanningConfigurationPropertyToCloudFormation(properties.imageScanningConfiguration),ImageTagMutability:cdk.stringToCloudFormation(properties.imageTagMutability),LifecyclePolicy:cfnRepositoryLifecyclePolicyPropertyToCloudFormation(properties.lifecyclePolicy),RepositoryName:cdk.stringToCloudFormation(properties.repositoryName),RepositoryPolicyText:cdk.objectToCloudFormation(properties.repositoryPolicyText),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRepositoryPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionConfiguration","EncryptionConfiguration",properties.EncryptionConfiguration!=null?CfnRepositoryEncryptionConfigurationPropertyFromCloudFormation(properties.EncryptionConfiguration):void 0),ret.addPropertyResult("imageScanningConfiguration","ImageScanningConfiguration",properties.ImageScanningConfiguration!=null?CfnRepositoryImageScanningConfigurationPropertyFromCloudFormation(properties.ImageScanningConfiguration):void 0),ret.addPropertyResult("imageTagMutability","ImageTagMutability",properties.ImageTagMutability!=null?cfn_parse.FromCloudFormation.getString(properties.ImageTagMutability):void 0),ret.addPropertyResult("lifecyclePolicy","LifecyclePolicy",properties.LifecyclePolicy!=null?CfnRepositoryLifecyclePolicyPropertyFromCloudFormation(properties.LifecyclePolicy):void 0),ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse.FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addPropertyResult("repositoryPolicyText","RepositoryPolicyText",properties.RepositoryPolicyText!=null?cfn_parse.FromCloudFormation.getAny(properties.RepositoryPolicyText):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRepository extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnRepository.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnRepositoryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRepository),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrRepositoryUri=cdk.Token.asString(this.getAtt("RepositoryUri")),this.encryptionConfiguration=props.encryptionConfiguration,this.imageScanningConfiguration=props.imageScanningConfiguration,this.imageTagMutability=props.imageTagMutability,this.lifecyclePolicy=props.lifecyclePolicy,this.repositoryName=props.repositoryName,this.repositoryPolicyText=props.repositoryPolicyText,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::ECR::Repository",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRepositoryPropsFromCloudFormation(resourceProperties),ret=new CfnRepository(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRepository.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{encryptionConfiguration:this.encryptionConfiguration,imageScanningConfiguration:this.imageScanningConfiguration,imageTagMutability:this.imageTagMutability,lifecyclePolicy:this.lifecyclePolicy,repositoryName:this.repositoryName,repositoryPolicyText:this.repositoryPolicyText,tags:this.tags.renderTags()}}renderProperties(props){return cfnRepositoryPropsToCloudFormation(props)}}exports.CfnRepository=CfnRepository,_e=JSII_RTTI_SYMBOL_1,CfnRepository[_e]={fqn:"aws-cdk-lib.aws_ecr.CfnRepository",version:"2.51.0"},CfnRepository.CFN_RESOURCE_TYPE_NAME="AWS::ECR::Repository";function CfnRepository_EncryptionConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("encryptionType",cdk.requiredValidator)(properties.encryptionType)),errors.collect(cdk.propertyValidator("encryptionType",cdk.validateString)(properties.encryptionType)),errors.collect(cdk.propertyValidator("kmsKey",cdk.validateString)(properties.kmsKey)),errors.wrap('supplied properties not correct for "EncryptionConfigurationProperty"')}function cfnRepositoryEncryptionConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepository_EncryptionConfigurationPropertyValidator(properties).assertSuccess(),{EncryptionType:cdk.stringToCloudFormation(properties.encryptionType),KmsKey:cdk.stringToCloudFormation(properties.kmsKey)}):properties}function CfnRepositoryEncryptionConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionType","EncryptionType",cfn_parse.FromCloudFormation.getString(properties.EncryptionType)),ret.addPropertyResult("kmsKey","KmsKey",properties.KmsKey!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKey):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRepository_ImageScanningConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("scanOnPush",cdk.validateBoolean)(properties.scanOnPush)),errors.wrap('supplied properties not correct for "ImageScanningConfigurationProperty"')}function cfnRepositoryImageScanningConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepository_ImageScanningConfigurationPropertyValidator(properties).assertSuccess(),{ScanOnPush:cdk.booleanToCloudFormation(properties.scanOnPush)}):properties}function CfnRepositoryImageScanningConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("scanOnPush","ScanOnPush",properties.ScanOnPush!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ScanOnPush):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRepository_LifecyclePolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("lifecyclePolicyText",cdk.validateString)(properties.lifecyclePolicyText)),errors.collect(cdk.propertyValidator("registryId",cdk.validateString)(properties.registryId)),errors.wrap('supplied properties not correct for "LifecyclePolicyProperty"')}function cfnRepositoryLifecyclePolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepository_LifecyclePolicyPropertyValidator(properties).assertSuccess(),{LifecyclePolicyText:cdk.stringToCloudFormation(properties.lifecyclePolicyText),RegistryId:cdk.stringToCloudFormation(properties.registryId)}):properties}function CfnRepositoryLifecyclePolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("lifecyclePolicyText","LifecyclePolicyText",properties.LifecyclePolicyText!=null?cfn_parse.FromCloudFormation.getString(properties.LifecyclePolicyText):void 0),ret.addPropertyResult("registryId","RegistryId",properties.RegistryId!=null?cfn_parse.FromCloudFormation.getString(properties.RegistryId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}
1
+ "use strict";var _a,_b,_c,_d,_e;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnRepository=exports.CfnReplicationConfiguration=exports.CfnRegistryPolicy=exports.CfnPullThroughCacheRule=exports.CfnPublicRepository=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnPublicRepositoryPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("repositoryCatalogData",cdk.validateObject)(properties.repositoryCatalogData)),errors.collect(cdk.propertyValidator("repositoryName",cdk.validateString)(properties.repositoryName)),errors.collect(cdk.propertyValidator("repositoryPolicyText",cdk.validateObject)(properties.repositoryPolicyText)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnPublicRepositoryProps"')}function cfnPublicRepositoryPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPublicRepositoryPropsValidator(properties).assertSuccess(),{RepositoryCatalogData:cdk.objectToCloudFormation(properties.repositoryCatalogData),RepositoryName:cdk.stringToCloudFormation(properties.repositoryName),RepositoryPolicyText:cdk.objectToCloudFormation(properties.repositoryPolicyText),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnPublicRepositoryPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("repositoryCatalogData","RepositoryCatalogData",properties.RepositoryCatalogData!=null?cfn_parse.FromCloudFormation.getAny(properties.RepositoryCatalogData):void 0),ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse.FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addPropertyResult("repositoryPolicyText","RepositoryPolicyText",properties.RepositoryPolicyText!=null?cfn_parse.FromCloudFormation.getAny(properties.RepositoryPolicyText):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPublicRepository extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnPublicRepository.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnPublicRepositoryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPublicRepository),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.repositoryCatalogData=props.repositoryCatalogData,this.repositoryName=props.repositoryName,this.repositoryPolicyText=props.repositoryPolicyText,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::ECR::PublicRepository",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPublicRepositoryPropsFromCloudFormation(resourceProperties),ret=new CfnPublicRepository(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPublicRepository.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{repositoryCatalogData:this.repositoryCatalogData,repositoryName:this.repositoryName,repositoryPolicyText:this.repositoryPolicyText,tags:this.tags.renderTags()}}renderProperties(props){return cfnPublicRepositoryPropsToCloudFormation(props)}}exports.CfnPublicRepository=CfnPublicRepository,_a=JSII_RTTI_SYMBOL_1,CfnPublicRepository[_a]={fqn:"aws-cdk-lib.aws_ecr.CfnPublicRepository",version:"2.51.1"},CfnPublicRepository.CFN_RESOURCE_TYPE_NAME="AWS::ECR::PublicRepository";function CfnPullThroughCacheRulePropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("ecrRepositoryPrefix",cdk.validateString)(properties.ecrRepositoryPrefix)),errors.collect(cdk.propertyValidator("upstreamRegistryUrl",cdk.validateString)(properties.upstreamRegistryUrl)),errors.wrap('supplied properties not correct for "CfnPullThroughCacheRuleProps"')}function cfnPullThroughCacheRulePropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnPullThroughCacheRulePropsValidator(properties).assertSuccess(),{EcrRepositoryPrefix:cdk.stringToCloudFormation(properties.ecrRepositoryPrefix),UpstreamRegistryUrl:cdk.stringToCloudFormation(properties.upstreamRegistryUrl)}):properties}function CfnPullThroughCacheRulePropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("ecrRepositoryPrefix","EcrRepositoryPrefix",properties.EcrRepositoryPrefix!=null?cfn_parse.FromCloudFormation.getString(properties.EcrRepositoryPrefix):void 0),ret.addPropertyResult("upstreamRegistryUrl","UpstreamRegistryUrl",properties.UpstreamRegistryUrl!=null?cfn_parse.FromCloudFormation.getString(properties.UpstreamRegistryUrl):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnPullThroughCacheRule extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnPullThroughCacheRule.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnPullThroughCacheRuleProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnPullThroughCacheRule),error}this.ecrRepositoryPrefix=props.ecrRepositoryPrefix,this.upstreamRegistryUrl=props.upstreamRegistryUrl}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnPullThroughCacheRulePropsFromCloudFormation(resourceProperties),ret=new CfnPullThroughCacheRule(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnPullThroughCacheRule.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{ecrRepositoryPrefix:this.ecrRepositoryPrefix,upstreamRegistryUrl:this.upstreamRegistryUrl}}renderProperties(props){return cfnPullThroughCacheRulePropsToCloudFormation(props)}}exports.CfnPullThroughCacheRule=CfnPullThroughCacheRule,_b=JSII_RTTI_SYMBOL_1,CfnPullThroughCacheRule[_b]={fqn:"aws-cdk-lib.aws_ecr.CfnPullThroughCacheRule",version:"2.51.1"},CfnPullThroughCacheRule.CFN_RESOURCE_TYPE_NAME="AWS::ECR::PullThroughCacheRule";function CfnRegistryPolicyPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("policyText",cdk.requiredValidator)(properties.policyText)),errors.collect(cdk.propertyValidator("policyText",cdk.validateObject)(properties.policyText)),errors.wrap('supplied properties not correct for "CfnRegistryPolicyProps"')}function cfnRegistryPolicyPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRegistryPolicyPropsValidator(properties).assertSuccess(),{PolicyText:cdk.objectToCloudFormation(properties.policyText)}):properties}function CfnRegistryPolicyPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("policyText","PolicyText",cfn_parse.FromCloudFormation.getAny(properties.PolicyText)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRegistryPolicy extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnRegistryPolicy.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnRegistryPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRegistryPolicy),error}cdk.requireProperty(props,"policyText",this),this.attrRegistryId=cdk.Token.asString(this.getAtt("RegistryId")),this.policyText=props.policyText}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRegistryPolicyPropsFromCloudFormation(resourceProperties),ret=new CfnRegistryPolicy(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRegistryPolicy.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{policyText:this.policyText}}renderProperties(props){return cfnRegistryPolicyPropsToCloudFormation(props)}}exports.CfnRegistryPolicy=CfnRegistryPolicy,_c=JSII_RTTI_SYMBOL_1,CfnRegistryPolicy[_c]={fqn:"aws-cdk-lib.aws_ecr.CfnRegistryPolicy",version:"2.51.1"},CfnRegistryPolicy.CFN_RESOURCE_TYPE_NAME="AWS::ECR::RegistryPolicy";function CfnReplicationConfigurationPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("replicationConfiguration",cdk.requiredValidator)(properties.replicationConfiguration)),errors.collect(cdk.propertyValidator("replicationConfiguration",CfnReplicationConfiguration_ReplicationConfigurationPropertyValidator)(properties.replicationConfiguration)),errors.wrap('supplied properties not correct for "CfnReplicationConfigurationProps"')}function cfnReplicationConfigurationPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfigurationPropsValidator(properties).assertSuccess(),{ReplicationConfiguration:cfnReplicationConfigurationReplicationConfigurationPropertyToCloudFormation(properties.replicationConfiguration)}):properties}function CfnReplicationConfigurationPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("replicationConfiguration","ReplicationConfiguration",CfnReplicationConfigurationReplicationConfigurationPropertyFromCloudFormation(properties.ReplicationConfiguration)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnReplicationConfiguration extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnReplicationConfiguration.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnReplicationConfigurationProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnReplicationConfiguration),error}cdk.requireProperty(props,"replicationConfiguration",this),this.attrRegistryId=cdk.Token.asString(this.getAtt("RegistryId")),this.replicationConfiguration=props.replicationConfiguration}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnReplicationConfigurationPropsFromCloudFormation(resourceProperties),ret=new CfnReplicationConfiguration(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnReplicationConfiguration.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{replicationConfiguration:this.replicationConfiguration}}renderProperties(props){return cfnReplicationConfigurationPropsToCloudFormation(props)}}exports.CfnReplicationConfiguration=CfnReplicationConfiguration,_d=JSII_RTTI_SYMBOL_1,CfnReplicationConfiguration[_d]={fqn:"aws-cdk-lib.aws_ecr.CfnReplicationConfiguration",version:"2.51.1"},CfnReplicationConfiguration.CFN_RESOURCE_TYPE_NAME="AWS::ECR::ReplicationConfiguration";function CfnReplicationConfiguration_ReplicationConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("rules",cdk.requiredValidator)(properties.rules)),errors.collect(cdk.propertyValidator("rules",cdk.listValidator(CfnReplicationConfiguration_ReplicationRulePropertyValidator))(properties.rules)),errors.wrap('supplied properties not correct for "ReplicationConfigurationProperty"')}function cfnReplicationConfigurationReplicationConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_ReplicationConfigurationPropertyValidator(properties).assertSuccess(),{Rules:cdk.listMapper(cfnReplicationConfigurationReplicationRulePropertyToCloudFormation)(properties.rules)}):properties}function CfnReplicationConfigurationReplicationConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("rules","Rules",cfn_parse.FromCloudFormation.getArray(CfnReplicationConfigurationReplicationRulePropertyFromCloudFormation)(properties.Rules)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnReplicationConfiguration_ReplicationDestinationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("region",cdk.requiredValidator)(properties.region)),errors.collect(cdk.propertyValidator("region",cdk.validateString)(properties.region)),errors.collect(cdk.propertyValidator("registryId",cdk.requiredValidator)(properties.registryId)),errors.collect(cdk.propertyValidator("registryId",cdk.validateString)(properties.registryId)),errors.wrap('supplied properties not correct for "ReplicationDestinationProperty"')}function cfnReplicationConfigurationReplicationDestinationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_ReplicationDestinationPropertyValidator(properties).assertSuccess(),{Region:cdk.stringToCloudFormation(properties.region),RegistryId:cdk.stringToCloudFormation(properties.registryId)}):properties}function CfnReplicationConfigurationReplicationDestinationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("region","Region",cfn_parse.FromCloudFormation.getString(properties.Region)),ret.addPropertyResult("registryId","RegistryId",cfn_parse.FromCloudFormation.getString(properties.RegistryId)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnReplicationConfiguration_ReplicationRulePropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("destinations",cdk.requiredValidator)(properties.destinations)),errors.collect(cdk.propertyValidator("destinations",cdk.listValidator(CfnReplicationConfiguration_ReplicationDestinationPropertyValidator))(properties.destinations)),errors.collect(cdk.propertyValidator("repositoryFilters",cdk.listValidator(CfnReplicationConfiguration_RepositoryFilterPropertyValidator))(properties.repositoryFilters)),errors.wrap('supplied properties not correct for "ReplicationRuleProperty"')}function cfnReplicationConfigurationReplicationRulePropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_ReplicationRulePropertyValidator(properties).assertSuccess(),{Destinations:cdk.listMapper(cfnReplicationConfigurationReplicationDestinationPropertyToCloudFormation)(properties.destinations),RepositoryFilters:cdk.listMapper(cfnReplicationConfigurationRepositoryFilterPropertyToCloudFormation)(properties.repositoryFilters)}):properties}function CfnReplicationConfigurationReplicationRulePropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("destinations","Destinations",cfn_parse.FromCloudFormation.getArray(CfnReplicationConfigurationReplicationDestinationPropertyFromCloudFormation)(properties.Destinations)),ret.addPropertyResult("repositoryFilters","RepositoryFilters",properties.RepositoryFilters!=null?cfn_parse.FromCloudFormation.getArray(CfnReplicationConfigurationRepositoryFilterPropertyFromCloudFormation)(properties.RepositoryFilters):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnReplicationConfiguration_RepositoryFilterPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("filter",cdk.requiredValidator)(properties.filter)),errors.collect(cdk.propertyValidator("filter",cdk.validateString)(properties.filter)),errors.collect(cdk.propertyValidator("filterType",cdk.requiredValidator)(properties.filterType)),errors.collect(cdk.propertyValidator("filterType",cdk.validateString)(properties.filterType)),errors.wrap('supplied properties not correct for "RepositoryFilterProperty"')}function cfnReplicationConfigurationRepositoryFilterPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnReplicationConfiguration_RepositoryFilterPropertyValidator(properties).assertSuccess(),{Filter:cdk.stringToCloudFormation(properties.filter),FilterType:cdk.stringToCloudFormation(properties.filterType)}):properties}function CfnReplicationConfigurationRepositoryFilterPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("filter","Filter",cfn_parse.FromCloudFormation.getString(properties.Filter)),ret.addPropertyResult("filterType","FilterType",cfn_parse.FromCloudFormation.getString(properties.FilterType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRepositoryPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("encryptionConfiguration",CfnRepository_EncryptionConfigurationPropertyValidator)(properties.encryptionConfiguration)),errors.collect(cdk.propertyValidator("imageScanningConfiguration",CfnRepository_ImageScanningConfigurationPropertyValidator)(properties.imageScanningConfiguration)),errors.collect(cdk.propertyValidator("imageTagMutability",cdk.validateString)(properties.imageTagMutability)),errors.collect(cdk.propertyValidator("lifecyclePolicy",CfnRepository_LifecyclePolicyPropertyValidator)(properties.lifecyclePolicy)),errors.collect(cdk.propertyValidator("repositoryName",cdk.validateString)(properties.repositoryName)),errors.collect(cdk.propertyValidator("repositoryPolicyText",cdk.validateObject)(properties.repositoryPolicyText)),errors.collect(cdk.propertyValidator("tags",cdk.listValidator(cdk.validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "CfnRepositoryProps"')}function cfnRepositoryPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepositoryPropsValidator(properties).assertSuccess(),{EncryptionConfiguration:cfnRepositoryEncryptionConfigurationPropertyToCloudFormation(properties.encryptionConfiguration),ImageScanningConfiguration:cfnRepositoryImageScanningConfigurationPropertyToCloudFormation(properties.imageScanningConfiguration),ImageTagMutability:cdk.stringToCloudFormation(properties.imageTagMutability),LifecyclePolicy:cfnRepositoryLifecyclePolicyPropertyToCloudFormation(properties.lifecyclePolicy),RepositoryName:cdk.stringToCloudFormation(properties.repositoryName),RepositoryPolicyText:cdk.objectToCloudFormation(properties.repositoryPolicyText),Tags:cdk.listMapper(cdk.cfnTagToCloudFormation)(properties.tags)}):properties}function CfnRepositoryPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionConfiguration","EncryptionConfiguration",properties.EncryptionConfiguration!=null?CfnRepositoryEncryptionConfigurationPropertyFromCloudFormation(properties.EncryptionConfiguration):void 0),ret.addPropertyResult("imageScanningConfiguration","ImageScanningConfiguration",properties.ImageScanningConfiguration!=null?CfnRepositoryImageScanningConfigurationPropertyFromCloudFormation(properties.ImageScanningConfiguration):void 0),ret.addPropertyResult("imageTagMutability","ImageTagMutability",properties.ImageTagMutability!=null?cfn_parse.FromCloudFormation.getString(properties.ImageTagMutability):void 0),ret.addPropertyResult("lifecyclePolicy","LifecyclePolicy",properties.LifecyclePolicy!=null?CfnRepositoryLifecyclePolicyPropertyFromCloudFormation(properties.LifecyclePolicy):void 0),ret.addPropertyResult("repositoryName","RepositoryName",properties.RepositoryName!=null?cfn_parse.FromCloudFormation.getString(properties.RepositoryName):void 0),ret.addPropertyResult("repositoryPolicyText","RepositoryPolicyText",properties.RepositoryPolicyText!=null?cfn_parse.FromCloudFormation.getAny(properties.RepositoryPolicyText):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse.FromCloudFormation.getArray(cfn_parse.FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnRepository extends cdk.CfnResource{constructor(scope,id,props={}){super(scope,id,{type:CfnRepository.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_CfnRepositoryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnRepository),error}this.attrArn=cdk.Token.asString(this.getAtt("Arn")),this.attrRepositoryUri=cdk.Token.asString(this.getAtt("RepositoryUri")),this.encryptionConfiguration=props.encryptionConfiguration,this.imageScanningConfiguration=props.imageScanningConfiguration,this.imageTagMutability=props.imageTagMutability,this.lifecyclePolicy=props.lifecyclePolicy,this.repositoryName=props.repositoryName,this.repositoryPolicyText=props.repositoryPolicyText,this.tags=new cdk.TagManager(cdk.TagType.STANDARD,"AWS::ECR::Repository",props.tags,{tagPropertyName:"tags"})}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnRepositoryPropsFromCloudFormation(resourceProperties),ret=new CfnRepository(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnRepository.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{encryptionConfiguration:this.encryptionConfiguration,imageScanningConfiguration:this.imageScanningConfiguration,imageTagMutability:this.imageTagMutability,lifecyclePolicy:this.lifecyclePolicy,repositoryName:this.repositoryName,repositoryPolicyText:this.repositoryPolicyText,tags:this.tags.renderTags()}}renderProperties(props){return cfnRepositoryPropsToCloudFormation(props)}}exports.CfnRepository=CfnRepository,_e=JSII_RTTI_SYMBOL_1,CfnRepository[_e]={fqn:"aws-cdk-lib.aws_ecr.CfnRepository",version:"2.51.1"},CfnRepository.CFN_RESOURCE_TYPE_NAME="AWS::ECR::Repository";function CfnRepository_EncryptionConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("encryptionType",cdk.requiredValidator)(properties.encryptionType)),errors.collect(cdk.propertyValidator("encryptionType",cdk.validateString)(properties.encryptionType)),errors.collect(cdk.propertyValidator("kmsKey",cdk.validateString)(properties.kmsKey)),errors.wrap('supplied properties not correct for "EncryptionConfigurationProperty"')}function cfnRepositoryEncryptionConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepository_EncryptionConfigurationPropertyValidator(properties).assertSuccess(),{EncryptionType:cdk.stringToCloudFormation(properties.encryptionType),KmsKey:cdk.stringToCloudFormation(properties.kmsKey)}):properties}function CfnRepositoryEncryptionConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("encryptionType","EncryptionType",cfn_parse.FromCloudFormation.getString(properties.EncryptionType)),ret.addPropertyResult("kmsKey","KmsKey",properties.KmsKey!=null?cfn_parse.FromCloudFormation.getString(properties.KmsKey):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRepository_ImageScanningConfigurationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("scanOnPush",cdk.validateBoolean)(properties.scanOnPush)),errors.wrap('supplied properties not correct for "ImageScanningConfigurationProperty"')}function cfnRepositoryImageScanningConfigurationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepository_ImageScanningConfigurationPropertyValidator(properties).assertSuccess(),{ScanOnPush:cdk.booleanToCloudFormation(properties.scanOnPush)}):properties}function CfnRepositoryImageScanningConfigurationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("scanOnPush","ScanOnPush",properties.ScanOnPush!=null?cfn_parse.FromCloudFormation.getBoolean(properties.ScanOnPush):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnRepository_LifecyclePolicyPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("lifecyclePolicyText",cdk.validateString)(properties.lifecyclePolicyText)),errors.collect(cdk.propertyValidator("registryId",cdk.validateString)(properties.registryId)),errors.wrap('supplied properties not correct for "LifecyclePolicyProperty"')}function cfnRepositoryLifecyclePolicyPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnRepository_LifecyclePolicyPropertyValidator(properties).assertSuccess(),{LifecyclePolicyText:cdk.stringToCloudFormation(properties.lifecyclePolicyText),RegistryId:cdk.stringToCloudFormation(properties.registryId)}):properties}function CfnRepositoryLifecyclePolicyPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("lifecyclePolicyText","LifecyclePolicyText",properties.LifecyclePolicyText!=null?cfn_parse.FromCloudFormation.getString(properties.LifecyclePolicyText):void 0),ret.addPropertyResult("registryId","RegistryId",properties.RegistryId!=null?cfn_parse.FromCloudFormation.getString(properties.RegistryId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}
2
2
  //# sourceMappingURL=ecr.generated.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RepositoryEncryption=exports.TagMutability=exports.Repository=exports.RepositoryBase=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),os_1=require("os"),events=require("../../aws-events"),iam=require("../../aws-iam"),core_1=require("../../core"),ecr_generated_1=require("./ecr.generated"),lifecycle_1=require("./lifecycle");class RepositoryBase extends core_1.Resource{get repositoryUri(){return this.repositoryUriForTag()}repositoryUriForTag(tag){const tagSuffix=tag?`:${tag}`:"";return this.repositoryUriWithSuffix(tagSuffix)}repositoryUriForDigest(digest){const digestSuffix=digest?`@${digest}`:"";return this.repositoryUriWithSuffix(digestSuffix)}repositoryUriForTagOrDigest(tagOrDigest){return tagOrDigest?.startsWith("sha256:")?this.repositoryUriForDigest(tagOrDigest):this.repositoryUriForTag(tagOrDigest)}repositoryUriWithSuffix(suffix){const parts=this.stack.splitArn(this.repositoryArn,core_1.ArnFormat.SLASH_RESOURCE_NAME);return`${parts.account}.dkr.ecr.${parts.region}.${this.stack.urlSuffix}/${this.repositoryName}${suffix}`}onCloudTrailEvent(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_events_OnEventOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onCloudTrailEvent),error}const rule=new events.Rule(this,id,options);return rule.addTarget(options.target),rule.addEventPattern({source:["aws.ecr"],detailType:["AWS API Call via CloudTrail"],detail:{requestParameters:{repositoryName:[this.repositoryName]}}}),rule}onCloudTrailImagePushed(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_OnCloudTrailImagePushedOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onCloudTrailImagePushed),error}const rule=this.onCloudTrailEvent(id,options);return rule.addEventPattern({detail:{eventName:["PutImage"],requestParameters:{imageTag:options.imageTag?[options.imageTag]:void 0}}}),rule}onImageScanCompleted(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_OnImageScanCompletedOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onImageScanCompleted),error}const rule=new events.Rule(this,id,options);return rule.addTarget(options.target),rule.addEventPattern({source:["aws.ecr"],detailType:["ECR Image Scan"],detail:{"repository-name":[this.repositoryName],"scan-status":["COMPLETE"],"image-tags":options.imageTags??void 0}}),rule}onEvent(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_events_OnEventOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onEvent),error}const rule=new events.Rule(this,id,options);return rule.addEventPattern({source:["aws.ecr"],resources:[this.repositoryArn]}),rule.addTarget(options.target),rule}grant(grantee,...actions){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IGrantable(grantee)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.grant),error}return iam.Grant.addToPrincipalOrResource({grantee,actions,resourceArns:[this.repositoryArn],resourceSelfArns:[],resource:this})}grantPull(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.grantPull),error}const ret=this.grant(grantee,"ecr:BatchCheckLayerAvailability","ecr:GetDownloadUrlForLayer","ecr:BatchGetImage");return iam.Grant.addToPrincipal({grantee,actions:["ecr:GetAuthorizationToken"],resourceArns:["*"],scope:this}),ret}grantPullPush(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.grantPullPush),error}return this.grantPull(grantee),this.grant(grantee,"ecr:PutImage","ecr:InitiateLayerUpload","ecr:UploadLayerPart","ecr:CompleteLayerUpload")}}exports.RepositoryBase=RepositoryBase,_a=JSII_RTTI_SYMBOL_1,RepositoryBase[_a]={fqn:"aws-cdk-lib.aws_ecr.RepositoryBase",version:"2.51.0"};class Repository extends RepositoryBase{constructor(scope,id,props={}){super(scope,id,{physicalName:props.repositoryName}),this.lifecycleRules=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_RepositoryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Repository),error}Repository.validateRepositoryName(this.physicalName);const resource=new ecr_generated_1.CfnRepository(this,"Resource",{repositoryName:this.physicalName,repositoryPolicyText:core_1.Lazy.any({produce:()=>this.policyDocument}),lifecyclePolicy:core_1.Lazy.any({produce:()=>this.renderLifecyclePolicy()}),imageScanningConfiguration:props.imageScanOnPush!==void 0?{scanOnPush:props.imageScanOnPush}:void 0,imageTagMutability:props.imageTagMutability||void 0,encryptionConfiguration:this.parseEncryption(props)});resource.applyRemovalPolicy(props.removalPolicy),this.registryId=props.lifecycleRegistryId,props.lifecycleRules&&props.lifecycleRules.forEach(this.addLifecycleRule.bind(this)),this.repositoryName=this.getResourceNameAttribute(resource.ref),this.repositoryArn=this.getResourceArnAttribute(resource.attrArn,{service:"ecr",resource:"repository",resourceName:this.physicalName}),this.node.addValidation({validate:()=>this.policyDocument?.validateForResourcePolicy()??[]})}static fromRepositoryAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_RepositoryAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromRepositoryAttributes),error}class Import extends RepositoryBase{constructor(){super(...arguments),this.repositoryName=attrs.repositoryName,this.repositoryArn=attrs.repositoryArn}addToResourcePolicy(_statement){return{statementAdded:!1}}}return new Import(scope,id)}static fromRepositoryArn(scope,id,repositoryArn){if(core_1.Token.isUnresolved(repositoryArn))throw new Error('"repositoryArn" is a late-bound value, and therefore "repositoryName" is required. Use `fromRepositoryAttributes` instead');const repositoryName=repositoryArn.split("/").slice(1).join("/");class Import extends RepositoryBase{constructor(){super(...arguments),this.repositoryName=repositoryName,this.repositoryArn=repositoryArn}addToResourcePolicy(_statement){return{statementAdded:!1}}}return new Import(scope,id,{environmentFromArn:repositoryArn})}static fromRepositoryName(scope,id,repositoryName){class Import extends RepositoryBase{constructor(){super(...arguments),this.repositoryName=repositoryName,this.repositoryArn=Repository.arnForLocalRepository(repositoryName,scope)}addToResourcePolicy(_statement){return{statementAdded:!1}}}return new Import(scope,id)}static arnForLocalRepository(repositoryName,scope,account){return core_1.Stack.of(scope).formatArn({account,service:"ecr",resource:"repository",resourceName:repositoryName})}static validateRepositoryName(physicalName){const repositoryName=physicalName;if(!repositoryName||core_1.Token.isUnresolved(repositoryName))return;const errors=[];if((repositoryName.length<2||repositoryName.length>256)&&errors.push("Repository name must be at least 2 and no more than 256 characters"),/^(?:[a-z0-9]+(?:[._-][a-z0-9]+)*\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*$/.test(repositoryName)||errors.push("Repository name must follow the specified pattern: (?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*"),errors.length>0)throw new Error(`Invalid ECR repository name (value: ${repositoryName})${os_1.EOL}${errors.join(os_1.EOL)}`)}addToResourcePolicy(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.addToResourcePolicy),error}return this.policyDocument===void 0&&(this.policyDocument=new iam.PolicyDocument),this.policyDocument.addStatements(statement),{statementAdded:!0,policyDependable:this.policyDocument}}addLifecycleRule(rule){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_LifecycleRule(rule)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addLifecycleRule),error}if(rule.tagStatus===void 0&&(rule={...rule,tagStatus:rule.tagPrefixList===void 0?lifecycle_1.TagStatus.ANY:lifecycle_1.TagStatus.TAGGED}),rule.tagStatus===lifecycle_1.TagStatus.TAGGED&&(rule.tagPrefixList===void 0||rule.tagPrefixList.length===0))throw new Error("TagStatus.Tagged requires the specification of a tagPrefixList");if(rule.tagStatus!==lifecycle_1.TagStatus.TAGGED&&rule.tagPrefixList!==void 0)throw new Error("tagPrefixList can only be specified when tagStatus is set to Tagged");if(rule.maxImageAge!==void 0==(rule.maxImageCount!==void 0))throw new Error(`Life cycle rule must contain exactly one of 'maxImageAge' and 'maxImageCount', got: ${JSON.stringify(rule)}`);if(rule.tagStatus===lifecycle_1.TagStatus.ANY&&this.lifecycleRules.filter(r=>r.tagStatus===lifecycle_1.TagStatus.ANY).length>0)throw new Error("Life cycle can only have one TagStatus.Any rule");this.lifecycleRules.push({...rule})}renderLifecyclePolicy(){const stack=core_1.Stack.of(this);let lifecyclePolicyText;if(!(this.lifecycleRules.length===0&&!this.registryId))return this.lifecycleRules.length>0&&(lifecyclePolicyText=JSON.stringify(stack.resolve({rules:this.orderedLifecycleRules().map(renderLifecycleRule)}))),{lifecyclePolicyText,registryId:this.registryId}}orderedLifecycleRules(){if(this.lifecycleRules.length===0)return[];const prioritizedRules=this.lifecycleRules.filter(r=>r.rulePriority!==void 0&&r.tagStatus!==lifecycle_1.TagStatus.ANY),autoPrioritizedRules=this.lifecycleRules.filter(r=>r.rulePriority===void 0&&r.tagStatus!==lifecycle_1.TagStatus.ANY),anyRules=this.lifecycleRules.filter(r=>r.tagStatus===lifecycle_1.TagStatus.ANY);if(anyRules.length>0&&anyRules[0].rulePriority!==void 0&&autoPrioritizedRules.length>0)throw new Error("Cannot combine prioritized TagStatus.Any rule with unprioritized rules. Remove rulePriority from the 'Any' rule.");const prios=prioritizedRules.map(r=>r.rulePriority);let autoPrio=(prios.length>0?Math.max(...prios):0)+1;const ret=new Array;for(const rule of prioritizedRules.concat(autoPrioritizedRules).concat(anyRules))ret.push({...rule,rulePriority:rule.rulePriority??autoPrio++});return validateAnyRuleLast(ret),ret}parseEncryption(props){const encryptionType=props.encryption??(props.encryptionKey?RepositoryEncryption.KMS:RepositoryEncryption.AES_256);if(encryptionType!==RepositoryEncryption.KMS&&props.encryptionKey)throw new Error(`encryptionKey is specified, so 'encryption' must be set to KMS (value: ${encryptionType.value})`);if(encryptionType!==RepositoryEncryption.AES_256){if(encryptionType===RepositoryEncryption.KMS)return{encryptionType:"KMS",kmsKey:props.encryptionKey?.keyArn};throw new Error(`Unexpected 'encryptionType': ${encryptionType}`)}}}exports.Repository=Repository,_b=JSII_RTTI_SYMBOL_1,Repository[_b]={fqn:"aws-cdk-lib.aws_ecr.Repository",version:"2.51.0"};function validateAnyRuleLast(rules){const anyRules=rules.filter(r=>r.tagStatus===lifecycle_1.TagStatus.ANY);if(anyRules.length===1){const maxPrio=Math.max(...rules.map(r=>r.rulePriority));if(anyRules[0].rulePriority!==maxPrio)throw new Error(`TagStatus.Any rule must have highest priority, has ${anyRules[0].rulePriority} which is smaller than ${maxPrio}`)}}function renderLifecycleRule(rule){return{rulePriority:rule.rulePriority,description:rule.description,selection:{tagStatus:rule.tagStatus||lifecycle_1.TagStatus.ANY,tagPrefixList:rule.tagPrefixList,countType:rule.maxImageAge!==void 0?"sinceImagePushed":"imageCountMoreThan",countNumber:rule.maxImageAge?.toDays()??rule.maxImageCount,countUnit:rule.maxImageAge!==void 0?"days":void 0},action:{type:"expire"}}}var TagMutability;(function(TagMutability2){TagMutability2.MUTABLE="MUTABLE",TagMutability2.IMMUTABLE="IMMUTABLE"})(TagMutability=exports.TagMutability||(exports.TagMutability={}));class RepositoryEncryption{constructor(value){this.value=value}}exports.RepositoryEncryption=RepositoryEncryption,_c=JSII_RTTI_SYMBOL_1,RepositoryEncryption[_c]={fqn:"aws-cdk-lib.aws_ecr.RepositoryEncryption",version:"2.51.0"},RepositoryEncryption.AES_256=new RepositoryEncryption("AES256"),RepositoryEncryption.KMS=new RepositoryEncryption("KMS");
1
+ "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RepositoryEncryption=exports.TagMutability=exports.Repository=exports.RepositoryBase=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),os_1=require("os"),events=require("../../aws-events"),iam=require("../../aws-iam"),core_1=require("../../core"),ecr_generated_1=require("./ecr.generated"),lifecycle_1=require("./lifecycle");class RepositoryBase extends core_1.Resource{get repositoryUri(){return this.repositoryUriForTag()}repositoryUriForTag(tag){const tagSuffix=tag?`:${tag}`:"";return this.repositoryUriWithSuffix(tagSuffix)}repositoryUriForDigest(digest){const digestSuffix=digest?`@${digest}`:"";return this.repositoryUriWithSuffix(digestSuffix)}repositoryUriForTagOrDigest(tagOrDigest){return tagOrDigest?.startsWith("sha256:")?this.repositoryUriForDigest(tagOrDigest):this.repositoryUriForTag(tagOrDigest)}repositoryUriWithSuffix(suffix){const parts=this.stack.splitArn(this.repositoryArn,core_1.ArnFormat.SLASH_RESOURCE_NAME);return`${parts.account}.dkr.ecr.${parts.region}.${this.stack.urlSuffix}/${this.repositoryName}${suffix}`}onCloudTrailEvent(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_events_OnEventOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onCloudTrailEvent),error}const rule=new events.Rule(this,id,options);return rule.addTarget(options.target),rule.addEventPattern({source:["aws.ecr"],detailType:["AWS API Call via CloudTrail"],detail:{requestParameters:{repositoryName:[this.repositoryName]}}}),rule}onCloudTrailImagePushed(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_OnCloudTrailImagePushedOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onCloudTrailImagePushed),error}const rule=this.onCloudTrailEvent(id,options);return rule.addEventPattern({detail:{eventName:["PutImage"],requestParameters:{imageTag:options.imageTag?[options.imageTag]:void 0}}}),rule}onImageScanCompleted(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_OnImageScanCompletedOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onImageScanCompleted),error}const rule=new events.Rule(this,id,options);return rule.addTarget(options.target),rule.addEventPattern({source:["aws.ecr"],detailType:["ECR Image Scan"],detail:{"repository-name":[this.repositoryName],"scan-status":["COMPLETE"],"image-tags":options.imageTags??void 0}}),rule}onEvent(id,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_events_OnEventOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.onEvent),error}const rule=new events.Rule(this,id,options);return rule.addEventPattern({source:["aws.ecr"],resources:[this.repositoryArn]}),rule.addTarget(options.target),rule}grant(grantee,...actions){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_iam_IGrantable(grantee)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.grant),error}return iam.Grant.addToPrincipalOrResource({grantee,actions,resourceArns:[this.repositoryArn],resourceSelfArns:[],resource:this})}grantPull(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.grantPull),error}const ret=this.grant(grantee,"ecr:BatchCheckLayerAvailability","ecr:GetDownloadUrlForLayer","ecr:BatchGetImage");return iam.Grant.addToPrincipal({grantee,actions:["ecr:GetAuthorizationToken"],resourceArns:["*"],scope:this}),ret}grantPullPush(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.grantPullPush),error}return this.grantPull(grantee),this.grant(grantee,"ecr:PutImage","ecr:InitiateLayerUpload","ecr:UploadLayerPart","ecr:CompleteLayerUpload")}}exports.RepositoryBase=RepositoryBase,_a=JSII_RTTI_SYMBOL_1,RepositoryBase[_a]={fqn:"aws-cdk-lib.aws_ecr.RepositoryBase",version:"2.51.1"};class Repository extends RepositoryBase{constructor(scope,id,props={}){super(scope,id,{physicalName:props.repositoryName}),this.lifecycleRules=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_RepositoryProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Repository),error}Repository.validateRepositoryName(this.physicalName);const resource=new ecr_generated_1.CfnRepository(this,"Resource",{repositoryName:this.physicalName,repositoryPolicyText:core_1.Lazy.any({produce:()=>this.policyDocument}),lifecyclePolicy:core_1.Lazy.any({produce:()=>this.renderLifecyclePolicy()}),imageScanningConfiguration:props.imageScanOnPush!==void 0?{scanOnPush:props.imageScanOnPush}:void 0,imageTagMutability:props.imageTagMutability||void 0,encryptionConfiguration:this.parseEncryption(props)});resource.applyRemovalPolicy(props.removalPolicy),this.registryId=props.lifecycleRegistryId,props.lifecycleRules&&props.lifecycleRules.forEach(this.addLifecycleRule.bind(this)),this.repositoryName=this.getResourceNameAttribute(resource.ref),this.repositoryArn=this.getResourceArnAttribute(resource.attrArn,{service:"ecr",resource:"repository",resourceName:this.physicalName}),this.node.addValidation({validate:()=>this.policyDocument?.validateForResourcePolicy()??[]})}static fromRepositoryAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_RepositoryAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromRepositoryAttributes),error}class Import extends RepositoryBase{constructor(){super(...arguments),this.repositoryName=attrs.repositoryName,this.repositoryArn=attrs.repositoryArn}addToResourcePolicy(_statement){return{statementAdded:!1}}}return new Import(scope,id)}static fromRepositoryArn(scope,id,repositoryArn){if(core_1.Token.isUnresolved(repositoryArn))throw new Error('"repositoryArn" is a late-bound value, and therefore "repositoryName" is required. Use `fromRepositoryAttributes` instead');const repositoryName=repositoryArn.split("/").slice(1).join("/");class Import extends RepositoryBase{constructor(){super(...arguments),this.repositoryName=repositoryName,this.repositoryArn=repositoryArn}addToResourcePolicy(_statement){return{statementAdded:!1}}}return new Import(scope,id,{environmentFromArn:repositoryArn})}static fromRepositoryName(scope,id,repositoryName){class Import extends RepositoryBase{constructor(){super(...arguments),this.repositoryName=repositoryName,this.repositoryArn=Repository.arnForLocalRepository(repositoryName,scope)}addToResourcePolicy(_statement){return{statementAdded:!1}}}return new Import(scope,id)}static arnForLocalRepository(repositoryName,scope,account){return core_1.Stack.of(scope).formatArn({account,service:"ecr",resource:"repository",resourceName:repositoryName})}static validateRepositoryName(physicalName){const repositoryName=physicalName;if(!repositoryName||core_1.Token.isUnresolved(repositoryName))return;const errors=[];if((repositoryName.length<2||repositoryName.length>256)&&errors.push("Repository name must be at least 2 and no more than 256 characters"),/^(?:[a-z0-9]+(?:[._-][a-z0-9]+)*\/)*[a-z0-9]+(?:[._-][a-z0-9]+)*$/.test(repositoryName)||errors.push("Repository name must follow the specified pattern: (?:[a-z0-9]+(?:[._-][a-z0-9]+)*/)*[a-z0-9]+(?:[._-][a-z0-9]+)*"),errors.length>0)throw new Error(`Invalid ECR repository name (value: ${repositoryName})${os_1.EOL}${errors.join(os_1.EOL)}`)}addToResourcePolicy(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.addToResourcePolicy),error}return this.policyDocument===void 0&&(this.policyDocument=new iam.PolicyDocument),this.policyDocument.addStatements(statement),{statementAdded:!0,policyDependable:this.policyDocument}}addLifecycleRule(rule){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_LifecycleRule(rule)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addLifecycleRule),error}if(rule.tagStatus===void 0&&(rule={...rule,tagStatus:rule.tagPrefixList===void 0?lifecycle_1.TagStatus.ANY:lifecycle_1.TagStatus.TAGGED}),rule.tagStatus===lifecycle_1.TagStatus.TAGGED&&(rule.tagPrefixList===void 0||rule.tagPrefixList.length===0))throw new Error("TagStatus.Tagged requires the specification of a tagPrefixList");if(rule.tagStatus!==lifecycle_1.TagStatus.TAGGED&&rule.tagPrefixList!==void 0)throw new Error("tagPrefixList can only be specified when tagStatus is set to Tagged");if(rule.maxImageAge!==void 0==(rule.maxImageCount!==void 0))throw new Error(`Life cycle rule must contain exactly one of 'maxImageAge' and 'maxImageCount', got: ${JSON.stringify(rule)}`);if(rule.tagStatus===lifecycle_1.TagStatus.ANY&&this.lifecycleRules.filter(r=>r.tagStatus===lifecycle_1.TagStatus.ANY).length>0)throw new Error("Life cycle can only have one TagStatus.Any rule");this.lifecycleRules.push({...rule})}renderLifecyclePolicy(){const stack=core_1.Stack.of(this);let lifecyclePolicyText;if(!(this.lifecycleRules.length===0&&!this.registryId))return this.lifecycleRules.length>0&&(lifecyclePolicyText=JSON.stringify(stack.resolve({rules:this.orderedLifecycleRules().map(renderLifecycleRule)}))),{lifecyclePolicyText,registryId:this.registryId}}orderedLifecycleRules(){if(this.lifecycleRules.length===0)return[];const prioritizedRules=this.lifecycleRules.filter(r=>r.rulePriority!==void 0&&r.tagStatus!==lifecycle_1.TagStatus.ANY),autoPrioritizedRules=this.lifecycleRules.filter(r=>r.rulePriority===void 0&&r.tagStatus!==lifecycle_1.TagStatus.ANY),anyRules=this.lifecycleRules.filter(r=>r.tagStatus===lifecycle_1.TagStatus.ANY);if(anyRules.length>0&&anyRules[0].rulePriority!==void 0&&autoPrioritizedRules.length>0)throw new Error("Cannot combine prioritized TagStatus.Any rule with unprioritized rules. Remove rulePriority from the 'Any' rule.");const prios=prioritizedRules.map(r=>r.rulePriority);let autoPrio=(prios.length>0?Math.max(...prios):0)+1;const ret=new Array;for(const rule of prioritizedRules.concat(autoPrioritizedRules).concat(anyRules))ret.push({...rule,rulePriority:rule.rulePriority??autoPrio++});return validateAnyRuleLast(ret),ret}parseEncryption(props){const encryptionType=props.encryption??(props.encryptionKey?RepositoryEncryption.KMS:RepositoryEncryption.AES_256);if(encryptionType!==RepositoryEncryption.KMS&&props.encryptionKey)throw new Error(`encryptionKey is specified, so 'encryption' must be set to KMS (value: ${encryptionType.value})`);if(encryptionType!==RepositoryEncryption.AES_256){if(encryptionType===RepositoryEncryption.KMS)return{encryptionType:"KMS",kmsKey:props.encryptionKey?.keyArn};throw new Error(`Unexpected 'encryptionType': ${encryptionType}`)}}}exports.Repository=Repository,_b=JSII_RTTI_SYMBOL_1,Repository[_b]={fqn:"aws-cdk-lib.aws_ecr.Repository",version:"2.51.1"};function validateAnyRuleLast(rules){const anyRules=rules.filter(r=>r.tagStatus===lifecycle_1.TagStatus.ANY);if(anyRules.length===1){const maxPrio=Math.max(...rules.map(r=>r.rulePriority));if(anyRules[0].rulePriority!==maxPrio)throw new Error(`TagStatus.Any rule must have highest priority, has ${anyRules[0].rulePriority} which is smaller than ${maxPrio}`)}}function renderLifecycleRule(rule){return{rulePriority:rule.rulePriority,description:rule.description,selection:{tagStatus:rule.tagStatus||lifecycle_1.TagStatus.ANY,tagPrefixList:rule.tagPrefixList,countType:rule.maxImageAge!==void 0?"sinceImagePushed":"imageCountMoreThan",countNumber:rule.maxImageAge?.toDays()??rule.maxImageCount,countUnit:rule.maxImageAge!==void 0?"days":void 0},action:{type:"expire"}}}var TagMutability;(function(TagMutability2){TagMutability2.MUTABLE="MUTABLE",TagMutability2.IMMUTABLE="IMMUTABLE"})(TagMutability=exports.TagMutability||(exports.TagMutability={}));class RepositoryEncryption{constructor(value){this.value=value}}exports.RepositoryEncryption=RepositoryEncryption,_c=JSII_RTTI_SYMBOL_1,RepositoryEncryption[_c]={fqn:"aws-cdk-lib.aws_ecr.RepositoryEncryption",version:"2.51.1"},RepositoryEncryption.AES_256=new RepositoryEncryption("AES256"),RepositoryEncryption.KMS=new RepositoryEncryption("KMS");
2
2
  //# sourceMappingURL=repository.js.map
@@ -1,3 +1,3 @@
1
- "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.DockerImageAsset=exports.Platform=exports.NetworkMode=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),fs=require("fs"),path=require("path"),assets_1=require("../../assets"),ecr=require("../../aws-ecr"),core_1=require("../../core"),cxapi=require("../../cx-api"),constructs_1=require("constructs");class NetworkMode{constructor(mode){this.mode=mode}static fromContainer(containerId){return new NetworkMode(`container:${containerId}`)}static custom(mode){return new NetworkMode(mode)}}exports.NetworkMode=NetworkMode,_a=JSII_RTTI_SYMBOL_1,NetworkMode[_a]={fqn:"aws-cdk-lib.aws_ecr_assets.NetworkMode",version:"2.51.0"},NetworkMode.DEFAULT=new NetworkMode("default"),NetworkMode.HOST=new NetworkMode("host"),NetworkMode.NONE=new NetworkMode("none");class Platform{constructor(platform){this.platform=platform}static custom(platform){return new Platform(platform)}}exports.Platform=Platform,_b=JSII_RTTI_SYMBOL_1,Platform[_b]={fqn:"aws-cdk-lib.aws_ecr_assets.Platform",version:"2.51.0"},Platform.LINUX_AMD64=new Platform("linux/amd64"),Platform.LINUX_ARM64=new Platform("linux/arm64");class DockerImageAsset extends constructs_1.Construct{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_assets_DockerImageAssetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,DockerImageAsset),error}validateProps(props);const dir=path.resolve(props.directory);if(!fs.existsSync(dir))throw new Error(`Cannot find image directory at ${dir}`);this.dockerfilePath=props.file||"Dockerfile";const file=path.join(dir,this.dockerfilePath);if(!fs.existsSync(file))throw new Error(`Cannot find file at ${file}`);const defaultIgnoreMode=core_1.FeatureFlags.of(this).isEnabled(cxapi.DOCKER_IGNORE_SUPPORT)?core_1.IgnoreMode.DOCKER:core_1.IgnoreMode.GLOB;let ignoreMode=props.ignoreMode??defaultIgnoreMode,exclude=props.exclude||[];const ignore=path.join(dir,".dockerignore");fs.existsSync(ignore)&&(exclude=[...fs.readFileSync(ignore).toString().split(`
2
- `).filter(e=>!!e),...exclude,"!.dockerignore"]),exclude.push("!"+path.basename(file));const cdkout=core_1.Stage.of(this)?.outdir??"cdk.out";exclude.push(cdkout),props.repositoryName&&core_1.Annotations.of(this).addWarning('DockerImageAsset.repositoryName is deprecated. Override "core.Stack.addDockerImageAsset" to control asset locations');const extraHash={};props.invalidation?.extraHash!==!1&&props.extraHash&&(extraHash.user=props.extraHash),props.invalidation?.buildArgs!==!1&&props.buildArgs&&(extraHash.buildArgs=props.buildArgs),props.invalidation?.target!==!1&&props.target&&(extraHash.target=props.target),props.invalidation?.file!==!1&&props.file&&(extraHash.file=props.file),props.invalidation?.repositoryName!==!1&&props.repositoryName&&(extraHash.repositoryName=props.repositoryName),props.invalidation?.networkMode!==!1&&props.networkMode&&(extraHash.networkMode=props.networkMode),props.invalidation?.platform!==!1&&props.platform&&(extraHash.platform=props.platform),extraHash.version="1.21.0";const staging=new core_1.AssetStaging(this,"Staging",{...props,follow:props.followSymlinks??toSymlinkFollow(props.follow),exclude,ignoreMode,sourcePath:dir,extraHash:Object.keys(extraHash).length===0?void 0:JSON.stringify(extraHash)});this.sourceHash=staging.assetHash,this.assetHash=staging.assetHash;const stack=core_1.Stack.of(this);this.assetPath=staging.relativeStagedPath(stack),this.dockerBuildArgs=props.buildArgs,this.dockerBuildTarget=props.target;const location=stack.synthesizer.addDockerImageAsset({directoryName:this.assetPath,dockerBuildArgs:this.dockerBuildArgs,dockerBuildTarget:this.dockerBuildTarget,dockerFile:props.file,sourceHash:staging.assetHash,networkMode:props.networkMode?.mode,platform:props.platform?.platform});this.repository=ecr.Repository.fromRepositoryName(this,"Repository",location.repositoryName),this.imageUri=location.imageUri,this.imageTag=location.imageTag??this.assetHash}addResourceMetadata(resource,resourceProperty){try{jsiiDeprecationWarnings.aws_cdk_lib_CfnResource(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addResourceMetadata),error}!this.node.tryGetContext(cxapi.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT)||(resource.cfnOptions.metadata=resource.cfnOptions.metadata||{},resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PATH_KEY]=this.assetPath,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY]=this.dockerfilePath,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY]=this.dockerBuildArgs,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY]=this.dockerBuildTarget,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PROPERTY_KEY]=resourceProperty)}}exports.DockerImageAsset=DockerImageAsset,_c=JSII_RTTI_SYMBOL_1,DockerImageAsset[_c]={fqn:"aws-cdk-lib.aws_ecr_assets.DockerImageAsset",version:"2.51.0"};function validateProps(props){for(const[key,value]of Object.entries(props))if(core_1.Token.isUnresolved(value))throw new Error(`Cannot use Token as value of '${key}': this value is used before deployment starts`);validateBuildArgs(props.buildArgs)}function validateBuildArgs(buildArgs){for(const[key,value]of Object.entries(buildArgs||{}))if(core_1.Token.isUnresolved(key)||core_1.Token.isUnresolved(value))throw new Error('Cannot use tokens in keys or values of "buildArgs" since they are needed before deployment')}function toSymlinkFollow(follow){switch(follow){case void 0:return;case assets_1.FollowMode.NEVER:return core_1.SymlinkFollowMode.NEVER;case assets_1.FollowMode.ALWAYS:return core_1.SymlinkFollowMode.ALWAYS;case assets_1.FollowMode.BLOCK_EXTERNAL:return core_1.SymlinkFollowMode.BLOCK_EXTERNAL;case assets_1.FollowMode.EXTERNAL:return core_1.SymlinkFollowMode.EXTERNAL}}
1
+ "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.DockerImageAsset=exports.Platform=exports.NetworkMode=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),fs=require("fs"),path=require("path"),assets_1=require("../../assets"),ecr=require("../../aws-ecr"),core_1=require("../../core"),cxapi=require("../../cx-api"),constructs_1=require("constructs");class NetworkMode{constructor(mode){this.mode=mode}static fromContainer(containerId){return new NetworkMode(`container:${containerId}`)}static custom(mode){return new NetworkMode(mode)}}exports.NetworkMode=NetworkMode,_a=JSII_RTTI_SYMBOL_1,NetworkMode[_a]={fqn:"aws-cdk-lib.aws_ecr_assets.NetworkMode",version:"2.51.1"},NetworkMode.DEFAULT=new NetworkMode("default"),NetworkMode.HOST=new NetworkMode("host"),NetworkMode.NONE=new NetworkMode("none");class Platform{constructor(platform){this.platform=platform}static custom(platform){return new Platform(platform)}}exports.Platform=Platform,_b=JSII_RTTI_SYMBOL_1,Platform[_b]={fqn:"aws-cdk-lib.aws_ecr_assets.Platform",version:"2.51.1"},Platform.LINUX_AMD64=new Platform("linux/amd64"),Platform.LINUX_ARM64=new Platform("linux/arm64");class DockerImageAsset extends constructs_1.Construct{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_assets_DockerImageAssetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,DockerImageAsset),error}validateProps(props);const dir=path.resolve(props.directory);if(!fs.existsSync(dir))throw new Error(`Cannot find image directory at ${dir}`);this.dockerfilePath=props.file||"Dockerfile";const file=path.join(dir,this.dockerfilePath);if(!fs.existsSync(file))throw new Error(`Cannot find file at ${file}`);const defaultIgnoreMode=core_1.FeatureFlags.of(this).isEnabled(cxapi.DOCKER_IGNORE_SUPPORT)?core_1.IgnoreMode.DOCKER:core_1.IgnoreMode.GLOB;let ignoreMode=props.ignoreMode??defaultIgnoreMode,exclude=props.exclude||[];const ignore=path.join(dir,".dockerignore");fs.existsSync(ignore)&&(exclude=[...fs.readFileSync(ignore).toString().split(`
2
+ `).filter(e=>!!e),...exclude,"!.dockerignore"]),exclude.push("!"+path.basename(file));const cdkout=core_1.Stage.of(this)?.outdir??"cdk.out";exclude.push(cdkout),props.repositoryName&&core_1.Annotations.of(this).addWarning('DockerImageAsset.repositoryName is deprecated. Override "core.Stack.addDockerImageAsset" to control asset locations');const extraHash={};props.invalidation?.extraHash!==!1&&props.extraHash&&(extraHash.user=props.extraHash),props.invalidation?.buildArgs!==!1&&props.buildArgs&&(extraHash.buildArgs=props.buildArgs),props.invalidation?.target!==!1&&props.target&&(extraHash.target=props.target),props.invalidation?.file!==!1&&props.file&&(extraHash.file=props.file),props.invalidation?.repositoryName!==!1&&props.repositoryName&&(extraHash.repositoryName=props.repositoryName),props.invalidation?.networkMode!==!1&&props.networkMode&&(extraHash.networkMode=props.networkMode),props.invalidation?.platform!==!1&&props.platform&&(extraHash.platform=props.platform),extraHash.version="1.21.0";const staging=new core_1.AssetStaging(this,"Staging",{...props,follow:props.followSymlinks??toSymlinkFollow(props.follow),exclude,ignoreMode,sourcePath:dir,extraHash:Object.keys(extraHash).length===0?void 0:JSON.stringify(extraHash)});this.sourceHash=staging.assetHash,this.assetHash=staging.assetHash;const stack=core_1.Stack.of(this);this.assetPath=staging.relativeStagedPath(stack),this.dockerBuildArgs=props.buildArgs,this.dockerBuildTarget=props.target;const location=stack.synthesizer.addDockerImageAsset({directoryName:this.assetPath,dockerBuildArgs:this.dockerBuildArgs,dockerBuildTarget:this.dockerBuildTarget,dockerFile:props.file,sourceHash:staging.assetHash,networkMode:props.networkMode?.mode,platform:props.platform?.platform});this.repository=ecr.Repository.fromRepositoryName(this,"Repository",location.repositoryName),this.imageUri=location.imageUri,this.imageTag=location.imageTag??this.assetHash}addResourceMetadata(resource,resourceProperty){try{jsiiDeprecationWarnings.aws_cdk_lib_CfnResource(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addResourceMetadata),error}!this.node.tryGetContext(cxapi.ASSET_RESOURCE_METADATA_ENABLED_CONTEXT)||(resource.cfnOptions.metadata=resource.cfnOptions.metadata||{},resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PATH_KEY]=this.assetPath,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_DOCKERFILE_PATH_KEY]=this.dockerfilePath,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_DOCKER_BUILD_ARGS_KEY]=this.dockerBuildArgs,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_DOCKER_BUILD_TARGET_KEY]=this.dockerBuildTarget,resource.cfnOptions.metadata[cxapi.ASSET_RESOURCE_METADATA_PROPERTY_KEY]=resourceProperty)}}exports.DockerImageAsset=DockerImageAsset,_c=JSII_RTTI_SYMBOL_1,DockerImageAsset[_c]={fqn:"aws-cdk-lib.aws_ecr_assets.DockerImageAsset",version:"2.51.1"};function validateProps(props){for(const[key,value]of Object.entries(props))if(core_1.Token.isUnresolved(value))throw new Error(`Cannot use Token as value of '${key}': this value is used before deployment starts`);validateBuildArgs(props.buildArgs)}function validateBuildArgs(buildArgs){for(const[key,value]of Object.entries(buildArgs||{}))if(core_1.Token.isUnresolved(key)||core_1.Token.isUnresolved(value))throw new Error('Cannot use tokens in keys or values of "buildArgs" since they are needed before deployment')}function toSymlinkFollow(follow){switch(follow){case void 0:return;case assets_1.FollowMode.NEVER:return core_1.SymlinkFollowMode.NEVER;case assets_1.FollowMode.ALWAYS:return core_1.SymlinkFollowMode.ALWAYS;case assets_1.FollowMode.BLOCK_EXTERNAL:return core_1.SymlinkFollowMode.BLOCK_EXTERNAL;case assets_1.FollowMode.EXTERNAL:return core_1.SymlinkFollowMode.EXTERNAL}}
3
3
  //# sourceMappingURL=image-asset.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.TarballImageAsset=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),fs=require("fs"),path=require("path"),ecr=require("../../aws-ecr"),core_1=require("../../core"),constructs_1=require("constructs");class TarballImageAsset extends constructs_1.Construct{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_assets_TarballImageAssetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,TarballImageAsset),error}if(!fs.existsSync(props.tarballFile))throw new Error(`Cannot find file at ${props.tarballFile}`);const stagedTarball=new core_1.AssetStaging(this,"Staging",{sourcePath:props.tarballFile});this.sourceHash=stagedTarball.assetHash,this.assetHash=stagedTarball.assetHash;const stage=core_1.Stage.of(this),relativePathInOutDir=stage?path.relative(stage.assetOutdir,stagedTarball.absoluteStagedPath):stagedTarball.absoluteStagedPath,location=core_1.Stack.of(this).synthesizer.addDockerImageAsset({sourceHash:stagedTarball.assetHash,executable:["sh","-c",`docker load -i ${relativePathInOutDir} | sed "s/Loaded image: //g"`]});this.repository=ecr.Repository.fromRepositoryName(this,"Repository",location.repositoryName),this.imageUri=location.imageUri,this.imageTag=location.imageTag??this.assetHash}}exports.TarballImageAsset=TarballImageAsset,_a=JSII_RTTI_SYMBOL_1,TarballImageAsset[_a]={fqn:"aws-cdk-lib.aws_ecr_assets.TarballImageAsset",version:"2.51.0"};
1
+ "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.TarballImageAsset=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),fs=require("fs"),path=require("path"),ecr=require("../../aws-ecr"),core_1=require("../../core"),constructs_1=require("constructs");class TarballImageAsset extends constructs_1.Construct{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_assets_TarballImageAssetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,TarballImageAsset),error}if(!fs.existsSync(props.tarballFile))throw new Error(`Cannot find file at ${props.tarballFile}`);const stagedTarball=new core_1.AssetStaging(this,"Staging",{sourcePath:props.tarballFile});this.sourceHash=stagedTarball.assetHash,this.assetHash=stagedTarball.assetHash;const stage=core_1.Stage.of(this),relativePathInOutDir=stage?path.relative(stage.assetOutdir,stagedTarball.absoluteStagedPath):stagedTarball.absoluteStagedPath,location=core_1.Stack.of(this).synthesizer.addDockerImageAsset({sourceHash:stagedTarball.assetHash,executable:["sh","-c",`docker load -i ${relativePathInOutDir} | sed "s/Loaded image: //g"`]});this.repository=ecr.Repository.fromRepositoryName(this,"Repository",location.repositoryName),this.imageUri=location.imageUri,this.imageTag=location.imageTag??this.assetHash}}exports.TarballImageAsset=TarballImageAsset,_a=JSII_RTTI_SYMBOL_1,TarballImageAsset[_a]={fqn:"aws-cdk-lib.aws_ecr_assets.TarballImageAsset",version:"2.51.1"};
2
2
  //# sourceMappingURL=tarball-asset.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.BottleRocketImage=exports.BottlerocketEcsVariant=exports.EcsOptimizedImage=exports.EcsOptimizedAmi=exports.WindowsOptimizedVersion=exports.AmiHardwareType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),ec2=require("../../aws-ec2"),ssm=require("../../aws-ssm");var AmiHardwareType;(function(AmiHardwareType2){AmiHardwareType2.STANDARD="Standard",AmiHardwareType2.GPU="GPU",AmiHardwareType2.ARM="ARM64"})(AmiHardwareType=exports.AmiHardwareType||(exports.AmiHardwareType={}));var WindowsOptimizedVersion;(function(WindowsOptimizedVersion2){WindowsOptimizedVersion2.SERVER_2019="2019",WindowsOptimizedVersion2.SERVER_2016="2016"})(WindowsOptimizedVersion=exports.WindowsOptimizedVersion||(exports.WindowsOptimizedVersion={}));class EcsOptimizedAmi{constructor(props){if(this.hwType=props&&props.hardwareType||AmiHardwareType.STANDARD,props&&props.generation){if(props.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX&&this.hwType!==AmiHardwareType.STANDARD)throw new Error("Amazon Linux does not support special hardware type. Use Amazon Linux 2 instead");if(props.windowsVersion)throw new Error('"windowsVersion" and Linux image "generation" cannot be both set');this.generation=props.generation}else if(props&&props.windowsVersion){if(this.hwType!==AmiHardwareType.STANDARD)throw new Error("Windows Server does not support special hardware type");this.windowsVersion=props.windowsVersion}else this.generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2;this.amiParameterName="/aws/service/ecs/optimized-ami/"+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX?"amazon-linux/":"")+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX_2?"amazon-linux-2/":"")+(this.windowsVersion?`windows_server/${this.windowsVersion}/english/full/`:"")+(this.hwType===AmiHardwareType.GPU?"gpu/":"")+(this.hwType===AmiHardwareType.ARM?"arm64/":"")+"recommended/image_id",this.cachedInContext=props?.cachedInContext??!1}getImage(scope){const ami=lookupImage(scope,this.cachedInContext,this.amiParameterName),osType=this.windowsVersion?ec2.OperatingSystemType.WINDOWS:ec2.OperatingSystemType.LINUX;return{imageId:ami,osType,userData:ec2.UserData.forOperatingSystem(osType)}}}exports.EcsOptimizedAmi=EcsOptimizedAmi,_a=JSII_RTTI_SYMBOL_1,EcsOptimizedAmi[_a]={fqn:"aws-cdk-lib.aws_ecs.EcsOptimizedAmi",version:"2.51.0"};class EcsOptimizedImage{constructor(props){if(this.hwType=props&&props.hardwareType,props.windowsVersion)this.windowsVersion=props.windowsVersion;else if(props.generation)this.generation=props.generation;else throw new Error("This error should never be thrown");this.amiParameterName="/aws/service/ecs/optimized-ami/"+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX?"amazon-linux/":"")+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX_2?"amazon-linux-2/":"")+(this.windowsVersion?`windows_server/${this.windowsVersion}/english/full/`:"")+(this.hwType===AmiHardwareType.GPU?"gpu/":"")+(this.hwType===AmiHardwareType.ARM?"arm64/":"")+"recommended/image_id",this.cachedInContext=props?.cachedInContext??!1}static amazonLinux2(hardwareType=AmiHardwareType.STANDARD,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AmiHardwareType(hardwareType),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.amazonLinux2),error}return new EcsOptimizedImage({generation:ec2.AmazonLinuxGeneration.AMAZON_LINUX_2,hardwareType,cachedInContext:options.cachedInContext})}static amazonLinux(options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.amazonLinux),error}return new EcsOptimizedImage({generation:ec2.AmazonLinuxGeneration.AMAZON_LINUX,cachedInContext:options.cachedInContext})}static windows(windowsVersion,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_WindowsOptimizedVersion(windowsVersion),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.windows),error}return new EcsOptimizedImage({windowsVersion,cachedInContext:options.cachedInContext})}getImage(scope){const ami=lookupImage(scope,this.cachedInContext,this.amiParameterName),osType=this.windowsVersion?ec2.OperatingSystemType.WINDOWS:ec2.OperatingSystemType.LINUX;return{imageId:ami,osType,userData:ec2.UserData.forOperatingSystem(osType)}}}exports.EcsOptimizedImage=EcsOptimizedImage,_b=JSII_RTTI_SYMBOL_1,EcsOptimizedImage[_b]={fqn:"aws-cdk-lib.aws_ecs.EcsOptimizedImage",version:"2.51.0"};var BottlerocketEcsVariant;(function(BottlerocketEcsVariant2){BottlerocketEcsVariant2.AWS_ECS_1="aws-ecs-1"})(BottlerocketEcsVariant=exports.BottlerocketEcsVariant||(exports.BottlerocketEcsVariant={}));class BottleRocketImage{constructor(props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_BottleRocketImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BottleRocketImage),error}this.variant=props.variant??BottlerocketEcsVariant.AWS_ECS_1,this.architecture=props.architecture??ec2.InstanceArchitecture.X86_64,this.amiParameterName=`/aws/service/bottlerocket/${this.variant}/${this.architecture}/latest/image_id`,this.cachedInContext=props.cachedInContext??!1}getImage(scope){return{imageId:lookupImage(scope,this.cachedInContext,this.amiParameterName),osType:ec2.OperatingSystemType.LINUX,userData:ec2.UserData.custom("")}}}exports.BottleRocketImage=BottleRocketImage,_c=JSII_RTTI_SYMBOL_1,BottleRocketImage[_c]={fqn:"aws-cdk-lib.aws_ecs.BottleRocketImage",version:"2.51.0"};function lookupImage(scope,cachedInContext,parameterName){return cachedInContext?ssm.StringParameter.valueFromLookup(scope,parameterName):ssm.StringParameter.valueForTypedStringParameterV2(scope,parameterName,ssm.ParameterValueType.AWS_EC2_IMAGE_ID)}
1
+ "use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.BottleRocketImage=exports.BottlerocketEcsVariant=exports.EcsOptimizedImage=exports.EcsOptimizedAmi=exports.WindowsOptimizedVersion=exports.AmiHardwareType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),ec2=require("../../aws-ec2"),ssm=require("../../aws-ssm");var AmiHardwareType;(function(AmiHardwareType2){AmiHardwareType2.STANDARD="Standard",AmiHardwareType2.GPU="GPU",AmiHardwareType2.ARM="ARM64"})(AmiHardwareType=exports.AmiHardwareType||(exports.AmiHardwareType={}));var WindowsOptimizedVersion;(function(WindowsOptimizedVersion2){WindowsOptimizedVersion2.SERVER_2019="2019",WindowsOptimizedVersion2.SERVER_2016="2016"})(WindowsOptimizedVersion=exports.WindowsOptimizedVersion||(exports.WindowsOptimizedVersion={}));class EcsOptimizedAmi{constructor(props){if(this.hwType=props&&props.hardwareType||AmiHardwareType.STANDARD,props&&props.generation){if(props.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX&&this.hwType!==AmiHardwareType.STANDARD)throw new Error("Amazon Linux does not support special hardware type. Use Amazon Linux 2 instead");if(props.windowsVersion)throw new Error('"windowsVersion" and Linux image "generation" cannot be both set');this.generation=props.generation}else if(props&&props.windowsVersion){if(this.hwType!==AmiHardwareType.STANDARD)throw new Error("Windows Server does not support special hardware type");this.windowsVersion=props.windowsVersion}else this.generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2;this.amiParameterName="/aws/service/ecs/optimized-ami/"+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX?"amazon-linux/":"")+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX_2?"amazon-linux-2/":"")+(this.windowsVersion?`windows_server/${this.windowsVersion}/english/full/`:"")+(this.hwType===AmiHardwareType.GPU?"gpu/":"")+(this.hwType===AmiHardwareType.ARM?"arm64/":"")+"recommended/image_id",this.cachedInContext=props?.cachedInContext??!1}getImage(scope){const ami=lookupImage(scope,this.cachedInContext,this.amiParameterName),osType=this.windowsVersion?ec2.OperatingSystemType.WINDOWS:ec2.OperatingSystemType.LINUX;return{imageId:ami,osType,userData:ec2.UserData.forOperatingSystem(osType)}}}exports.EcsOptimizedAmi=EcsOptimizedAmi,_a=JSII_RTTI_SYMBOL_1,EcsOptimizedAmi[_a]={fqn:"aws-cdk-lib.aws_ecs.EcsOptimizedAmi",version:"2.51.1"};class EcsOptimizedImage{constructor(props){if(this.hwType=props&&props.hardwareType,props.windowsVersion)this.windowsVersion=props.windowsVersion;else if(props.generation)this.generation=props.generation;else throw new Error("This error should never be thrown");this.amiParameterName="/aws/service/ecs/optimized-ami/"+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX?"amazon-linux/":"")+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX_2?"amazon-linux-2/":"")+(this.windowsVersion?`windows_server/${this.windowsVersion}/english/full/`:"")+(this.hwType===AmiHardwareType.GPU?"gpu/":"")+(this.hwType===AmiHardwareType.ARM?"arm64/":"")+"recommended/image_id",this.cachedInContext=props?.cachedInContext??!1}static amazonLinux2(hardwareType=AmiHardwareType.STANDARD,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AmiHardwareType(hardwareType),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.amazonLinux2),error}return new EcsOptimizedImage({generation:ec2.AmazonLinuxGeneration.AMAZON_LINUX_2,hardwareType,cachedInContext:options.cachedInContext})}static amazonLinux(options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.amazonLinux),error}return new EcsOptimizedImage({generation:ec2.AmazonLinuxGeneration.AMAZON_LINUX,cachedInContext:options.cachedInContext})}static windows(windowsVersion,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_WindowsOptimizedVersion(windowsVersion),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.windows),error}return new EcsOptimizedImage({windowsVersion,cachedInContext:options.cachedInContext})}getImage(scope){const ami=lookupImage(scope,this.cachedInContext,this.amiParameterName),osType=this.windowsVersion?ec2.OperatingSystemType.WINDOWS:ec2.OperatingSystemType.LINUX;return{imageId:ami,osType,userData:ec2.UserData.forOperatingSystem(osType)}}}exports.EcsOptimizedImage=EcsOptimizedImage,_b=JSII_RTTI_SYMBOL_1,EcsOptimizedImage[_b]={fqn:"aws-cdk-lib.aws_ecs.EcsOptimizedImage",version:"2.51.1"};var BottlerocketEcsVariant;(function(BottlerocketEcsVariant2){BottlerocketEcsVariant2.AWS_ECS_1="aws-ecs-1"})(BottlerocketEcsVariant=exports.BottlerocketEcsVariant||(exports.BottlerocketEcsVariant={}));class BottleRocketImage{constructor(props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_BottleRocketImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BottleRocketImage),error}this.variant=props.variant??BottlerocketEcsVariant.AWS_ECS_1,this.architecture=props.architecture??ec2.InstanceArchitecture.X86_64,this.amiParameterName=`/aws/service/bottlerocket/${this.variant}/${this.architecture}/latest/image_id`,this.cachedInContext=props.cachedInContext??!1}getImage(scope){return{imageId:lookupImage(scope,this.cachedInContext,this.amiParameterName),osType:ec2.OperatingSystemType.LINUX,userData:ec2.UserData.custom("")}}}exports.BottleRocketImage=BottleRocketImage,_c=JSII_RTTI_SYMBOL_1,BottleRocketImage[_c]={fqn:"aws-cdk-lib.aws_ecs.BottleRocketImage",version:"2.51.1"};function lookupImage(scope,cachedInContext,parameterName){return cachedInContext?ssm.StringParameter.valueFromLookup(scope,parameterName):ssm.StringParameter.valueForTypedStringParameterV2(scope,parameterName,ssm.ParameterValueType.AWS_EC2_IMAGE_ID)}
2
2
  //# sourceMappingURL=amis.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PropagatedTagSource=exports.DeploymentControllerType=exports.LaunchType=exports.BaseService=exports.ListenerConfig=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),appscaling=require("../../../aws-applicationautoscaling"),cloudwatch=require("../../../aws-cloudwatch"),ec2=require("../../../aws-ec2"),elbv2=require("../../../aws-elasticloadbalancingv2"),iam=require("../../../aws-iam"),cloudmap=require("../../../aws-servicediscovery"),core_1=require("../../../core"),cxapi=require("../../../cx-api"),task_definition_1=require("../base/task-definition"),cluster_1=require("../cluster"),ecs_generated_1=require("../ecs.generated"),scalable_task_count_1=require("./scalable-task-count");class ListenerConfig{static applicationListener(listener,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_ApplicationListener(listener),jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_AddApplicationTargetsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.applicationListener),error}return new ApplicationListenerConfig(listener,props)}static networkListener(listener,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_NetworkListener(listener),jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_AddNetworkTargetsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.networkListener),error}return new NetworkListenerConfig(listener,props)}}exports.ListenerConfig=ListenerConfig,_a=JSII_RTTI_SYMBOL_1,ListenerConfig[_a]={fqn:"aws-cdk-lib.aws_ecs.ListenerConfig",version:"2.51.0"};class ApplicationListenerConfig extends ListenerConfig{constructor(listener,props){super(),this.listener=listener,this.props=props}addTargets(id,target,service){const props=this.props||{},protocol=props.protocol,port=props.port??(protocol===elbv2.ApplicationProtocol.HTTPS?443:80);this.listener.addTargets(id,{...props,targets:[service.loadBalancerTarget({...target})],port})}}class NetworkListenerConfig extends ListenerConfig{constructor(listener,props){super(),this.listener=listener,this.props=props}addTargets(id,target,service){const port=this.props?.port??80;this.listener.addTargets(id,{...this.props,targets:[service.loadBalancerTarget({...target})],port})}}class BaseService extends core_1.Resource{constructor(scope,id,props,additionalProps,taskDefinition){super(scope,id,{physicalName:props.serviceName}),this.connections=new ec2.Connections,this.loadBalancers=new Array,this.serviceRegistries=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_BaseServiceProps(props),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinition(taskDefinition)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BaseService),error}if(props.propagateTags&&props.propagateTaskTagsFrom)throw new Error("You can only specify either propagateTags or propagateTaskTagsFrom. Alternatively, you can leave both blank");this.taskDefinition=taskDefinition;const launchType=props.deploymentController?.type===DeploymentControllerType.EXTERNAL||props.capacityProviderStrategies!==void 0?void 0:props.launchType,propagateTagsFromSource=props.propagateTaskTagsFrom??props.propagateTags??PropagatedTagSource.NONE,deploymentController=this.getDeploymentController(props);if(this.resource=new ecs_generated_1.CfnService(this,"Service",{desiredCount:props.desiredCount,serviceName:this.physicalName,loadBalancers:core_1.Lazy.any({produce:()=>this.loadBalancers},{omitEmptyArray:!0}),deploymentConfiguration:{maximumPercent:props.maxHealthyPercent||200,minimumHealthyPercent:props.minHealthyPercent===void 0?50:props.minHealthyPercent,deploymentCircuitBreaker:props.circuitBreaker?{enable:!0,rollback:props.circuitBreaker.rollback??!1}:void 0},propagateTags:propagateTagsFromSource===PropagatedTagSource.NONE?void 0:props.propagateTags,enableEcsManagedTags:props.enableECSManagedTags??!1,deploymentController,launchType,enableExecuteCommand:props.enableExecuteCommand,capacityProviderStrategy:props.capacityProviderStrategies,healthCheckGracePeriodSeconds:this.evaluateHealthGracePeriod(props.healthCheckGracePeriod),networkConfiguration:core_1.Lazy.any({produce:()=>this.networkConfiguration},{omitEmptyArray:!0}),serviceRegistries:core_1.Lazy.any({produce:()=>this.serviceRegistries},{omitEmptyArray:!0}),...additionalProps}),props.deploymentController?.type===DeploymentControllerType.EXTERNAL&&core_1.Annotations.of(this).addWarning("taskDefinition and launchType are blanked out when using external deployment controller."),props.circuitBreaker&&deploymentController&&deploymentController.type!==DeploymentControllerType.ECS&&core_1.Annotations.of(this).addError("Deployment circuit breaker requires the ECS deployment controller."),props.deploymentController?.type===DeploymentControllerType.CODE_DEPLOY&&(this.resource.taskDefinition=taskDefinition.family,this.node.addDependency(taskDefinition)),this.serviceArn=this.getResourceArnAttribute(this.resource.ref,{service:"ecs",resource:"service",resourceName:`${props.cluster.clusterName}/${this.physicalName}`}),this.serviceName=this.getResourceNameAttribute(this.resource.attrName),this.cluster=props.cluster,props.cloudMapOptions&&this.enableCloudMap(props.cloudMapOptions),props.enableExecuteCommand){this.enableExecuteCommand();const logging=this.cluster.executeCommandConfiguration?.logging??cluster_1.ExecuteCommandLogging.DEFAULT;this.cluster.executeCommandConfiguration?.kmsKey&&this.enableExecuteCommandEncryption(logging),logging!==cluster_1.ExecuteCommandLogging.NONE&&this.executeCommandLogConfiguration()}this.node.defaultChild=this.resource}static fromServiceArnWithCluster(scope,id,serviceArn){const arn=core_1.Stack.of(scope).splitArn(serviceArn,core_1.ArnFormat.SLASH_RESOURCE_NAME),resourceName=arn.resourceName;if(!resourceName)throw new Error("Missing resource Name from service ARN: ${serviceArn}");const resourceNameParts=resourceName.split("/");if(resourceNameParts.length!==2)throw new Error(`resource name ${resourceName} from service ARN: ${serviceArn} is not using the ARN cluster format`);const clusterName=resourceNameParts[0],serviceName=resourceNameParts[1],clusterArn=core_1.Stack.of(scope).formatArn({partition:arn.partition,region:arn.region,account:arn.account,service:"ecs",resource:"cluster",resourceName:clusterName}),cluster=cluster_1.Cluster.fromClusterArn(scope,`${id}Cluster`,clusterArn);class Import extends core_1.Resource{constructor(){super(...arguments),this.serviceArn=serviceArn,this.serviceName=serviceName,this.cluster=cluster}}return new Import(scope,id,{environmentFromArn:serviceArn})}get cloudMapService(){return this.cloudmapService}getDeploymentController(props){return props.deploymentController?props.deploymentController:core_1.FeatureFlags.of(this).isEnabled(cxapi.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER)?void 0:{type:DeploymentControllerType.ECS}}executeCommandLogConfiguration(){const logConfiguration=this.cluster.executeCommandConfiguration?.logConfiguration;this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["logs:DescribeLogGroups"],resources:["*"]}));const logGroupArn=logConfiguration?.cloudWatchLogGroup?`arn:${this.stack.partition}:logs:${this.env.region}:${this.env.account}:log-group:${logConfiguration.cloudWatchLogGroup.logGroupName}:*`:"*";this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],resources:[logGroupArn]})),logConfiguration?.s3Bucket?.bucketName&&(this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["s3:GetBucketLocation"],resources:["*"]})),this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["s3:PutObject"],resources:[`arn:${this.stack.partition}:s3:::${logConfiguration.s3Bucket.bucketName}/*`]})),logConfiguration.s3EncryptionEnabled&&this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["s3:GetEncryptionConfiguration"],resources:[`arn:${this.stack.partition}:s3:::${logConfiguration.s3Bucket.bucketName}`]})))}enableExecuteCommandEncryption(logging){this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["kms:Decrypt","kms:GenerateDataKey"],resources:[`${this.cluster.executeCommandConfiguration?.kmsKey?.keyArn}`]})),this.cluster.executeCommandConfiguration?.kmsKey?.addToResourcePolicy(new iam.PolicyStatement({actions:["kms:*"],resources:["*"],principals:[new iam.ArnPrincipal(`arn:${this.stack.partition}:iam::${this.env.account}:root`)]})),(logging===cluster_1.ExecuteCommandLogging.DEFAULT||this.cluster.executeCommandConfiguration?.logConfiguration?.cloudWatchEncryptionEnabled)&&this.cluster.executeCommandConfiguration?.kmsKey?.addToResourcePolicy(new iam.PolicyStatement({actions:["kms:Encrypt*","kms:Decrypt*","kms:ReEncrypt*","kms:GenerateDataKey*","kms:Describe*"],resources:["*"],principals:[new iam.ServicePrincipal(`logs.${this.env.region}.amazonaws.com`)],conditions:{ArnLike:{"kms:EncryptionContext:aws:logs:arn":`arn:${this.stack.partition}:logs:${this.env.region}:${this.env.account}:*`}}}))}attachToApplicationTargetGroup(targetGroup){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_IApplicationTargetGroup(targetGroup)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.attachToApplicationTargetGroup),error}return this.defaultLoadBalancerTarget.attachToApplicationTargetGroup(targetGroup)}attachToClassicLB(loadBalancer){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancing_LoadBalancer(loadBalancer)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.attachToClassicLB),error}return this.defaultLoadBalancerTarget.attachToClassicLB(loadBalancer)}loadBalancerTarget(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_LoadBalancerTargetOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.loadBalancerTarget),error}const self=this,target=this.taskDefinition._validateTarget(options),connections=self.connections;return{attachToApplicationTargetGroup(targetGroup){return targetGroup.registerConnectable(self,self.taskDefinition._portRangeFromPortMapping(target.portMapping)),self.attachToELBv2(targetGroup,target.containerName,target.portMapping.containerPort)},attachToNetworkTargetGroup(targetGroup){return self.attachToELBv2(targetGroup,target.containerName,target.portMapping.containerPort)},connections,attachToClassicLB(loadBalancer){return self.attachToELB(loadBalancer,target.containerName,target.portMapping.containerPort)}}}registerLoadBalancerTargets(...targets){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsTarget(targets)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.registerLoadBalancerTargets),error}for(const target of targets)target.listener.addTargets(target.newTargetGroupId,{containerName:target.containerName,containerPort:target.containerPort,protocol:target.protocol},this)}attachToNetworkTargetGroup(targetGroup){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_INetworkTargetGroup(targetGroup)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.attachToNetworkTargetGroup),error}return this.defaultLoadBalancerTarget.attachToNetworkTargetGroup(targetGroup)}autoScaleTaskCount(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_applicationautoscaling_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleTaskCount),error}if(this.scalableTaskCount)throw new Error("AutoScaling of task count already enabled for this service");return this.scalableTaskCount=new scalable_task_count_1.ScalableTaskCount(this,"TaskCount",{serviceNamespace:appscaling.ServiceNamespace.ECS,resourceId:`service/${this.cluster.clusterName}/${this.serviceName}`,dimension:"ecs:service:DesiredCount",role:this.makeAutoScalingRole(),...props})}enableCloudMap(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_CloudMapOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.enableCloudMap),error}const sdNamespace=options.cloudMapNamespace??this.cluster.defaultCloudMapNamespace;if(sdNamespace===void 0)throw new Error("Cannot enable service discovery if a Cloudmap Namespace has not been created in the cluster.");const networkMode=this.taskDefinition.networkMode;if(networkMode===task_definition_1.NetworkMode.NONE)throw new Error("Cannot use a service discovery if NetworkMode is None. Use Bridge, Host or AwsVpc instead.");let dnsRecordType=options.dnsRecordType;if((networkMode===task_definition_1.NetworkMode.BRIDGE||networkMode===task_definition_1.NetworkMode.HOST)&&(dnsRecordType===void 0&&(dnsRecordType=cloudmap.DnsRecordType.SRV),dnsRecordType!==cloudmap.DnsRecordType.SRV))throw new Error("SRV records must be used when network mode is Bridge or Host.");networkMode===task_definition_1.NetworkMode.AWS_VPC&&dnsRecordType===void 0&&(dnsRecordType=cloudmap.DnsRecordType.A);const{containerName,containerPort}=determineContainerNameAndPort({taskDefinition:this.taskDefinition,dnsRecordType,container:options.container,containerPort:options.containerPort}),cloudmapService=new cloudmap.Service(this,"CloudmapService",{namespace:sdNamespace,name:options.name,dnsRecordType,customHealthCheck:{failureThreshold:options.failureThreshold||1},dnsTtl:options.dnsTtl}),serviceArn=cloudmapService.serviceArn;return this.addServiceRegistry({arn:serviceArn,containerName,containerPort}),this.cloudmapService=cloudmapService,cloudmapService}associateCloudMapService(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AssociateCloudMapServiceOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.associateCloudMapService),error}const service=options.service,{containerName,containerPort}=determineContainerNameAndPort({taskDefinition:this.taskDefinition,dnsRecordType:service.dnsRecordType,container:options.container,containerPort:options.containerPort});this.addServiceRegistry({arn:service.serviceArn,containerName,containerPort})}metric(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.metric),error}return new cloudwatch.Metric({namespace:"AWS/ECS",metricName,dimensionsMap:{ClusterName:this.cluster.clusterName,ServiceName:this.serviceName},...props}).attachTo(this)}metricMemoryUtilization(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.metricMemoryUtilization),error}return this.metric("MemoryUtilization",props)}metricCpuUtilization(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.metricCpuUtilization),error}return this.metric("CPUUtilization",props)}configureAwsVpcNetworking(vpc,assignPublicIp,vpcSubnets,securityGroup){vpcSubnets===void 0&&(vpcSubnets=assignPublicIp?{subnetType:ec2.SubnetType.PUBLIC}:{}),securityGroup===void 0&&(securityGroup=new ec2.SecurityGroup(this,"SecurityGroup",{vpc})),this.connections.addSecurityGroup(securityGroup),this.networkConfiguration={awsvpcConfiguration:{assignPublicIp:assignPublicIp?"ENABLED":"DISABLED",subnets:vpc.selectSubnets(vpcSubnets).subnetIds,securityGroups:core_1.Lazy.list({produce:()=>[securityGroup.securityGroupId]})}}}configureAwsVpcNetworkingWithSecurityGroups(vpc,assignPublicIp,vpcSubnets,securityGroups){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_IVpc(vpc),jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_SubnetSelection(vpcSubnets)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.configureAwsVpcNetworkingWithSecurityGroups),error}vpcSubnets===void 0&&(vpcSubnets=assignPublicIp?{subnetType:ec2.SubnetType.PUBLIC}:{}),(securityGroups===void 0||securityGroups.length===0)&&(securityGroups=[new ec2.SecurityGroup(this,"SecurityGroup",{vpc})]),securityGroups.forEach(sg=>{this.connections.addSecurityGroup(sg)},this),this.networkConfiguration={awsvpcConfiguration:{assignPublicIp:assignPublicIp?"ENABLED":"DISABLED",subnets:vpc.selectSubnets(vpcSubnets).subnetIds,securityGroups:securityGroups.map(sg=>sg.securityGroupId)}}}renderServiceRegistry(registry){return{registryArn:registry.arn,containerName:registry.containerName,containerPort:registry.containerPort}}attachToELB(loadBalancer,containerName,containerPort){if(this.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC)throw new Error("Cannot use a Classic Load Balancer if NetworkMode is AwsVpc. Use Host or Bridge instead.");if(this.taskDefinition.networkMode===task_definition_1.NetworkMode.NONE)throw new Error("Cannot use a Classic Load Balancer if NetworkMode is None. Use Host or Bridge instead.");this.loadBalancers.push({loadBalancerName:loadBalancer.loadBalancerName,containerName,containerPort})}attachToELBv2(targetGroup,containerName,containerPort){if(this.taskDefinition.networkMode===task_definition_1.NetworkMode.NONE)throw new Error("Cannot use a load balancer if NetworkMode is None. Use Bridge, Host or AwsVpc instead.");return this.loadBalancers.push({targetGroupArn:targetGroup.targetGroupArn,containerName,containerPort}),this.resource.node.addDependency(targetGroup.loadBalancerAttached),{targetType:this.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC?elbv2.TargetType.IP:elbv2.TargetType.INSTANCE}}get defaultLoadBalancerTarget(){return this.loadBalancerTarget({containerName:this.taskDefinition.defaultContainer.containerName})}makeAutoScalingRole(){return iam.Role.fromRoleArn(this,"ScalingRole",core_1.Stack.of(this).formatArn({region:"",service:"iam",resource:"role/aws-service-role/ecs.application-autoscaling.amazonaws.com",resourceName:"AWSServiceRoleForApplicationAutoScaling_ECSService"}))}addServiceRegistry(registry){if(this.serviceRegistries.length>=1)throw new Error("Cannot associate with the given service discovery registry. ECS supports at most one service registry per service.");const sr=this.renderServiceRegistry(registry);this.serviceRegistries.push(sr)}evaluateHealthGracePeriod(providedHealthCheckGracePeriod){return core_1.Lazy.any({produce:()=>providedHealthCheckGracePeriod?.toSeconds()??(this.loadBalancers.length>0?60:void 0)})}enableExecuteCommand(){this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["ssmmessages:CreateControlChannel","ssmmessages:CreateDataChannel","ssmmessages:OpenControlChannel","ssmmessages:OpenDataChannel"],resources:["*"]}))}}exports.BaseService=BaseService,_b=JSII_RTTI_SYMBOL_1,BaseService[_b]={fqn:"aws-cdk-lib.aws_ecs.BaseService",version:"2.51.0"};var LaunchType;(function(LaunchType2){LaunchType2.EC2="EC2",LaunchType2.FARGATE="FARGATE",LaunchType2.EXTERNAL="EXTERNAL"})(LaunchType=exports.LaunchType||(exports.LaunchType={}));var DeploymentControllerType;(function(DeploymentControllerType2){DeploymentControllerType2.ECS="ECS",DeploymentControllerType2.CODE_DEPLOY="CODE_DEPLOY",DeploymentControllerType2.EXTERNAL="EXTERNAL"})(DeploymentControllerType=exports.DeploymentControllerType||(exports.DeploymentControllerType={}));var PropagatedTagSource;(function(PropagatedTagSource2){PropagatedTagSource2.SERVICE="SERVICE",PropagatedTagSource2.TASK_DEFINITION="TASK_DEFINITION",PropagatedTagSource2.NONE="NONE"})(PropagatedTagSource=exports.PropagatedTagSource||(exports.PropagatedTagSource={}));function determineContainerNameAndPort(options){if(options.dnsRecordType===cloudmap.DnsRecordType.SRV){if(options.container&&options.container.taskDefinition!=options.taskDefinition)throw new Error("Cannot add discovery for a container from another task definition");const container=options.container??options.taskDefinition.defaultContainer;if(options.containerPort&&!container.portMappings.some(mapping=>mapping.containerPort===options.containerPort))throw new Error("Cannot add discovery for a container port that has not been mapped");return{containerName:container.containerName,containerPort:options.containerPort??options.taskDefinition.defaultContainer.containerPort}}return{}}
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.PropagatedTagSource=exports.DeploymentControllerType=exports.LaunchType=exports.BaseService=exports.ListenerConfig=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),appscaling=require("../../../aws-applicationautoscaling"),cloudwatch=require("../../../aws-cloudwatch"),ec2=require("../../../aws-ec2"),elbv2=require("../../../aws-elasticloadbalancingv2"),iam=require("../../../aws-iam"),cloudmap=require("../../../aws-servicediscovery"),core_1=require("../../../core"),cxapi=require("../../../cx-api"),task_definition_1=require("../base/task-definition"),cluster_1=require("../cluster"),ecs_generated_1=require("../ecs.generated"),scalable_task_count_1=require("./scalable-task-count");class ListenerConfig{static applicationListener(listener,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_ApplicationListener(listener),jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_AddApplicationTargetsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.applicationListener),error}return new ApplicationListenerConfig(listener,props)}static networkListener(listener,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_NetworkListener(listener),jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_AddNetworkTargetsProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.networkListener),error}return new NetworkListenerConfig(listener,props)}}exports.ListenerConfig=ListenerConfig,_a=JSII_RTTI_SYMBOL_1,ListenerConfig[_a]={fqn:"aws-cdk-lib.aws_ecs.ListenerConfig",version:"2.51.1"};class ApplicationListenerConfig extends ListenerConfig{constructor(listener,props){super(),this.listener=listener,this.props=props}addTargets(id,target,service){const props=this.props||{},protocol=props.protocol,port=props.port??(protocol===elbv2.ApplicationProtocol.HTTPS?443:80);this.listener.addTargets(id,{...props,targets:[service.loadBalancerTarget({...target})],port})}}class NetworkListenerConfig extends ListenerConfig{constructor(listener,props){super(),this.listener=listener,this.props=props}addTargets(id,target,service){const port=this.props?.port??80;this.listener.addTargets(id,{...this.props,targets:[service.loadBalancerTarget({...target})],port})}}class BaseService extends core_1.Resource{constructor(scope,id,props,additionalProps,taskDefinition){super(scope,id,{physicalName:props.serviceName}),this.connections=new ec2.Connections,this.loadBalancers=new Array,this.serviceRegistries=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_BaseServiceProps(props),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinition(taskDefinition)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BaseService),error}if(props.propagateTags&&props.propagateTaskTagsFrom)throw new Error("You can only specify either propagateTags or propagateTaskTagsFrom. Alternatively, you can leave both blank");this.taskDefinition=taskDefinition;const launchType=props.deploymentController?.type===DeploymentControllerType.EXTERNAL||props.capacityProviderStrategies!==void 0?void 0:props.launchType,propagateTagsFromSource=props.propagateTaskTagsFrom??props.propagateTags??PropagatedTagSource.NONE,deploymentController=this.getDeploymentController(props);if(this.resource=new ecs_generated_1.CfnService(this,"Service",{desiredCount:props.desiredCount,serviceName:this.physicalName,loadBalancers:core_1.Lazy.any({produce:()=>this.loadBalancers},{omitEmptyArray:!0}),deploymentConfiguration:{maximumPercent:props.maxHealthyPercent||200,minimumHealthyPercent:props.minHealthyPercent===void 0?50:props.minHealthyPercent,deploymentCircuitBreaker:props.circuitBreaker?{enable:!0,rollback:props.circuitBreaker.rollback??!1}:void 0},propagateTags:propagateTagsFromSource===PropagatedTagSource.NONE?void 0:props.propagateTags,enableEcsManagedTags:props.enableECSManagedTags??!1,deploymentController,launchType,enableExecuteCommand:props.enableExecuteCommand,capacityProviderStrategy:props.capacityProviderStrategies,healthCheckGracePeriodSeconds:this.evaluateHealthGracePeriod(props.healthCheckGracePeriod),networkConfiguration:core_1.Lazy.any({produce:()=>this.networkConfiguration},{omitEmptyArray:!0}),serviceRegistries:core_1.Lazy.any({produce:()=>this.serviceRegistries},{omitEmptyArray:!0}),...additionalProps}),props.deploymentController?.type===DeploymentControllerType.EXTERNAL&&core_1.Annotations.of(this).addWarning("taskDefinition and launchType are blanked out when using external deployment controller."),props.circuitBreaker&&deploymentController&&deploymentController.type!==DeploymentControllerType.ECS&&core_1.Annotations.of(this).addError("Deployment circuit breaker requires the ECS deployment controller."),props.deploymentController?.type===DeploymentControllerType.CODE_DEPLOY&&(this.resource.taskDefinition=taskDefinition.family,this.node.addDependency(taskDefinition)),this.serviceArn=this.getResourceArnAttribute(this.resource.ref,{service:"ecs",resource:"service",resourceName:`${props.cluster.clusterName}/${this.physicalName}`}),this.serviceName=this.getResourceNameAttribute(this.resource.attrName),this.cluster=props.cluster,props.cloudMapOptions&&this.enableCloudMap(props.cloudMapOptions),props.enableExecuteCommand){this.enableExecuteCommand();const logging=this.cluster.executeCommandConfiguration?.logging??cluster_1.ExecuteCommandLogging.DEFAULT;this.cluster.executeCommandConfiguration?.kmsKey&&this.enableExecuteCommandEncryption(logging),logging!==cluster_1.ExecuteCommandLogging.NONE&&this.executeCommandLogConfiguration()}this.node.defaultChild=this.resource}static fromServiceArnWithCluster(scope,id,serviceArn){const arn=core_1.Stack.of(scope).splitArn(serviceArn,core_1.ArnFormat.SLASH_RESOURCE_NAME),resourceName=arn.resourceName;if(!resourceName)throw new Error("Missing resource Name from service ARN: ${serviceArn}");const resourceNameParts=resourceName.split("/");if(resourceNameParts.length!==2)throw new Error(`resource name ${resourceName} from service ARN: ${serviceArn} is not using the ARN cluster format`);const clusterName=resourceNameParts[0],serviceName=resourceNameParts[1],clusterArn=core_1.Stack.of(scope).formatArn({partition:arn.partition,region:arn.region,account:arn.account,service:"ecs",resource:"cluster",resourceName:clusterName}),cluster=cluster_1.Cluster.fromClusterArn(scope,`${id}Cluster`,clusterArn);class Import extends core_1.Resource{constructor(){super(...arguments),this.serviceArn=serviceArn,this.serviceName=serviceName,this.cluster=cluster}}return new Import(scope,id,{environmentFromArn:serviceArn})}get cloudMapService(){return this.cloudmapService}getDeploymentController(props){if(props.deploymentController)return props.deploymentController;if(!core_1.FeatureFlags.of(this).isEnabled(cxapi.ECS_DISABLE_EXPLICIT_DEPLOYMENT_CONTROLLER_FOR_CIRCUIT_BREAKER)&&props.circuitBreaker)return{type:DeploymentControllerType.ECS}}executeCommandLogConfiguration(){const logConfiguration=this.cluster.executeCommandConfiguration?.logConfiguration;this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["logs:DescribeLogGroups"],resources:["*"]}));const logGroupArn=logConfiguration?.cloudWatchLogGroup?`arn:${this.stack.partition}:logs:${this.env.region}:${this.env.account}:log-group:${logConfiguration.cloudWatchLogGroup.logGroupName}:*`:"*";this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["logs:CreateLogStream","logs:DescribeLogStreams","logs:PutLogEvents"],resources:[logGroupArn]})),logConfiguration?.s3Bucket?.bucketName&&(this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["s3:GetBucketLocation"],resources:["*"]})),this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["s3:PutObject"],resources:[`arn:${this.stack.partition}:s3:::${logConfiguration.s3Bucket.bucketName}/*`]})),logConfiguration.s3EncryptionEnabled&&this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["s3:GetEncryptionConfiguration"],resources:[`arn:${this.stack.partition}:s3:::${logConfiguration.s3Bucket.bucketName}`]})))}enableExecuteCommandEncryption(logging){this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["kms:Decrypt","kms:GenerateDataKey"],resources:[`${this.cluster.executeCommandConfiguration?.kmsKey?.keyArn}`]})),this.cluster.executeCommandConfiguration?.kmsKey?.addToResourcePolicy(new iam.PolicyStatement({actions:["kms:*"],resources:["*"],principals:[new iam.ArnPrincipal(`arn:${this.stack.partition}:iam::${this.env.account}:root`)]})),(logging===cluster_1.ExecuteCommandLogging.DEFAULT||this.cluster.executeCommandConfiguration?.logConfiguration?.cloudWatchEncryptionEnabled)&&this.cluster.executeCommandConfiguration?.kmsKey?.addToResourcePolicy(new iam.PolicyStatement({actions:["kms:Encrypt*","kms:Decrypt*","kms:ReEncrypt*","kms:GenerateDataKey*","kms:Describe*"],resources:["*"],principals:[new iam.ServicePrincipal(`logs.${this.env.region}.amazonaws.com`)],conditions:{ArnLike:{"kms:EncryptionContext:aws:logs:arn":`arn:${this.stack.partition}:logs:${this.env.region}:${this.env.account}:*`}}}))}attachToApplicationTargetGroup(targetGroup){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_IApplicationTargetGroup(targetGroup)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.attachToApplicationTargetGroup),error}return this.defaultLoadBalancerTarget.attachToApplicationTargetGroup(targetGroup)}attachToClassicLB(loadBalancer){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancing_LoadBalancer(loadBalancer)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.attachToClassicLB),error}return this.defaultLoadBalancerTarget.attachToClassicLB(loadBalancer)}loadBalancerTarget(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_LoadBalancerTargetOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.loadBalancerTarget),error}const self=this,target=this.taskDefinition._validateTarget(options),connections=self.connections;return{attachToApplicationTargetGroup(targetGroup){return targetGroup.registerConnectable(self,self.taskDefinition._portRangeFromPortMapping(target.portMapping)),self.attachToELBv2(targetGroup,target.containerName,target.portMapping.containerPort)},attachToNetworkTargetGroup(targetGroup){return self.attachToELBv2(targetGroup,target.containerName,target.portMapping.containerPort)},connections,attachToClassicLB(loadBalancer){return self.attachToELB(loadBalancer,target.containerName,target.portMapping.containerPort)}}}registerLoadBalancerTargets(...targets){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsTarget(targets)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.registerLoadBalancerTargets),error}for(const target of targets)target.listener.addTargets(target.newTargetGroupId,{containerName:target.containerName,containerPort:target.containerPort,protocol:target.protocol},this)}attachToNetworkTargetGroup(targetGroup){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_elasticloadbalancingv2_INetworkTargetGroup(targetGroup)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.attachToNetworkTargetGroup),error}return this.defaultLoadBalancerTarget.attachToNetworkTargetGroup(targetGroup)}autoScaleTaskCount(props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_applicationautoscaling_EnableScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.autoScaleTaskCount),error}if(this.scalableTaskCount)throw new Error("AutoScaling of task count already enabled for this service");return this.scalableTaskCount=new scalable_task_count_1.ScalableTaskCount(this,"TaskCount",{serviceNamespace:appscaling.ServiceNamespace.ECS,resourceId:`service/${this.cluster.clusterName}/${this.serviceName}`,dimension:"ecs:service:DesiredCount",role:this.makeAutoScalingRole(),...props})}enableCloudMap(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_CloudMapOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.enableCloudMap),error}const sdNamespace=options.cloudMapNamespace??this.cluster.defaultCloudMapNamespace;if(sdNamespace===void 0)throw new Error("Cannot enable service discovery if a Cloudmap Namespace has not been created in the cluster.");const networkMode=this.taskDefinition.networkMode;if(networkMode===task_definition_1.NetworkMode.NONE)throw new Error("Cannot use a service discovery if NetworkMode is None. Use Bridge, Host or AwsVpc instead.");let dnsRecordType=options.dnsRecordType;if((networkMode===task_definition_1.NetworkMode.BRIDGE||networkMode===task_definition_1.NetworkMode.HOST)&&(dnsRecordType===void 0&&(dnsRecordType=cloudmap.DnsRecordType.SRV),dnsRecordType!==cloudmap.DnsRecordType.SRV))throw new Error("SRV records must be used when network mode is Bridge or Host.");networkMode===task_definition_1.NetworkMode.AWS_VPC&&dnsRecordType===void 0&&(dnsRecordType=cloudmap.DnsRecordType.A);const{containerName,containerPort}=determineContainerNameAndPort({taskDefinition:this.taskDefinition,dnsRecordType,container:options.container,containerPort:options.containerPort}),cloudmapService=new cloudmap.Service(this,"CloudmapService",{namespace:sdNamespace,name:options.name,dnsRecordType,customHealthCheck:{failureThreshold:options.failureThreshold||1},dnsTtl:options.dnsTtl}),serviceArn=cloudmapService.serviceArn;return this.addServiceRegistry({arn:serviceArn,containerName,containerPort}),this.cloudmapService=cloudmapService,cloudmapService}associateCloudMapService(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AssociateCloudMapServiceOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.associateCloudMapService),error}const service=options.service,{containerName,containerPort}=determineContainerNameAndPort({taskDefinition:this.taskDefinition,dnsRecordType:service.dnsRecordType,container:options.container,containerPort:options.containerPort});this.addServiceRegistry({arn:service.serviceArn,containerName,containerPort})}metric(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.metric),error}return new cloudwatch.Metric({namespace:"AWS/ECS",metricName,dimensionsMap:{ClusterName:this.cluster.clusterName,ServiceName:this.serviceName},...props}).attachTo(this)}metricMemoryUtilization(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.metricMemoryUtilization),error}return this.metric("MemoryUtilization",props)}metricCpuUtilization(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.metricCpuUtilization),error}return this.metric("CPUUtilization",props)}configureAwsVpcNetworking(vpc,assignPublicIp,vpcSubnets,securityGroup){vpcSubnets===void 0&&(vpcSubnets=assignPublicIp?{subnetType:ec2.SubnetType.PUBLIC}:{}),securityGroup===void 0&&(securityGroup=new ec2.SecurityGroup(this,"SecurityGroup",{vpc})),this.connections.addSecurityGroup(securityGroup),this.networkConfiguration={awsvpcConfiguration:{assignPublicIp:assignPublicIp?"ENABLED":"DISABLED",subnets:vpc.selectSubnets(vpcSubnets).subnetIds,securityGroups:core_1.Lazy.list({produce:()=>[securityGroup.securityGroupId]})}}}configureAwsVpcNetworkingWithSecurityGroups(vpc,assignPublicIp,vpcSubnets,securityGroups){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_IVpc(vpc),jsiiDeprecationWarnings.aws_cdk_lib_aws_ec2_SubnetSelection(vpcSubnets)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.configureAwsVpcNetworkingWithSecurityGroups),error}vpcSubnets===void 0&&(vpcSubnets=assignPublicIp?{subnetType:ec2.SubnetType.PUBLIC}:{}),(securityGroups===void 0||securityGroups.length===0)&&(securityGroups=[new ec2.SecurityGroup(this,"SecurityGroup",{vpc})]),securityGroups.forEach(sg=>{this.connections.addSecurityGroup(sg)},this),this.networkConfiguration={awsvpcConfiguration:{assignPublicIp:assignPublicIp?"ENABLED":"DISABLED",subnets:vpc.selectSubnets(vpcSubnets).subnetIds,securityGroups:securityGroups.map(sg=>sg.securityGroupId)}}}renderServiceRegistry(registry){return{registryArn:registry.arn,containerName:registry.containerName,containerPort:registry.containerPort}}attachToELB(loadBalancer,containerName,containerPort){if(this.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC)throw new Error("Cannot use a Classic Load Balancer if NetworkMode is AwsVpc. Use Host or Bridge instead.");if(this.taskDefinition.networkMode===task_definition_1.NetworkMode.NONE)throw new Error("Cannot use a Classic Load Balancer if NetworkMode is None. Use Host or Bridge instead.");this.loadBalancers.push({loadBalancerName:loadBalancer.loadBalancerName,containerName,containerPort})}attachToELBv2(targetGroup,containerName,containerPort){if(this.taskDefinition.networkMode===task_definition_1.NetworkMode.NONE)throw new Error("Cannot use a load balancer if NetworkMode is None. Use Bridge, Host or AwsVpc instead.");return this.loadBalancers.push({targetGroupArn:targetGroup.targetGroupArn,containerName,containerPort}),this.resource.node.addDependency(targetGroup.loadBalancerAttached),{targetType:this.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC?elbv2.TargetType.IP:elbv2.TargetType.INSTANCE}}get defaultLoadBalancerTarget(){return this.loadBalancerTarget({containerName:this.taskDefinition.defaultContainer.containerName})}makeAutoScalingRole(){return iam.Role.fromRoleArn(this,"ScalingRole",core_1.Stack.of(this).formatArn({region:"",service:"iam",resource:"role/aws-service-role/ecs.application-autoscaling.amazonaws.com",resourceName:"AWSServiceRoleForApplicationAutoScaling_ECSService"}))}addServiceRegistry(registry){if(this.serviceRegistries.length>=1)throw new Error("Cannot associate with the given service discovery registry. ECS supports at most one service registry per service.");const sr=this.renderServiceRegistry(registry);this.serviceRegistries.push(sr)}evaluateHealthGracePeriod(providedHealthCheckGracePeriod){return core_1.Lazy.any({produce:()=>providedHealthCheckGracePeriod?.toSeconds()??(this.loadBalancers.length>0?60:void 0)})}enableExecuteCommand(){this.taskDefinition.addToTaskRolePolicy(new iam.PolicyStatement({actions:["ssmmessages:CreateControlChannel","ssmmessages:CreateDataChannel","ssmmessages:OpenControlChannel","ssmmessages:OpenDataChannel"],resources:["*"]}))}}exports.BaseService=BaseService,_b=JSII_RTTI_SYMBOL_1,BaseService[_b]={fqn:"aws-cdk-lib.aws_ecs.BaseService",version:"2.51.1"};var LaunchType;(function(LaunchType2){LaunchType2.EC2="EC2",LaunchType2.FARGATE="FARGATE",LaunchType2.EXTERNAL="EXTERNAL"})(LaunchType=exports.LaunchType||(exports.LaunchType={}));var DeploymentControllerType;(function(DeploymentControllerType2){DeploymentControllerType2.ECS="ECS",DeploymentControllerType2.CODE_DEPLOY="CODE_DEPLOY",DeploymentControllerType2.EXTERNAL="EXTERNAL"})(DeploymentControllerType=exports.DeploymentControllerType||(exports.DeploymentControllerType={}));var PropagatedTagSource;(function(PropagatedTagSource2){PropagatedTagSource2.SERVICE="SERVICE",PropagatedTagSource2.TASK_DEFINITION="TASK_DEFINITION",PropagatedTagSource2.NONE="NONE"})(PropagatedTagSource=exports.PropagatedTagSource||(exports.PropagatedTagSource={}));function determineContainerNameAndPort(options){if(options.dnsRecordType===cloudmap.DnsRecordType.SRV){if(options.container&&options.container.taskDefinition!=options.taskDefinition)throw new Error("Cannot add discovery for a container from another task definition");const container=options.container??options.taskDefinition.defaultContainer;if(options.containerPort&&!container.portMappings.some(mapping=>mapping.containerPort===options.containerPort))throw new Error("Cannot add discovery for a container port that has not been mapped");return{containerName:container.containerName,containerPort:options.containerPort??options.taskDefinition.defaultContainer.containerPort}}return{}}
2
2
  //# sourceMappingURL=base-service.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScalableTaskCount=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),appscaling=require("../../../aws-applicationautoscaling");class ScalableTaskCount extends appscaling.BaseScalableAttribute{constructor(scope,id,props){super(scope,id,props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ScalableTaskCountProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ScalableTaskCount),error}}scaleOnSchedule(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_applicationautoscaling_ScalingSchedule(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnSchedule),error}return super.doScaleOnSchedule(id,props)}scaleOnMetric(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_applicationautoscaling_BasicStepScalingPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnMetric),error}return super.doScaleOnMetric(id,props)}scaleOnCpuUtilization(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_CpuUtilizationScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnCpuUtilization),error}return super.doScaleToTrackMetric(id,{predefinedMetric:appscaling.PredefinedMetric.ECS_SERVICE_AVERAGE_CPU_UTILIZATION,policyName:props.policyName,disableScaleIn:props.disableScaleIn,targetValue:props.targetUtilizationPercent,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}scaleOnMemoryUtilization(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_MemoryUtilizationScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnMemoryUtilization),error}return super.doScaleToTrackMetric(id,{predefinedMetric:appscaling.PredefinedMetric.ECS_SERVICE_AVERAGE_MEMORY_UTILIZATION,targetValue:props.targetUtilizationPercent,policyName:props.policyName,disableScaleIn:props.disableScaleIn,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}scaleOnRequestCount(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_RequestCountScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnRequestCount),error}const resourceLabel=props.targetGroup.firstLoadBalancerFullName+"/"+props.targetGroup.targetGroupFullName;return super.doScaleToTrackMetric(id,{predefinedMetric:appscaling.PredefinedMetric.ALB_REQUEST_COUNT_PER_TARGET,resourceLabel,targetValue:props.requestsPerTarget,policyName:props.policyName,disableScaleIn:props.disableScaleIn,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}scaleToTrackCustomMetric(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TrackCustomMetricProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleToTrackCustomMetric),error}return super.doScaleToTrackMetric(id,{customMetric:props.metric,targetValue:props.targetValue,policyName:props.policyName,disableScaleIn:props.disableScaleIn,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}}exports.ScalableTaskCount=ScalableTaskCount,_a=JSII_RTTI_SYMBOL_1,ScalableTaskCount[_a]={fqn:"aws-cdk-lib.aws_ecs.ScalableTaskCount",version:"2.51.0"};
1
+ "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.ScalableTaskCount=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),appscaling=require("../../../aws-applicationautoscaling");class ScalableTaskCount extends appscaling.BaseScalableAttribute{constructor(scope,id,props){super(scope,id,props);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ScalableTaskCountProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ScalableTaskCount),error}}scaleOnSchedule(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_applicationautoscaling_ScalingSchedule(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnSchedule),error}return super.doScaleOnSchedule(id,props)}scaleOnMetric(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_applicationautoscaling_BasicStepScalingPolicyProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnMetric),error}return super.doScaleOnMetric(id,props)}scaleOnCpuUtilization(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_CpuUtilizationScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnCpuUtilization),error}return super.doScaleToTrackMetric(id,{predefinedMetric:appscaling.PredefinedMetric.ECS_SERVICE_AVERAGE_CPU_UTILIZATION,policyName:props.policyName,disableScaleIn:props.disableScaleIn,targetValue:props.targetUtilizationPercent,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}scaleOnMemoryUtilization(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_MemoryUtilizationScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnMemoryUtilization),error}return super.doScaleToTrackMetric(id,{predefinedMetric:appscaling.PredefinedMetric.ECS_SERVICE_AVERAGE_MEMORY_UTILIZATION,targetValue:props.targetUtilizationPercent,policyName:props.policyName,disableScaleIn:props.disableScaleIn,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}scaleOnRequestCount(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_RequestCountScalingProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleOnRequestCount),error}const resourceLabel=props.targetGroup.firstLoadBalancerFullName+"/"+props.targetGroup.targetGroupFullName;return super.doScaleToTrackMetric(id,{predefinedMetric:appscaling.PredefinedMetric.ALB_REQUEST_COUNT_PER_TARGET,resourceLabel,targetValue:props.requestsPerTarget,policyName:props.policyName,disableScaleIn:props.disableScaleIn,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}scaleToTrackCustomMetric(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TrackCustomMetricProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.scaleToTrackCustomMetric),error}return super.doScaleToTrackMetric(id,{customMetric:props.metric,targetValue:props.targetValue,policyName:props.policyName,disableScaleIn:props.disableScaleIn,scaleInCooldown:props.scaleInCooldown,scaleOutCooldown:props.scaleOutCooldown})}}exports.ScalableTaskCount=ScalableTaskCount,_a=JSII_RTTI_SYMBOL_1,ScalableTaskCount[_a]={fqn:"aws-cdk-lib.aws_ecs.ScalableTaskCount",version:"2.51.1"};
2
2
  //# sourceMappingURL=scalable-task-count.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.isExternalCompatible=exports.isFargateCompatible=exports.isEc2Compatible=exports.Compatibility=exports.Scope=exports.PidMode=exports.IpcMode=exports.NetworkMode=exports.TaskDefinition=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),ec2=require("../../../aws-ec2"),iam=require("../../../aws-iam"),core_1=require("../../../core"),container_definition_1=require("../container-definition"),ecs_generated_1=require("../ecs.generated"),firelens_log_router_1=require("../firelens-log-router"),aws_log_driver_1=require("../log-drivers/aws-log-driver"),_imported_task_definition_1=require("./_imported-task-definition");class TaskDefinitionBase extends core_1.Resource{get isEc2Compatible(){return isEc2Compatible(this.compatibility)}get isFargateCompatible(){return isFargateCompatible(this.compatibility)}get isExternalCompatible(){return isExternalCompatible(this.compatibility)}}class TaskDefinition extends TaskDefinitionBase{constructor(scope,id,props){super(scope,id),this.containers=new Array,this.volumes=[],this.placementConstraints=new Array,this._inferenceAccelerators=[];try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,TaskDefinition),error}if(this.family=props.family||core_1.Names.uniqueId(this),this.compatibility=props.compatibility,props.volumes&&props.volumes.forEach(v=>this.addVolume(v)),this.networkMode=props.networkMode??(this.isFargateCompatible?NetworkMode.AWS_VPC:NetworkMode.BRIDGE),this.isFargateCompatible&&this.networkMode!==NetworkMode.AWS_VPC)throw new Error(`Fargate tasks can only have AwsVpc network mode, got: ${this.networkMode}`);if(props.proxyConfiguration&&this.networkMode!==NetworkMode.AWS_VPC)throw new Error(`ProxyConfiguration can only be used with AwsVpc network mode, got: ${this.networkMode}`);if(props.placementConstraints&&props.placementConstraints.length>0&&this.isFargateCompatible)throw new Error("Cannot set placement constraints on tasks that run on Fargate");if(this.isFargateCompatible&&(!props.cpu||!props.memoryMiB))throw new Error(`Fargate-compatible tasks require both CPU (${props.cpu}) and memory (${props.memoryMiB}) specifications`);if(props.inferenceAccelerators&&props.inferenceAccelerators.length>0&&this.isFargateCompatible)throw new Error("Cannot use inference accelerators on tasks that run on Fargate");if(this.isExternalCompatible&&![NetworkMode.BRIDGE,NetworkMode.HOST,NetworkMode.NONE].includes(this.networkMode))throw new Error(`External tasks can only have Bridge, Host or None network mode, got: ${this.networkMode}`);if(!this.isFargateCompatible&&props.runtimePlatform)throw new Error("Cannot specify runtimePlatform in non-Fargate compatible tasks");this._executionRole=props.executionRole,this.taskRole=props.taskRole||new iam.Role(this,"TaskRole",{assumedBy:new iam.ServicePrincipal("ecs-tasks.amazonaws.com")}),props.inferenceAccelerators&&props.inferenceAccelerators.forEach(ia=>this.addInferenceAccelerator(ia)),this.ephemeralStorageGiB=props.ephemeralStorageGiB,props.runtimePlatform?.operatingSystemFamily?._operatingSystemFamily.includes("WINDOWS")&&this.checkFargateWindowsBasedTasksSize(props.cpu,props.memoryMiB,props.runtimePlatform),this.runtimePlatform=props.runtimePlatform;const taskDef=new ecs_generated_1.CfnTaskDefinition(this,"Resource",{containerDefinitions:core_1.Lazy.any({produce:()=>this.renderContainers()},{omitEmptyArray:!0}),volumes:core_1.Lazy.any({produce:()=>this.renderVolumes()},{omitEmptyArray:!0}),executionRoleArn:core_1.Lazy.string({produce:()=>this.executionRole&&this.executionRole.roleArn}),family:this.family,taskRoleArn:this.taskRole.roleArn,requiresCompatibilities:[...isEc2Compatible(props.compatibility)?["EC2"]:[],...isFargateCompatible(props.compatibility)?["FARGATE"]:[],...isExternalCompatible(props.compatibility)?["EXTERNAL"]:[]],networkMode:this.renderNetworkMode(this.networkMode),placementConstraints:core_1.Lazy.any({produce:()=>isFargateCompatible(this.compatibility)?void 0:this.placementConstraints},{omitEmptyArray:!0}),proxyConfiguration:props.proxyConfiguration?props.proxyConfiguration.bind(this.stack,this):void 0,cpu:props.cpu,memory:props.memoryMiB,ipcMode:props.ipcMode,pidMode:props.pidMode,inferenceAccelerators:core_1.Lazy.any({produce:()=>isFargateCompatible(this.compatibility)?void 0:this.renderInferenceAccelerators()},{omitEmptyArray:!0}),ephemeralStorage:this.ephemeralStorageGiB?{sizeInGiB:this.ephemeralStorageGiB}:void 0,runtimePlatform:this.isFargateCompatible&&this.runtimePlatform?{cpuArchitecture:this.runtimePlatform?.cpuArchitecture?._cpuArchitecture,operatingSystemFamily:this.runtimePlatform?.operatingSystemFamily?._operatingSystemFamily}:void 0});props.placementConstraints&&props.placementConstraints.forEach(pc=>this.addPlacementConstraint(pc)),this.taskDefinitionArn=taskDef.ref,this.node.addValidation({validate:()=>this.validateTaskDefinition()})}static fromTaskDefinitionArn(scope,id,taskDefinitionArn){return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn})}static fromTaskDefinitionAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinitionAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromTaskDefinitionAttributes),error}return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn:attrs.taskDefinitionArn,compatibility:attrs.compatibility,networkMode:attrs.networkMode,taskRole:attrs.taskRole})}get executionRole(){return this._executionRole}get inferenceAccelerators(){return this._inferenceAccelerators}renderVolumes(){return this.volumes.map(renderVolume);function renderVolume(spec){return{host:spec.host,name:spec.name,dockerVolumeConfiguration:spec.dockerVolumeConfiguration&&{autoprovision:spec.dockerVolumeConfiguration.autoprovision,driver:spec.dockerVolumeConfiguration.driver,driverOpts:spec.dockerVolumeConfiguration.driverOpts,labels:spec.dockerVolumeConfiguration.labels,scope:spec.dockerVolumeConfiguration.scope},efsVolumeConfiguration:spec.efsVolumeConfiguration&&{filesystemId:spec.efsVolumeConfiguration.fileSystemId,authorizationConfig:spec.efsVolumeConfiguration.authorizationConfig,rootDirectory:spec.efsVolumeConfiguration.rootDirectory,transitEncryption:spec.efsVolumeConfiguration.transitEncryption,transitEncryptionPort:spec.efsVolumeConfiguration.transitEncryptionPort}}}}renderInferenceAccelerators(){return this._inferenceAccelerators.map(renderInferenceAccelerator);function renderInferenceAccelerator(inferenceAccelerator){return{deviceName:inferenceAccelerator.deviceName,deviceType:inferenceAccelerator.deviceType}}}_validateTarget(options){const targetContainer=this.findContainer(options.containerName);if(targetContainer===void 0)throw new Error(`No container named '${options.containerName}'. Did you call "addContainer()"?`);const targetProtocol=options.protocol||container_definition_1.Protocol.TCP,targetContainerPort=options.containerPort||targetContainer.containerPort,portMapping=targetContainer.findPortMapping(targetContainerPort,targetProtocol);if(portMapping===void 0)throw new Error(`Container '${targetContainer}' has no mapping for port ${options.containerPort} and protocol ${targetProtocol}. Did you call "container.addPortMappings()"?`);return{containerName:options.containerName,portMapping}}_portRangeFromPortMapping(portMapping){return portMapping.hostPort!==void 0&&portMapping.hostPort!==0?portMapping.protocol===container_definition_1.Protocol.UDP?ec2.Port.udp(portMapping.hostPort):ec2.Port.tcp(portMapping.hostPort):this.networkMode===NetworkMode.BRIDGE||this.networkMode===NetworkMode.NAT?EPHEMERAL_PORT_RANGE:portMapping.protocol===container_definition_1.Protocol.UDP?ec2.Port.udp(portMapping.containerPort):ec2.Port.tcp(portMapping.containerPort)}addToTaskRolePolicy(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.addToTaskRolePolicy),error}this.taskRole.addToPrincipalPolicy(statement)}addToExecutionRolePolicy(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.addToExecutionRolePolicy),error}this.obtainExecutionRole().addToPrincipalPolicy(statement)}addContainer(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDefinitionOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addContainer),error}return new container_definition_1.ContainerDefinition(this,id,{taskDefinition:this,...props})}addFirelensLogRouter(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_FirelensLogRouterDefinitionOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addFirelensLogRouter),error}if(this.containers.find(x=>x instanceof firelens_log_router_1.FirelensLogRouter))throw new Error("Firelens log router is already added in this task.");return new firelens_log_router_1.FirelensLogRouter(this,id,{taskDefinition:this,...props})}_linkContainer(container){this.containers.push(container),this.defaultContainer===void 0&&container.essential&&(this.defaultContainer=container)}addVolume(volume){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Volume(volume)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addVolume),error}this.volumes.push(volume)}addPlacementConstraint(constraint){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PlacementConstraint(constraint)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPlacementConstraint),error}if(isFargateCompatible(this.compatibility))throw new Error("Cannot set placement constraints on tasks that run on Fargate");this.placementConstraints.push(...constraint.toJson())}addExtension(extension){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ITaskDefinitionExtension(extension)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addExtension),error}extension.extend(this)}addInferenceAccelerator(inferenceAccelerator){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_InferenceAccelerator(inferenceAccelerator)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addInferenceAccelerator),error}if(isFargateCompatible(this.compatibility))throw new Error("Cannot use inference accelerators on tasks that run on Fargate");this._inferenceAccelerators.push(inferenceAccelerator)}grantRun(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.grantRun),error}return grantee.grantPrincipal.addToPrincipalPolicy(this.passRoleStatement),iam.Grant.addToPrincipal({grantee,actions:["ecs:RunTask"],resourceArns:[this.taskDefinitionArn]})}obtainExecutionRole(){return this._executionRole||(this._executionRole=new iam.Role(this,"ExecutionRole",{assumedBy:new iam.ServicePrincipal("ecs-tasks.amazonaws.com"),roleName:core_1.PhysicalName.GENERATE_IF_NEEDED}),this.passRoleStatement.addResources(this._executionRole.roleArn)),this._executionRole}get referencesSecretJsonField(){for(const container of this.containers)if(container.referencesSecretJsonField)return!0;return!1}validateTaskDefinition(){const ret=new Array;if(isEc2Compatible(this.compatibility))for(const container of this.containers)container.memoryLimitSpecified||ret.push(`ECS Container ${container.containerName} must have at least one of 'memoryLimitMiB' or 'memoryReservationMiB' specified`);return ret}findContainer(containerName){return this.containers.find(c=>c.containerName===containerName)}get passRoleStatement(){return this._passRoleStatement||(this._passRoleStatement=new iam.PolicyStatement({effect:iam.Effect.ALLOW,actions:["iam:PassRole"],resources:this.executionRole?[this.taskRole.roleArn,this.executionRole.roleArn]:[this.taskRole.roleArn],conditions:{StringLike:{"iam:PassedToService":"ecs-tasks.amazonaws.com"}}})),this._passRoleStatement}renderNetworkMode(networkMode){return networkMode===NetworkMode.NAT?void 0:networkMode}renderContainers(){for(const container of this.containers)if(container.logDriverConfig&&container.logDriverConfig.logDriver==="awsfirelens"&&!this.containers.find(x=>x instanceof firelens_log_router_1.FirelensLogRouter)){this.addFirelensLogRouter("log-router",{image:firelens_log_router_1.obtainDefaultFluentBitECRImage(this,container.logDriverConfig),firelensConfig:{type:firelens_log_router_1.FirelensLogRouterType.FLUENTBIT},logging:new aws_log_driver_1.AwsLogDriver({streamPrefix:"firelens"}),memoryReservationMiB:50});break}return this.containers.map(x=>x.renderContainerDefinition())}checkFargateWindowsBasedTasksSize(cpu,memory,runtimePlatform){if(Number(cpu)===1024){if(Number(memory)<1024||Number(memory)>8192||Number(memory)%1024!==0)throw new Error(`If provided cpu is ${cpu}, then memoryMiB must have a min of 1024 and a max of 8192, in 1024 increments. Provided memoryMiB was ${Number(memory)}.`)}else if(Number(cpu)===2048){if(Number(memory)<4096||Number(memory)>16384||Number(memory)%1024!==0)throw new Error(`If provided cpu is ${cpu}, then memoryMiB must have a min of 4096 and max of 16384, in 1024 increments. Provided memoryMiB ${Number(memory)}.`)}else if(Number(cpu)===4096){if(Number(memory)<8192||Number(memory)>30720||Number(memory)%1024!==0)throw new Error(`If provided cpu is ${cpu}, then memoryMiB must have a min of 8192 and a max of 30720, in 1024 increments.Provided memoryMiB was ${Number(memory)}.`)}else throw new Error(`If operatingSystemFamily is ${runtimePlatform.operatingSystemFamily._operatingSystemFamily}, then cpu must be in 1024 (1 vCPU), 2048 (2 vCPU), or 4096 (4 vCPU). Provided value was: ${cpu}`)}}exports.TaskDefinition=TaskDefinition,_a=JSII_RTTI_SYMBOL_1,TaskDefinition[_a]={fqn:"aws-cdk-lib.aws_ecs.TaskDefinition",version:"2.51.0"};const EPHEMERAL_PORT_RANGE=ec2.Port.tcpRange(32768,65535);var NetworkMode;(function(NetworkMode2){NetworkMode2.NONE="none",NetworkMode2.BRIDGE="bridge",NetworkMode2.AWS_VPC="awsvpc",NetworkMode2.HOST="host",NetworkMode2.NAT="nat"})(NetworkMode=exports.NetworkMode||(exports.NetworkMode={}));var IpcMode;(function(IpcMode2){IpcMode2.NONE="none",IpcMode2.HOST="host",IpcMode2.TASK="task"})(IpcMode=exports.IpcMode||(exports.IpcMode={}));var PidMode;(function(PidMode2){PidMode2.HOST="host",PidMode2.TASK="task"})(PidMode=exports.PidMode||(exports.PidMode={}));var Scope;(function(Scope2){Scope2.TASK="task",Scope2.SHARED="shared"})(Scope=exports.Scope||(exports.Scope={}));var Compatibility;(function(Compatibility2){Compatibility2[Compatibility2.EC2=0]="EC2",Compatibility2[Compatibility2.FARGATE=1]="FARGATE",Compatibility2[Compatibility2.EC2_AND_FARGATE=2]="EC2_AND_FARGATE",Compatibility2[Compatibility2.EXTERNAL=3]="EXTERNAL"})(Compatibility=exports.Compatibility||(exports.Compatibility={}));function isEc2Compatible(compatibility){return[Compatibility.EC2,Compatibility.EC2_AND_FARGATE].includes(compatibility)}exports.isEc2Compatible=isEc2Compatible;function isFargateCompatible(compatibility){return[Compatibility.FARGATE,Compatibility.EC2_AND_FARGATE].includes(compatibility)}exports.isFargateCompatible=isFargateCompatible;function isExternalCompatible(compatibility){return[Compatibility.EXTERNAL].includes(compatibility)}exports.isExternalCompatible=isExternalCompatible;
1
+ "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.isExternalCompatible=exports.isFargateCompatible=exports.isEc2Compatible=exports.Compatibility=exports.Scope=exports.PidMode=exports.IpcMode=exports.NetworkMode=exports.TaskDefinition=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),ec2=require("../../../aws-ec2"),iam=require("../../../aws-iam"),core_1=require("../../../core"),container_definition_1=require("../container-definition"),ecs_generated_1=require("../ecs.generated"),firelens_log_router_1=require("../firelens-log-router"),aws_log_driver_1=require("../log-drivers/aws-log-driver"),_imported_task_definition_1=require("./_imported-task-definition");class TaskDefinitionBase extends core_1.Resource{get isEc2Compatible(){return isEc2Compatible(this.compatibility)}get isFargateCompatible(){return isFargateCompatible(this.compatibility)}get isExternalCompatible(){return isExternalCompatible(this.compatibility)}}class TaskDefinition extends TaskDefinitionBase{constructor(scope,id,props){super(scope,id),this.containers=new Array,this.volumes=[],this.placementConstraints=new Array,this._inferenceAccelerators=[];try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,TaskDefinition),error}if(this.family=props.family||core_1.Names.uniqueId(this),this.compatibility=props.compatibility,props.volumes&&props.volumes.forEach(v=>this.addVolume(v)),this.networkMode=props.networkMode??(this.isFargateCompatible?NetworkMode.AWS_VPC:NetworkMode.BRIDGE),this.isFargateCompatible&&this.networkMode!==NetworkMode.AWS_VPC)throw new Error(`Fargate tasks can only have AwsVpc network mode, got: ${this.networkMode}`);if(props.proxyConfiguration&&this.networkMode!==NetworkMode.AWS_VPC)throw new Error(`ProxyConfiguration can only be used with AwsVpc network mode, got: ${this.networkMode}`);if(props.placementConstraints&&props.placementConstraints.length>0&&this.isFargateCompatible)throw new Error("Cannot set placement constraints on tasks that run on Fargate");if(this.isFargateCompatible&&(!props.cpu||!props.memoryMiB))throw new Error(`Fargate-compatible tasks require both CPU (${props.cpu}) and memory (${props.memoryMiB}) specifications`);if(props.inferenceAccelerators&&props.inferenceAccelerators.length>0&&this.isFargateCompatible)throw new Error("Cannot use inference accelerators on tasks that run on Fargate");if(this.isExternalCompatible&&![NetworkMode.BRIDGE,NetworkMode.HOST,NetworkMode.NONE].includes(this.networkMode))throw new Error(`External tasks can only have Bridge, Host or None network mode, got: ${this.networkMode}`);if(!this.isFargateCompatible&&props.runtimePlatform)throw new Error("Cannot specify runtimePlatform in non-Fargate compatible tasks");this._executionRole=props.executionRole,this.taskRole=props.taskRole||new iam.Role(this,"TaskRole",{assumedBy:new iam.ServicePrincipal("ecs-tasks.amazonaws.com")}),props.inferenceAccelerators&&props.inferenceAccelerators.forEach(ia=>this.addInferenceAccelerator(ia)),this.ephemeralStorageGiB=props.ephemeralStorageGiB,props.runtimePlatform?.operatingSystemFamily?._operatingSystemFamily.includes("WINDOWS")&&this.checkFargateWindowsBasedTasksSize(props.cpu,props.memoryMiB,props.runtimePlatform),this.runtimePlatform=props.runtimePlatform;const taskDef=new ecs_generated_1.CfnTaskDefinition(this,"Resource",{containerDefinitions:core_1.Lazy.any({produce:()=>this.renderContainers()},{omitEmptyArray:!0}),volumes:core_1.Lazy.any({produce:()=>this.renderVolumes()},{omitEmptyArray:!0}),executionRoleArn:core_1.Lazy.string({produce:()=>this.executionRole&&this.executionRole.roleArn}),family:this.family,taskRoleArn:this.taskRole.roleArn,requiresCompatibilities:[...isEc2Compatible(props.compatibility)?["EC2"]:[],...isFargateCompatible(props.compatibility)?["FARGATE"]:[],...isExternalCompatible(props.compatibility)?["EXTERNAL"]:[]],networkMode:this.renderNetworkMode(this.networkMode),placementConstraints:core_1.Lazy.any({produce:()=>isFargateCompatible(this.compatibility)?void 0:this.placementConstraints},{omitEmptyArray:!0}),proxyConfiguration:props.proxyConfiguration?props.proxyConfiguration.bind(this.stack,this):void 0,cpu:props.cpu,memory:props.memoryMiB,ipcMode:props.ipcMode,pidMode:props.pidMode,inferenceAccelerators:core_1.Lazy.any({produce:()=>isFargateCompatible(this.compatibility)?void 0:this.renderInferenceAccelerators()},{omitEmptyArray:!0}),ephemeralStorage:this.ephemeralStorageGiB?{sizeInGiB:this.ephemeralStorageGiB}:void 0,runtimePlatform:this.isFargateCompatible&&this.runtimePlatform?{cpuArchitecture:this.runtimePlatform?.cpuArchitecture?._cpuArchitecture,operatingSystemFamily:this.runtimePlatform?.operatingSystemFamily?._operatingSystemFamily}:void 0});props.placementConstraints&&props.placementConstraints.forEach(pc=>this.addPlacementConstraint(pc)),this.taskDefinitionArn=taskDef.ref,this.node.addValidation({validate:()=>this.validateTaskDefinition()})}static fromTaskDefinitionArn(scope,id,taskDefinitionArn){return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn})}static fromTaskDefinitionAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinitionAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromTaskDefinitionAttributes),error}return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn:attrs.taskDefinitionArn,compatibility:attrs.compatibility,networkMode:attrs.networkMode,taskRole:attrs.taskRole})}get executionRole(){return this._executionRole}get inferenceAccelerators(){return this._inferenceAccelerators}renderVolumes(){return this.volumes.map(renderVolume);function renderVolume(spec){return{host:spec.host,name:spec.name,dockerVolumeConfiguration:spec.dockerVolumeConfiguration&&{autoprovision:spec.dockerVolumeConfiguration.autoprovision,driver:spec.dockerVolumeConfiguration.driver,driverOpts:spec.dockerVolumeConfiguration.driverOpts,labels:spec.dockerVolumeConfiguration.labels,scope:spec.dockerVolumeConfiguration.scope},efsVolumeConfiguration:spec.efsVolumeConfiguration&&{filesystemId:spec.efsVolumeConfiguration.fileSystemId,authorizationConfig:spec.efsVolumeConfiguration.authorizationConfig,rootDirectory:spec.efsVolumeConfiguration.rootDirectory,transitEncryption:spec.efsVolumeConfiguration.transitEncryption,transitEncryptionPort:spec.efsVolumeConfiguration.transitEncryptionPort}}}}renderInferenceAccelerators(){return this._inferenceAccelerators.map(renderInferenceAccelerator);function renderInferenceAccelerator(inferenceAccelerator){return{deviceName:inferenceAccelerator.deviceName,deviceType:inferenceAccelerator.deviceType}}}_validateTarget(options){const targetContainer=this.findContainer(options.containerName);if(targetContainer===void 0)throw new Error(`No container named '${options.containerName}'. Did you call "addContainer()"?`);const targetProtocol=options.protocol||container_definition_1.Protocol.TCP,targetContainerPort=options.containerPort||targetContainer.containerPort,portMapping=targetContainer.findPortMapping(targetContainerPort,targetProtocol);if(portMapping===void 0)throw new Error(`Container '${targetContainer}' has no mapping for port ${options.containerPort} and protocol ${targetProtocol}. Did you call "container.addPortMappings()"?`);return{containerName:options.containerName,portMapping}}_portRangeFromPortMapping(portMapping){return portMapping.hostPort!==void 0&&portMapping.hostPort!==0?portMapping.protocol===container_definition_1.Protocol.UDP?ec2.Port.udp(portMapping.hostPort):ec2.Port.tcp(portMapping.hostPort):this.networkMode===NetworkMode.BRIDGE||this.networkMode===NetworkMode.NAT?EPHEMERAL_PORT_RANGE:portMapping.protocol===container_definition_1.Protocol.UDP?ec2.Port.udp(portMapping.containerPort):ec2.Port.tcp(portMapping.containerPort)}addToTaskRolePolicy(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.addToTaskRolePolicy),error}this.taskRole.addToPrincipalPolicy(statement)}addToExecutionRolePolicy(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.addToExecutionRolePolicy),error}this.obtainExecutionRole().addToPrincipalPolicy(statement)}addContainer(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDefinitionOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addContainer),error}return new container_definition_1.ContainerDefinition(this,id,{taskDefinition:this,...props})}addFirelensLogRouter(id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_FirelensLogRouterDefinitionOptions(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addFirelensLogRouter),error}if(this.containers.find(x=>x instanceof firelens_log_router_1.FirelensLogRouter))throw new Error("Firelens log router is already added in this task.");return new firelens_log_router_1.FirelensLogRouter(this,id,{taskDefinition:this,...props})}_linkContainer(container){this.containers.push(container),this.defaultContainer===void 0&&container.essential&&(this.defaultContainer=container)}addVolume(volume){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Volume(volume)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addVolume),error}this.volumes.push(volume)}addPlacementConstraint(constraint){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PlacementConstraint(constraint)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPlacementConstraint),error}if(isFargateCompatible(this.compatibility))throw new Error("Cannot set placement constraints on tasks that run on Fargate");this.placementConstraints.push(...constraint.toJson())}addExtension(extension){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ITaskDefinitionExtension(extension)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addExtension),error}extension.extend(this)}addInferenceAccelerator(inferenceAccelerator){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_InferenceAccelerator(inferenceAccelerator)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addInferenceAccelerator),error}if(isFargateCompatible(this.compatibility))throw new Error("Cannot use inference accelerators on tasks that run on Fargate");this._inferenceAccelerators.push(inferenceAccelerator)}grantRun(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.grantRun),error}return grantee.grantPrincipal.addToPrincipalPolicy(this.passRoleStatement),iam.Grant.addToPrincipal({grantee,actions:["ecs:RunTask"],resourceArns:[this.taskDefinitionArn]})}obtainExecutionRole(){return this._executionRole||(this._executionRole=new iam.Role(this,"ExecutionRole",{assumedBy:new iam.ServicePrincipal("ecs-tasks.amazonaws.com"),roleName:core_1.PhysicalName.GENERATE_IF_NEEDED}),this.passRoleStatement.addResources(this._executionRole.roleArn)),this._executionRole}get referencesSecretJsonField(){for(const container of this.containers)if(container.referencesSecretJsonField)return!0;return!1}validateTaskDefinition(){const ret=new Array;if(isEc2Compatible(this.compatibility))for(const container of this.containers)container.memoryLimitSpecified||ret.push(`ECS Container ${container.containerName} must have at least one of 'memoryLimitMiB' or 'memoryReservationMiB' specified`);return ret}findContainer(containerName){return this.containers.find(c=>c.containerName===containerName)}get passRoleStatement(){return this._passRoleStatement||(this._passRoleStatement=new iam.PolicyStatement({effect:iam.Effect.ALLOW,actions:["iam:PassRole"],resources:this.executionRole?[this.taskRole.roleArn,this.executionRole.roleArn]:[this.taskRole.roleArn],conditions:{StringLike:{"iam:PassedToService":"ecs-tasks.amazonaws.com"}}})),this._passRoleStatement}renderNetworkMode(networkMode){return networkMode===NetworkMode.NAT?void 0:networkMode}renderContainers(){for(const container of this.containers)if(container.logDriverConfig&&container.logDriverConfig.logDriver==="awsfirelens"&&!this.containers.find(x=>x instanceof firelens_log_router_1.FirelensLogRouter)){this.addFirelensLogRouter("log-router",{image:firelens_log_router_1.obtainDefaultFluentBitECRImage(this,container.logDriverConfig),firelensConfig:{type:firelens_log_router_1.FirelensLogRouterType.FLUENTBIT},logging:new aws_log_driver_1.AwsLogDriver({streamPrefix:"firelens"}),memoryReservationMiB:50});break}return this.containers.map(x=>x.renderContainerDefinition())}checkFargateWindowsBasedTasksSize(cpu,memory,runtimePlatform){if(Number(cpu)===1024){if(Number(memory)<1024||Number(memory)>8192||Number(memory)%1024!==0)throw new Error(`If provided cpu is ${cpu}, then memoryMiB must have a min of 1024 and a max of 8192, in 1024 increments. Provided memoryMiB was ${Number(memory)}.`)}else if(Number(cpu)===2048){if(Number(memory)<4096||Number(memory)>16384||Number(memory)%1024!==0)throw new Error(`If provided cpu is ${cpu}, then memoryMiB must have a min of 4096 and max of 16384, in 1024 increments. Provided memoryMiB ${Number(memory)}.`)}else if(Number(cpu)===4096){if(Number(memory)<8192||Number(memory)>30720||Number(memory)%1024!==0)throw new Error(`If provided cpu is ${cpu}, then memoryMiB must have a min of 8192 and a max of 30720, in 1024 increments.Provided memoryMiB was ${Number(memory)}.`)}else throw new Error(`If operatingSystemFamily is ${runtimePlatform.operatingSystemFamily._operatingSystemFamily}, then cpu must be in 1024 (1 vCPU), 2048 (2 vCPU), or 4096 (4 vCPU). Provided value was: ${cpu}`)}}exports.TaskDefinition=TaskDefinition,_a=JSII_RTTI_SYMBOL_1,TaskDefinition[_a]={fqn:"aws-cdk-lib.aws_ecs.TaskDefinition",version:"2.51.1"};const EPHEMERAL_PORT_RANGE=ec2.Port.tcpRange(32768,65535);var NetworkMode;(function(NetworkMode2){NetworkMode2.NONE="none",NetworkMode2.BRIDGE="bridge",NetworkMode2.AWS_VPC="awsvpc",NetworkMode2.HOST="host",NetworkMode2.NAT="nat"})(NetworkMode=exports.NetworkMode||(exports.NetworkMode={}));var IpcMode;(function(IpcMode2){IpcMode2.NONE="none",IpcMode2.HOST="host",IpcMode2.TASK="task"})(IpcMode=exports.IpcMode||(exports.IpcMode={}));var PidMode;(function(PidMode2){PidMode2.HOST="host",PidMode2.TASK="task"})(PidMode=exports.PidMode||(exports.PidMode={}));var Scope;(function(Scope2){Scope2.TASK="task",Scope2.SHARED="shared"})(Scope=exports.Scope||(exports.Scope={}));var Compatibility;(function(Compatibility2){Compatibility2[Compatibility2.EC2=0]="EC2",Compatibility2[Compatibility2.FARGATE=1]="FARGATE",Compatibility2[Compatibility2.EC2_AND_FARGATE=2]="EC2_AND_FARGATE",Compatibility2[Compatibility2.EXTERNAL=3]="EXTERNAL"})(Compatibility=exports.Compatibility||(exports.Compatibility={}));function isEc2Compatible(compatibility){return[Compatibility.EC2,Compatibility.EC2_AND_FARGATE].includes(compatibility)}exports.isEc2Compatible=isEc2Compatible;function isFargateCompatible(compatibility){return[Compatibility.FARGATE,Compatibility.EC2_AND_FARGATE].includes(compatibility)}exports.isFargateCompatible=isFargateCompatible;function isExternalCompatible(compatibility){return[Compatibility.EXTERNAL].includes(compatibility)}exports.isExternalCompatible=isExternalCompatible;
2
2
  //# sourceMappingURL=task-definition.js.map