aws-cdk-lib 2.31.1 → 2.31.2

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 (865) hide show
  1. package/.jsii +1 -1
  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/codedeploy.generated.js +1 -1
  178. package/aws-codedeploy/lib/ecs/application.js +1 -1
  179. package/aws-codedeploy/lib/ecs/deployment-config.js +1 -1
  180. package/aws-codedeploy/lib/ecs/deployment-group.js +1 -1
  181. package/aws-codedeploy/lib/lambda/application.js +1 -1
  182. package/aws-codedeploy/lib/lambda/custom-deployment-config.js +1 -1
  183. package/aws-codedeploy/lib/lambda/deployment-config.js +1 -1
  184. package/aws-codedeploy/lib/lambda/deployment-group.js +1 -1
  185. package/aws-codedeploy/lib/server/application.js +1 -1
  186. package/aws-codedeploy/lib/server/deployment-config.js +1 -1
  187. package/aws-codedeploy/lib/server/deployment-group.js +1 -1
  188. package/aws-codedeploy/lib/server/load-balancer.js +1 -1
  189. package/aws-codeguruprofiler/lib/codeguruprofiler.generated.js +1 -1
  190. package/aws-codeguruprofiler/lib/profiling-group.js +1 -1
  191. package/aws-codegurureviewer/lib/codegurureviewer.generated.js +1 -1
  192. package/aws-codepipeline/lib/action.js +1 -1
  193. package/aws-codepipeline/lib/artifact.js +1 -1
  194. package/aws-codepipeline/lib/codepipeline.generated.js +1 -1
  195. package/aws-codepipeline/lib/custom-action-registration.js +1 -1
  196. package/aws-codepipeline/lib/pipeline.js +1 -1
  197. package/aws-codepipeline-actions/lib/action.js +1 -1
  198. package/aws-codepipeline-actions/lib/alexa-ask/deploy-action.js +1 -1
  199. package/aws-codepipeline-actions/lib/bitbucket/source-action.js +1 -1
  200. package/aws-codepipeline-actions/lib/cloudformation/pipeline-actions.js +1 -1
  201. package/aws-codepipeline-actions/lib/cloudformation/stackinstances-action.js +1 -1
  202. package/aws-codepipeline-actions/lib/cloudformation/stackset-action.js +1 -1
  203. package/aws-codepipeline-actions/lib/cloudformation/stackset-types.js +1 -1
  204. package/aws-codepipeline-actions/lib/codebuild/build-action.js +1 -1
  205. package/aws-codepipeline-actions/lib/codecommit/source-action.js +1 -1
  206. package/aws-codepipeline-actions/lib/codedeploy/ecs-deploy-action.js +1 -1
  207. package/aws-codepipeline-actions/lib/codedeploy/server-deploy-action.js +1 -1
  208. package/aws-codepipeline-actions/lib/codestar-connections/source-action.js +1 -1
  209. package/aws-codepipeline-actions/lib/ecr/source-action.js +1 -1
  210. package/aws-codepipeline-actions/lib/ecs/deploy-action.js +1 -1
  211. package/aws-codepipeline-actions/lib/github/source-action.js +1 -1
  212. package/aws-codepipeline-actions/lib/jenkins/jenkins-action.js +1 -1
  213. package/aws-codepipeline-actions/lib/jenkins/jenkins-provider.js +1 -1
  214. package/aws-codepipeline-actions/lib/lambda/invoke-action.js +1 -1
  215. package/aws-codepipeline-actions/lib/manual-approval-action.js +1 -1
  216. package/aws-codepipeline-actions/lib/s3/deploy-action.js +1 -1
  217. package/aws-codepipeline-actions/lib/s3/source-action.js +1 -1
  218. package/aws-codepipeline-actions/lib/servicecatalog/deploy-action-beta1.js +1 -1
  219. package/aws-codepipeline-actions/lib/stepfunctions/invoke-action.js +1 -1
  220. package/aws-codestar/lib/codestar.generated.js +1 -1
  221. package/aws-codestarconnections/lib/codestarconnections.generated.js +1 -1
  222. package/aws-codestarnotifications/lib/codestarnotifications.generated.js +1 -1
  223. package/aws-codestarnotifications/lib/notification-rule.js +1 -1
  224. package/aws-cognito/lib/cognito.generated.js +1 -1
  225. package/aws-cognito/lib/user-pool-attr.js +1 -1
  226. package/aws-cognito/lib/user-pool-client.js +1 -1
  227. package/aws-cognito/lib/user-pool-domain.js +1 -1
  228. package/aws-cognito/lib/user-pool-email.js +1 -1
  229. package/aws-cognito/lib/user-pool-idp.js +1 -1
  230. package/aws-cognito/lib/user-pool-idps/amazon.js +1 -1
  231. package/aws-cognito/lib/user-pool-idps/apple.js +1 -1
  232. package/aws-cognito/lib/user-pool-idps/base.js +1 -1
  233. package/aws-cognito/lib/user-pool-idps/facebook.js +1 -1
  234. package/aws-cognito/lib/user-pool-idps/google.js +1 -1
  235. package/aws-cognito/lib/user-pool-idps/oidc.js +1 -1
  236. package/aws-cognito/lib/user-pool-resource-server.js +1 -1
  237. package/aws-cognito/lib/user-pool.js +1 -1
  238. package/aws-config/lib/config.generated.js +1 -1
  239. package/aws-config/lib/managed-rules.js +1 -1
  240. package/aws-config/lib/rule.js +1 -1
  241. package/aws-connect/lib/connect.generated.js +1 -1
  242. package/aws-cur/lib/cur.generated.js +1 -1
  243. package/aws-customerprofiles/lib/customerprofiles.generated.js +1 -1
  244. package/aws-databrew/lib/databrew.generated.js +1 -1
  245. package/aws-datapipeline/lib/datapipeline.generated.js +1 -1
  246. package/aws-datasync/lib/datasync.generated.js +1 -1
  247. package/aws-dax/lib/dax.generated.js +1 -1
  248. package/aws-detective/lib/detective.generated.js +1 -1
  249. package/aws-devopsguru/lib/devopsguru.generated.js +1 -1
  250. package/aws-directoryservice/lib/directoryservice.generated.js +1 -1
  251. package/aws-dlm/lib/dlm.generated.js +1 -1
  252. package/aws-dms/lib/dms.generated.js +1 -1
  253. package/aws-docdb/lib/cluster.js +1 -1
  254. package/aws-docdb/lib/database-secret.js +1 -1
  255. package/aws-docdb/lib/docdb.generated.js +1 -1
  256. package/aws-docdb/lib/endpoint.js +1 -1
  257. package/aws-docdb/lib/instance.js +1 -1
  258. package/aws-docdb/lib/parameter-group.js +1 -1
  259. package/aws-dynamodb/lib/dynamodb.generated.js +1 -1
  260. package/aws-dynamodb/lib/table.js +1 -1
  261. package/aws-ec2/lib/aspects/require-imdsv2-aspect.js +1 -1
  262. package/aws-ec2/lib/bastion-host.js +1 -1
  263. package/aws-ec2/lib/cfn-init-elements.js +1 -1
  264. package/aws-ec2/lib/cfn-init.js +1 -1
  265. package/aws-ec2/lib/client-vpn-authorization-rule.js +1 -1
  266. package/aws-ec2/lib/client-vpn-endpoint.js +1 -1
  267. package/aws-ec2/lib/client-vpn-route.js +1 -1
  268. package/aws-ec2/lib/connections.js +1 -1
  269. package/aws-ec2/lib/ec2.generated.js +1 -1
  270. package/aws-ec2/lib/instance-types.js +1 -1
  271. package/aws-ec2/lib/instance.js +1 -1
  272. package/aws-ec2/lib/launch-template.js +1 -1
  273. package/aws-ec2/lib/machine-image.js +1 -1
  274. package/aws-ec2/lib/nat.js +1 -1
  275. package/aws-ec2/lib/network-acl-types.js +1 -1
  276. package/aws-ec2/lib/network-acl.js +1 -1
  277. package/aws-ec2/lib/peer.js +1 -1
  278. package/aws-ec2/lib/port.js +1 -1
  279. package/aws-ec2/lib/security-group.js +1 -1
  280. package/aws-ec2/lib/subnet.js +1 -1
  281. package/aws-ec2/lib/user-data.js +3 -3
  282. package/aws-ec2/lib/volume.js +1 -1
  283. package/aws-ec2/lib/vpc-endpoint-service.js +1 -1
  284. package/aws-ec2/lib/vpc-endpoint.js +1 -1
  285. package/aws-ec2/lib/vpc-flow-logs.js +1 -1
  286. package/aws-ec2/lib/vpc.js +1 -1
  287. package/aws-ec2/lib/vpn.js +1 -1
  288. package/aws-ecr/lib/auth-token.js +1 -1
  289. package/aws-ecr/lib/ecr.generated.js +1 -1
  290. package/aws-ecr/lib/repository.js +1 -1
  291. package/aws-ecr-assets/lib/image-asset.js +2 -2
  292. package/aws-ecr-assets/lib/tarball-asset.js +1 -1
  293. package/aws-ecs/lib/amis.js +1 -1
  294. package/aws-ecs/lib/base/base-service.js +1 -1
  295. package/aws-ecs/lib/base/scalable-task-count.js +1 -1
  296. package/aws-ecs/lib/base/task-definition.js +1 -1
  297. package/aws-ecs/lib/cluster.js +1 -1
  298. package/aws-ecs/lib/container-definition.js +1 -1
  299. package/aws-ecs/lib/container-image.js +1 -1
  300. package/aws-ecs/lib/ec2/ec2-service.js +1 -1
  301. package/aws-ecs/lib/ec2/ec2-task-definition.js +1 -1
  302. package/aws-ecs/lib/ecs.generated.js +1 -1
  303. package/aws-ecs/lib/environment-file.js +1 -1
  304. package/aws-ecs/lib/external/external-service.js +1 -1
  305. package/aws-ecs/lib/external/external-task-definition.js +1 -1
  306. package/aws-ecs/lib/fargate/fargate-service.js +1 -1
  307. package/aws-ecs/lib/fargate/fargate-task-definition.js +1 -1
  308. package/aws-ecs/lib/firelens-log-router.js +1 -1
  309. package/aws-ecs/lib/images/asset-image.js +1 -1
  310. package/aws-ecs/lib/images/ecr.js +1 -1
  311. package/aws-ecs/lib/images/repository.js +1 -1
  312. package/aws-ecs/lib/images/tag-parameter-container-image.js +1 -1
  313. package/aws-ecs/lib/linux-parameters.js +1 -1
  314. package/aws-ecs/lib/log-drivers/aws-log-driver.js +1 -1
  315. package/aws-ecs/lib/log-drivers/firelens-log-driver.js +1 -1
  316. package/aws-ecs/lib/log-drivers/fluentd-log-driver.js +1 -1
  317. package/aws-ecs/lib/log-drivers/gelf-log-driver.js +1 -1
  318. package/aws-ecs/lib/log-drivers/generic-log-driver.js +1 -1
  319. package/aws-ecs/lib/log-drivers/journald-log-driver.js +1 -1
  320. package/aws-ecs/lib/log-drivers/json-file-log-driver.js +1 -1
  321. package/aws-ecs/lib/log-drivers/log-driver.js +1 -1
  322. package/aws-ecs/lib/log-drivers/log-drivers.js +1 -1
  323. package/aws-ecs/lib/log-drivers/splunk-log-driver.js +1 -1
  324. package/aws-ecs/lib/log-drivers/syslog-log-driver.js +1 -1
  325. package/aws-ecs/lib/placement.js +1 -1
  326. package/aws-ecs/lib/proxy-configuration/app-mesh-proxy-configuration.js +1 -1
  327. package/aws-ecs/lib/proxy-configuration/proxy-configuration.js +1 -1
  328. package/aws-ecs/lib/proxy-configuration/proxy-configurations.js +1 -1
  329. package/aws-ecs/lib/runtime-platform.js +1 -1
  330. package/aws-ecs-patterns/lib/base/application-load-balanced-service-base.js +1 -1
  331. package/aws-ecs-patterns/lib/base/application-multiple-target-groups-service-base.js +1 -1
  332. package/aws-ecs-patterns/lib/base/network-load-balanced-service-base.js +1 -1
  333. package/aws-ecs-patterns/lib/base/network-multiple-target-groups-service-base.js +1 -1
  334. package/aws-ecs-patterns/lib/base/queue-processing-service-base.js +1 -1
  335. package/aws-ecs-patterns/lib/base/scheduled-task-base.js +1 -1
  336. package/aws-ecs-patterns/lib/ecs/application-load-balanced-ecs-service.js +1 -1
  337. package/aws-ecs-patterns/lib/ecs/application-multiple-target-groups-ecs-service.js +1 -1
  338. package/aws-ecs-patterns/lib/ecs/network-load-balanced-ecs-service.js +1 -1
  339. package/aws-ecs-patterns/lib/ecs/network-multiple-target-groups-ecs-service.js +1 -1
  340. package/aws-ecs-patterns/lib/ecs/queue-processing-ecs-service.js +1 -1
  341. package/aws-ecs-patterns/lib/ecs/scheduled-ecs-task.js +1 -1
  342. package/aws-ecs-patterns/lib/fargate/application-load-balanced-fargate-service.js +1 -1
  343. package/aws-ecs-patterns/lib/fargate/application-multiple-target-groups-fargate-service.js +1 -1
  344. package/aws-ecs-patterns/lib/fargate/network-load-balanced-fargate-service.js +1 -1
  345. package/aws-ecs-patterns/lib/fargate/network-multiple-target-groups-fargate-service.js +1 -1
  346. package/aws-ecs-patterns/lib/fargate/queue-processing-fargate-service.js +1 -1
  347. package/aws-ecs-patterns/lib/fargate/scheduled-fargate-task.js +1 -1
  348. package/aws-efs/lib/access-point.js +1 -1
  349. package/aws-efs/lib/efs-file-system.js +1 -1
  350. package/aws-efs/lib/efs.generated.js +1 -1
  351. package/aws-eks/lib/alb-controller.js +1 -1
  352. package/aws-eks/lib/aws-auth.js +1 -1
  353. package/aws-eks/lib/cluster.js +1 -1
  354. package/aws-eks/lib/eks.generated.js +1 -1
  355. package/aws-eks/lib/fargate-cluster.js +1 -1
  356. package/aws-eks/lib/fargate-profile.js +1 -1
  357. package/aws-eks/lib/helm-chart.js +1 -1
  358. package/aws-eks/lib/k8s-manifest.js +1 -1
  359. package/aws-eks/lib/k8s-object-value.js +1 -1
  360. package/aws-eks/lib/k8s-patch.js +1 -1
  361. package/aws-eks/lib/kubectl-provider.js +1 -1
  362. package/aws-eks/lib/managed-nodegroup.js +1 -1
  363. package/aws-eks/lib/oidc-provider.js +1 -1
  364. package/aws-eks/lib/service-account.js +1 -1
  365. package/aws-elasticache/lib/elasticache.generated.js +1 -1
  366. package/aws-elasticbeanstalk/lib/elasticbeanstalk.generated.js +1 -1
  367. package/aws-elasticloadbalancing/lib/elasticloadbalancing.generated.js +1 -1
  368. package/aws-elasticloadbalancing/lib/load-balancer.js +1 -1
  369. package/aws-elasticloadbalancingv2/lib/alb/application-listener-action.js +1 -1
  370. package/aws-elasticloadbalancingv2/lib/alb/application-listener-certificate.js +1 -1
  371. package/aws-elasticloadbalancingv2/lib/alb/application-listener-rule.js +1 -1
  372. package/aws-elasticloadbalancingv2/lib/alb/application-listener.js +1 -1
  373. package/aws-elasticloadbalancingv2/lib/alb/application-load-balancer.js +1 -1
  374. package/aws-elasticloadbalancingv2/lib/alb/application-target-group.js +1 -1
  375. package/aws-elasticloadbalancingv2/lib/alb/conditions.js +1 -1
  376. package/aws-elasticloadbalancingv2/lib/elasticloadbalancingv2.generated.js +1 -1
  377. package/aws-elasticloadbalancingv2/lib/nlb/network-listener-action.js +1 -1
  378. package/aws-elasticloadbalancingv2/lib/nlb/network-listener.js +1 -1
  379. package/aws-elasticloadbalancingv2/lib/nlb/network-load-balancer.js +1 -1
  380. package/aws-elasticloadbalancingv2/lib/nlb/network-target-group.js +1 -1
  381. package/aws-elasticloadbalancingv2/lib/shared/base-listener.js +1 -1
  382. package/aws-elasticloadbalancingv2/lib/shared/base-load-balancer.js +1 -1
  383. package/aws-elasticloadbalancingv2/lib/shared/base-target-group.js +1 -1
  384. package/aws-elasticloadbalancingv2/lib/shared/listener-certificate.js +1 -1
  385. package/aws-elasticloadbalancingv2/lib/shared/load-balancer-targets.js +1 -1
  386. package/aws-elasticloadbalancingv2-actions/lib/cognito-action.js +1 -1
  387. package/aws-elasticloadbalancingv2-targets/lib/alb-target.js +1 -1
  388. package/aws-elasticloadbalancingv2-targets/lib/instance-target.js +1 -1
  389. package/aws-elasticloadbalancingv2-targets/lib/ip-target.js +1 -1
  390. package/aws-elasticloadbalancingv2-targets/lib/lambda-target.js +1 -1
  391. package/aws-elasticsearch/lib/domain.js +1 -1
  392. package/aws-elasticsearch/lib/elasticsearch.generated.js +1 -1
  393. package/aws-emr/lib/emr.generated.js +1 -1
  394. package/aws-emrcontainers/lib/emrcontainers.generated.js +1 -1
  395. package/aws-emrserverless/lib/emrserverless.generated.js +1 -1
  396. package/aws-events/lib/api-destination.js +1 -1
  397. package/aws-events/lib/archive.js +1 -1
  398. package/aws-events/lib/connection.js +1 -1
  399. package/aws-events/lib/event-bus.js +1 -1
  400. package/aws-events/lib/events.generated.js +1 -1
  401. package/aws-events/lib/input.js +2 -2
  402. package/aws-events/lib/rule.js +1 -1
  403. package/aws-events/lib/schedule.js +1 -1
  404. package/aws-events-targets/lib/api-destination.js +1 -1
  405. package/aws-events-targets/lib/api-gateway.js +1 -1
  406. package/aws-events-targets/lib/aws-api.js +1 -1
  407. package/aws-events-targets/lib/batch.js +1 -1
  408. package/aws-events-targets/lib/codebuild.js +1 -1
  409. package/aws-events-targets/lib/codepipeline.js +1 -1
  410. package/aws-events-targets/lib/ecs-task.js +1 -1
  411. package/aws-events-targets/lib/event-bus.js +1 -1
  412. package/aws-events-targets/lib/kinesis-firehose-stream.js +1 -1
  413. package/aws-events-targets/lib/kinesis-stream.js +1 -1
  414. package/aws-events-targets/lib/lambda.js +1 -1
  415. package/aws-events-targets/lib/log-group.js +2 -2
  416. package/aws-events-targets/lib/sns.js +1 -1
  417. package/aws-events-targets/lib/sqs.js +1 -1
  418. package/aws-events-targets/lib/state-machine.js +1 -1
  419. package/aws-eventschemas/lib/eventschemas.generated.js +1 -1
  420. package/aws-evidently/lib/evidently.generated.js +1 -1
  421. package/aws-finspace/lib/finspace.generated.js +1 -1
  422. package/aws-fis/lib/fis.generated.js +1 -1
  423. package/aws-fms/lib/fms.generated.js +1 -1
  424. package/aws-forecast/lib/forecast.generated.js +1 -1
  425. package/aws-frauddetector/lib/frauddetector.generated.js +1 -1
  426. package/aws-fsx/lib/file-system.js +1 -1
  427. package/aws-fsx/lib/fsx.generated.js +1 -1
  428. package/aws-fsx/lib/lustre-file-system.js +1 -1
  429. package/aws-fsx/lib/maintenance-time.js +1 -1
  430. package/aws-gamelift/lib/gamelift.generated.js +1 -1
  431. package/aws-globalaccelerator/lib/accelerator.js +1 -1
  432. package/aws-globalaccelerator/lib/endpoint-group.js +1 -1
  433. package/aws-globalaccelerator/lib/endpoint.js +1 -1
  434. package/aws-globalaccelerator/lib/globalaccelerator.generated.js +1 -1
  435. package/aws-globalaccelerator/lib/listener.js +1 -1
  436. package/aws-globalaccelerator-endpoints/lib/alb.js +1 -1
  437. package/aws-globalaccelerator-endpoints/lib/eip.js +1 -1
  438. package/aws-globalaccelerator-endpoints/lib/instance.js +1 -1
  439. package/aws-globalaccelerator-endpoints/lib/nlb.js +1 -1
  440. package/aws-glue/lib/glue.generated.js +1 -1
  441. package/aws-greengrass/lib/greengrass.generated.js +1 -1
  442. package/aws-greengrassv2/lib/greengrassv2.generated.js +1 -1
  443. package/aws-groundstation/lib/groundstation.generated.js +1 -1
  444. package/aws-guardduty/lib/guardduty.generated.js +1 -1
  445. package/aws-healthlake/lib/healthlake.generated.js +1 -1
  446. package/aws-iam/lib/access-key.js +1 -1
  447. package/aws-iam/lib/grant.js +1 -1
  448. package/aws-iam/lib/group.js +1 -1
  449. package/aws-iam/lib/iam.generated.js +1 -1
  450. package/aws-iam/lib/lazy-role.js +1 -1
  451. package/aws-iam/lib/managed-policy.js +1 -1
  452. package/aws-iam/lib/oidc-provider.js +1 -1
  453. package/aws-iam/lib/permissions-boundary.js +1 -1
  454. package/aws-iam/lib/policy-document.js +1 -1
  455. package/aws-iam/lib/policy-statement.js +1 -1
  456. package/aws-iam/lib/policy.js +1 -1
  457. package/aws-iam/lib/principals.js +1 -1
  458. package/aws-iam/lib/role.js +1 -1
  459. package/aws-iam/lib/saml-provider.js +1 -1
  460. package/aws-iam/lib/unknown-principal.js +1 -1
  461. package/aws-iam/lib/user.js +1 -1
  462. package/aws-imagebuilder/lib/imagebuilder.generated.js +1 -1
  463. package/aws-inspector/lib/inspector.generated.js +1 -1
  464. package/aws-inspectorv2/lib/inspectorv2.generated.js +1 -1
  465. package/aws-iot/lib/iot.generated.js +1 -1
  466. package/aws-iot1click/lib/iot1click.generated.js +1 -1
  467. package/aws-iotanalytics/lib/iotanalytics.generated.js +1 -1
  468. package/aws-iotcoredeviceadvisor/lib/iotcoredeviceadvisor.generated.js +1 -1
  469. package/aws-iotevents/lib/iotevents.generated.js +1 -1
  470. package/aws-iotfleethub/lib/iotfleethub.generated.js +1 -1
  471. package/aws-iotsitewise/lib/iotsitewise.generated.js +1 -1
  472. package/aws-iotthingsgraph/lib/iotthingsgraph.generated.js +1 -1
  473. package/aws-iottwinmaker/lib/iottwinmaker.generated.js +1 -1
  474. package/aws-iotwireless/lib/iotwireless.generated.js +1 -1
  475. package/aws-ivs/lib/ivs.generated.js +1 -1
  476. package/aws-kafkaconnect/lib/kafkaconnect.generated.js +1 -1
  477. package/aws-kendra/lib/kendra.generated.js +1 -1
  478. package/aws-kinesis/lib/kinesis.generated.js +1 -1
  479. package/aws-kinesis/lib/stream.js +1 -1
  480. package/aws-kinesisanalytics/lib/kinesisanalytics.generated.js +1 -1
  481. package/aws-kinesisanalytics/lib/kinesisanalyticsv2.generated.js +1 -1
  482. package/aws-kinesisanalyticsv2/lib/kinesisanalyticsv2.generated.js +1 -1
  483. package/aws-kinesisfirehose/lib/kinesisfirehose.generated.js +1 -1
  484. package/aws-kinesisvideo/lib/kinesisvideo.generated.js +1 -1
  485. package/aws-kms/lib/alias.js +1 -1
  486. package/aws-kms/lib/key.js +1 -1
  487. package/aws-kms/lib/kms.generated.js +1 -1
  488. package/aws-kms/lib/via-service-principal.js +1 -1
  489. package/aws-lakeformation/lib/lakeformation.generated.js +1 -1
  490. package/aws-lambda/lib/alias.js +1 -1
  491. package/aws-lambda/lib/architecture.js +1 -1
  492. package/aws-lambda/lib/code-signing-config.js +1 -1
  493. package/aws-lambda/lib/code.js +1 -1
  494. package/aws-lambda/lib/event-invoke-config.js +1 -1
  495. package/aws-lambda/lib/event-source-mapping.js +1 -1
  496. package/aws-lambda/lib/filesystem.js +1 -1
  497. package/aws-lambda/lib/function-base.js +1 -1
  498. package/aws-lambda/lib/function-url.js +1 -1
  499. package/aws-lambda/lib/function.js +1 -1
  500. package/aws-lambda/lib/handler.js +1 -1
  501. package/aws-lambda/lib/image-function.js +1 -1
  502. package/aws-lambda/lib/lambda-insights.js +1 -1
  503. package/aws-lambda/lib/lambda-version.js +1 -1
  504. package/aws-lambda/lib/lambda.generated.js +1 -1
  505. package/aws-lambda/lib/layers.js +1 -1
  506. package/aws-lambda/lib/log-retention.js +1 -1
  507. package/aws-lambda/lib/runtime.js +1 -1
  508. package/aws-lambda/lib/singleton-lambda.js +1 -1
  509. package/aws-lambda-destinations/lib/event-bridge.js +1 -1
  510. package/aws-lambda-destinations/lib/lambda.js +1 -1
  511. package/aws-lambda-destinations/lib/sns.js +1 -1
  512. package/aws-lambda-destinations/lib/sqs.js +1 -1
  513. package/aws-lambda-event-sources/lib/api.js +1 -1
  514. package/aws-lambda-event-sources/lib/dynamodb.js +1 -1
  515. package/aws-lambda-event-sources/lib/kafka.js +1 -1
  516. package/aws-lambda-event-sources/lib/kinesis.js +1 -1
  517. package/aws-lambda-event-sources/lib/s3.js +1 -1
  518. package/aws-lambda-event-sources/lib/sns-dlq.js +1 -1
  519. package/aws-lambda-event-sources/lib/sns.js +1 -1
  520. package/aws-lambda-event-sources/lib/sqs-dlq.js +1 -1
  521. package/aws-lambda-event-sources/lib/sqs.js +1 -1
  522. package/aws-lambda-event-sources/lib/stream.js +1 -1
  523. package/aws-lambda-nodejs/lib/function.js +1 -1
  524. package/aws-lex/lib/lex.generated.js +1 -1
  525. package/aws-licensemanager/lib/licensemanager.generated.js +1 -1
  526. package/aws-lightsail/lib/lightsail.generated.js +1 -1
  527. package/aws-location/lib/location.generated.js +1 -1
  528. package/aws-logs/lib/cross-account-destination.js +1 -1
  529. package/aws-logs/lib/log-group.js +1 -1
  530. package/aws-logs/lib/log-retention.js +1 -1
  531. package/aws-logs/lib/log-stream.js +1 -1
  532. package/aws-logs/lib/logs.generated.js +1 -1
  533. package/aws-logs/lib/metric-filter.js +1 -1
  534. package/aws-logs/lib/pattern.js +1 -1
  535. package/aws-logs/lib/policy.js +1 -1
  536. package/aws-logs/lib/query-definition.js +1 -1
  537. package/aws-logs/lib/subscription-filter.js +1 -1
  538. package/aws-logs-destinations/lib/kinesis.js +1 -1
  539. package/aws-logs-destinations/lib/lambda.js +1 -1
  540. package/aws-lookoutequipment/lib/lookoutequipment.generated.js +1 -1
  541. package/aws-lookoutmetrics/lib/lookoutmetrics.generated.js +1 -1
  542. package/aws-lookoutvision/lib/lookoutvision.generated.js +1 -1
  543. package/aws-macie/lib/macie.generated.js +1 -1
  544. package/aws-managedblockchain/lib/managedblockchain.generated.js +1 -1
  545. package/aws-mediaconnect/lib/mediaconnect.generated.js +1 -1
  546. package/aws-mediaconvert/lib/mediaconvert.generated.js +1 -1
  547. package/aws-medialive/lib/medialive.generated.js +1 -1
  548. package/aws-mediapackage/lib/mediapackage.generated.js +1 -1
  549. package/aws-mediastore/lib/mediastore.generated.js +1 -1
  550. package/aws-mediatailor/lib/mediatailor.generated.js +1 -1
  551. package/aws-memorydb/lib/memorydb.generated.js +1 -1
  552. package/aws-msk/lib/msk.generated.js +1 -1
  553. package/aws-mwaa/lib/mwaa.generated.js +1 -1
  554. package/aws-neptune/lib/neptune.generated.js +1 -1
  555. package/aws-networkfirewall/lib/networkfirewall.generated.js +1 -1
  556. package/aws-networkmanager/lib/networkmanager.generated.js +1 -1
  557. package/aws-nimblestudio/lib/nimblestudio.generated.js +1 -1
  558. package/aws-opensearchservice/lib/domain.js +1 -1
  559. package/aws-opensearchservice/lib/opensearchservice.generated.js +1 -1
  560. package/aws-opensearchservice/lib/version.js +1 -1
  561. package/aws-opsworks/lib/opsworks.generated.js +1 -1
  562. package/aws-opsworkscm/lib/opsworkscm.generated.js +1 -1
  563. package/aws-panorama/lib/panorama.generated.js +1 -1
  564. package/aws-personalize/lib/personalize.generated.js +1 -1
  565. package/aws-pinpoint/lib/pinpoint.generated.js +1 -1
  566. package/aws-pinpointemail/lib/pinpointemail.generated.js +1 -1
  567. package/aws-qldb/lib/qldb.generated.js +1 -1
  568. package/aws-quicksight/lib/quicksight.generated.js +1 -1
  569. package/aws-ram/lib/ram.generated.js +1 -1
  570. package/aws-rds/lib/cluster-engine.js +1 -1
  571. package/aws-rds/lib/cluster.js +1 -1
  572. package/aws-rds/lib/database-secret.js +1 -1
  573. package/aws-rds/lib/endpoint.js +1 -1
  574. package/aws-rds/lib/instance-engine.js +1 -1
  575. package/aws-rds/lib/instance.js +1 -1
  576. package/aws-rds/lib/option-group.js +1 -1
  577. package/aws-rds/lib/parameter-group.js +1 -1
  578. package/aws-rds/lib/props.js +1 -1
  579. package/aws-rds/lib/proxy.js +1 -1
  580. package/aws-rds/lib/rds.generated.js +1 -1
  581. package/aws-rds/lib/serverless-cluster.js +1 -1
  582. package/aws-rds/lib/subnet-group.js +1 -1
  583. package/aws-redshift/lib/redshift.generated.js +1 -1
  584. package/aws-redshiftserverless/lib/redshiftserverless.generated.js +1 -1
  585. package/aws-refactorspaces/lib/refactorspaces.generated.js +1 -1
  586. package/aws-rekognition/lib/rekognition.generated.js +1 -1
  587. package/aws-resiliencehub/lib/resiliencehub.generated.js +1 -1
  588. package/aws-resourcegroups/lib/resourcegroups.generated.js +1 -1
  589. package/aws-robomaker/lib/robomaker.generated.js +1 -1
  590. package/aws-route53/lib/hosted-zone.js +1 -1
  591. package/aws-route53/lib/record-set.js +1 -1
  592. package/aws-route53/lib/route53.generated.js +1 -1
  593. package/aws-route53/lib/vpc-endpoint-service-domain-name.js +1 -1
  594. package/aws-route53-patterns/lib/website-redirect.js +1 -1
  595. package/aws-route53-targets/lib/api-gateway-domain-name.js +1 -1
  596. package/aws-route53-targets/lib/api-gatewayv2-domain-name.js +1 -1
  597. package/aws-route53-targets/lib/bucket-website-target.js +1 -1
  598. package/aws-route53-targets/lib/classic-load-balancer-target.js +1 -1
  599. package/aws-route53-targets/lib/cloudfront-target.js +1 -1
  600. package/aws-route53-targets/lib/elastic-beanstalk-environment-target.js +1 -1
  601. package/aws-route53-targets/lib/global-accelerator-target.js +1 -1
  602. package/aws-route53-targets/lib/interface-vpc-endpoint-target.js +1 -1
  603. package/aws-route53-targets/lib/load-balancer-target.js +1 -1
  604. package/aws-route53-targets/lib/route53-record.js +1 -1
  605. package/aws-route53-targets/lib/userpool-domain.js +1 -1
  606. package/aws-route53recoverycontrol/lib/route53recoverycontrol.generated.js +1 -1
  607. package/aws-route53recoveryreadiness/lib/route53recoveryreadiness.generated.js +1 -1
  608. package/aws-route53resolver/lib/route53resolver.generated.js +1 -1
  609. package/aws-rum/lib/rum.generated.js +1 -1
  610. package/aws-s3/lib/bucket-policy.js +1 -1
  611. package/aws-s3/lib/bucket.js +1 -1
  612. package/aws-s3/lib/rule.js +1 -1
  613. package/aws-s3/lib/s3.generated.js +1 -1
  614. package/aws-s3-assets/lib/asset.js +1 -1
  615. package/aws-s3-deployment/lib/bucket-deployment.js +1 -1
  616. package/aws-s3-deployment/lib/source.js +1 -1
  617. package/aws-s3-notifications/lib/lambda.js +1 -1
  618. package/aws-s3-notifications/lib/sns.js +1 -1
  619. package/aws-s3-notifications/lib/sqs.js +1 -1
  620. package/aws-s3objectlambda/lib/s3objectlambda.generated.js +1 -1
  621. package/aws-s3outposts/lib/s3outposts.generated.js +1 -1
  622. package/aws-sagemaker/lib/sagemaker.generated.js +1 -1
  623. package/aws-sam/lib/sam.generated.js +1 -1
  624. package/aws-sdb/lib/sdb.generated.js +1 -1
  625. package/aws-secretsmanager/lib/policy.js +1 -1
  626. package/aws-secretsmanager/lib/rotation-schedule.js +1 -1
  627. package/aws-secretsmanager/lib/secret-rotation.js +1 -1
  628. package/aws-secretsmanager/lib/secret.js +1 -1
  629. package/aws-secretsmanager/lib/secretsmanager.generated.js +1 -1
  630. package/aws-securityhub/lib/securityhub.generated.js +1 -1
  631. package/aws-servicecatalog/lib/cloudformation-template.js +1 -1
  632. package/aws-servicecatalog/lib/portfolio.js +1 -1
  633. package/aws-servicecatalog/lib/product-stack-history.js +1 -1
  634. package/aws-servicecatalog/lib/product-stack.js +1 -1
  635. package/aws-servicecatalog/lib/product.js +1 -1
  636. package/aws-servicecatalog/lib/servicecatalog.generated.js +1 -1
  637. package/aws-servicecatalog/lib/tag-options.js +1 -1
  638. package/aws-servicecatalogappregistry/lib/servicecatalogappregistry.generated.js +1 -1
  639. package/aws-servicediscovery/lib/alias-target-instance.js +1 -1
  640. package/aws-servicediscovery/lib/cname-instance.js +1 -1
  641. package/aws-servicediscovery/lib/http-namespace.js +1 -1
  642. package/aws-servicediscovery/lib/instance.js +1 -1
  643. package/aws-servicediscovery/lib/ip-instance.js +1 -1
  644. package/aws-servicediscovery/lib/non-ip-instance.js +1 -1
  645. package/aws-servicediscovery/lib/private-dns-namespace.js +1 -1
  646. package/aws-servicediscovery/lib/public-dns-namespace.js +1 -1
  647. package/aws-servicediscovery/lib/service.js +1 -1
  648. package/aws-servicediscovery/lib/servicediscovery.generated.js +1 -1
  649. package/aws-ses/lib/receipt-filter.js +1 -1
  650. package/aws-ses/lib/receipt-rule-set.js +1 -1
  651. package/aws-ses/lib/receipt-rule.js +1 -1
  652. package/aws-ses/lib/ses.generated.js +1 -1
  653. package/aws-ses-actions/lib/add-header.js +1 -1
  654. package/aws-ses-actions/lib/bounce.js +1 -1
  655. package/aws-ses-actions/lib/lambda.js +1 -1
  656. package/aws-ses-actions/lib/s3.js +1 -1
  657. package/aws-ses-actions/lib/sns.js +1 -1
  658. package/aws-ses-actions/lib/stop.js +1 -1
  659. package/aws-signer/lib/signer.generated.js +1 -1
  660. package/aws-signer/lib/signing-profile.js +1 -1
  661. package/aws-sns/lib/policy.js +1 -1
  662. package/aws-sns/lib/sns.generated.js +1 -1
  663. package/aws-sns/lib/subscription-filter.js +1 -1
  664. package/aws-sns/lib/subscription.js +1 -1
  665. package/aws-sns/lib/topic-base.js +1 -1
  666. package/aws-sns/lib/topic.js +1 -1
  667. package/aws-sns-subscriptions/lib/email.js +1 -1
  668. package/aws-sns-subscriptions/lib/lambda.js +1 -1
  669. package/aws-sns-subscriptions/lib/sms.js +1 -1
  670. package/aws-sns-subscriptions/lib/sqs.js +1 -1
  671. package/aws-sns-subscriptions/lib/url.js +1 -1
  672. package/aws-sqs/lib/policy.js +1 -1
  673. package/aws-sqs/lib/queue-base.js +1 -1
  674. package/aws-sqs/lib/queue.js +1 -1
  675. package/aws-sqs/lib/sqs.generated.js +1 -1
  676. package/aws-ssm/lib/parameter.js +1 -1
  677. package/aws-ssm/lib/ssm.generated.js +1 -1
  678. package/aws-ssmcontacts/lib/ssmcontacts.generated.js +1 -1
  679. package/aws-ssmincidents/lib/ssmincidents.generated.js +1 -1
  680. package/aws-sso/lib/sso.generated.js +1 -1
  681. package/aws-stepfunctions/lib/activity.js +1 -1
  682. package/aws-stepfunctions/lib/chain.js +1 -1
  683. package/aws-stepfunctions/lib/condition.js +1 -1
  684. package/aws-stepfunctions/lib/fields.js +1 -1
  685. package/aws-stepfunctions/lib/input.js +1 -1
  686. package/aws-stepfunctions/lib/state-graph.js +1 -1
  687. package/aws-stepfunctions/lib/state-machine-fragment.js +1 -1
  688. package/aws-stepfunctions/lib/state-machine.js +1 -1
  689. package/aws-stepfunctions/lib/state-transition-metrics.js +1 -1
  690. package/aws-stepfunctions/lib/states/choice.js +1 -1
  691. package/aws-stepfunctions/lib/states/custom-state.js +1 -1
  692. package/aws-stepfunctions/lib/states/fail.js +1 -1
  693. package/aws-stepfunctions/lib/states/map.js +1 -1
  694. package/aws-stepfunctions/lib/states/parallel.js +1 -1
  695. package/aws-stepfunctions/lib/states/pass.js +1 -1
  696. package/aws-stepfunctions/lib/states/state.js +1 -1
  697. package/aws-stepfunctions/lib/states/succeed.js +1 -1
  698. package/aws-stepfunctions/lib/states/task-base.js +1 -1
  699. package/aws-stepfunctions/lib/states/task.js +1 -1
  700. package/aws-stepfunctions/lib/states/wait.js +1 -1
  701. package/aws-stepfunctions/lib/stepfunctions.generated.js +1 -1
  702. package/aws-stepfunctions/lib/types.js +1 -1
  703. package/aws-stepfunctions-tasks/lib/apigateway/call-http-api.js +1 -1
  704. package/aws-stepfunctions-tasks/lib/apigateway/call-rest-api.js +1 -1
  705. package/aws-stepfunctions-tasks/lib/athena/get-query-execution.js +1 -1
  706. package/aws-stepfunctions-tasks/lib/athena/get-query-results.js +1 -1
  707. package/aws-stepfunctions-tasks/lib/athena/start-query-execution.js +1 -1
  708. package/aws-stepfunctions-tasks/lib/athena/stop-query-execution.js +1 -1
  709. package/aws-stepfunctions-tasks/lib/aws-sdk/call-aws-service.js +1 -1
  710. package/aws-stepfunctions-tasks/lib/batch/run-batch-job.js +1 -1
  711. package/aws-stepfunctions-tasks/lib/batch/submit-job.js +1 -1
  712. package/aws-stepfunctions-tasks/lib/codebuild/start-build.js +1 -1
  713. package/aws-stepfunctions-tasks/lib/databrew/start-job-run.js +1 -1
  714. package/aws-stepfunctions-tasks/lib/dynamodb/delete-item.js +1 -1
  715. package/aws-stepfunctions-tasks/lib/dynamodb/get-item.js +1 -1
  716. package/aws-stepfunctions-tasks/lib/dynamodb/put-item.js +1 -1
  717. package/aws-stepfunctions-tasks/lib/dynamodb/shared-types.js +1 -1
  718. package/aws-stepfunctions-tasks/lib/dynamodb/update-item.js +1 -1
  719. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-ec2-task.js +1 -1
  720. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-fargate-task.js +1 -1
  721. package/aws-stepfunctions-tasks/lib/ecs/run-ecs-task-base.js +1 -1
  722. package/aws-stepfunctions-tasks/lib/ecs/run-task.js +1 -1
  723. package/aws-stepfunctions-tasks/lib/eks/call.js +1 -1
  724. package/aws-stepfunctions-tasks/lib/emr/emr-add-step.js +1 -1
  725. package/aws-stepfunctions-tasks/lib/emr/emr-cancel-step.js +1 -1
  726. package/aws-stepfunctions-tasks/lib/emr/emr-create-cluster.js +1 -1
  727. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-fleet-by-name.js +1 -1
  728. package/aws-stepfunctions-tasks/lib/emr/emr-modify-instance-group-by-name.js +1 -1
  729. package/aws-stepfunctions-tasks/lib/emr/emr-set-cluster-termination-protection.js +1 -1
  730. package/aws-stepfunctions-tasks/lib/emr/emr-terminate-cluster.js +1 -1
  731. package/aws-stepfunctions-tasks/lib/emrcontainers/create-virtual-cluster.js +1 -1
  732. package/aws-stepfunctions-tasks/lib/emrcontainers/delete-virtual-cluster.js +1 -1
  733. package/aws-stepfunctions-tasks/lib/emrcontainers/start-job-run.js +1 -1
  734. package/aws-stepfunctions-tasks/lib/evaluate-expression.js +1 -1
  735. package/aws-stepfunctions-tasks/lib/eventbridge/put-events.js +1 -1
  736. package/aws-stepfunctions-tasks/lib/glue/run-glue-job-task.js +1 -1
  737. package/aws-stepfunctions-tasks/lib/glue/start-job-run.js +1 -1
  738. package/aws-stepfunctions-tasks/lib/invoke-activity.js +1 -1
  739. package/aws-stepfunctions-tasks/lib/lambda/invoke-function.js +1 -1
  740. package/aws-stepfunctions-tasks/lib/lambda/invoke.js +1 -1
  741. package/aws-stepfunctions-tasks/lib/lambda/run-lambda-task.js +1 -1
  742. package/aws-stepfunctions-tasks/lib/sagemaker/base-types.js +1 -1
  743. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint-config.js +1 -1
  744. package/aws-stepfunctions-tasks/lib/sagemaker/create-endpoint.js +1 -1
  745. package/aws-stepfunctions-tasks/lib/sagemaker/create-model.js +1 -1
  746. package/aws-stepfunctions-tasks/lib/sagemaker/create-training-job.js +1 -1
  747. package/aws-stepfunctions-tasks/lib/sagemaker/create-transform-job.js +1 -1
  748. package/aws-stepfunctions-tasks/lib/sagemaker/update-endpoint.js +1 -1
  749. package/aws-stepfunctions-tasks/lib/sns/publish-to-topic.js +1 -1
  750. package/aws-stepfunctions-tasks/lib/sns/publish.js +1 -1
  751. package/aws-stepfunctions-tasks/lib/sqs/send-message.js +1 -1
  752. package/aws-stepfunctions-tasks/lib/sqs/send-to-queue.js +1 -1
  753. package/aws-stepfunctions-tasks/lib/start-execution.js +1 -1
  754. package/aws-stepfunctions-tasks/lib/stepfunctions/invoke-activity.js +1 -1
  755. package/aws-stepfunctions-tasks/lib/stepfunctions/start-execution.js +1 -1
  756. package/aws-synthetics/lib/synthetics.generated.js +1 -1
  757. package/aws-timestream/lib/timestream.generated.js +1 -1
  758. package/aws-transfer/lib/transfer.generated.js +1 -1
  759. package/aws-voiceid/lib/voiceid.generated.js +1 -1
  760. package/aws-waf/lib/waf.generated.js +1 -1
  761. package/aws-wafregional/lib/wafregional.generated.js +1 -1
  762. package/aws-wafv2/lib/wafv2.generated.js +1 -1
  763. package/aws-wisdom/lib/wisdom.generated.js +1 -1
  764. package/aws-workspaces/lib/workspaces.generated.js +1 -1
  765. package/aws-xray/lib/xray.generated.js +1 -1
  766. package/cloud-assembly-schema/lib/manifest.js +1 -1
  767. package/cloudformation-include/lib/cfn-include.js +1 -1
  768. package/core/lib/annotations.js +1 -1
  769. package/core/lib/app.js +1 -1
  770. package/core/lib/arn.js +1 -1
  771. package/core/lib/aspect.js +1 -1
  772. package/core/lib/asset-staging.js +1 -1
  773. package/core/lib/bundling.js +1 -1
  774. package/core/lib/cfn-codedeploy-blue-green-hook.js +1 -1
  775. package/core/lib/cfn-condition.js +1 -1
  776. package/core/lib/cfn-dynamic-reference.js +1 -1
  777. package/core/lib/cfn-element.js +1 -1
  778. package/core/lib/cfn-fn.js +1 -1
  779. package/core/lib/cfn-hook.js +1 -1
  780. package/core/lib/cfn-include.js +1 -1
  781. package/core/lib/cfn-json.js +1 -1
  782. package/core/lib/cfn-mapping.js +1 -1
  783. package/core/lib/cfn-output.js +1 -1
  784. package/core/lib/cfn-parameter.js +1 -1
  785. package/core/lib/cfn-pseudo.js +1 -1
  786. package/core/lib/cfn-resource.js +1 -1
  787. package/core/lib/cfn-rule.js +1 -1
  788. package/core/lib/cloudformation.generated.js +1 -1
  789. package/core/lib/context-provider.js +1 -1
  790. package/core/lib/custom-resource-provider/custom-resource-provider.js +1 -1
  791. package/core/lib/custom-resource.js +1 -1
  792. package/core/lib/duration.js +1 -1
  793. package/core/lib/expiration.js +1 -1
  794. package/core/lib/feature-flags.js +1 -1
  795. package/core/lib/fs/ignore.js +1 -1
  796. package/core/lib/fs/index.js +1 -1
  797. package/core/lib/lazy.js +1 -1
  798. package/core/lib/names.js +1 -1
  799. package/core/lib/nested-stack.js +1 -1
  800. package/core/lib/physical-name.js +1 -1
  801. package/core/lib/private/intrinsic.js +1 -1
  802. package/core/lib/reference.js +1 -1
  803. package/core/lib/resolvable.js +2 -2
  804. package/core/lib/resource.js +1 -1
  805. package/core/lib/runtime.js +2 -2
  806. package/core/lib/secret-value.js +1 -1
  807. package/core/lib/size.js +1 -1
  808. package/core/lib/stack-synthesizers/bootstrapless-synthesizer.js +1 -1
  809. package/core/lib/stack-synthesizers/cli-credentials-synthesizer.js +1 -1
  810. package/core/lib/stack-synthesizers/default-synthesizer.js +1 -1
  811. package/core/lib/stack-synthesizers/legacy.js +1 -1
  812. package/core/lib/stack-synthesizers/nested.js +1 -1
  813. package/core/lib/stack-synthesizers/stack-synthesizer.js +1 -1
  814. package/core/lib/stack.js +1 -1
  815. package/core/lib/stage.js +1 -1
  816. package/core/lib/string-fragments.js +1 -1
  817. package/core/lib/tag-aspect.js +1 -1
  818. package/core/lib/tag-manager.js +1 -1
  819. package/core/lib/token.js +1 -1
  820. package/core/lib/tree.js +1 -1
  821. package/custom-resources/lib/aws-custom-resource/aws-custom-resource.js +1 -1
  822. package/custom-resources/lib/provider-framework/provider.js +1 -1
  823. package/custom-resources/lib/provider-framework/runtime/framework.js +1 -1
  824. package/cx-api/lib/artifacts/asset-manifest-artifact.js +1 -1
  825. package/cx-api/lib/artifacts/cloudformation-artifact.js +1 -1
  826. package/cx-api/lib/artifacts/nested-cloud-assembly-artifact.js +1 -1
  827. package/cx-api/lib/artifacts/tree-cloud-artifact.js +1 -1
  828. package/cx-api/lib/cloud-artifact.js +1 -1
  829. package/cx-api/lib/cloud-assembly.js +1 -1
  830. package/cx-api/lib/environment.js +1 -1
  831. package/cx-api/lib/placeholders.js +1 -1
  832. package/lambda-layer-awscli/lib/awscli-layer.js +1 -1
  833. package/lambda-layer-awscli/lib/layer.zip +0 -0
  834. package/lambda-layer-kubectl/lib/kubectl-layer.js +1 -1
  835. package/lambda-layer-kubectl/lib/layer.zip +0 -0
  836. package/lambda-layer-node-proxy-agent/lib/layer.zip +0 -0
  837. package/lambda-layer-node-proxy-agent/lib/node-proxy-agent-layer.js +1 -1
  838. package/package.json +244 -244
  839. package/pipelines/lib/blueprint/file-set.js +1 -1
  840. package/pipelines/lib/blueprint/manual-approval.js +1 -1
  841. package/pipelines/lib/blueprint/shell-step.js +1 -1
  842. package/pipelines/lib/blueprint/stack-deployment.js +1 -1
  843. package/pipelines/lib/blueprint/stage-deployment.js +1 -1
  844. package/pipelines/lib/blueprint/step.js +1 -1
  845. package/pipelines/lib/blueprint/wave.js +1 -1
  846. package/pipelines/lib/codepipeline/artifact-map.js +1 -1
  847. package/pipelines/lib/codepipeline/codebuild-step.js +1 -1
  848. package/pipelines/lib/codepipeline/codepipeline-source.js +1 -1
  849. package/pipelines/lib/codepipeline/codepipeline.js +1 -1
  850. package/pipelines/lib/codepipeline/confirm-permissions-broadening.js +1 -1
  851. package/pipelines/lib/docker-credentials.js +1 -1
  852. package/pipelines/lib/legacy/actions/deploy-cdk-stack-action.js +1 -1
  853. package/pipelines/lib/legacy/actions/publish-assets-action.js +1 -1
  854. package/pipelines/lib/legacy/actions/update-pipeline-action.js +1 -1
  855. package/pipelines/lib/legacy/pipeline.js +1 -1
  856. package/pipelines/lib/legacy/stage.js +1 -1
  857. package/pipelines/lib/legacy/synths/simple-synth-action.js +1 -1
  858. package/pipelines/lib/legacy/validation/shell-script-action.js +1 -1
  859. package/pipelines/lib/main/pipeline-base.js +1 -1
  860. package/region-info/lib/built-ins.generated.d.ts +1 -1
  861. package/region-info/lib/default.js +1 -1
  862. package/region-info/lib/fact.js +1 -1
  863. package/region-info/lib/region-info.js +1 -1
  864. package/triggers/lib/trigger-function.js +1 -1
  865. package/triggers/lib/trigger.js +1 -1
@@ -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.31.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.31.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}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.31.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}}
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.31.2"},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.31.2"},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}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.31.2"};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}}exports.TarballImageAsset=TarballImageAsset,_a=JSII_RTTI_SYMBOL_1,TarballImageAsset[_a]={fqn:"aws-cdk-lib.aws_ecr_assets.TarballImageAsset",version:"2.31.1"};
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}}exports.TarballImageAsset=TarballImageAsset,_a=JSII_RTTI_SYMBOL_1,TarballImageAsset[_a]={fqn:"aws-cdk-lib.aws_ecr_assets.TarballImageAsset",version:"2.31.2"};
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.31.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.31.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.31.1"};function lookupImage(scope,cachedInContext,parameterName){return cachedInContext?ssm.StringParameter.valueFromLookup(scope,parameterName):ssm.StringParameter.valueForTypedStringParameter(scope,parameterName,ssm.ParameterType.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.31.2"};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.31.2"};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.31.2"};function lookupImage(scope,cachedInContext,parameterName){return cachedInContext?ssm.StringParameter.valueFromLookup(scope,parameterName):ssm.StringParameter.valueForTypedStringParameter(scope,parameterName,ssm.ParameterType.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"),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.31.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;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:props.circuitBreaker?{type:DeploymentControllerType.ECS}:props.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."),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}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.31.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{}}
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"),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.31.2"};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;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:props.circuitBreaker?{type:DeploymentControllerType.ECS}:props.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."),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}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.31.2"};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.31.1"};
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.31.2"};
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),container.referencesSecretJsonField&&(this._referencesSecretJsonField=!0)}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)}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._executionRole}get referencesSecretJsonField(){return this._referencesSecretJsonField}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)}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.31.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;
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),container.referencesSecretJsonField&&(this._referencesSecretJsonField=!0)}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)}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._executionRole}get referencesSecretJsonField(){return this._referencesSecretJsonField}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)}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.31.2"};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
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.AsgCapacityProvider=exports.ExecuteCommandLogging=exports.Cluster=exports.MachineImageType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),autoscaling=require("../../aws-autoscaling"),cloudwatch=require("../../aws-cloudwatch"),ec2=require("../../aws-ec2"),iam=require("../../aws-iam"),cloudmap=require("../../aws-servicediscovery"),core_1=require("../../core"),constructs_1=require("constructs"),amis_1=require("./amis"),instance_drain_hook_1=require("./drain-hook/instance-drain-hook"),ecs_canned_metrics_generated_1=require("./ecs-canned-metrics.generated"),ecs_generated_1=require("./ecs.generated");var MachineImageType;(function(MachineImageType2){MachineImageType2[MachineImageType2.AMAZON_LINUX_2=0]="AMAZON_LINUX_2",MachineImageType2[MachineImageType2.BOTTLEROCKET=1]="BOTTLEROCKET"})(MachineImageType=exports.MachineImageType||(exports.MachineImageType={}));class Cluster extends core_1.Resource{constructor(scope,id,props={}){super(scope,id,{physicalName:props.clusterName}),this.connections=new ec2.Connections,this._capacityProviderNames=[],this._hasEc2Capacity=!1;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ClusterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Cluster),error}let clusterSettings;if(props.containerInsights!==void 0&&(clusterSettings=[{name:"containerInsights",value:props.containerInsights?ContainerInsights.ENABLED:ContainerInsights.DISABLED}]),this._capacityProviderNames=props.capacityProviders??[],props.enableFargateCapacityProviders&&this.enableFargateCapacityProviders(),props.executeCommandConfiguration){if(props.executeCommandConfiguration.logging===ExecuteCommandLogging.OVERRIDE!=(props.executeCommandConfiguration.logConfiguration!==void 0))throw new Error("Execute command log configuration must only be specified when logging is OVERRIDE.");this._executeCommandConfiguration=props.executeCommandConfiguration}const cluster=new ecs_generated_1.CfnCluster(this,"Resource",{clusterName:this.physicalName,clusterSettings,configuration:this._executeCommandConfiguration&&this.renderExecuteCommandConfiguration()});this.clusterArn=this.getResourceArnAttribute(cluster.attrArn,{service:"ecs",resource:"cluster",resourceName:this.physicalName}),this.clusterName=this.getResourceNameAttribute(cluster.ref),this.vpc=props.vpc||new ec2.Vpc(this,"Vpc",{maxAzs:2}),this._defaultCloudMapNamespace=props.defaultCloudMapNamespace!==void 0?this.addDefaultCloudMapNamespace(props.defaultCloudMapNamespace):void 0,this._autoscalingGroup=props.capacity!==void 0?this.addCapacity("DefaultAutoScalingGroup",props.capacity):void 0,core_1.Aspects.of(this).add(new MaybeCreateCapacityProviderAssociations(this,id,this._capacityProviderNames))}static fromClusterAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ClusterAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromClusterAttributes),error}return new ImportedCluster(scope,id,attrs)}static fromClusterArn(scope,id,clusterArn){const clusterName=core_1.Stack.of(scope).splitArn(clusterArn,core_1.ArnFormat.SLASH_RESOURCE_NAME).resourceName;if(!clusterName)throw new Error(`Missing required Cluster Name from Cluster ARN: ${clusterArn}`);const errorSuffix="is not available for a Cluster imported using fromClusterArn(), please use fromClusterAttributes() instead.";class Import extends core_1.Resource{constructor(){super(...arguments),this.clusterArn=clusterArn,this.clusterName=clusterName}get hasEc2Capacity(){throw new Error(`hasEc2Capacity ${errorSuffix}`)}get connections(){throw new Error(`connections ${errorSuffix}`)}get vpc(){throw new Error(`vpc ${errorSuffix}`)}}return new Import(scope,id,{environmentFromArn:clusterArn})}enableFargateCapacityProviders(){for(const provider of["FARGATE","FARGATE_SPOT"])this._capacityProviderNames.includes(provider)||this._capacityProviderNames.push(provider)}renderExecuteCommandConfiguration(){return{executeCommandConfiguration:{kmsKeyId:this._executeCommandConfiguration?.kmsKey?.keyArn,logConfiguration:this._executeCommandConfiguration?.logConfiguration&&this.renderExecuteCommandLogConfiguration(),logging:this._executeCommandConfiguration?.logging}}}renderExecuteCommandLogConfiguration(){const logConfiguration=this._executeCommandConfiguration?.logConfiguration;if(logConfiguration?.s3EncryptionEnabled&&!logConfiguration?.s3Bucket)throw new Error("You must specify an S3 bucket name in the execute command log configuration to enable S3 encryption.");if(logConfiguration?.cloudWatchEncryptionEnabled&&!logConfiguration?.cloudWatchLogGroup)throw new Error("You must specify a CloudWatch log group in the execute command log configuration to enable CloudWatch encryption.");return{cloudWatchEncryptionEnabled:logConfiguration?.cloudWatchEncryptionEnabled,cloudWatchLogGroupName:logConfiguration?.cloudWatchLogGroup?.logGroupName,s3BucketName:logConfiguration?.s3Bucket?.bucketName,s3EncryptionEnabled:logConfiguration?.s3EncryptionEnabled,s3KeyPrefix:logConfiguration?.s3KeyPrefix}}addDefaultCloudMapNamespace(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_CloudMapNamespaceOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addDefaultCloudMapNamespace),error}if(this._defaultCloudMapNamespace!==void 0)throw new Error("Can only add default namespace once.");const sdNamespace=(options.type!==void 0?options.type:cloudmap.NamespaceType.DNS_PRIVATE)===cloudmap.NamespaceType.DNS_PRIVATE?new cloudmap.PrivateDnsNamespace(this,"DefaultServiceDiscoveryNamespace",{name:options.name,vpc:this.vpc}):new cloudmap.PublicDnsNamespace(this,"DefaultServiceDiscoveryNamespace",{name:options.name});return this._defaultCloudMapNamespace=sdNamespace,sdNamespace}get defaultCloudMapNamespace(){return this._defaultCloudMapNamespace}addCapacity(id,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AddCapacityOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addCapacity),error}const machineImage=options.machineImage??(options.machineImageType===MachineImageType.BOTTLEROCKET?new amis_1.BottleRocketImage({architecture:options.instanceType.architecture}):new amis_1.EcsOptimizedAmi),machineImageType=options.machineImageType??(isBottleRocketImage(machineImage)?MachineImageType.BOTTLEROCKET:MachineImageType.AMAZON_LINUX_2),autoScalingGroup=new autoscaling.AutoScalingGroup(this,id,{vpc:this.vpc,machineImage,updateType:options.updateType||autoscaling.UpdateType.REPLACING_UPDATE,...options});return this.addAutoScalingGroup(autoScalingGroup,{machineImageType,...options}),autoScalingGroup}addAsgCapacityProvider(provider,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AsgCapacityProvider(provider),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AddAutoScalingGroupCapacityOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addAsgCapacityProvider),error}this._capacityProviderNames.includes(provider.capacityProviderName)||(this._hasEc2Capacity=!0,this.configureAutoScalingGroup(provider.autoScalingGroup,{...options,machineImageType:provider.machineImageType,taskDrainTime:provider.enableManagedTerminationProtection?core_1.Duration.seconds(0):options.taskDrainTime,canContainersAccessInstanceRole:options.canContainersAccessInstanceRole??provider.canContainersAccessInstanceRole}),this._capacityProviderNames.push(provider.capacityProviderName))}addAutoScalingGroup(autoScalingGroup,options={}){this._hasEc2Capacity=!0,this.connections.connections.addSecurityGroup(...autoScalingGroup.connections.securityGroups),this.configureAutoScalingGroup(autoScalingGroup,options)}configureAutoScalingGroup(autoScalingGroup,options={}){if(autoScalingGroup.osType===ec2.OperatingSystemType.WINDOWS)this.configureWindowsAutoScalingGroup(autoScalingGroup,options);else switch(options.machineImageType){case MachineImageType.BOTTLEROCKET:{autoScalingGroup.addUserData("[settings.ecs]",`cluster = "${this.clusterName}"`),autoScalingGroup.role.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonSSMManagedInstanceCore")),autoScalingGroup.role.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName("service-role/AmazonEC2ContainerServiceforEC2Role"));break}default:autoScalingGroup.addUserData(`echo ECS_CLUSTER=${this.clusterName} >> /etc/ecs/ecs.config`),options.canContainersAccessInstanceRole||(autoScalingGroup.addUserData("sudo iptables --insert FORWARD 1 --in-interface docker+ --destination 169.254.169.254/32 --jump DROP"),autoScalingGroup.addUserData("sudo service iptables save"),autoScalingGroup.addUserData("echo ECS_AWSVPC_BLOCK_IMDS=true >> /etc/ecs/ecs.config")),autoScalingGroup.spotPrice&&options.spotInstanceDraining&&autoScalingGroup.addUserData("echo ECS_ENABLE_SPOT_INSTANCE_DRAINING=true >> /etc/ecs/ecs.config")}autoScalingGroup.addToRolePolicy(new iam.PolicyStatement({actions:["ecs:DeregisterContainerInstance","ecs:RegisterContainerInstance","ecs:Submit*"],resources:[this.clusterArn]})),autoScalingGroup.addToRolePolicy(new iam.PolicyStatement({actions:["ecs:Poll","ecs:StartTelemetrySession"],resources:["*"],conditions:{ArnEquals:{"ecs:cluster":this.clusterArn}}})),autoScalingGroup.addToRolePolicy(new iam.PolicyStatement({actions:["ecs:DiscoverPollEndpoint","ecr:GetAuthorizationToken","logs:CreateLogStream","logs:PutLogEvents"],resources:["*"]})),(!options.taskDrainTime||options.taskDrainTime.toSeconds()!==0)&&new instance_drain_hook_1.InstanceDrainHook(autoScalingGroup,"DrainECSHook",{autoScalingGroup,cluster:this,drainTime:options.taskDrainTime,topicEncryptionKey:options.topicEncryptionKey})}addCapacityProvider(provider){if(!(provider==="FARGATE"||provider==="FARGATE_SPOT"))throw new Error("CapacityProvider not supported");this._capacityProviderNames.includes(provider)||this._capacityProviderNames.push(provider)}configureWindowsAutoScalingGroup(autoScalingGroup,options={}){autoScalingGroup.addUserData("Remove-Item -Recurse C:\\ProgramData\\Amazon\\ECS\\Cache"),autoScalingGroup.addUserData("Import-Module ECSTools"),autoScalingGroup.addUserData(`[Environment]::SetEnvironmentVariable("ECS_CLUSTER", "${this.clusterName}", "Machine")`),autoScalingGroup.addUserData('[Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", "true", "Machine")'),autoScalingGroup.addUserData(`[Environment]::SetEnvironmentVariable("ECS_AVAILABLE_LOGGING_DRIVERS", '["json-file","awslogs"]', "Machine")`),autoScalingGroup.spotPrice&&options.spotInstanceDraining&&autoScalingGroup.addUserData('[Environment]::SetEnvironmentVariable("ECS_ENABLE_SPOT_INSTANCE_DRAINING", "true", "Machine")'),options.canContainersAccessInstanceRole?autoScalingGroup.addUserData(`Initialize-ECSAgent -Cluster '${this.clusterName}'`):(autoScalingGroup.addUserData('[Environment]::SetEnvironmentVariable("ECS_ENABLE_TASK_IAM_ROLE", "true", "Machine")'),autoScalingGroup.addUserData(`Initialize-ECSAgent -Cluster '${this.clusterName}' -EnableTaskIAMRole`))}get autoscalingGroup(){return this._autoscalingGroup}get hasEc2Capacity(){return this._hasEc2Capacity}get executeCommandConfiguration(){return this._executeCommandConfiguration}metricCpuReservation(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.metricCpuReservation),error}return this.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.cpuReservationAverage,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.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.cpuUtilizationAverage,props)}metricMemoryReservation(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.metricMemoryReservation),error}return this.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.memoryReservationAverage,props)}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.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.memoryUtilizationAverage,props)}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.clusterName},...props}).attachTo(this)}cannedMetric(fn,props){return new cloudwatch.Metric({...fn({ClusterName:this.clusterName}),...props}).attachTo(this)}}exports.Cluster=Cluster,_a=JSII_RTTI_SYMBOL_1,Cluster[_a]={fqn:"aws-cdk-lib.aws_ecs.Cluster",version:"2.31.1"};class ImportedCluster extends core_1.Resource{constructor(scope,id,props){super(scope,id),this.connections=new ec2.Connections,this.clusterName=props.clusterName,this.vpc=props.vpc,this.hasEc2Capacity=props.hasEc2Capacity!==!1,this._defaultCloudMapNamespace=props.defaultCloudMapNamespace,this._executeCommandConfiguration=props.executeCommandConfiguration,this.clusterArn=props.clusterArn??core_1.Stack.of(this).formatArn({service:"ecs",resource:"cluster",resourceName:props.clusterName}),this.connections=new ec2.Connections({securityGroups:props.securityGroups})}get defaultCloudMapNamespace(){return this._defaultCloudMapNamespace}get executeCommandConfiguration(){return this._executeCommandConfiguration}}var ContainerInsights;(function(ContainerInsights2){ContainerInsights2.ENABLED="enabled",ContainerInsights2.DISABLED="disabled"})(ContainerInsights||(ContainerInsights={}));var ExecuteCommandLogging;(function(ExecuteCommandLogging2){ExecuteCommandLogging2.NONE="NONE",ExecuteCommandLogging2.DEFAULT="DEFAULT",ExecuteCommandLogging2.OVERRIDE="OVERRIDE"})(ExecuteCommandLogging=exports.ExecuteCommandLogging||(exports.ExecuteCommandLogging={}));class AsgCapacityProvider extends constructs_1.Construct{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AsgCapacityProviderProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,AsgCapacityProvider),error}if(this.autoScalingGroup=props.autoScalingGroup,this.machineImageType=props.machineImageType??MachineImageType.AMAZON_LINUX_2,this.canContainersAccessInstanceRole=props.canContainersAccessInstanceRole,this.enableManagedTerminationProtection=props.enableManagedTerminationProtection===void 0?!0:props.enableManagedTerminationProtection,this.enableManagedTerminationProtection&&this.autoScalingGroup.protectNewInstancesFromScaleIn(),props.capacityProviderName&&!/^(?!aws|ecs|fargate).+/gm.test(props.capacityProviderName))throw new Error(`Invalid Capacity Provider Name: ${props.capacityProviderName}, If a name is specified, it cannot start with aws, ecs, or fargate.`);const capacityProvider=new ecs_generated_1.CfnCapacityProvider(this,id,{name:props.capacityProviderName,autoScalingGroupProvider:{autoScalingGroupArn:this.autoScalingGroup.autoScalingGroupName,managedScaling:props.enableManagedScaling===!1?void 0:{status:"ENABLED",targetCapacity:props.targetCapacityPercent||100,maximumScalingStepSize:props.maximumScalingStepSize,minimumScalingStepSize:props.minimumScalingStepSize},managedTerminationProtection:this.enableManagedTerminationProtection?"ENABLED":"DISABLED"}});this.capacityProviderName=capacityProvider.ref}}exports.AsgCapacityProvider=AsgCapacityProvider,_b=JSII_RTTI_SYMBOL_1,AsgCapacityProvider[_b]={fqn:"aws-cdk-lib.aws_ecs.AsgCapacityProvider",version:"2.31.1"};class MaybeCreateCapacityProviderAssociations{constructor(scope,id,capacityProviders){this.scope=scope,this.id=id,this.capacityProviders=capacityProviders}visit(node){if(node instanceof Cluster&&this.capacityProviders.length>0&&!this.resource){const resource=new ecs_generated_1.CfnClusterCapacityProviderAssociations(this.scope,this.id,{cluster:node.clusterName,defaultCapacityProviderStrategy:[],capacityProviders:core_1.Lazy.list({produce:()=>this.capacityProviders})});this.resource=resource}}}function isBottleRocketImage(image){return image instanceof amis_1.BottleRocketImage}
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.AsgCapacityProvider=exports.ExecuteCommandLogging=exports.Cluster=exports.MachineImageType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),autoscaling=require("../../aws-autoscaling"),cloudwatch=require("../../aws-cloudwatch"),ec2=require("../../aws-ec2"),iam=require("../../aws-iam"),cloudmap=require("../../aws-servicediscovery"),core_1=require("../../core"),constructs_1=require("constructs"),amis_1=require("./amis"),instance_drain_hook_1=require("./drain-hook/instance-drain-hook"),ecs_canned_metrics_generated_1=require("./ecs-canned-metrics.generated"),ecs_generated_1=require("./ecs.generated");var MachineImageType;(function(MachineImageType2){MachineImageType2[MachineImageType2.AMAZON_LINUX_2=0]="AMAZON_LINUX_2",MachineImageType2[MachineImageType2.BOTTLEROCKET=1]="BOTTLEROCKET"})(MachineImageType=exports.MachineImageType||(exports.MachineImageType={}));class Cluster extends core_1.Resource{constructor(scope,id,props={}){super(scope,id,{physicalName:props.clusterName}),this.connections=new ec2.Connections,this._capacityProviderNames=[],this._hasEc2Capacity=!1;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ClusterProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Cluster),error}let clusterSettings;if(props.containerInsights!==void 0&&(clusterSettings=[{name:"containerInsights",value:props.containerInsights?ContainerInsights.ENABLED:ContainerInsights.DISABLED}]),this._capacityProviderNames=props.capacityProviders??[],props.enableFargateCapacityProviders&&this.enableFargateCapacityProviders(),props.executeCommandConfiguration){if(props.executeCommandConfiguration.logging===ExecuteCommandLogging.OVERRIDE!=(props.executeCommandConfiguration.logConfiguration!==void 0))throw new Error("Execute command log configuration must only be specified when logging is OVERRIDE.");this._executeCommandConfiguration=props.executeCommandConfiguration}const cluster=new ecs_generated_1.CfnCluster(this,"Resource",{clusterName:this.physicalName,clusterSettings,configuration:this._executeCommandConfiguration&&this.renderExecuteCommandConfiguration()});this.clusterArn=this.getResourceArnAttribute(cluster.attrArn,{service:"ecs",resource:"cluster",resourceName:this.physicalName}),this.clusterName=this.getResourceNameAttribute(cluster.ref),this.vpc=props.vpc||new ec2.Vpc(this,"Vpc",{maxAzs:2}),this._defaultCloudMapNamespace=props.defaultCloudMapNamespace!==void 0?this.addDefaultCloudMapNamespace(props.defaultCloudMapNamespace):void 0,this._autoscalingGroup=props.capacity!==void 0?this.addCapacity("DefaultAutoScalingGroup",props.capacity):void 0,core_1.Aspects.of(this).add(new MaybeCreateCapacityProviderAssociations(this,id,this._capacityProviderNames))}static fromClusterAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ClusterAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromClusterAttributes),error}return new ImportedCluster(scope,id,attrs)}static fromClusterArn(scope,id,clusterArn){const clusterName=core_1.Stack.of(scope).splitArn(clusterArn,core_1.ArnFormat.SLASH_RESOURCE_NAME).resourceName;if(!clusterName)throw new Error(`Missing required Cluster Name from Cluster ARN: ${clusterArn}`);const errorSuffix="is not available for a Cluster imported using fromClusterArn(), please use fromClusterAttributes() instead.";class Import extends core_1.Resource{constructor(){super(...arguments),this.clusterArn=clusterArn,this.clusterName=clusterName}get hasEc2Capacity(){throw new Error(`hasEc2Capacity ${errorSuffix}`)}get connections(){throw new Error(`connections ${errorSuffix}`)}get vpc(){throw new Error(`vpc ${errorSuffix}`)}}return new Import(scope,id,{environmentFromArn:clusterArn})}enableFargateCapacityProviders(){for(const provider of["FARGATE","FARGATE_SPOT"])this._capacityProviderNames.includes(provider)||this._capacityProviderNames.push(provider)}renderExecuteCommandConfiguration(){return{executeCommandConfiguration:{kmsKeyId:this._executeCommandConfiguration?.kmsKey?.keyArn,logConfiguration:this._executeCommandConfiguration?.logConfiguration&&this.renderExecuteCommandLogConfiguration(),logging:this._executeCommandConfiguration?.logging}}}renderExecuteCommandLogConfiguration(){const logConfiguration=this._executeCommandConfiguration?.logConfiguration;if(logConfiguration?.s3EncryptionEnabled&&!logConfiguration?.s3Bucket)throw new Error("You must specify an S3 bucket name in the execute command log configuration to enable S3 encryption.");if(logConfiguration?.cloudWatchEncryptionEnabled&&!logConfiguration?.cloudWatchLogGroup)throw new Error("You must specify a CloudWatch log group in the execute command log configuration to enable CloudWatch encryption.");return{cloudWatchEncryptionEnabled:logConfiguration?.cloudWatchEncryptionEnabled,cloudWatchLogGroupName:logConfiguration?.cloudWatchLogGroup?.logGroupName,s3BucketName:logConfiguration?.s3Bucket?.bucketName,s3EncryptionEnabled:logConfiguration?.s3EncryptionEnabled,s3KeyPrefix:logConfiguration?.s3KeyPrefix}}addDefaultCloudMapNamespace(options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_CloudMapNamespaceOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addDefaultCloudMapNamespace),error}if(this._defaultCloudMapNamespace!==void 0)throw new Error("Can only add default namespace once.");const sdNamespace=(options.type!==void 0?options.type:cloudmap.NamespaceType.DNS_PRIVATE)===cloudmap.NamespaceType.DNS_PRIVATE?new cloudmap.PrivateDnsNamespace(this,"DefaultServiceDiscoveryNamespace",{name:options.name,vpc:this.vpc}):new cloudmap.PublicDnsNamespace(this,"DefaultServiceDiscoveryNamespace",{name:options.name});return this._defaultCloudMapNamespace=sdNamespace,sdNamespace}get defaultCloudMapNamespace(){return this._defaultCloudMapNamespace}addCapacity(id,options){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AddCapacityOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addCapacity),error}const machineImage=options.machineImage??(options.machineImageType===MachineImageType.BOTTLEROCKET?new amis_1.BottleRocketImage({architecture:options.instanceType.architecture}):new amis_1.EcsOptimizedAmi),machineImageType=options.machineImageType??(isBottleRocketImage(machineImage)?MachineImageType.BOTTLEROCKET:MachineImageType.AMAZON_LINUX_2),autoScalingGroup=new autoscaling.AutoScalingGroup(this,id,{vpc:this.vpc,machineImage,updateType:options.updateType||autoscaling.UpdateType.REPLACING_UPDATE,...options});return this.addAutoScalingGroup(autoScalingGroup,{machineImageType,...options}),autoScalingGroup}addAsgCapacityProvider(provider,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AsgCapacityProvider(provider),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AddAutoScalingGroupCapacityOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addAsgCapacityProvider),error}this._capacityProviderNames.includes(provider.capacityProviderName)||(this._hasEc2Capacity=!0,this.configureAutoScalingGroup(provider.autoScalingGroup,{...options,machineImageType:provider.machineImageType,taskDrainTime:provider.enableManagedTerminationProtection?core_1.Duration.seconds(0):options.taskDrainTime,canContainersAccessInstanceRole:options.canContainersAccessInstanceRole??provider.canContainersAccessInstanceRole}),this._capacityProviderNames.push(provider.capacityProviderName))}addAutoScalingGroup(autoScalingGroup,options={}){this._hasEc2Capacity=!0,this.connections.connections.addSecurityGroup(...autoScalingGroup.connections.securityGroups),this.configureAutoScalingGroup(autoScalingGroup,options)}configureAutoScalingGroup(autoScalingGroup,options={}){if(autoScalingGroup.osType===ec2.OperatingSystemType.WINDOWS)this.configureWindowsAutoScalingGroup(autoScalingGroup,options);else switch(options.machineImageType){case MachineImageType.BOTTLEROCKET:{autoScalingGroup.addUserData("[settings.ecs]",`cluster = "${this.clusterName}"`),autoScalingGroup.role.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonSSMManagedInstanceCore")),autoScalingGroup.role.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName("service-role/AmazonEC2ContainerServiceforEC2Role"));break}default:autoScalingGroup.addUserData(`echo ECS_CLUSTER=${this.clusterName} >> /etc/ecs/ecs.config`),options.canContainersAccessInstanceRole||(autoScalingGroup.addUserData("sudo iptables --insert FORWARD 1 --in-interface docker+ --destination 169.254.169.254/32 --jump DROP"),autoScalingGroup.addUserData("sudo service iptables save"),autoScalingGroup.addUserData("echo ECS_AWSVPC_BLOCK_IMDS=true >> /etc/ecs/ecs.config")),autoScalingGroup.spotPrice&&options.spotInstanceDraining&&autoScalingGroup.addUserData("echo ECS_ENABLE_SPOT_INSTANCE_DRAINING=true >> /etc/ecs/ecs.config")}autoScalingGroup.addToRolePolicy(new iam.PolicyStatement({actions:["ecs:DeregisterContainerInstance","ecs:RegisterContainerInstance","ecs:Submit*"],resources:[this.clusterArn]})),autoScalingGroup.addToRolePolicy(new iam.PolicyStatement({actions:["ecs:Poll","ecs:StartTelemetrySession"],resources:["*"],conditions:{ArnEquals:{"ecs:cluster":this.clusterArn}}})),autoScalingGroup.addToRolePolicy(new iam.PolicyStatement({actions:["ecs:DiscoverPollEndpoint","ecr:GetAuthorizationToken","logs:CreateLogStream","logs:PutLogEvents"],resources:["*"]})),(!options.taskDrainTime||options.taskDrainTime.toSeconds()!==0)&&new instance_drain_hook_1.InstanceDrainHook(autoScalingGroup,"DrainECSHook",{autoScalingGroup,cluster:this,drainTime:options.taskDrainTime,topicEncryptionKey:options.topicEncryptionKey})}addCapacityProvider(provider){if(!(provider==="FARGATE"||provider==="FARGATE_SPOT"))throw new Error("CapacityProvider not supported");this._capacityProviderNames.includes(provider)||this._capacityProviderNames.push(provider)}configureWindowsAutoScalingGroup(autoScalingGroup,options={}){autoScalingGroup.addUserData("Remove-Item -Recurse C:\\ProgramData\\Amazon\\ECS\\Cache"),autoScalingGroup.addUserData("Import-Module ECSTools"),autoScalingGroup.addUserData(`[Environment]::SetEnvironmentVariable("ECS_CLUSTER", "${this.clusterName}", "Machine")`),autoScalingGroup.addUserData('[Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", "true", "Machine")'),autoScalingGroup.addUserData(`[Environment]::SetEnvironmentVariable("ECS_AVAILABLE_LOGGING_DRIVERS", '["json-file","awslogs"]', "Machine")`),autoScalingGroup.spotPrice&&options.spotInstanceDraining&&autoScalingGroup.addUserData('[Environment]::SetEnvironmentVariable("ECS_ENABLE_SPOT_INSTANCE_DRAINING", "true", "Machine")'),options.canContainersAccessInstanceRole?autoScalingGroup.addUserData(`Initialize-ECSAgent -Cluster '${this.clusterName}'`):(autoScalingGroup.addUserData('[Environment]::SetEnvironmentVariable("ECS_ENABLE_TASK_IAM_ROLE", "true", "Machine")'),autoScalingGroup.addUserData(`Initialize-ECSAgent -Cluster '${this.clusterName}' -EnableTaskIAMRole`))}get autoscalingGroup(){return this._autoscalingGroup}get hasEc2Capacity(){return this._hasEc2Capacity}get executeCommandConfiguration(){return this._executeCommandConfiguration}metricCpuReservation(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.metricCpuReservation),error}return this.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.cpuReservationAverage,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.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.cpuUtilizationAverage,props)}metricMemoryReservation(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.metricMemoryReservation),error}return this.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.memoryReservationAverage,props)}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.cannedMetric(ecs_canned_metrics_generated_1.ECSMetrics.memoryUtilizationAverage,props)}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.clusterName},...props}).attachTo(this)}cannedMetric(fn,props){return new cloudwatch.Metric({...fn({ClusterName:this.clusterName}),...props}).attachTo(this)}}exports.Cluster=Cluster,_a=JSII_RTTI_SYMBOL_1,Cluster[_a]={fqn:"aws-cdk-lib.aws_ecs.Cluster",version:"2.31.2"};class ImportedCluster extends core_1.Resource{constructor(scope,id,props){super(scope,id),this.connections=new ec2.Connections,this.clusterName=props.clusterName,this.vpc=props.vpc,this.hasEc2Capacity=props.hasEc2Capacity!==!1,this._defaultCloudMapNamespace=props.defaultCloudMapNamespace,this._executeCommandConfiguration=props.executeCommandConfiguration,this.clusterArn=props.clusterArn??core_1.Stack.of(this).formatArn({service:"ecs",resource:"cluster",resourceName:props.clusterName}),this.connections=new ec2.Connections({securityGroups:props.securityGroups})}get defaultCloudMapNamespace(){return this._defaultCloudMapNamespace}get executeCommandConfiguration(){return this._executeCommandConfiguration}}var ContainerInsights;(function(ContainerInsights2){ContainerInsights2.ENABLED="enabled",ContainerInsights2.DISABLED="disabled"})(ContainerInsights||(ContainerInsights={}));var ExecuteCommandLogging;(function(ExecuteCommandLogging2){ExecuteCommandLogging2.NONE="NONE",ExecuteCommandLogging2.DEFAULT="DEFAULT",ExecuteCommandLogging2.OVERRIDE="OVERRIDE"})(ExecuteCommandLogging=exports.ExecuteCommandLogging||(exports.ExecuteCommandLogging={}));class AsgCapacityProvider extends constructs_1.Construct{constructor(scope,id,props){super(scope,id);try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AsgCapacityProviderProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,AsgCapacityProvider),error}if(this.autoScalingGroup=props.autoScalingGroup,this.machineImageType=props.machineImageType??MachineImageType.AMAZON_LINUX_2,this.canContainersAccessInstanceRole=props.canContainersAccessInstanceRole,this.enableManagedTerminationProtection=props.enableManagedTerminationProtection===void 0?!0:props.enableManagedTerminationProtection,this.enableManagedTerminationProtection&&this.autoScalingGroup.protectNewInstancesFromScaleIn(),props.capacityProviderName&&!/^(?!aws|ecs|fargate).+/gm.test(props.capacityProviderName))throw new Error(`Invalid Capacity Provider Name: ${props.capacityProviderName}, If a name is specified, it cannot start with aws, ecs, or fargate.`);const capacityProvider=new ecs_generated_1.CfnCapacityProvider(this,id,{name:props.capacityProviderName,autoScalingGroupProvider:{autoScalingGroupArn:this.autoScalingGroup.autoScalingGroupName,managedScaling:props.enableManagedScaling===!1?void 0:{status:"ENABLED",targetCapacity:props.targetCapacityPercent||100,maximumScalingStepSize:props.maximumScalingStepSize,minimumScalingStepSize:props.minimumScalingStepSize},managedTerminationProtection:this.enableManagedTerminationProtection?"ENABLED":"DISABLED"}});this.capacityProviderName=capacityProvider.ref}}exports.AsgCapacityProvider=AsgCapacityProvider,_b=JSII_RTTI_SYMBOL_1,AsgCapacityProvider[_b]={fqn:"aws-cdk-lib.aws_ecs.AsgCapacityProvider",version:"2.31.2"};class MaybeCreateCapacityProviderAssociations{constructor(scope,id,capacityProviders){this.scope=scope,this.id=id,this.capacityProviders=capacityProviders}visit(node){if(node instanceof Cluster&&this.capacityProviders.length>0&&!this.resource){const resource=new ecs_generated_1.CfnClusterCapacityProviderAssociations(this.scope,this.id,{cluster:node.clusterName,defaultCapacityProviderStrategy:[],capacityProviders:core_1.Lazy.list({produce:()=>this.capacityProviders})});this.resource=resource}}}function isBottleRocketImage(image){return image instanceof amis_1.BottleRocketImage}
2
2
  //# sourceMappingURL=cluster.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Protocol=exports.ContainerDependencyCondition=exports.UlimitName=exports.ContainerDefinition=exports.Secret=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),constructs_1=require("constructs"),task_definition_1=require("./base/task-definition");class Secret{static fromSsmParameter(parameter){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ssm_IParameter(parameter)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSsmParameter),error}return{arn:parameter.parameterArn,grantRead:grantee=>parameter.grantRead(grantee)}}static fromSecretsManager(secret,field){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_secretsmanager_ISecret(secret)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSecretsManager),error}return{arn:field?`${secret.secretArn}:${field}::`:secret.secretArn,hasField:!!field,grantRead:grantee=>secret.grantRead(grantee)}}static fromSecretsManagerVersion(secret,versionInfo,field){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_secretsmanager_ISecret(secret),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_SecretVersionInfo(versionInfo)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSecretsManagerVersion),error}return{arn:`${secret.secretArn}:${field??""}:${versionInfo.versionStage??""}:${versionInfo.versionId??""}`,hasField:!!field,grantRead:grantee=>secret.grantRead(grantee)}}}exports.Secret=Secret,_a=JSII_RTTI_SYMBOL_1,Secret[_a]={fqn:"aws-cdk-lib.aws_ecs.Secret",version:"2.31.1"};class ContainerDefinition extends constructs_1.Construct{constructor(scope,id,props){super(scope,id),this.props=props,this.mountPoints=new Array,this.portMappings=new Array,this.volumesFrom=new Array,this.ulimits=new Array,this.containerDependencies=new Array,this.inferenceAcceleratorResources=[],this.links=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ContainerDefinition),error}if(props.memoryLimitMiB!==void 0&&props.memoryReservationMiB!==void 0&&props.memoryLimitMiB<props.memoryReservationMiB)throw new Error("MemoryLimitMiB should not be less than MemoryReservationMiB.");if(this.essential=props.essential??!0,this.taskDefinition=props.taskDefinition,this.memoryLimitSpecified=props.memoryLimitMiB!==void 0||props.memoryReservationMiB!==void 0,this.linuxParameters=props.linuxParameters,this.containerName=props.containerName??this.node.id,this.imageConfig=props.image.bind(this,this),this.imageName=this.imageConfig.imageName,props.logging&&(this.logDriverConfig=props.logging.bind(this,this)),props.secrets){this.secrets=[];for(const[name,secret]of Object.entries(props.secrets))secret.hasField&&(this.referencesSecretJsonField=!0),secret.grantRead(this.taskDefinition.obtainExecutionRole()),this.secrets.push({name,valueFrom:secret.arn})}if(props.environment?this.environment={...props.environment}:this.environment={},props.environmentFiles){this.environmentFiles=[];for(const environmentFile of props.environmentFiles)this.environmentFiles.push(environmentFile.bind(this))}props.taskDefinition._linkContainer(this),props.portMappings&&this.addPortMappings(...props.portMappings),props.inferenceAcceleratorResources&&this.addInferenceAcceleratorResource(...props.inferenceAcceleratorResources)}addLink(container,alias){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDefinition(container)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addLink),error}if(this.taskDefinition.networkMode!==task_definition_1.NetworkMode.BRIDGE)throw new Error("You must use network mode Bridge to add container links.");alias!==void 0?this.links.push(`${container.containerName}:${alias}`):this.links.push(`${container.containerName}`)}addMountPoints(...mountPoints){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_MountPoint(mountPoints)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addMountPoints),error}this.mountPoints.push(...mountPoints)}addScratch(scratch){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ScratchSpace(scratch)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addScratch),error}const mountPoint={containerPath:scratch.containerPath,readOnly:scratch.readOnly,sourceVolume:scratch.name},volume={host:{sourcePath:scratch.sourcePath},name:scratch.name};this.taskDefinition.addVolume(volume),this.addMountPoints(mountPoint)}addPortMappings(...portMappings){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PortMapping(portMappings)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPortMappings),error}this.portMappings.push(...portMappings.map(pm=>{if((this.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC||this.taskDefinition.networkMode===task_definition_1.NetworkMode.HOST)&&pm.containerPort!==pm.hostPort&&pm.hostPort!==void 0)throw new Error(`Host port (${pm.hostPort}) must be left out or equal to container port ${pm.containerPort} for network mode ${this.taskDefinition.networkMode}`);return this.taskDefinition.networkMode===task_definition_1.NetworkMode.BRIDGE&&pm.hostPort===void 0&&(pm={...pm,hostPort:0}),pm}))}addEnvironment(name,value){this.environment[name]=value}addInferenceAcceleratorResource(...inferenceAcceleratorResources){this.inferenceAcceleratorResources.push(...inferenceAcceleratorResources.map(resource=>{for(const inferenceAccelerator of this.taskDefinition.inferenceAccelerators)if(resource===inferenceAccelerator.deviceName)return resource;throw new Error(`Resource value ${resource} in container definition doesn't match any inference accelerator device name in the task definition.`)}))}addUlimits(...ulimits){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ulimit(ulimits)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addUlimits),error}this.ulimits.push(...ulimits)}addContainerDependencies(...containerDependencies){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDependency(containerDependencies)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addContainerDependencies),error}this.containerDependencies.push(...containerDependencies)}addVolumesFrom(...volumesFrom){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_VolumeFrom(volumesFrom)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addVolumesFrom),error}this.volumesFrom.push(...volumesFrom)}addToExecutionPolicy(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.addToExecutionPolicy),error}this.taskDefinition.addToExecutionRolePolicy(statement)}findPortMapping(containerPort,protocol){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Protocol(protocol)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.findPortMapping),error}for(const portMapping of this.portMappings){const p=portMapping.protocol||Protocol.TCP;if(portMapping.containerPort===containerPort&&p===protocol)return portMapping}}get ingressPort(){if(this.portMappings.length===0)throw new Error(`Container ${this.containerName} hasn't defined any ports. Call addPortMappings().`);const defaultPortMapping=this.portMappings[0];return defaultPortMapping.hostPort!==void 0&&defaultPortMapping.hostPort!==0?defaultPortMapping.hostPort:this.taskDefinition.networkMode===task_definition_1.NetworkMode.BRIDGE?0:defaultPortMapping.containerPort}get containerPort(){if(this.portMappings.length===0)throw new Error(`Container ${this.containerName} hasn't defined any ports. Call addPortMappings().`);return this.portMappings[0].containerPort}renderContainerDefinition(_taskDefinition){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinition(_taskDefinition)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.renderContainerDefinition),error}return{command:this.props.command,cpu:this.props.cpu,disableNetworking:this.props.disableNetworking,dependsOn:cdk.Lazy.any({produce:()=>this.containerDependencies.map(renderContainerDependency)},{omitEmptyArray:!0}),dnsSearchDomains:this.props.dnsSearchDomains,dnsServers:this.props.dnsServers,dockerLabels:this.props.dockerLabels,dockerSecurityOptions:this.props.dockerSecurityOptions,entryPoint:this.props.entryPoint,essential:this.essential,hostname:this.props.hostname,image:this.imageConfig.imageName,memory:this.props.memoryLimitMiB,memoryReservation:this.props.memoryReservationMiB,mountPoints:cdk.Lazy.any({produce:()=>this.mountPoints.map(renderMountPoint)},{omitEmptyArray:!0}),name:this.containerName,portMappings:cdk.Lazy.any({produce:()=>this.portMappings.map(renderPortMapping)},{omitEmptyArray:!0}),privileged:this.props.privileged,readonlyRootFilesystem:this.props.readonlyRootFilesystem,repositoryCredentials:this.imageConfig.repositoryCredentials,startTimeout:this.props.startTimeout&&this.props.startTimeout.toSeconds(),stopTimeout:this.props.stopTimeout&&this.props.stopTimeout.toSeconds(),ulimits:cdk.Lazy.any({produce:()=>this.ulimits.map(renderUlimit)},{omitEmptyArray:!0}),user:this.props.user,volumesFrom:cdk.Lazy.any({produce:()=>this.volumesFrom.map(renderVolumeFrom)},{omitEmptyArray:!0}),workingDirectory:this.props.workingDirectory,logConfiguration:this.logDriverConfig,environment:this.environment&&Object.keys(this.environment).length?renderKV(this.environment,"name","value"):void 0,environmentFiles:this.environmentFiles&&renderEnvironmentFiles(cdk.Stack.of(this).partition,this.environmentFiles),secrets:this.secrets,extraHosts:this.props.extraHosts&&renderKV(this.props.extraHosts,"hostname","ipAddress"),healthCheck:this.props.healthCheck&&renderHealthCheck(this.props.healthCheck),links:cdk.Lazy.list({produce:()=>this.links},{omitEmpty:!0}),linuxParameters:this.linuxParameters&&this.linuxParameters.renderLinuxParameters(),resourceRequirements:!this.props.gpuCount&&this.inferenceAcceleratorResources.length==0?void 0:renderResourceRequirements(this.props.gpuCount,this.inferenceAcceleratorResources),systemControls:this.props.systemControls&&renderSystemControls(this.props.systemControls)}}}exports.ContainerDefinition=ContainerDefinition,_b=JSII_RTTI_SYMBOL_1,ContainerDefinition[_b]={fqn:"aws-cdk-lib.aws_ecs.ContainerDefinition",version:"2.31.1"};function renderKV(env,keyName,valueName){const ret=[];for(const[key,value]of Object.entries(env))ret.push({[keyName]:key,[valueName]:value});return ret}function renderEnvironmentFiles(partition,environmentFiles){const ret=[];for(const environmentFile of environmentFiles){const s3Location=environmentFile.s3Location;if(!s3Location)throw Error("Environment file must specify an S3 location");ret.push({type:environmentFile.fileType,value:`arn:${partition}:s3:::${s3Location.bucketName}/${s3Location.objectKey}`})}return ret}function renderHealthCheck(hc){return{command:getHealthCheckCommand(hc),interval:hc.interval?.toSeconds()??30,retries:hc.retries??3,startPeriod:hc.startPeriod?.toSeconds(),timeout:hc.timeout?.toSeconds()??5}}function getHealthCheckCommand(hc){const cmd=hc.command,hcCommand=new Array;if(cmd.length===0)throw new Error("At least one argument must be supplied for health check command.");return cmd.length===1?(hcCommand.push("CMD-SHELL",cmd[0]),hcCommand):(cmd[0]!=="CMD"&&cmd[0]!=="CMD-SHELL"&&hcCommand.push("CMD"),hcCommand.concat(cmd))}function renderResourceRequirements(gpuCount=0,inferenceAcceleratorResources=[]){const ret=[];for(const resource of inferenceAcceleratorResources)ret.push({type:"InferenceAccelerator",value:resource});return gpuCount>0&&ret.push({type:"GPU",value:gpuCount.toString()}),ret}var UlimitName;(function(UlimitName2){UlimitName2.CORE="core",UlimitName2.CPU="cpu",UlimitName2.DATA="data",UlimitName2.FSIZE="fsize",UlimitName2.LOCKS="locks",UlimitName2.MEMLOCK="memlock",UlimitName2.MSGQUEUE="msgqueue",UlimitName2.NICE="nice",UlimitName2.NOFILE="nofile",UlimitName2.NPROC="nproc",UlimitName2.RSS="rss",UlimitName2.RTPRIO="rtprio",UlimitName2.RTTIME="rttime",UlimitName2.SIGPENDING="sigpending",UlimitName2.STACK="stack"})(UlimitName=exports.UlimitName||(exports.UlimitName={}));function renderUlimit(ulimit){return{name:ulimit.name,softLimit:ulimit.softLimit,hardLimit:ulimit.hardLimit}}var ContainerDependencyCondition;(function(ContainerDependencyCondition2){ContainerDependencyCondition2.START="START",ContainerDependencyCondition2.COMPLETE="COMPLETE",ContainerDependencyCondition2.SUCCESS="SUCCESS",ContainerDependencyCondition2.HEALTHY="HEALTHY"})(ContainerDependencyCondition=exports.ContainerDependencyCondition||(exports.ContainerDependencyCondition={}));function renderContainerDependency(containerDependency){return{containerName:containerDependency.container.containerName,condition:containerDependency.condition||ContainerDependencyCondition.HEALTHY}}var Protocol;(function(Protocol2){Protocol2.TCP="tcp",Protocol2.UDP="udp"})(Protocol=exports.Protocol||(exports.Protocol={}));function renderPortMapping(pm){return{containerPort:pm.containerPort,hostPort:pm.hostPort,protocol:pm.protocol||Protocol.TCP}}function renderMountPoint(mp){return{containerPath:mp.containerPath,readOnly:mp.readOnly,sourceVolume:mp.sourceVolume}}function renderVolumeFrom(vf){return{sourceContainer:vf.sourceContainer,readOnly:vf.readOnly}}function renderSystemControls(systemControls){return systemControls.map(sc=>({namespace:sc.namespace,value:sc.value}))}
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Protocol=exports.ContainerDependencyCondition=exports.UlimitName=exports.ContainerDefinition=exports.Secret=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),constructs_1=require("constructs"),task_definition_1=require("./base/task-definition");class Secret{static fromSsmParameter(parameter){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ssm_IParameter(parameter)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSsmParameter),error}return{arn:parameter.parameterArn,grantRead:grantee=>parameter.grantRead(grantee)}}static fromSecretsManager(secret,field){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_secretsmanager_ISecret(secret)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSecretsManager),error}return{arn:field?`${secret.secretArn}:${field}::`:secret.secretArn,hasField:!!field,grantRead:grantee=>secret.grantRead(grantee)}}static fromSecretsManagerVersion(secret,versionInfo,field){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_secretsmanager_ISecret(secret),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_SecretVersionInfo(versionInfo)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromSecretsManagerVersion),error}return{arn:`${secret.secretArn}:${field??""}:${versionInfo.versionStage??""}:${versionInfo.versionId??""}`,hasField:!!field,grantRead:grantee=>secret.grantRead(grantee)}}}exports.Secret=Secret,_a=JSII_RTTI_SYMBOL_1,Secret[_a]={fqn:"aws-cdk-lib.aws_ecs.Secret",version:"2.31.2"};class ContainerDefinition extends constructs_1.Construct{constructor(scope,id,props){super(scope,id),this.props=props,this.mountPoints=new Array,this.portMappings=new Array,this.volumesFrom=new Array,this.ulimits=new Array,this.containerDependencies=new Array,this.inferenceAcceleratorResources=[],this.links=new Array;try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,ContainerDefinition),error}if(props.memoryLimitMiB!==void 0&&props.memoryReservationMiB!==void 0&&props.memoryLimitMiB<props.memoryReservationMiB)throw new Error("MemoryLimitMiB should not be less than MemoryReservationMiB.");if(this.essential=props.essential??!0,this.taskDefinition=props.taskDefinition,this.memoryLimitSpecified=props.memoryLimitMiB!==void 0||props.memoryReservationMiB!==void 0,this.linuxParameters=props.linuxParameters,this.containerName=props.containerName??this.node.id,this.imageConfig=props.image.bind(this,this),this.imageName=this.imageConfig.imageName,props.logging&&(this.logDriverConfig=props.logging.bind(this,this)),props.secrets){this.secrets=[];for(const[name,secret]of Object.entries(props.secrets))secret.hasField&&(this.referencesSecretJsonField=!0),secret.grantRead(this.taskDefinition.obtainExecutionRole()),this.secrets.push({name,valueFrom:secret.arn})}if(props.environment?this.environment={...props.environment}:this.environment={},props.environmentFiles){this.environmentFiles=[];for(const environmentFile of props.environmentFiles)this.environmentFiles.push(environmentFile.bind(this))}props.taskDefinition._linkContainer(this),props.portMappings&&this.addPortMappings(...props.portMappings),props.inferenceAcceleratorResources&&this.addInferenceAcceleratorResource(...props.inferenceAcceleratorResources)}addLink(container,alias){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDefinition(container)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addLink),error}if(this.taskDefinition.networkMode!==task_definition_1.NetworkMode.BRIDGE)throw new Error("You must use network mode Bridge to add container links.");alias!==void 0?this.links.push(`${container.containerName}:${alias}`):this.links.push(`${container.containerName}`)}addMountPoints(...mountPoints){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_MountPoint(mountPoints)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addMountPoints),error}this.mountPoints.push(...mountPoints)}addScratch(scratch){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ScratchSpace(scratch)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addScratch),error}const mountPoint={containerPath:scratch.containerPath,readOnly:scratch.readOnly,sourceVolume:scratch.name},volume={host:{sourcePath:scratch.sourcePath},name:scratch.name};this.taskDefinition.addVolume(volume),this.addMountPoints(mountPoint)}addPortMappings(...portMappings){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PortMapping(portMappings)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPortMappings),error}this.portMappings.push(...portMappings.map(pm=>{if((this.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC||this.taskDefinition.networkMode===task_definition_1.NetworkMode.HOST)&&pm.containerPort!==pm.hostPort&&pm.hostPort!==void 0)throw new Error(`Host port (${pm.hostPort}) must be left out or equal to container port ${pm.containerPort} for network mode ${this.taskDefinition.networkMode}`);return this.taskDefinition.networkMode===task_definition_1.NetworkMode.BRIDGE&&pm.hostPort===void 0&&(pm={...pm,hostPort:0}),pm}))}addEnvironment(name,value){this.environment[name]=value}addInferenceAcceleratorResource(...inferenceAcceleratorResources){this.inferenceAcceleratorResources.push(...inferenceAcceleratorResources.map(resource=>{for(const inferenceAccelerator of this.taskDefinition.inferenceAccelerators)if(resource===inferenceAccelerator.deviceName)return resource;throw new Error(`Resource value ${resource} in container definition doesn't match any inference accelerator device name in the task definition.`)}))}addUlimits(...ulimits){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ulimit(ulimits)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addUlimits),error}this.ulimits.push(...ulimits)}addContainerDependencies(...containerDependencies){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_ContainerDependency(containerDependencies)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addContainerDependencies),error}this.containerDependencies.push(...containerDependencies)}addVolumesFrom(...volumesFrom){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_VolumeFrom(volumesFrom)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addVolumesFrom),error}this.volumesFrom.push(...volumesFrom)}addToExecutionPolicy(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.addToExecutionPolicy),error}this.taskDefinition.addToExecutionRolePolicy(statement)}findPortMapping(containerPort,protocol){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Protocol(protocol)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.findPortMapping),error}for(const portMapping of this.portMappings){const p=portMapping.protocol||Protocol.TCP;if(portMapping.containerPort===containerPort&&p===protocol)return portMapping}}get ingressPort(){if(this.portMappings.length===0)throw new Error(`Container ${this.containerName} hasn't defined any ports. Call addPortMappings().`);const defaultPortMapping=this.portMappings[0];return defaultPortMapping.hostPort!==void 0&&defaultPortMapping.hostPort!==0?defaultPortMapping.hostPort:this.taskDefinition.networkMode===task_definition_1.NetworkMode.BRIDGE?0:defaultPortMapping.containerPort}get containerPort(){if(this.portMappings.length===0)throw new Error(`Container ${this.containerName} hasn't defined any ports. Call addPortMappings().`);return this.portMappings[0].containerPort}renderContainerDefinition(_taskDefinition){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_TaskDefinition(_taskDefinition)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.renderContainerDefinition),error}return{command:this.props.command,cpu:this.props.cpu,disableNetworking:this.props.disableNetworking,dependsOn:cdk.Lazy.any({produce:()=>this.containerDependencies.map(renderContainerDependency)},{omitEmptyArray:!0}),dnsSearchDomains:this.props.dnsSearchDomains,dnsServers:this.props.dnsServers,dockerLabels:this.props.dockerLabels,dockerSecurityOptions:this.props.dockerSecurityOptions,entryPoint:this.props.entryPoint,essential:this.essential,hostname:this.props.hostname,image:this.imageConfig.imageName,memory:this.props.memoryLimitMiB,memoryReservation:this.props.memoryReservationMiB,mountPoints:cdk.Lazy.any({produce:()=>this.mountPoints.map(renderMountPoint)},{omitEmptyArray:!0}),name:this.containerName,portMappings:cdk.Lazy.any({produce:()=>this.portMappings.map(renderPortMapping)},{omitEmptyArray:!0}),privileged:this.props.privileged,readonlyRootFilesystem:this.props.readonlyRootFilesystem,repositoryCredentials:this.imageConfig.repositoryCredentials,startTimeout:this.props.startTimeout&&this.props.startTimeout.toSeconds(),stopTimeout:this.props.stopTimeout&&this.props.stopTimeout.toSeconds(),ulimits:cdk.Lazy.any({produce:()=>this.ulimits.map(renderUlimit)},{omitEmptyArray:!0}),user:this.props.user,volumesFrom:cdk.Lazy.any({produce:()=>this.volumesFrom.map(renderVolumeFrom)},{omitEmptyArray:!0}),workingDirectory:this.props.workingDirectory,logConfiguration:this.logDriverConfig,environment:this.environment&&Object.keys(this.environment).length?renderKV(this.environment,"name","value"):void 0,environmentFiles:this.environmentFiles&&renderEnvironmentFiles(cdk.Stack.of(this).partition,this.environmentFiles),secrets:this.secrets,extraHosts:this.props.extraHosts&&renderKV(this.props.extraHosts,"hostname","ipAddress"),healthCheck:this.props.healthCheck&&renderHealthCheck(this.props.healthCheck),links:cdk.Lazy.list({produce:()=>this.links},{omitEmpty:!0}),linuxParameters:this.linuxParameters&&this.linuxParameters.renderLinuxParameters(),resourceRequirements:!this.props.gpuCount&&this.inferenceAcceleratorResources.length==0?void 0:renderResourceRequirements(this.props.gpuCount,this.inferenceAcceleratorResources),systemControls:this.props.systemControls&&renderSystemControls(this.props.systemControls)}}}exports.ContainerDefinition=ContainerDefinition,_b=JSII_RTTI_SYMBOL_1,ContainerDefinition[_b]={fqn:"aws-cdk-lib.aws_ecs.ContainerDefinition",version:"2.31.2"};function renderKV(env,keyName,valueName){const ret=[];for(const[key,value]of Object.entries(env))ret.push({[keyName]:key,[valueName]:value});return ret}function renderEnvironmentFiles(partition,environmentFiles){const ret=[];for(const environmentFile of environmentFiles){const s3Location=environmentFile.s3Location;if(!s3Location)throw Error("Environment file must specify an S3 location");ret.push({type:environmentFile.fileType,value:`arn:${partition}:s3:::${s3Location.bucketName}/${s3Location.objectKey}`})}return ret}function renderHealthCheck(hc){return{command:getHealthCheckCommand(hc),interval:hc.interval?.toSeconds()??30,retries:hc.retries??3,startPeriod:hc.startPeriod?.toSeconds(),timeout:hc.timeout?.toSeconds()??5}}function getHealthCheckCommand(hc){const cmd=hc.command,hcCommand=new Array;if(cmd.length===0)throw new Error("At least one argument must be supplied for health check command.");return cmd.length===1?(hcCommand.push("CMD-SHELL",cmd[0]),hcCommand):(cmd[0]!=="CMD"&&cmd[0]!=="CMD-SHELL"&&hcCommand.push("CMD"),hcCommand.concat(cmd))}function renderResourceRequirements(gpuCount=0,inferenceAcceleratorResources=[]){const ret=[];for(const resource of inferenceAcceleratorResources)ret.push({type:"InferenceAccelerator",value:resource});return gpuCount>0&&ret.push({type:"GPU",value:gpuCount.toString()}),ret}var UlimitName;(function(UlimitName2){UlimitName2.CORE="core",UlimitName2.CPU="cpu",UlimitName2.DATA="data",UlimitName2.FSIZE="fsize",UlimitName2.LOCKS="locks",UlimitName2.MEMLOCK="memlock",UlimitName2.MSGQUEUE="msgqueue",UlimitName2.NICE="nice",UlimitName2.NOFILE="nofile",UlimitName2.NPROC="nproc",UlimitName2.RSS="rss",UlimitName2.RTPRIO="rtprio",UlimitName2.RTTIME="rttime",UlimitName2.SIGPENDING="sigpending",UlimitName2.STACK="stack"})(UlimitName=exports.UlimitName||(exports.UlimitName={}));function renderUlimit(ulimit){return{name:ulimit.name,softLimit:ulimit.softLimit,hardLimit:ulimit.hardLimit}}var ContainerDependencyCondition;(function(ContainerDependencyCondition2){ContainerDependencyCondition2.START="START",ContainerDependencyCondition2.COMPLETE="COMPLETE",ContainerDependencyCondition2.SUCCESS="SUCCESS",ContainerDependencyCondition2.HEALTHY="HEALTHY"})(ContainerDependencyCondition=exports.ContainerDependencyCondition||(exports.ContainerDependencyCondition={}));function renderContainerDependency(containerDependency){return{containerName:containerDependency.container.containerName,condition:containerDependency.condition||ContainerDependencyCondition.HEALTHY}}var Protocol;(function(Protocol2){Protocol2.TCP="tcp",Protocol2.UDP="udp"})(Protocol=exports.Protocol||(exports.Protocol={}));function renderPortMapping(pm){return{containerPort:pm.containerPort,hostPort:pm.hostPort,protocol:pm.protocol||Protocol.TCP}}function renderMountPoint(mp){return{containerPath:mp.containerPath,readOnly:mp.readOnly,sourceVolume:mp.sourceVolume}}function renderVolumeFrom(vf){return{sourceContainer:vf.sourceContainer,readOnly:vf.readOnly}}function renderSystemControls(systemControls){return systemControls.map(sc=>({namespace:sc.namespace,value:sc.value}))}
2
2
  //# sourceMappingURL=container-definition.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.ContainerImage=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),aws_ecr_assets_1=require("../../aws-ecr-assets");class ContainerImage{static fromRegistry(name,props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_RepositoryImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromRegistry),error}return new repository_1.RepositoryImage(name,props)}static fromEcrRepository(repository,tag="latest"){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_IRepository(repository)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromEcrRepository),error}return new ecr_1.EcrImage(repository,tag)}static fromAsset(directory,props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AssetImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromAsset),error}return new asset_image_1.AssetImage(directory,props)}static fromDockerImageAsset(asset){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_assets_DockerImageAsset(asset)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromDockerImageAsset),error}return{bind(_scope,containerDefinition){return asset.repository.grantPull(containerDefinition.taskDefinition.obtainExecutionRole()),{imageName:asset.imageUri}}}}static fromTarball(tarballFile){return{bind(scope,containerDefinition){const asset=new aws_ecr_assets_1.TarballImageAsset(scope,"Tarball",{tarballFile});return asset.repository.grantPull(containerDefinition.taskDefinition.obtainExecutionRole()),{imageName:asset.imageUri}}}}}exports.ContainerImage=ContainerImage,_a=JSII_RTTI_SYMBOL_1,ContainerImage[_a]={fqn:"aws-cdk-lib.aws_ecs.ContainerImage",version:"2.31.1"};const asset_image_1=require("./images/asset-image"),ecr_1=require("./images/ecr"),repository_1=require("./images/repository");
1
+ "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.ContainerImage=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),aws_ecr_assets_1=require("../../aws-ecr-assets");class ContainerImage{static fromRegistry(name,props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_RepositoryImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromRegistry),error}return new repository_1.RepositoryImage(name,props)}static fromEcrRepository(repository,tag="latest"){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_IRepository(repository)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromEcrRepository),error}return new ecr_1.EcrImage(repository,tag)}static fromAsset(directory,props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AssetImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromAsset),error}return new asset_image_1.AssetImage(directory,props)}static fromDockerImageAsset(asset){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecr_assets_DockerImageAsset(asset)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromDockerImageAsset),error}return{bind(_scope,containerDefinition){return asset.repository.grantPull(containerDefinition.taskDefinition.obtainExecutionRole()),{imageName:asset.imageUri}}}}static fromTarball(tarballFile){return{bind(scope,containerDefinition){const asset=new aws_ecr_assets_1.TarballImageAsset(scope,"Tarball",{tarballFile});return asset.repository.grantPull(containerDefinition.taskDefinition.obtainExecutionRole()),{imageName:asset.imageUri}}}}}exports.ContainerImage=ContainerImage,_a=JSII_RTTI_SYMBOL_1,ContainerImage[_a]={fqn:"aws-cdk-lib.aws_ecs.ContainerImage",version:"2.31.2"};const asset_image_1=require("./images/asset-image"),ecr_1=require("./images/ecr"),repository_1=require("./images/repository");
2
2
  //# sourceMappingURL=container-image.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.BuiltInAttributes=exports.Ec2Service=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),ec2=require("../../../aws-ec2"),core_1=require("../../../core"),base_service_1=require("../base/base-service"),from_service_attributes_1=require("../base/from-service-attributes"),task_definition_1=require("../base/task-definition");class Ec2Service extends base_service_1.BaseService{constructor(scope,id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2ServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Ec2Service),error}if(props.daemon&&props.desiredCount!==void 0)throw new Error("Daemon mode launches one task on every instance. Don't supply desiredCount.");if(props.daemon&&props.maxHealthyPercent!==void 0&&props.maxHealthyPercent!==100)throw new Error("Maximum percent must be 100 for daemon mode.");if(props.minHealthyPercent!==void 0&&props.maxHealthyPercent!==void 0&&props.minHealthyPercent>=props.maxHealthyPercent)throw new Error("Minimum healthy percent must be less than maximum healthy percent.");if(!props.taskDefinition.isEc2Compatible)throw new Error("Supplied TaskDefinition is not configured for compatibility with EC2");if(props.securityGroup!==void 0&&props.securityGroups!==void 0)throw new Error("Only one of SecurityGroup or SecurityGroups can be populated.");super(scope,id,{...props,desiredCount:props.desiredCount,maxHealthyPercent:props.daemon&&props.maxHealthyPercent===void 0?100:props.maxHealthyPercent,minHealthyPercent:props.daemon&&props.minHealthyPercent===void 0?0:props.minHealthyPercent,launchType:base_service_1.LaunchType.EC2,enableECSManagedTags:props.enableECSManagedTags},{cluster:props.cluster.clusterName,taskDefinition:props.deploymentController?.type===base_service_1.DeploymentControllerType.EXTERNAL?void 0:props.taskDefinition.taskDefinitionArn,placementConstraints:core_1.Lazy.any({produce:()=>this.constraints},{omitEmptyArray:!0}),placementStrategies:core_1.Lazy.any({produce:()=>this.strategies},{omitEmptyArray:!0}),schedulingStrategy:props.daemon?"DAEMON":"REPLICA"},props.taskDefinition),this.constraints=[],this.strategies=[],this.daemon=props.daemon||!1;let securityGroups;props.securityGroup!==void 0?securityGroups=[props.securityGroup]:props.securityGroups!==void 0&&(securityGroups=props.securityGroups),props.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC?this.configureAwsVpcNetworkingWithSecurityGroups(props.cluster.vpc,props.assignPublicIp,props.vpcSubnets,securityGroups):(validateNoNetworkingProps(props),this.connections.addSecurityGroup(...securityGroupsInThisStack(this,props.cluster.connections.securityGroups))),this.addPlacementConstraints(...props.placementConstraints||[]),this.addPlacementStrategies(...props.placementStrategies||[]),this.node.addValidation({validate:()=>this.taskDefinition.defaultContainer?[]:["A TaskDefinition must have at least one essential container"]}),this.node.addValidation({validate:this.validateEc2Service.bind(this)})}static fromEc2ServiceArn(scope,id,ec2ServiceArn){class Import extends core_1.Resource{constructor(){super(...arguments),this.serviceArn=ec2ServiceArn,this.serviceName=core_1.Stack.of(scope).splitArn(ec2ServiceArn,core_1.ArnFormat.SLASH_RESOURCE_NAME).resourceName}}return new Import(scope,id)}static fromEc2ServiceAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2ServiceAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromEc2ServiceAttributes),error}return from_service_attributes_1.fromServiceAttributes(scope,id,attrs)}addPlacementStrategies(...strategies){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PlacementStrategy(strategies)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPlacementStrategies),error}if(strategies.length>0&&this.daemon)throw new Error("Can't configure placement strategies when daemon=true");for(const strategy of strategies)this.strategies.push(...strategy.toJson())}addPlacementConstraints(...constraints){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PlacementConstraint(constraints)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPlacementConstraints),error}for(const constraint of constraints)this.constraints.push(...constraint.toJson())}validateEc2Service(){const ret=new Array;return this.cluster.hasEc2Capacity||ret.push("Cluster for this service needs Ec2 capacity. Call addXxxCapacity() on the cluster."),ret}}exports.Ec2Service=Ec2Service,_a=JSII_RTTI_SYMBOL_1,Ec2Service[_a]={fqn:"aws-cdk-lib.aws_ecs.Ec2Service",version:"2.31.1"};function validateNoNetworkingProps(props){if(props.vpcSubnets!==void 0||props.securityGroup!==void 0||props.securityGroups!==void 0||props.assignPublicIp)throw new Error("vpcSubnets, securityGroup(s) and assignPublicIp can only be used in AwsVpc networking mode")}function securityGroupsInThisStack(scope,groups){const thisStack=core_1.Stack.of(scope);let i=1;return groups.map(group=>thisStack===core_1.Stack.of(group)?group:ec2.SecurityGroup.fromSecurityGroupId(scope,`SecurityGroup${i++}`,group.securityGroupId,{allowAllOutbound:group.allowAllOutbound,mutable:!0}))}class BuiltInAttributes{}exports.BuiltInAttributes=BuiltInAttributes,_b=JSII_RTTI_SYMBOL_1,BuiltInAttributes[_b]={fqn:"aws-cdk-lib.aws_ecs.BuiltInAttributes",version:"2.31.1"},BuiltInAttributes.INSTANCE_ID="instanceId",BuiltInAttributes.AVAILABILITY_ZONE="attribute:ecs.availability-zone",BuiltInAttributes.AMI_ID="attribute:ecs.ami-id",BuiltInAttributes.INSTANCE_TYPE="attribute:ecs.instance-type",BuiltInAttributes.OS_TYPE="attribute:ecs.os-type";
1
+ "use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.BuiltInAttributes=exports.Ec2Service=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),ec2=require("../../../aws-ec2"),core_1=require("../../../core"),base_service_1=require("../base/base-service"),from_service_attributes_1=require("../base/from-service-attributes"),task_definition_1=require("../base/task-definition");class Ec2Service extends base_service_1.BaseService{constructor(scope,id,props){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2ServiceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Ec2Service),error}if(props.daemon&&props.desiredCount!==void 0)throw new Error("Daemon mode launches one task on every instance. Don't supply desiredCount.");if(props.daemon&&props.maxHealthyPercent!==void 0&&props.maxHealthyPercent!==100)throw new Error("Maximum percent must be 100 for daemon mode.");if(props.minHealthyPercent!==void 0&&props.maxHealthyPercent!==void 0&&props.minHealthyPercent>=props.maxHealthyPercent)throw new Error("Minimum healthy percent must be less than maximum healthy percent.");if(!props.taskDefinition.isEc2Compatible)throw new Error("Supplied TaskDefinition is not configured for compatibility with EC2");if(props.securityGroup!==void 0&&props.securityGroups!==void 0)throw new Error("Only one of SecurityGroup or SecurityGroups can be populated.");super(scope,id,{...props,desiredCount:props.desiredCount,maxHealthyPercent:props.daemon&&props.maxHealthyPercent===void 0?100:props.maxHealthyPercent,minHealthyPercent:props.daemon&&props.minHealthyPercent===void 0?0:props.minHealthyPercent,launchType:base_service_1.LaunchType.EC2,enableECSManagedTags:props.enableECSManagedTags},{cluster:props.cluster.clusterName,taskDefinition:props.deploymentController?.type===base_service_1.DeploymentControllerType.EXTERNAL?void 0:props.taskDefinition.taskDefinitionArn,placementConstraints:core_1.Lazy.any({produce:()=>this.constraints},{omitEmptyArray:!0}),placementStrategies:core_1.Lazy.any({produce:()=>this.strategies},{omitEmptyArray:!0}),schedulingStrategy:props.daemon?"DAEMON":"REPLICA"},props.taskDefinition),this.constraints=[],this.strategies=[],this.daemon=props.daemon||!1;let securityGroups;props.securityGroup!==void 0?securityGroups=[props.securityGroup]:props.securityGroups!==void 0&&(securityGroups=props.securityGroups),props.taskDefinition.networkMode===task_definition_1.NetworkMode.AWS_VPC?this.configureAwsVpcNetworkingWithSecurityGroups(props.cluster.vpc,props.assignPublicIp,props.vpcSubnets,securityGroups):(validateNoNetworkingProps(props),this.connections.addSecurityGroup(...securityGroupsInThisStack(this,props.cluster.connections.securityGroups))),this.addPlacementConstraints(...props.placementConstraints||[]),this.addPlacementStrategies(...props.placementStrategies||[]),this.node.addValidation({validate:()=>this.taskDefinition.defaultContainer?[]:["A TaskDefinition must have at least one essential container"]}),this.node.addValidation({validate:this.validateEc2Service.bind(this)})}static fromEc2ServiceArn(scope,id,ec2ServiceArn){class Import extends core_1.Resource{constructor(){super(...arguments),this.serviceArn=ec2ServiceArn,this.serviceName=core_1.Stack.of(scope).splitArn(ec2ServiceArn,core_1.ArnFormat.SLASH_RESOURCE_NAME).resourceName}}return new Import(scope,id)}static fromEc2ServiceAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2ServiceAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromEc2ServiceAttributes),error}return from_service_attributes_1.fromServiceAttributes(scope,id,attrs)}addPlacementStrategies(...strategies){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PlacementStrategy(strategies)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPlacementStrategies),error}if(strategies.length>0&&this.daemon)throw new Error("Can't configure placement strategies when daemon=true");for(const strategy of strategies)this.strategies.push(...strategy.toJson())}addPlacementConstraints(...constraints){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_PlacementConstraint(constraints)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.addPlacementConstraints),error}for(const constraint of constraints)this.constraints.push(...constraint.toJson())}validateEc2Service(){const ret=new Array;return this.cluster.hasEc2Capacity||ret.push("Cluster for this service needs Ec2 capacity. Call addXxxCapacity() on the cluster."),ret}}exports.Ec2Service=Ec2Service,_a=JSII_RTTI_SYMBOL_1,Ec2Service[_a]={fqn:"aws-cdk-lib.aws_ecs.Ec2Service",version:"2.31.2"};function validateNoNetworkingProps(props){if(props.vpcSubnets!==void 0||props.securityGroup!==void 0||props.securityGroups!==void 0||props.assignPublicIp)throw new Error("vpcSubnets, securityGroup(s) and assignPublicIp can only be used in AwsVpc networking mode")}function securityGroupsInThisStack(scope,groups){const thisStack=core_1.Stack.of(scope);let i=1;return groups.map(group=>thisStack===core_1.Stack.of(group)?group:ec2.SecurityGroup.fromSecurityGroupId(scope,`SecurityGroup${i++}`,group.securityGroupId,{allowAllOutbound:group.allowAllOutbound,mutable:!0}))}class BuiltInAttributes{}exports.BuiltInAttributes=BuiltInAttributes,_b=JSII_RTTI_SYMBOL_1,BuiltInAttributes[_b]={fqn:"aws-cdk-lib.aws_ecs.BuiltInAttributes",version:"2.31.2"},BuiltInAttributes.INSTANCE_ID="instanceId",BuiltInAttributes.AVAILABILITY_ZONE="attribute:ecs.availability-zone",BuiltInAttributes.AMI_ID="attribute:ecs.ami-id",BuiltInAttributes.INSTANCE_TYPE="attribute:ecs.instance-type",BuiltInAttributes.OS_TYPE="attribute:ecs.os-type";
2
2
  //# sourceMappingURL=ec2-service.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Ec2TaskDefinition=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),_imported_task_definition_1=require("../base/_imported-task-definition"),task_definition_1=require("../base/task-definition");class Ec2TaskDefinition extends task_definition_1.TaskDefinition{constructor(scope,id,props={}){super(scope,id,{...props,compatibility:task_definition_1.Compatibility.EC2,placementConstraints:props.placementConstraints,ipcMode:props.ipcMode,pidMode:props.pidMode,inferenceAccelerators:props.inferenceAccelerators});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2TaskDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Ec2TaskDefinition),error}}static fromEc2TaskDefinitionArn(scope,id,ec2TaskDefinitionArn){return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn:ec2TaskDefinitionArn})}static fromEc2TaskDefinitionAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2TaskDefinitionAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromEc2TaskDefinitionAttributes),error}return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn:attrs.taskDefinitionArn,compatibility:task_definition_1.Compatibility.EC2,networkMode:attrs.networkMode,taskRole:attrs.taskRole})}}exports.Ec2TaskDefinition=Ec2TaskDefinition,_a=JSII_RTTI_SYMBOL_1,Ec2TaskDefinition[_a]={fqn:"aws-cdk-lib.aws_ecs.Ec2TaskDefinition",version:"2.31.1"};
1
+ "use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.Ec2TaskDefinition=void 0;const jsiiDeprecationWarnings=require("../../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),_imported_task_definition_1=require("../base/_imported-task-definition"),task_definition_1=require("../base/task-definition");class Ec2TaskDefinition extends task_definition_1.TaskDefinition{constructor(scope,id,props={}){super(scope,id,{...props,compatibility:task_definition_1.Compatibility.EC2,placementConstraints:props.placementConstraints,ipcMode:props.ipcMode,pidMode:props.pidMode,inferenceAccelerators:props.inferenceAccelerators});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2TaskDefinitionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,Ec2TaskDefinition),error}}static fromEc2TaskDefinitionArn(scope,id,ec2TaskDefinitionArn){return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn:ec2TaskDefinitionArn})}static fromEc2TaskDefinitionAttributes(scope,id,attrs){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_Ec2TaskDefinitionAttributes(attrs)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.fromEc2TaskDefinitionAttributes),error}return new _imported_task_definition_1.ImportedTaskDefinition(scope,id,{taskDefinitionArn:attrs.taskDefinitionArn,compatibility:task_definition_1.Compatibility.EC2,networkMode:attrs.networkMode,taskRole:attrs.taskRole})}}exports.Ec2TaskDefinition=Ec2TaskDefinition,_a=JSII_RTTI_SYMBOL_1,Ec2TaskDefinition[_a]={fqn:"aws-cdk-lib.aws_ecs.Ec2TaskDefinition",version:"2.31.2"};
2
2
  //# sourceMappingURL=ec2-task-definition.js.map