@epilot360/icons 0.0.1 → 0.0.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 (459) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/bundle.js +2 -0
  4. package/dist/bundle.js.map +1 -0
  5. package/iac/node_modules/@balena/dockerignore/LICENSE.md +206 -0
  6. package/iac/node_modules/@balena/dockerignore/README.md +261 -0
  7. package/iac/node_modules/@cspotcode/source-map-support/LICENSE.md +21 -0
  8. package/iac/node_modules/@cspotcode/source-map-support/README.md +289 -0
  9. package/iac/node_modules/@jridgewell/resolve-uri/LICENSE +19 -0
  10. package/iac/node_modules/@jridgewell/resolve-uri/README.md +40 -0
  11. package/iac/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.mjs.map +1 -0
  12. package/iac/node_modules/@jridgewell/resolve-uri/dist/resolve-uri.umd.js.map +1 -0
  13. package/iac/node_modules/@jridgewell/sourcemap-codec/LICENSE +21 -0
  14. package/iac/node_modules/@jridgewell/sourcemap-codec/README.md +200 -0
  15. package/iac/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs.map +1 -0
  16. package/iac/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.umd.js.map +1 -0
  17. package/iac/node_modules/@jridgewell/trace-mapping/LICENSE +19 -0
  18. package/iac/node_modules/@jridgewell/trace-mapping/README.md +193 -0
  19. package/iac/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.mjs.map +1 -0
  20. package/iac/node_modules/@jridgewell/trace-mapping/dist/trace-mapping.umd.js.map +1 -0
  21. package/iac/node_modules/@tsconfig/node10/LICENSE +21 -0
  22. package/iac/node_modules/@tsconfig/node10/README.md +40 -0
  23. package/iac/node_modules/@tsconfig/node12/LICENSE +21 -0
  24. package/iac/node_modules/@tsconfig/node12/README.md +40 -0
  25. package/iac/node_modules/@tsconfig/node14/LICENSE +21 -0
  26. package/iac/node_modules/@tsconfig/node14/README.md +40 -0
  27. package/iac/node_modules/@tsconfig/node16/LICENSE +21 -0
  28. package/iac/node_modules/@tsconfig/node16/README.md +40 -0
  29. package/iac/node_modules/@types/jest/LICENSE +21 -0
  30. package/iac/node_modules/@types/jest/README.md +17 -0
  31. package/iac/node_modules/@types/node/LICENSE +21 -0
  32. package/iac/node_modules/@types/node/README.md +16 -0
  33. package/iac/node_modules/@types/prettier/LICENSE +21 -0
  34. package/iac/node_modules/@types/prettier/README.md +16 -0
  35. package/iac/node_modules/acorn/LICENSE +21 -0
  36. package/iac/node_modules/acorn/README.md +273 -0
  37. package/iac/node_modules/acorn-walk/LICENSE +21 -0
  38. package/iac/node_modules/acorn-walk/README.md +126 -0
  39. package/iac/node_modules/ansi-regex/license +9 -0
  40. package/iac/node_modules/ansi-regex/readme.md +78 -0
  41. package/iac/node_modules/ansi-styles/license +9 -0
  42. package/iac/node_modules/ansi-styles/readme.md +144 -0
  43. package/iac/node_modules/arg/LICENSE.md +21 -0
  44. package/iac/node_modules/arg/README.md +280 -0
  45. package/iac/node_modules/at-least-node/LICENSE +6 -0
  46. package/iac/node_modules/at-least-node/README.md +25 -0
  47. package/iac/node_modules/aws-cdk/LICENSE +201 -0
  48. package/iac/node_modules/aws-cdk/README.md +742 -0
  49. package/iac/node_modules/aws-cdk/lib/init-templates/LICENSE +16 -0
  50. package/iac/node_modules/aws-cdk/lib/init-templates/app/csharp/README.md +14 -0
  51. package/iac/node_modules/aws-cdk/lib/init-templates/app/fsharp/README.md +18 -0
  52. package/iac/node_modules/aws-cdk/lib/init-templates/app/go/README.md +12 -0
  53. package/iac/node_modules/aws-cdk/lib/init-templates/app/java/README.md +18 -0
  54. package/iac/node_modules/aws-cdk/lib/init-templates/app/javascript/README.md +12 -0
  55. package/iac/node_modules/aws-cdk/lib/init-templates/app/python/README.template.md +58 -0
  56. package/iac/node_modules/aws-cdk/lib/init-templates/app/typescript/README.md +14 -0
  57. package/iac/node_modules/aws-cdk/lib/init-templates/lib/typescript/README.template.md +12 -0
  58. package/iac/node_modules/aws-cdk/lib/init-templates/sample-app/csharp/README.template.md +19 -0
  59. package/iac/node_modules/aws-cdk/lib/init-templates/sample-app/fsharp/README.template.md +20 -0
  60. package/iac/node_modules/aws-cdk/lib/init-templates/sample-app/go/README.md +12 -0
  61. package/iac/node_modules/aws-cdk/lib/init-templates/sample-app/java/README.template.md +19 -0
  62. package/iac/node_modules/aws-cdk/lib/init-templates/sample-app/javascript/README.template.md +13 -0
  63. package/iac/node_modules/aws-cdk/lib/init-templates/sample-app/python/README.template.md +65 -0
  64. package/iac/node_modules/aws-cdk/lib/init-templates/sample-app/typescript/README.template.md +15 -0
  65. package/iac/node_modules/aws-cdk/test/integ/cli/README.md +48 -0
  66. package/iac/node_modules/aws-cdk/test/integ/cli-regression-patches/README.md +54 -0
  67. package/iac/node_modules/aws-cdk-lib/LICENSE +201 -0
  68. package/iac/node_modules/aws-cdk-lib/README.md +1119 -0
  69. package/iac/node_modules/aws-cdk-lib/alexa-ask/README.md +27 -0
  70. package/iac/node_modules/aws-cdk-lib/assertions/README.md +571 -0
  71. package/iac/node_modules/aws-cdk-lib/assets/README.md +4 -0
  72. package/iac/node_modules/aws-cdk-lib/aws-accessanalyzer/README.md +27 -0
  73. package/iac/node_modules/aws-cdk-lib/aws-acmpca/README.md +59 -0
  74. package/iac/node_modules/aws-cdk-lib/aws-amazonmq/README.md +27 -0
  75. package/iac/node_modules/aws-cdk-lib/aws-amplify/README.md +32 -0
  76. package/iac/node_modules/aws-cdk-lib/aws-amplifyuibuilder/README.md +27 -0
  77. package/iac/node_modules/aws-cdk-lib/aws-apigateway/README.md +1335 -0
  78. package/iac/node_modules/aws-cdk-lib/aws-apigatewayv2/README.md +32 -0
  79. package/iac/node_modules/aws-cdk-lib/aws-appconfig/README.md +27 -0
  80. package/iac/node_modules/aws-cdk-lib/aws-appflow/README.md +27 -0
  81. package/iac/node_modules/aws-cdk-lib/aws-appintegrations/README.md +27 -0
  82. package/iac/node_modules/aws-cdk-lib/aws-applicationautoscaling/README.md +246 -0
  83. package/iac/node_modules/aws-cdk-lib/aws-applicationinsights/README.md +27 -0
  84. package/iac/node_modules/aws-cdk-lib/aws-appmesh/README.md +883 -0
  85. package/iac/node_modules/aws-cdk-lib/aws-apprunner/README.md +32 -0
  86. package/iac/node_modules/aws-cdk-lib/aws-appstream/README.md +27 -0
  87. package/iac/node_modules/aws-cdk-lib/aws-appsync/README.md +32 -0
  88. package/iac/node_modules/aws-cdk-lib/aws-aps/README.md +27 -0
  89. package/iac/node_modules/aws-cdk-lib/aws-athena/README.md +27 -0
  90. package/iac/node_modules/aws-cdk-lib/aws-auditmanager/README.md +27 -0
  91. package/iac/node_modules/aws-cdk-lib/aws-autoscaling/README.md +540 -0
  92. package/iac/node_modules/aws-cdk-lib/aws-autoscaling-common/README.md +8 -0
  93. package/iac/node_modules/aws-cdk-lib/aws-autoscaling-hooktargets/README.md +18 -0
  94. package/iac/node_modules/aws-cdk-lib/aws-autoscalingplans/README.md +27 -0
  95. package/iac/node_modules/aws-cdk-lib/aws-backup/README.md +210 -0
  96. package/iac/node_modules/aws-cdk-lib/aws-batch/README.md +32 -0
  97. package/iac/node_modules/aws-cdk-lib/aws-billingconductor/README.md +27 -0
  98. package/iac/node_modules/aws-cdk-lib/aws-budgets/README.md +27 -0
  99. package/iac/node_modules/aws-cdk-lib/aws-cassandra/README.md +27 -0
  100. package/iac/node_modules/aws-cdk-lib/aws-ce/README.md +27 -0
  101. package/iac/node_modules/aws-cdk-lib/aws-certificatemanager/README.md +166 -0
  102. package/iac/node_modules/aws-cdk-lib/aws-certificatemanager/lambda-packages/dns_validated_certificate_handler/README.md +2 -0
  103. package/iac/node_modules/aws-cdk-lib/aws-certificatemanager/suffixes/README.txt +8 -0
  104. package/iac/node_modules/aws-cdk-lib/aws-chatbot/README.md +44 -0
  105. package/iac/node_modules/aws-cdk-lib/aws-cloud9/README.md +32 -0
  106. package/iac/node_modules/aws-cdk-lib/aws-cloudformation/README.md +4 -0
  107. package/iac/node_modules/aws-cdk-lib/aws-cloudfront/README.md +973 -0
  108. package/iac/node_modules/aws-cdk-lib/aws-cloudfront-origins/README.md +126 -0
  109. package/iac/node_modules/aws-cdk-lib/aws-cloudtrail/README.md +189 -0
  110. package/iac/node_modules/aws-cdk-lib/aws-cloudwatch/README.md +579 -0
  111. package/iac/node_modules/aws-cdk-lib/aws-cloudwatch-actions/README.md +43 -0
  112. package/iac/node_modules/aws-cdk-lib/aws-codeartifact/README.md +27 -0
  113. package/iac/node_modules/aws-cdk-lib/aws-codebuild/README.md +759 -0
  114. package/iac/node_modules/aws-cdk-lib/aws-codecommit/README.md +85 -0
  115. package/iac/node_modules/aws-cdk-lib/aws-codedeploy/README.md +319 -0
  116. package/iac/node_modules/aws-cdk-lib/aws-codeguruprofiler/README.md +37 -0
  117. package/iac/node_modules/aws-cdk-lib/aws-codegurureviewer/README.md +27 -0
  118. package/iac/node_modules/aws-cdk-lib/aws-codepipeline/README.md +481 -0
  119. package/iac/node_modules/aws-cdk-lib/aws-codepipeline-actions/README.md +1203 -0
  120. package/iac/node_modules/aws-cdk-lib/aws-codestar/README.md +32 -0
  121. package/iac/node_modules/aws-cdk-lib/aws-codestarconnections/README.md +27 -0
  122. package/iac/node_modules/aws-cdk-lib/aws-codestarnotifications/README.md +68 -0
  123. package/iac/node_modules/aws-cdk-lib/aws-cognito/README.md +843 -0
  124. package/iac/node_modules/aws-cdk-lib/aws-config/README.md +218 -0
  125. package/iac/node_modules/aws-cdk-lib/aws-connect/README.md +27 -0
  126. package/iac/node_modules/aws-cdk-lib/aws-controltower/README.md +27 -0
  127. package/iac/node_modules/aws-cdk-lib/aws-cur/README.md +27 -0
  128. package/iac/node_modules/aws-cdk-lib/aws-customerprofiles/README.md +27 -0
  129. package/iac/node_modules/aws-cdk-lib/aws-databrew/README.md +27 -0
  130. package/iac/node_modules/aws-cdk-lib/aws-datapipeline/README.md +27 -0
  131. package/iac/node_modules/aws-cdk-lib/aws-datasync/README.md +27 -0
  132. package/iac/node_modules/aws-cdk-lib/aws-dax/README.md +27 -0
  133. package/iac/node_modules/aws-cdk-lib/aws-detective/README.md +27 -0
  134. package/iac/node_modules/aws-cdk-lib/aws-devopsguru/README.md +27 -0
  135. package/iac/node_modules/aws-cdk-lib/aws-directoryservice/README.md +27 -0
  136. package/iac/node_modules/aws-cdk-lib/aws-dlm/README.md +27 -0
  137. package/iac/node_modules/aws-cdk-lib/aws-dms/README.md +27 -0
  138. package/iac/node_modules/aws-cdk-lib/aws-docdb/README.md +153 -0
  139. package/iac/node_modules/aws-cdk-lib/aws-dynamodb/README.md +200 -0
  140. package/iac/node_modules/aws-cdk-lib/aws-ec2/README.md +1514 -0
  141. package/iac/node_modules/aws-cdk-lib/aws-ecr/README.md +110 -0
  142. package/iac/node_modules/aws-cdk-lib/aws-ecr-assets/README.md +167 -0
  143. package/iac/node_modules/aws-cdk-lib/aws-ecs/README.md +1225 -0
  144. package/iac/node_modules/aws-cdk-lib/aws-ecs-patterns/README.md +980 -0
  145. package/iac/node_modules/aws-cdk-lib/aws-efs/README.md +154 -0
  146. package/iac/node_modules/aws-cdk-lib/aws-eks/README.md +1450 -0
  147. package/iac/node_modules/aws-cdk-lib/aws-elasticache/README.md +27 -0
  148. package/iac/node_modules/aws-cdk-lib/aws-elasticbeanstalk/README.md +27 -0
  149. package/iac/node_modules/aws-cdk-lib/aws-elasticloadbalancing/README.md +40 -0
  150. package/iac/node_modules/aws-cdk-lib/aws-elasticloadbalancingv2/README.md +569 -0
  151. package/iac/node_modules/aws-cdk-lib/aws-elasticloadbalancingv2-actions/README.md +68 -0
  152. package/iac/node_modules/aws-cdk-lib/aws-elasticloadbalancingv2-targets/README.md +4 -0
  153. package/iac/node_modules/aws-cdk-lib/aws-elasticsearch/README.md +441 -0
  154. package/iac/node_modules/aws-cdk-lib/aws-emr/README.md +27 -0
  155. package/iac/node_modules/aws-cdk-lib/aws-emrcontainers/README.md +27 -0
  156. package/iac/node_modules/aws-cdk-lib/aws-emrserverless/README.md +27 -0
  157. package/iac/node_modules/aws-cdk-lib/aws-events/README.md +249 -0
  158. package/iac/node_modules/aws-cdk-lib/aws-events-targets/README.md +339 -0
  159. package/iac/node_modules/aws-cdk-lib/aws-eventschemas/README.md +27 -0
  160. package/iac/node_modules/aws-cdk-lib/aws-evidently/README.md +27 -0
  161. package/iac/node_modules/aws-cdk-lib/aws-finspace/README.md +27 -0
  162. package/iac/node_modules/aws-cdk-lib/aws-fis/README.md +27 -0
  163. package/iac/node_modules/aws-cdk-lib/aws-fms/README.md +27 -0
  164. package/iac/node_modules/aws-cdk-lib/aws-forecast/README.md +27 -0
  165. package/iac/node_modules/aws-cdk-lib/aws-frauddetector/README.md +27 -0
  166. package/iac/node_modules/aws-cdk-lib/aws-fsx/README.md +200 -0
  167. package/iac/node_modules/aws-cdk-lib/aws-gamelift/README.md +27 -0
  168. package/iac/node_modules/aws-cdk-lib/aws-globalaccelerator/README.md +182 -0
  169. package/iac/node_modules/aws-cdk-lib/aws-globalaccelerator-endpoints/README.md +10 -0
  170. package/iac/node_modules/aws-cdk-lib/aws-glue/README.md +32 -0
  171. package/iac/node_modules/aws-cdk-lib/aws-greengrass/README.md +27 -0
  172. package/iac/node_modules/aws-cdk-lib/aws-greengrassv2/README.md +27 -0
  173. package/iac/node_modules/aws-cdk-lib/aws-groundstation/README.md +27 -0
  174. package/iac/node_modules/aws-cdk-lib/aws-guardduty/README.md +27 -0
  175. package/iac/node_modules/aws-cdk-lib/aws-healthlake/README.md +27 -0
  176. package/iac/node_modules/aws-cdk-lib/aws-iam/README.md +509 -0
  177. package/iac/node_modules/aws-cdk-lib/aws-imagebuilder/README.md +27 -0
  178. package/iac/node_modules/aws-cdk-lib/aws-inspector/README.md +27 -0
  179. package/iac/node_modules/aws-cdk-lib/aws-inspectorv2/README.md +27 -0
  180. package/iac/node_modules/aws-cdk-lib/aws-iot/README.md +32 -0
  181. package/iac/node_modules/aws-cdk-lib/aws-iot1click/README.md +27 -0
  182. package/iac/node_modules/aws-cdk-lib/aws-iotanalytics/README.md +27 -0
  183. package/iac/node_modules/aws-cdk-lib/aws-iotcoredeviceadvisor/README.md +27 -0
  184. package/iac/node_modules/aws-cdk-lib/aws-iotevents/README.md +32 -0
  185. package/iac/node_modules/aws-cdk-lib/aws-iotfleethub/README.md +27 -0
  186. package/iac/node_modules/aws-cdk-lib/aws-iotsitewise/README.md +27 -0
  187. package/iac/node_modules/aws-cdk-lib/aws-iotthingsgraph/README.md +27 -0
  188. package/iac/node_modules/aws-cdk-lib/aws-iottwinmaker/README.md +27 -0
  189. package/iac/node_modules/aws-cdk-lib/aws-iotwireless/README.md +27 -0
  190. package/iac/node_modules/aws-cdk-lib/aws-ivs/README.md +32 -0
  191. package/iac/node_modules/aws-cdk-lib/aws-kafkaconnect/README.md +27 -0
  192. package/iac/node_modules/aws-cdk-lib/aws-kendra/README.md +27 -0
  193. package/iac/node_modules/aws-cdk-lib/aws-kinesis/README.md +188 -0
  194. package/iac/node_modules/aws-cdk-lib/aws-kinesisanalytics/README.md +27 -0
  195. package/iac/node_modules/aws-cdk-lib/aws-kinesisanalyticsv2/README.md +27 -0
  196. package/iac/node_modules/aws-cdk-lib/aws-kinesisfirehose/README.md +32 -0
  197. package/iac/node_modules/aws-cdk-lib/aws-kinesisvideo/README.md +27 -0
  198. package/iac/node_modules/aws-cdk-lib/aws-kms/README.md +209 -0
  199. package/iac/node_modules/aws-cdk-lib/aws-lakeformation/README.md +27 -0
  200. package/iac/node_modules/aws-cdk-lib/aws-lambda/README.md +985 -0
  201. package/iac/node_modules/aws-cdk-lib/aws-lambda-destinations/README.md +147 -0
  202. package/iac/node_modules/aws-cdk-lib/aws-lambda-event-sources/README.md +281 -0
  203. package/iac/node_modules/aws-cdk-lib/aws-lambda-nodejs/README.md +317 -0
  204. package/iac/node_modules/aws-cdk-lib/aws-lex/README.md +27 -0
  205. package/iac/node_modules/aws-cdk-lib/aws-licensemanager/README.md +27 -0
  206. package/iac/node_modules/aws-cdk-lib/aws-lightsail/README.md +27 -0
  207. package/iac/node_modules/aws-cdk-lib/aws-location/README.md +27 -0
  208. package/iac/node_modules/aws-cdk-lib/aws-logs/README.md +322 -0
  209. package/iac/node_modules/aws-cdk-lib/aws-logs-destinations/README.md +7 -0
  210. package/iac/node_modules/aws-cdk-lib/aws-lookoutequipment/README.md +27 -0
  211. package/iac/node_modules/aws-cdk-lib/aws-lookoutmetrics/README.md +27 -0
  212. package/iac/node_modules/aws-cdk-lib/aws-lookoutvision/README.md +27 -0
  213. package/iac/node_modules/aws-cdk-lib/aws-m2/README.md +27 -0
  214. package/iac/node_modules/aws-cdk-lib/aws-macie/README.md +27 -0
  215. package/iac/node_modules/aws-cdk-lib/aws-managedblockchain/README.md +27 -0
  216. package/iac/node_modules/aws-cdk-lib/aws-mediaconnect/README.md +27 -0
  217. package/iac/node_modules/aws-cdk-lib/aws-mediaconvert/README.md +27 -0
  218. package/iac/node_modules/aws-cdk-lib/aws-medialive/README.md +27 -0
  219. package/iac/node_modules/aws-cdk-lib/aws-mediapackage/README.md +27 -0
  220. package/iac/node_modules/aws-cdk-lib/aws-mediastore/README.md +27 -0
  221. package/iac/node_modules/aws-cdk-lib/aws-mediatailor/README.md +27 -0
  222. package/iac/node_modules/aws-cdk-lib/aws-memorydb/README.md +27 -0
  223. package/iac/node_modules/aws-cdk-lib/aws-msk/README.md +32 -0
  224. package/iac/node_modules/aws-cdk-lib/aws-mwaa/README.md +27 -0
  225. package/iac/node_modules/aws-cdk-lib/aws-neptune/README.md +32 -0
  226. package/iac/node_modules/aws-cdk-lib/aws-networkfirewall/README.md +27 -0
  227. package/iac/node_modules/aws-cdk-lib/aws-networkmanager/README.md +27 -0
  228. package/iac/node_modules/aws-cdk-lib/aws-nimblestudio/README.md +27 -0
  229. package/iac/node_modules/aws-cdk-lib/aws-opensearchservice/README.md +378 -0
  230. package/iac/node_modules/aws-cdk-lib/aws-opsworks/README.md +27 -0
  231. package/iac/node_modules/aws-cdk-lib/aws-opsworkscm/README.md +27 -0
  232. package/iac/node_modules/aws-cdk-lib/aws-panorama/README.md +27 -0
  233. package/iac/node_modules/aws-cdk-lib/aws-personalize/README.md +27 -0
  234. package/iac/node_modules/aws-cdk-lib/aws-pinpoint/README.md +27 -0
  235. package/iac/node_modules/aws-cdk-lib/aws-pinpointemail/README.md +27 -0
  236. package/iac/node_modules/aws-cdk-lib/aws-qldb/README.md +27 -0
  237. package/iac/node_modules/aws-cdk-lib/aws-quicksight/README.md +27 -0
  238. package/iac/node_modules/aws-cdk-lib/aws-ram/README.md +27 -0
  239. package/iac/node_modules/aws-cdk-lib/aws-rds/README.md +704 -0
  240. package/iac/node_modules/aws-cdk-lib/aws-redshift/README.md +32 -0
  241. package/iac/node_modules/aws-cdk-lib/aws-redshiftserverless/README.md +27 -0
  242. package/iac/node_modules/aws-cdk-lib/aws-refactorspaces/README.md +27 -0
  243. package/iac/node_modules/aws-cdk-lib/aws-rekognition/README.md +27 -0
  244. package/iac/node_modules/aws-cdk-lib/aws-resiliencehub/README.md +27 -0
  245. package/iac/node_modules/aws-cdk-lib/aws-resourcegroups/README.md +27 -0
  246. package/iac/node_modules/aws-cdk-lib/aws-robomaker/README.md +27 -0
  247. package/iac/node_modules/aws-cdk-lib/aws-route53/README.md +281 -0
  248. package/iac/node_modules/aws-cdk-lib/aws-route53-patterns/README.md +45 -0
  249. package/iac/node_modules/aws-cdk-lib/aws-route53-targets/README.md +181 -0
  250. package/iac/node_modules/aws-cdk-lib/aws-route53recoverycontrol/README.md +27 -0
  251. package/iac/node_modules/aws-cdk-lib/aws-route53recoveryreadiness/README.md +27 -0
  252. package/iac/node_modules/aws-cdk-lib/aws-route53resolver/README.md +32 -0
  253. package/iac/node_modules/aws-cdk-lib/aws-rum/README.md +27 -0
  254. package/iac/node_modules/aws-cdk-lib/aws-s3/README.md +581 -0
  255. package/iac/node_modules/aws-cdk-lib/aws-s3-assets/README.md +179 -0
  256. package/iac/node_modules/aws-cdk-lib/aws-s3-deployment/README.md +349 -0
  257. package/iac/node_modules/aws-cdk-lib/aws-s3-notifications/README.md +46 -0
  258. package/iac/node_modules/aws-cdk-lib/aws-s3objectlambda/README.md +32 -0
  259. package/iac/node_modules/aws-cdk-lib/aws-s3outposts/README.md +27 -0
  260. package/iac/node_modules/aws-cdk-lib/aws-sagemaker/README.md +27 -0
  261. package/iac/node_modules/aws-cdk-lib/aws-sam/README.md +27 -0
  262. package/iac/node_modules/aws-cdk-lib/aws-sdb/README.md +27 -0
  263. package/iac/node_modules/aws-cdk-lib/aws-secretsmanager/README.md +285 -0
  264. package/iac/node_modules/aws-cdk-lib/aws-securityhub/README.md +27 -0
  265. package/iac/node_modules/aws-cdk-lib/aws-servicecatalog/README.md +491 -0
  266. package/iac/node_modules/aws-cdk-lib/aws-servicecatalogappregistry/README.md +32 -0
  267. package/iac/node_modules/aws-cdk-lib/aws-servicediscovery/README.md +45 -0
  268. package/iac/node_modules/aws-cdk-lib/aws-ses/README.md +194 -0
  269. package/iac/node_modules/aws-cdk-lib/aws-ses-actions/README.md +16 -0
  270. package/iac/node_modules/aws-cdk-lib/aws-signer/README.md +41 -0
  271. package/iac/node_modules/aws-cdk-lib/aws-sns/README.md +184 -0
  272. package/iac/node_modules/aws-cdk-lib/aws-sns-subscriptions/README.md +120 -0
  273. package/iac/node_modules/aws-cdk-lib/aws-sqs/README.md +57 -0
  274. package/iac/node_modules/aws-cdk-lib/aws-ssm/README.md +99 -0
  275. package/iac/node_modules/aws-cdk-lib/aws-ssmcontacts/README.md +27 -0
  276. package/iac/node_modules/aws-cdk-lib/aws-ssmincidents/README.md +27 -0
  277. package/iac/node_modules/aws-cdk-lib/aws-sso/README.md +27 -0
  278. package/iac/node_modules/aws-cdk-lib/aws-stepfunctions/README.md +884 -0
  279. package/iac/node_modules/aws-cdk-lib/aws-stepfunctions-tasks/README.md +1288 -0
  280. package/iac/node_modules/aws-cdk-lib/aws-supportapp/README.md +27 -0
  281. package/iac/node_modules/aws-cdk-lib/aws-synthetics/README.md +32 -0
  282. package/iac/node_modules/aws-cdk-lib/aws-timestream/README.md +27 -0
  283. package/iac/node_modules/aws-cdk-lib/aws-transfer/README.md +27 -0
  284. package/iac/node_modules/aws-cdk-lib/aws-voiceid/README.md +27 -0
  285. package/iac/node_modules/aws-cdk-lib/aws-waf/README.md +27 -0
  286. package/iac/node_modules/aws-cdk-lib/aws-wafregional/README.md +27 -0
  287. package/iac/node_modules/aws-cdk-lib/aws-wafv2/README.md +27 -0
  288. package/iac/node_modules/aws-cdk-lib/aws-wisdom/README.md +27 -0
  289. package/iac/node_modules/aws-cdk-lib/aws-workspaces/README.md +27 -0
  290. package/iac/node_modules/aws-cdk-lib/aws-xray/README.md +27 -0
  291. package/iac/node_modules/aws-cdk-lib/cloud-assembly-schema/README.md +55 -0
  292. package/iac/node_modules/aws-cdk-lib/cloud-assembly-schema/schema/README.md +5 -0
  293. package/iac/node_modules/aws-cdk-lib/cloudformation-include/README.md +466 -0
  294. package/iac/node_modules/aws-cdk-lib/core/README.md +1078 -0
  295. package/iac/node_modules/aws-cdk-lib/custom-resources/README.md +624 -0
  296. package/iac/node_modules/aws-cdk-lib/cx-api/README.md +98 -0
  297. package/iac/node_modules/aws-cdk-lib/lambda-layer-awscli/README.md +19 -0
  298. package/iac/node_modules/aws-cdk-lib/lambda-layer-kubectl/README.md +20 -0
  299. package/iac/node_modules/aws-cdk-lib/lambda-layer-node-proxy-agent/README.md +18 -0
  300. package/iac/node_modules/aws-cdk-lib/node_modules/@balena/dockerignore/LICENSE.md +206 -0
  301. package/iac/node_modules/aws-cdk-lib/node_modules/@balena/dockerignore/README.md +261 -0
  302. package/iac/node_modules/aws-cdk-lib/node_modules/at-least-node/LICENSE +6 -0
  303. package/iac/node_modules/aws-cdk-lib/node_modules/at-least-node/README.md +25 -0
  304. package/iac/node_modules/aws-cdk-lib/node_modules/balanced-match/LICENSE.md +21 -0
  305. package/iac/node_modules/aws-cdk-lib/node_modules/balanced-match/README.md +97 -0
  306. package/iac/node_modules/aws-cdk-lib/node_modules/brace-expansion/LICENSE +21 -0
  307. package/iac/node_modules/aws-cdk-lib/node_modules/brace-expansion/README.md +129 -0
  308. package/iac/node_modules/aws-cdk-lib/node_modules/case/LICENSE +22 -0
  309. package/iac/node_modules/aws-cdk-lib/node_modules/case/README.md +139 -0
  310. package/iac/node_modules/aws-cdk-lib/node_modules/case/dist/Case.min.js.map +1 -0
  311. package/iac/node_modules/aws-cdk-lib/node_modules/case/dist/Case.plus.min.js.map +1 -0
  312. package/iac/node_modules/aws-cdk-lib/node_modules/concat-map/LICENSE +18 -0
  313. package/iac/node_modules/aws-cdk-lib/node_modules/concat-map/README.markdown +62 -0
  314. package/iac/node_modules/aws-cdk-lib/node_modules/fs-extra/LICENSE +15 -0
  315. package/iac/node_modules/aws-cdk-lib/node_modules/fs-extra/README.md +264 -0
  316. package/iac/node_modules/aws-cdk-lib/node_modules/graceful-fs/LICENSE +15 -0
  317. package/iac/node_modules/aws-cdk-lib/node_modules/graceful-fs/README.md +143 -0
  318. package/iac/node_modules/aws-cdk-lib/node_modules/ignore/README.md +412 -0
  319. package/iac/node_modules/aws-cdk-lib/node_modules/jsonfile/LICENSE +15 -0
  320. package/iac/node_modules/aws-cdk-lib/node_modules/jsonfile/README.md +230 -0
  321. package/iac/node_modules/aws-cdk-lib/node_modules/jsonschema/LICENSE +21 -0
  322. package/iac/node_modules/aws-cdk-lib/node_modules/jsonschema/README.md +421 -0
  323. package/iac/node_modules/aws-cdk-lib/node_modules/lru-cache/LICENSE +15 -0
  324. package/iac/node_modules/aws-cdk-lib/node_modules/lru-cache/README.md +166 -0
  325. package/iac/node_modules/aws-cdk-lib/node_modules/minimatch/LICENSE +15 -0
  326. package/iac/node_modules/aws-cdk-lib/node_modules/minimatch/README.md +230 -0
  327. package/iac/node_modules/aws-cdk-lib/node_modules/punycode/README.md +122 -0
  328. package/iac/node_modules/aws-cdk-lib/node_modules/semver/LICENSE +15 -0
  329. package/iac/node_modules/aws-cdk-lib/node_modules/semver/README.md +568 -0
  330. package/iac/node_modules/aws-cdk-lib/node_modules/universalify/LICENSE +20 -0
  331. package/iac/node_modules/aws-cdk-lib/node_modules/universalify/README.md +76 -0
  332. package/iac/node_modules/aws-cdk-lib/node_modules/yallist/LICENSE +15 -0
  333. package/iac/node_modules/aws-cdk-lib/node_modules/yallist/README.md +204 -0
  334. package/iac/node_modules/aws-cdk-lib/node_modules/yaml/LICENSE +13 -0
  335. package/iac/node_modules/aws-cdk-lib/node_modules/yaml/README.md +127 -0
  336. package/iac/node_modules/aws-cdk-lib/pipelines/README.md +1573 -0
  337. package/iac/node_modules/aws-cdk-lib/region-info/README.md +84 -0
  338. package/iac/node_modules/aws-cdk-lib/triggers/README.md +86 -0
  339. package/iac/node_modules/balanced-match/LICENSE.md +21 -0
  340. package/iac/node_modules/balanced-match/README.md +97 -0
  341. package/iac/node_modules/brace-expansion/LICENSE +21 -0
  342. package/iac/node_modules/brace-expansion/README.md +129 -0
  343. package/iac/node_modules/buffer-from/LICENSE +21 -0
  344. package/iac/node_modules/buffer-from/readme.md +69 -0
  345. package/iac/node_modules/case/LICENSE +22 -0
  346. package/iac/node_modules/case/README.md +139 -0
  347. package/iac/node_modules/case/dist/Case.min.js.map +1 -0
  348. package/iac/node_modules/case/dist/Case.plus.min.js.map +1 -0
  349. package/iac/node_modules/chalk/license +9 -0
  350. package/iac/node_modules/chalk/node_modules/ansi-styles/license +9 -0
  351. package/iac/node_modules/chalk/node_modules/ansi-styles/readme.md +152 -0
  352. package/iac/node_modules/chalk/readme.md +341 -0
  353. package/iac/node_modules/color-convert/LICENSE +21 -0
  354. package/iac/node_modules/color-convert/README.md +68 -0
  355. package/iac/node_modules/color-name/LICENSE +8 -0
  356. package/iac/node_modules/color-name/README.md +11 -0
  357. package/iac/node_modules/concat-map/LICENSE +18 -0
  358. package/iac/node_modules/concat-map/README.markdown +62 -0
  359. package/iac/node_modules/constructs/LICENSE +202 -0
  360. package/iac/node_modules/constructs/README.md +28 -0
  361. package/iac/node_modules/create-require/LICENSE +25 -0
  362. package/iac/node_modules/create-require/README.md +46 -0
  363. package/iac/node_modules/diff/LICENSE +31 -0
  364. package/iac/node_modules/diff/README.md +207 -0
  365. package/iac/node_modules/diff-sequences/LICENSE +21 -0
  366. package/iac/node_modules/diff-sequences/README.md +404 -0
  367. package/iac/node_modules/fs-extra/LICENSE +15 -0
  368. package/iac/node_modules/fs-extra/README.md +264 -0
  369. package/iac/node_modules/fsevents/LICENSE +22 -0
  370. package/iac/node_modules/fsevents/README.md +83 -0
  371. package/iac/node_modules/graceful-fs/LICENSE +15 -0
  372. package/iac/node_modules/graceful-fs/README.md +143 -0
  373. package/iac/node_modules/has-flag/license +9 -0
  374. package/iac/node_modules/has-flag/readme.md +89 -0
  375. package/iac/node_modules/ignore/README.md +412 -0
  376. package/iac/node_modules/jest-diff/LICENSE +21 -0
  377. package/iac/node_modules/jest-diff/README.md +671 -0
  378. package/iac/node_modules/jest-get-type/LICENSE +21 -0
  379. package/iac/node_modules/jest-matcher-utils/LICENSE +21 -0
  380. package/iac/node_modules/jest-matcher-utils/README.md +24 -0
  381. package/iac/node_modules/jsonfile/LICENSE +15 -0
  382. package/iac/node_modules/jsonfile/README.md +230 -0
  383. package/iac/node_modules/jsonschema/LICENSE +21 -0
  384. package/iac/node_modules/jsonschema/README.md +421 -0
  385. package/iac/node_modules/lru-cache/LICENSE +15 -0
  386. package/iac/node_modules/lru-cache/README.md +166 -0
  387. package/iac/node_modules/make-error/LICENSE +5 -0
  388. package/iac/node_modules/make-error/README.md +112 -0
  389. package/iac/node_modules/minimatch/LICENSE +15 -0
  390. package/iac/node_modules/minimatch/README.md +230 -0
  391. package/iac/node_modules/pretty-format/LICENSE +21 -0
  392. package/iac/node_modules/pretty-format/README.md +458 -0
  393. package/iac/node_modules/punycode/README.md +122 -0
  394. package/iac/node_modules/react-is/LICENSE +21 -0
  395. package/iac/node_modules/react-is/README.md +104 -0
  396. package/iac/node_modules/semver/LICENSE +15 -0
  397. package/iac/node_modules/semver/README.md +568 -0
  398. package/iac/node_modules/source-map/LICENSE +28 -0
  399. package/iac/node_modules/source-map/README.md +742 -0
  400. package/iac/node_modules/source-map/dist/source-map.min.js.map +1 -0
  401. package/iac/node_modules/source-map-support/LICENSE.md +21 -0
  402. package/iac/node_modules/source-map-support/README.md +284 -0
  403. package/iac/node_modules/supports-color/license +9 -0
  404. package/iac/node_modules/supports-color/readme.md +76 -0
  405. package/iac/node_modules/ts-node/LICENSE +21 -0
  406. package/iac/node_modules/ts-node/README.md +1442 -0
  407. package/iac/node_modules/ts-node/dist/bin-cwd.js.map +1 -0
  408. package/iac/node_modules/ts-node/dist/bin-esm.js.map +1 -0
  409. package/iac/node_modules/ts-node/dist/bin-script-deprecated.js.map +1 -0
  410. package/iac/node_modules/ts-node/dist/bin-script.js.map +1 -0
  411. package/iac/node_modules/ts-node/dist/bin-transpile.js.map +1 -0
  412. package/iac/node_modules/ts-node/dist/bin.js.map +1 -0
  413. package/iac/node_modules/ts-node/dist/child/argv-payload.js.map +1 -0
  414. package/iac/node_modules/ts-node/dist/child/child-entrypoint.js.map +1 -0
  415. package/iac/node_modules/ts-node/dist/child/child-loader.js.map +1 -0
  416. package/iac/node_modules/ts-node/dist/child/child-require.js.map +1 -0
  417. package/iac/node_modules/ts-node/dist/child/spawn-child.js.map +1 -0
  418. package/iac/node_modules/ts-node/dist/cjs-resolve-hooks.js.map +1 -0
  419. package/iac/node_modules/ts-node/dist/configuration.js.map +1 -0
  420. package/iac/node_modules/ts-node/dist/esm.js.map +1 -0
  421. package/iac/node_modules/ts-node/dist/file-extensions.js.map +1 -0
  422. package/iac/node_modules/ts-node/dist/index.js.map +1 -0
  423. package/iac/node_modules/ts-node/dist/module-type-classifier.js.map +1 -0
  424. package/iac/node_modules/ts-node/dist/node-module-type-classifier.js.map +1 -0
  425. package/iac/node_modules/ts-node/dist/repl.js.map +1 -0
  426. package/iac/node_modules/ts-node/dist/resolver-functions.js.map +1 -0
  427. package/iac/node_modules/ts-node/dist/transpilers/swc.js.map +1 -0
  428. package/iac/node_modules/ts-node/dist/transpilers/types.js.map +1 -0
  429. package/iac/node_modules/ts-node/dist/ts-compiler-types.js.map +1 -0
  430. package/iac/node_modules/ts-node/dist/ts-internals.js.map +1 -0
  431. package/iac/node_modules/ts-node/dist/ts-transpile-module.js.map +1 -0
  432. package/iac/node_modules/ts-node/dist/tsconfig-schema.js.map +1 -0
  433. package/iac/node_modules/ts-node/dist/tsconfigs.js.map +1 -0
  434. package/iac/node_modules/ts-node/dist/util.js.map +1 -0
  435. package/iac/node_modules/ts-node/dist-raw/README.md +36 -0
  436. package/iac/node_modules/typescript/LICENSE.txt +55 -0
  437. package/iac/node_modules/typescript/README.md +104 -0
  438. package/iac/node_modules/typescript/lib/README.md +5 -0
  439. package/iac/node_modules/universalify/LICENSE +20 -0
  440. package/iac/node_modules/universalify/README.md +76 -0
  441. package/iac/node_modules/v8-compile-cache-lib/LICENSE +21 -0
  442. package/iac/node_modules/v8-compile-cache-lib/README.md +60 -0
  443. package/iac/node_modules/yallist/LICENSE +15 -0
  444. package/iac/node_modules/yallist/README.md +204 -0
  445. package/iac/node_modules/yaml/LICENSE +13 -0
  446. package/iac/node_modules/yaml/README.md +127 -0
  447. package/iac/node_modules/yn/license +9 -0
  448. package/iac/node_modules/yn/readme.md +83 -0
  449. package/index.d.ts +1 -0
  450. package/index.js +18 -0
  451. package/index.js.map +1 -0
  452. package/package.json +26 -5
  453. package/react/Edit.d.ts +3 -0
  454. package/react/Edit.js +10 -0
  455. package/react/Edit.js.map +1 -0
  456. package/react/index.d.ts +1 -0
  457. package/react/index.js +18 -0
  458. package/react/index.js.map +1 -0
  459. package/src/material-symbols.d.ts +4 -0
@@ -0,0 +1,1203 @@
1
+ # AWS CodePipeline Actions
2
+
3
+
4
+ This package contains Actions that can be used in a CodePipeline.
5
+
6
+ ```ts nofixture
7
+ import * as codepipeline from 'aws-cdk-lib/aws-codepipeline';
8
+ import * as codepipeline_actions from 'aws-cdk-lib/aws-codepipeline-actions';
9
+ ```
10
+
11
+ ## Sources
12
+
13
+ ### AWS CodeCommit
14
+
15
+ To use a CodeCommit Repository in a CodePipeline:
16
+
17
+ ```ts
18
+ const repo = new codecommit.Repository(this, 'Repo', {
19
+ repositoryName: 'MyRepo',
20
+ });
21
+
22
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline', {
23
+ pipelineName: 'MyPipeline',
24
+ });
25
+ const sourceOutput = new codepipeline.Artifact();
26
+ const sourceAction = new codepipeline_actions.CodeCommitSourceAction({
27
+ actionName: 'CodeCommit',
28
+ repository: repo,
29
+ output: sourceOutput,
30
+ });
31
+ pipeline.addStage({
32
+ stageName: 'Source',
33
+ actions: [sourceAction],
34
+ });
35
+ ```
36
+
37
+ If you want to use existing role which can be used by on commit event rule.
38
+ You can specify the role object in eventRole property.
39
+
40
+ ```ts
41
+ const eventRole = iam.Role.fromRoleArn(this, 'Event-role', 'roleArn');
42
+ declare const repo: codecommit.Repository;
43
+ const sourceAction = new codepipeline_actions.CodeCommitSourceAction({
44
+ actionName: 'CodeCommit',
45
+ repository: repo,
46
+ output: new codepipeline.Artifact(),
47
+ eventRole,
48
+ });
49
+ ```
50
+
51
+ If you want to clone the entire CodeCommit repository (only available for CodeBuild actions),
52
+ you can set the `codeBuildCloneOutput` property to `true`:
53
+
54
+ ```ts
55
+ declare const project: codebuild.PipelineProject;
56
+ declare const repo: codecommit.Repository;
57
+ const sourceOutput = new codepipeline.Artifact();
58
+ const sourceAction = new codepipeline_actions.CodeCommitSourceAction({
59
+ actionName: 'CodeCommit',
60
+ repository: repo,
61
+ output: sourceOutput,
62
+ codeBuildCloneOutput: true,
63
+ });
64
+
65
+ const buildAction = new codepipeline_actions.CodeBuildAction({
66
+ actionName: 'CodeBuild',
67
+ project,
68
+ input: sourceOutput, // The build action must use the CodeCommitSourceAction output as input.
69
+ outputs: [new codepipeline.Artifact()], // optional
70
+ });
71
+ ```
72
+
73
+ The CodeCommit source action emits variables:
74
+
75
+ ```ts
76
+ declare const project: codebuild.PipelineProject;
77
+ declare const repo: codecommit.Repository;
78
+ const sourceOutput = new codepipeline.Artifact();
79
+ const sourceAction = new codepipeline_actions.CodeCommitSourceAction({
80
+ actionName: 'CodeCommit',
81
+ repository: repo,
82
+ output: sourceOutput,
83
+ variablesNamespace: 'MyNamespace', // optional - by default, a name will be generated for you
84
+ });
85
+
86
+ // later:
87
+
88
+ new codepipeline_actions.CodeBuildAction({
89
+ actionName: 'CodeBuild',
90
+ project,
91
+ input: sourceOutput,
92
+ environmentVariables: {
93
+ COMMIT_ID: {
94
+ value: sourceAction.variables.commitId,
95
+ },
96
+ },
97
+ });
98
+ ```
99
+
100
+ ### GitHub
101
+
102
+ If you want to use a GitHub repository as the source, you must create:
103
+
104
+ * A [GitHub Access Token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line),
105
+ with scopes **repo** and **admin:repo_hook**.
106
+ * A [Secrets Manager Secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)
107
+ with the value of the **GitHub Access Token**. Pick whatever name you want (for example `my-github-token`).
108
+ This token can be stored either as Plaintext or as a Secret key/value.
109
+ If you stored the token as Plaintext,
110
+ set `SecretValue.secretsManager('my-github-token')` as the value of `oauthToken`.
111
+ If you stored it as a Secret key/value,
112
+ you must set `SecretValue.secretsManager('my-github-token', { jsonField : 'my-github-token' })` as the value of `oauthToken`.
113
+
114
+ To use GitHub as the source of a CodePipeline:
115
+
116
+ ```ts
117
+ // Read the secret from Secrets Manager
118
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
119
+ const sourceOutput = new codepipeline.Artifact();
120
+ const sourceAction = new codepipeline_actions.GitHubSourceAction({
121
+ actionName: 'GitHub_Source',
122
+ owner: 'awslabs',
123
+ repo: 'aws-cdk',
124
+ oauthToken: SecretValue.secretsManager('my-github-token'),
125
+ output: sourceOutput,
126
+ branch: 'develop', // default: 'master'
127
+ });
128
+ pipeline.addStage({
129
+ stageName: 'Source',
130
+ actions: [sourceAction],
131
+ });
132
+ ```
133
+
134
+ The GitHub source action emits variables:
135
+
136
+ ```ts
137
+ declare const sourceOutput: codepipeline.Artifact;
138
+ declare const project: codebuild.PipelineProject;
139
+
140
+ const sourceAction = new codepipeline_actions.GitHubSourceAction({
141
+ actionName: 'Github_Source',
142
+ output: sourceOutput,
143
+ owner: 'my-owner',
144
+ repo: 'my-repo',
145
+ oauthToken: SecretValue.secretsManager('my-github-token'),
146
+ variablesNamespace: 'MyNamespace', // optional - by default, a name will be generated for you
147
+ });
148
+
149
+ // later:
150
+
151
+ new codepipeline_actions.CodeBuildAction({
152
+ actionName: 'CodeBuild',
153
+ project,
154
+ input: sourceOutput,
155
+ environmentVariables: {
156
+ COMMIT_URL: {
157
+ value: sourceAction.variables.commitUrl,
158
+ },
159
+ },
160
+ });
161
+ ```
162
+
163
+ ### BitBucket
164
+
165
+ CodePipeline can use a BitBucket Git repository as a source:
166
+
167
+ **Note**: you have to manually connect CodePipeline through the AWS Console with your BitBucket account.
168
+ This is a one-time operation for a given AWS account in a given region.
169
+ The simplest way to do that is to either start creating a new CodePipeline,
170
+ or edit an existing one, while being logged in to BitBucket.
171
+ Choose BitBucket as the source,
172
+ and grant CodePipeline permissions to your BitBucket account.
173
+ Copy & paste the Connection ARN that you get in the console,
174
+ or use the [`codestar-connections list-connections` AWS CLI operation](https://docs.aws.amazon.com/cli/latest/reference/codestar-connections/list-connections.html)
175
+ to find it.
176
+ After that, you can safely abort creating or editing the pipeline -
177
+ the connection has already been created.
178
+
179
+ ```ts
180
+ const sourceOutput = new codepipeline.Artifact();
181
+ const sourceAction = new codepipeline_actions.CodeStarConnectionsSourceAction({
182
+ actionName: 'BitBucket_Source',
183
+ owner: 'aws',
184
+ repo: 'aws-cdk',
185
+ output: sourceOutput,
186
+ connectionArn: 'arn:aws:codestar-connections:us-east-1:123456789012:connection/12345678-abcd-12ab-34cdef5678gh',
187
+ });
188
+ ```
189
+
190
+ You can also use the `CodeStarConnectionsSourceAction` to connect to GitHub, in the same way
191
+ (you just have to select GitHub as the source when creating the connection in the console).
192
+
193
+ Similarly to `GitHubSourceAction`, `CodeStarConnectionsSourceAction` also emits the variables:
194
+
195
+ ```ts
196
+ declare const project: codebuild.Project;
197
+
198
+ const sourceOutput = new codepipeline.Artifact();
199
+ const sourceAction = new codepipeline_actions.CodeStarConnectionsSourceAction({
200
+ actionName: 'BitBucket_Source',
201
+ owner: 'aws',
202
+ repo: 'aws-cdk',
203
+ output: sourceOutput,
204
+ connectionArn: 'arn:aws:codestar-connections:us-east-1:123456789012:connection/12345678-abcd-12ab-34cdef5678gh',
205
+ variablesNamespace: 'SomeSpace', // optional - by default, a name will be generated for you
206
+ });
207
+
208
+ // later:
209
+
210
+ new codepipeline_actions.CodeBuildAction({
211
+ actionName: 'CodeBuild',
212
+ project,
213
+ input: sourceOutput,
214
+ environmentVariables: {
215
+ COMMIT_ID: {
216
+ value: sourceAction.variables.commitId,
217
+ },
218
+ },
219
+ });
220
+ ```
221
+
222
+ ### AWS S3 Source
223
+
224
+ To use an S3 Bucket as a source in CodePipeline:
225
+
226
+ ```ts
227
+ const sourceBucket = new s3.Bucket(this, 'MyBucket', {
228
+ versioned: true, // a Bucket used as a source in CodePipeline must be versioned
229
+ });
230
+
231
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
232
+ const sourceOutput = new codepipeline.Artifact();
233
+ const sourceAction = new codepipeline_actions.S3SourceAction({
234
+ actionName: 'S3Source',
235
+ bucket: sourceBucket,
236
+ bucketKey: 'path/to/file.zip',
237
+ output: sourceOutput,
238
+ });
239
+ pipeline.addStage({
240
+ stageName: 'Source',
241
+ actions: [sourceAction],
242
+ });
243
+ ```
244
+
245
+ The region of the action will be determined by the region the bucket itself is in.
246
+ When using a newly created bucket,
247
+ that region will be taken from the stack the bucket belongs to;
248
+ for an imported bucket,
249
+ you can specify the region explicitly:
250
+
251
+ ```ts
252
+ const sourceBucket = s3.Bucket.fromBucketAttributes(this, 'SourceBucket', {
253
+ bucketName: 'my-bucket',
254
+ region: 'ap-southeast-1',
255
+ });
256
+ ```
257
+
258
+ By default, the Pipeline will poll the Bucket to detect changes.
259
+ You can change that behavior to use CloudWatch Events by setting the `trigger`
260
+ property to `S3Trigger.EVENTS` (it's `S3Trigger.POLL` by default).
261
+ If you do that, make sure the source Bucket is part of an AWS CloudTrail Trail -
262
+ otherwise, the CloudWatch Events will not be emitted,
263
+ and your Pipeline will not react to changes in the Bucket.
264
+ You can do it through the CDK:
265
+
266
+ ```ts
267
+ import * as cloudtrail from 'aws-cdk-lib/aws-cloudtrail';
268
+
269
+ declare const sourceBucket: s3.Bucket;
270
+ const sourceOutput = new codepipeline.Artifact();
271
+ const key = 'some/key.zip';
272
+ const trail = new cloudtrail.Trail(this, 'CloudTrail');
273
+ trail.addS3EventSelector([{
274
+ bucket: sourceBucket,
275
+ objectPrefix: key,
276
+ }], {
277
+ readWriteType: cloudtrail.ReadWriteType.WRITE_ONLY,
278
+ });
279
+ const sourceAction = new codepipeline_actions.S3SourceAction({
280
+ actionName: 'S3Source',
281
+ bucketKey: key,
282
+ bucket: sourceBucket,
283
+ output: sourceOutput,
284
+ trigger: codepipeline_actions.S3Trigger.EVENTS, // default: S3Trigger.POLL
285
+ });
286
+ ```
287
+
288
+ The S3 source action emits variables:
289
+
290
+ ```ts
291
+ const key = 'some/key.zip';
292
+ declare const sourceBucket: s3.Bucket;
293
+ const sourceOutput = new codepipeline.Artifact();
294
+ const sourceAction = new codepipeline_actions.S3SourceAction({
295
+ actionName: 'S3Source',
296
+ bucketKey: key,
297
+ bucket: sourceBucket,
298
+ output: sourceOutput,
299
+ variablesNamespace: 'MyNamespace', // optional - by default, a name will be generated for you
300
+ });
301
+
302
+ // later:
303
+ declare const project: codebuild.PipelineProject;
304
+ new codepipeline_actions.CodeBuildAction({
305
+ actionName: 'CodeBuild',
306
+ project,
307
+ input: sourceOutput,
308
+ environmentVariables: {
309
+ VERSION_ID: {
310
+ value: sourceAction.variables.versionId,
311
+ },
312
+ },
313
+ });
314
+ ```
315
+
316
+ ### AWS ECR
317
+
318
+ To use an ECR Repository as a source in a Pipeline:
319
+
320
+ ```ts
321
+ import * as ecr from 'aws-cdk-lib/aws-ecr';
322
+
323
+ declare const ecrRepository: ecr.Repository;
324
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
325
+ const sourceOutput = new codepipeline.Artifact();
326
+ const sourceAction = new codepipeline_actions.EcrSourceAction({
327
+ actionName: 'ECR',
328
+ repository: ecrRepository,
329
+ imageTag: 'some-tag', // optional, default: 'latest'
330
+ output: sourceOutput,
331
+ });
332
+ pipeline.addStage({
333
+ stageName: 'Source',
334
+ actions: [sourceAction],
335
+ });
336
+ ```
337
+
338
+ The ECR source action emits variables:
339
+
340
+ ```ts
341
+ import * as ecr from 'aws-cdk-lib/aws-ecr';
342
+
343
+ const sourceOutput = new codepipeline.Artifact();
344
+ declare const ecrRepository: ecr.Repository;
345
+ const sourceAction = new codepipeline_actions.EcrSourceAction({
346
+ actionName: 'Source',
347
+ output: sourceOutput,
348
+ repository: ecrRepository,
349
+ variablesNamespace: 'MyNamespace', // optional - by default, a name will be generated for you
350
+ });
351
+
352
+ // later:
353
+ declare const project: codebuild.PipelineProject;
354
+ new codepipeline_actions.CodeBuildAction({
355
+ actionName: 'CodeBuild',
356
+ project,
357
+ input: sourceOutput,
358
+ environmentVariables: {
359
+ IMAGE_URI: {
360
+ value: sourceAction.variables.imageUri,
361
+ },
362
+ },
363
+ });
364
+ ```
365
+
366
+ ## Build & test
367
+
368
+ ### AWS CodeBuild
369
+
370
+ Example of a CodeBuild Project used in a Pipeline, alongside CodeCommit:
371
+
372
+ ```ts
373
+ declare const project: codebuild.PipelineProject;
374
+ const repository = new codecommit.Repository(this, 'MyRepository', {
375
+ repositoryName: 'MyRepository',
376
+ });
377
+ const project = new codebuild.PipelineProject(this, 'MyProject');
378
+
379
+ const sourceOutput = new codepipeline.Artifact();
380
+ const sourceAction = new codepipeline_actions.CodeCommitSourceAction({
381
+ actionName: 'CodeCommit',
382
+ repository,
383
+ output: sourceOutput,
384
+ });
385
+ const buildAction = new codepipeline_actions.CodeBuildAction({
386
+ actionName: 'CodeBuild',
387
+ project,
388
+ input: sourceOutput,
389
+ outputs: [new codepipeline.Artifact()], // optional
390
+ executeBatchBuild: true, // optional, defaults to false
391
+ combineBatchBuildArtifacts: true, // optional, defaults to false
392
+ });
393
+
394
+ new codepipeline.Pipeline(this, 'MyPipeline', {
395
+ stages: [
396
+ {
397
+ stageName: 'Source',
398
+ actions: [sourceAction],
399
+ },
400
+ {
401
+ stageName: 'Build',
402
+ actions: [buildAction],
403
+ },
404
+ ],
405
+ });
406
+ ```
407
+
408
+ The default category of the CodeBuild Action is `Build`;
409
+ if you want a `Test` Action instead,
410
+ override the `type` property:
411
+
412
+ ```ts
413
+ declare const project: codebuild.PipelineProject;
414
+ const sourceOutput = new codepipeline.Artifact();
415
+ const testAction = new codepipeline_actions.CodeBuildAction({
416
+ actionName: 'IntegrationTest',
417
+ project,
418
+ input: sourceOutput,
419
+ type: codepipeline_actions.CodeBuildActionType.TEST, // default is BUILD
420
+ });
421
+ ```
422
+
423
+ #### Multiple inputs and outputs
424
+
425
+ When you want to have multiple inputs and/or outputs for a Project used in a
426
+ Pipeline, instead of using the `secondarySources` and `secondaryArtifacts`
427
+ properties of the `Project` class, you need to use the `extraInputs` and
428
+ `outputs` properties of the CodeBuild CodePipeline
429
+ Actions. Example:
430
+
431
+ ```ts
432
+ declare const repository1: codecommit.Repository;
433
+ const sourceOutput1 = new codepipeline.Artifact();
434
+ const sourceAction1 = new codepipeline_actions.CodeCommitSourceAction({
435
+ actionName: 'Source1',
436
+ repository: repository1,
437
+ output: sourceOutput1,
438
+ });
439
+ declare const repository2: codecommit.Repository;
440
+ const sourceOutput2 = new codepipeline.Artifact('source2');
441
+ const sourceAction2 = new codepipeline_actions.CodeCommitSourceAction({
442
+ actionName: 'Source2',
443
+ repository: repository2,
444
+ output: sourceOutput2,
445
+ });
446
+
447
+ declare const project: codebuild.PipelineProject;
448
+ const buildAction = new codepipeline_actions.CodeBuildAction({
449
+ actionName: 'Build',
450
+ project,
451
+ input: sourceOutput1,
452
+ extraInputs: [
453
+ sourceOutput2, // this is where 'source2' comes from
454
+ ],
455
+ outputs: [
456
+ new codepipeline.Artifact('artifact1'), // for better buildspec readability - see below
457
+ new codepipeline.Artifact('artifact2'),
458
+ ],
459
+ });
460
+ ```
461
+
462
+ **Note**: when a CodeBuild Action in a Pipeline has more than one output, it
463
+ only uses the `secondary-artifacts` field of the buildspec, never the
464
+ primary output specification directly under `artifacts`. Because of that, it
465
+ pays to explicitly name all output artifacts of that Action, like we did
466
+ above, so that you know what name to use in the buildspec.
467
+
468
+ Example buildspec for the above project:
469
+
470
+ ```ts
471
+ const project = new codebuild.PipelineProject(this, 'MyProject', {
472
+ buildSpec: codebuild.BuildSpec.fromObject({
473
+ version: '0.2',
474
+ phases: {
475
+ build: {
476
+ commands: [
477
+ // By default, you're in a directory with the contents of the repository from sourceAction1.
478
+ // Use the CODEBUILD_SRC_DIR_source2 environment variable
479
+ // to get a path to the directory with the contents of the second input repository.
480
+ ],
481
+ },
482
+ },
483
+ artifacts: {
484
+ 'secondary-artifacts': {
485
+ 'artifact1': {
486
+ // primary Action output artifact,
487
+ // available as buildAction.outputArtifact
488
+ },
489
+ 'artifact2': {
490
+ // additional output artifact,
491
+ // available as buildAction.additionalOutputArtifact('artifact2')
492
+ },
493
+ },
494
+ },
495
+ }),
496
+ // ...
497
+ });
498
+ ```
499
+
500
+ #### Variables
501
+
502
+ The CodeBuild action emits variables.
503
+ Unlike many other actions, the variables are not static,
504
+ but dynamic, defined in the buildspec,
505
+ in the 'exported-variables' subsection of the 'env' section.
506
+ Example:
507
+
508
+ ```ts
509
+ const sourceOutput = new codepipeline.Artifact();
510
+ const buildAction = new codepipeline_actions.CodeBuildAction({
511
+ actionName: 'Build1',
512
+ input: sourceOutput,
513
+ project: new codebuild.PipelineProject(this, 'Project', {
514
+ buildSpec: codebuild.BuildSpec.fromObject({
515
+ version: '0.2',
516
+ env: {
517
+ 'exported-variables': [
518
+ 'MY_VAR',
519
+ ],
520
+ },
521
+ phases: {
522
+ build: {
523
+ commands: 'export MY_VAR="some value"',
524
+ },
525
+ },
526
+ }),
527
+ }),
528
+ variablesNamespace: 'MyNamespace', // optional - by default, a name will be generated for you
529
+ });
530
+
531
+ // later:
532
+ declare const project: codebuild.PipelineProject;
533
+ new codepipeline_actions.CodeBuildAction({
534
+ actionName: 'CodeBuild',
535
+ project,
536
+ input: sourceOutput,
537
+ environmentVariables: {
538
+ MyVar: {
539
+ value: buildAction.variable('MY_VAR'),
540
+ },
541
+ },
542
+ });
543
+ ```
544
+
545
+ ### Jenkins
546
+
547
+ In order to use Jenkins Actions in the Pipeline,
548
+ you first need to create a `JenkinsProvider`:
549
+
550
+ ```ts
551
+ const jenkinsProvider = new codepipeline_actions.JenkinsProvider(this, 'JenkinsProvider', {
552
+ providerName: 'MyJenkinsProvider',
553
+ serverUrl: 'http://my-jenkins.com:8080',
554
+ version: '2', // optional, default: '1'
555
+ });
556
+ ```
557
+
558
+ If you've registered a Jenkins provider in a different CDK app,
559
+ or outside the CDK (in the CodePipeline AWS Console, for example),
560
+ you can import it:
561
+
562
+ ```ts
563
+ const jenkinsProvider = codepipeline_actions.JenkinsProvider.fromJenkinsProviderAttributes(this, 'JenkinsProvider', {
564
+ providerName: 'MyJenkinsProvider',
565
+ serverUrl: 'http://my-jenkins.com:8080',
566
+ version: '2', // optional, default: '1'
567
+ });
568
+ ```
569
+
570
+ Note that a Jenkins provider
571
+ (identified by the provider name-category(build/test)-version tuple)
572
+ must always be registered in the given account, in the given AWS region,
573
+ before it can be used in CodePipeline.
574
+
575
+ With a `JenkinsProvider`,
576
+ we can create a Jenkins Action:
577
+
578
+ ```ts
579
+ declare const jenkinsProvider: codepipeline_actions.JenkinsProvider;
580
+ const buildAction = new codepipeline_actions.JenkinsAction({
581
+ actionName: 'JenkinsBuild',
582
+ jenkinsProvider: jenkinsProvider,
583
+ projectName: 'MyProject',
584
+ type: codepipeline_actions.JenkinsActionType.BUILD,
585
+ });
586
+ ```
587
+
588
+ ## Deploy
589
+
590
+ ### AWS CloudFormation
591
+
592
+ This module contains Actions that allows you to deploy to CloudFormation from AWS CodePipeline.
593
+
594
+ For example, the following code fragment defines a pipeline that automatically deploys a CloudFormation template
595
+ directly from a CodeCommit repository, with a manual approval step in between to confirm the changes:
596
+
597
+ [example Pipeline to deploy CloudFormation](test/integ.cfn-template-from-repo.lit.ts)
598
+
599
+ See [the AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline.html)
600
+ for more details about using CloudFormation in CodePipeline.
601
+
602
+ #### Actions for updating individual CloudFormation Stacks
603
+
604
+ This package contains the following CloudFormation actions:
605
+
606
+ * **CloudFormationCreateUpdateStackAction** - Deploy a CloudFormation template directly from the pipeline. The indicated stack is created,
607
+ or updated if it already exists. If the stack is in a failure state, deployment will fail (unless `replaceOnFailure`
608
+ is set to `true`, in which case it will be destroyed and recreated).
609
+ * **CloudFormationDeleteStackAction** - Delete the stack with the given name.
610
+ * **CloudFormationCreateReplaceChangeSetAction** - Prepare a change set to be applied later. You will typically use change sets if you want
611
+ to manually verify the changes that are being staged, or if you want to separate the people (or system) preparing the
612
+ changes from the people (or system) applying the changes.
613
+ * **CloudFormationExecuteChangeSetAction** - Execute a change set prepared previously.
614
+
615
+ #### Actions for deploying CloudFormation StackSets to multiple accounts
616
+
617
+ You can use CloudFormation StackSets to deploy the same CloudFormation template to multiple
618
+ accounts in a managed way. If you use AWS Organizations, StackSets can be deployed to
619
+ all accounts in a particular Organizational Unit (OU), and even automatically to new
620
+ accounts as soon as they are added to a particular OU. For more information, see
621
+ the [Working with StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)
622
+ section of the CloudFormation developer guide.
623
+
624
+ The actions available for updating StackSets are:
625
+
626
+ * **CloudFormationDeployStackSetAction** - Create or update a CloudFormation StackSet directly from the pipeline, optionally
627
+ immediately create and update Stack Instances as well.
628
+ * **CloudFormationDeployStackInstancesAction** - Update outdated Stack Instaces using the current version of the StackSet.
629
+
630
+ Here's an example of using both of these actions:
631
+
632
+ ```ts
633
+ declare const pipeline: codepipeline.Pipeline;
634
+ declare const sourceOutput: codepipeline.Artifact;
635
+
636
+ pipeline.addStage({
637
+ stageName: 'DeployStackSets',
638
+ actions: [
639
+ // First, update the StackSet itself with the newest template
640
+ new codepipeline_actions.CloudFormationDeployStackSetAction({
641
+ actionName: 'UpdateStackSet',
642
+ runOrder: 1,
643
+ stackSetName: 'MyStackSet',
644
+ template: codepipeline_actions.StackSetTemplate.fromArtifactPath(sourceOutput.atPath('template.yaml')),
645
+
646
+ // Change this to 'StackSetDeploymentModel.organizations()' if you want to deploy to OUs
647
+ deploymentModel: codepipeline_actions.StackSetDeploymentModel.selfManaged(),
648
+ // This deploys to a set of accounts
649
+ stackInstances: codepipeline_actions.StackInstances.inAccounts(['111111111111'], ['us-east-1', 'eu-west-1']),
650
+ }),
651
+
652
+ // Afterwards, update/create additional instances in other accounts
653
+ new codepipeline_actions.CloudFormationDeployStackInstancesAction({
654
+ actionName: 'AddMoreInstances',
655
+ runOrder: 2,
656
+ stackSetName: 'MyStackSet',
657
+ stackInstances: codepipeline_actions.StackInstances.inAccounts(
658
+ ['222222222222', '333333333333'],
659
+ ['us-east-1', 'eu-west-1']
660
+ ),
661
+ }),
662
+ ],
663
+ });
664
+ ```
665
+
666
+ #### Lambda deployed through CodePipeline
667
+
668
+ If you want to deploy your Lambda through CodePipeline,
669
+ and you don't use assets (for example, because your CDK code and Lambda code are separate),
670
+ you can use a special Lambda `Code` class, `CfnParametersCode`.
671
+ Note that your Lambda must be in a different Stack than your Pipeline.
672
+ The Lambda itself will be deployed, alongside the entire Stack it belongs to,
673
+ using a CloudFormation CodePipeline Action. Example:
674
+
675
+ [Example of deploying a Lambda through CodePipeline](test/integ.lambda-deployed-through-codepipeline.lit.ts)
676
+
677
+ #### Cross-account actions
678
+
679
+ If you want to update stacks in a different account,
680
+ pass the `account` property when creating the action:
681
+
682
+ ```ts
683
+ const sourceOutput = new codepipeline.Artifact();
684
+ new codepipeline_actions.CloudFormationCreateUpdateStackAction({
685
+ actionName: 'CloudFormationCreateUpdate',
686
+ stackName: 'MyStackName',
687
+ adminPermissions: true,
688
+ templatePath: sourceOutput.atPath('template.yaml'),
689
+ account: '123456789012',
690
+ });
691
+ ```
692
+
693
+ This will create a new stack, called `<PipelineStackName>-support-123456789012`, in your `App`,
694
+ that will contain the role that the pipeline will assume in account 123456789012 before executing this action.
695
+ This support stack will automatically be deployed before the stack containing the pipeline.
696
+
697
+ You can also pass a role explicitly when creating the action -
698
+ in that case, the `account` property is ignored,
699
+ and the action will operate in the same account the role belongs to:
700
+
701
+ ```ts
702
+ import { PhysicalName } from 'aws-cdk-lib';
703
+
704
+ // in stack for account 123456789012...
705
+ declare const otherAccountStack: Stack;
706
+ const actionRole = new iam.Role(otherAccountStack, 'ActionRole', {
707
+ assumedBy: new iam.AccountPrincipal('123456789012'),
708
+ // the role has to have a physical name set
709
+ roleName: PhysicalName.GENERATE_IF_NEEDED,
710
+ });
711
+
712
+ // in the pipeline stack...
713
+ const sourceOutput = new codepipeline.Artifact();
714
+ new codepipeline_actions.CloudFormationCreateUpdateStackAction({
715
+ actionName: 'CloudFormationCreateUpdate',
716
+ stackName: 'MyStackName',
717
+ adminPermissions: true,
718
+ templatePath: sourceOutput.atPath('template.yaml'),
719
+ role: actionRole, // this action will be cross-account as well
720
+ });
721
+ ```
722
+
723
+ ### AWS CodeDeploy
724
+
725
+ #### Server deployments
726
+
727
+ To use CodeDeploy for EC2/on-premise deployments in a Pipeline:
728
+
729
+ ```ts
730
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline', {
731
+ pipelineName: 'MyPipeline',
732
+ });
733
+
734
+ // add the source and build Stages to the Pipeline...
735
+ const buildOutput = new codepipeline.Artifact();
736
+ declare const deploymentGroup: codedeploy.ServerDeploymentGroup;
737
+ const deployAction = new codepipeline_actions.CodeDeployServerDeployAction({
738
+ actionName: 'CodeDeploy',
739
+ input: buildOutput,
740
+ deploymentGroup,
741
+ });
742
+ pipeline.addStage({
743
+ stageName: 'Deploy',
744
+ actions: [deployAction],
745
+ });
746
+ ```
747
+
748
+ ##### Lambda deployments
749
+
750
+ To use CodeDeploy for blue-green Lambda deployments in a Pipeline:
751
+
752
+ ```ts
753
+ const lambdaCode = lambda.Code.fromCfnParameters();
754
+ const func = new lambda.Function(this, 'Lambda', {
755
+ code: lambdaCode,
756
+ handler: 'index.handler',
757
+ runtime: lambda.Runtime.NODEJS_14_X,
758
+ });
759
+ // used to make sure each CDK synthesis produces a different Version
760
+ const version = func.currentVersion;
761
+ const alias = new lambda.Alias(this, 'LambdaAlias', {
762
+ aliasName: 'Prod',
763
+ version,
764
+ });
765
+
766
+ new codedeploy.LambdaDeploymentGroup(this, 'DeploymentGroup', {
767
+ alias,
768
+ deploymentConfig: codedeploy.LambdaDeploymentConfig.LINEAR_10PERCENT_EVERY_1MINUTE,
769
+ });
770
+ ```
771
+
772
+ Then, you need to create your Pipeline Stack,
773
+ where you will define your Pipeline,
774
+ and deploy the `lambdaStack` using a CloudFormation CodePipeline Action
775
+ (see above for a complete example).
776
+
777
+ ### ECS
778
+
779
+ CodePipeline can deploy an ECS service.
780
+ The deploy Action receives one input Artifact which contains the [image definition file]:
781
+
782
+ ```ts
783
+ import * as ecs from 'aws-cdk-lib/aws-ecs';
784
+
785
+ declare const service: ecs.FargateService;
786
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
787
+ const buildOutput = new codepipeline.Artifact();
788
+ const deployStage = pipeline.addStage({
789
+ stageName: 'Deploy',
790
+ actions: [
791
+ new codepipeline_actions.EcsDeployAction({
792
+ actionName: 'DeployAction',
793
+ service,
794
+ // if your file is called imagedefinitions.json,
795
+ // use the `input` property,
796
+ // and leave out the `imageFile` property
797
+ input: buildOutput,
798
+ // if your file name is _not_ imagedefinitions.json,
799
+ // use the `imageFile` property,
800
+ // and leave out the `input` property
801
+ imageFile: buildOutput.atPath('imageDef.json'),
802
+ deploymentTimeout: Duration.minutes(60), // optional, default is 60 minutes
803
+ }),
804
+ ],
805
+ });
806
+ ```
807
+
808
+ [image definition file]: https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-image-definitions
809
+
810
+ #### Deploying ECS applications to existing services
811
+
812
+ CodePipeline can deploy to an existing ECS service which uses the
813
+ [ECS service ARN format that contains the Cluster name](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids).
814
+ This also works if the service is in a different account and/or region than the pipeline:
815
+
816
+ ```ts
817
+ import * as ecs from 'aws-cdk-lib/aws-ecs';
818
+
819
+ const service = ecs.BaseService.fromServiceArnWithCluster(this, 'EcsService',
820
+ 'arn:aws:ecs:us-east-1:123456789012:service/myClusterName/myServiceName'
821
+ );
822
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
823
+ const buildOutput = new codepipeline.Artifact();
824
+ // add source and build stages to the pipeline as usual...
825
+ const deployStage = pipeline.addStage({
826
+ stageName: 'Deploy',
827
+ actions: [
828
+ new codepipeline_actions.EcsDeployAction({
829
+ actionName: 'DeployAction',
830
+ service: service,
831
+ input: buildOutput,
832
+ }),
833
+ ],
834
+ });
835
+ ```
836
+
837
+ When deploying across accounts, especially in a CDK Pipelines self-mutating pipeline,
838
+ it is recommended to provide the `role` property to the `EcsDeployAction`.
839
+ The Role will need to have permissions assigned to it for ECS deployment.
840
+ See [the CodePipeline documentation](https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-custom-role.html#how-to-update-role-new-services)
841
+ for the permissions needed.
842
+
843
+ #### Deploying ECS applications stored in a separate source code repository
844
+
845
+ The idiomatic CDK way of deploying an ECS application is to have your Dockerfiles and your CDK code in the same source code repository,
846
+ leveraging [Docker Assets](https://docs.aws.amazon.com/cdk/latest/guide/assets.html#assets_types_docker),
847
+ and use the [CDK Pipelines module](https://docs.aws.amazon.com/cdk/api/latest/docs/pipelines-readme.html).
848
+
849
+ However, if you want to deploy a Docker application whose source code is kept in a separate version control repository than the CDK code,
850
+ you can use the `TagParameterContainerImage` class from the ECS module.
851
+ Here's an example:
852
+
853
+ [example ECS pipeline for an application in a separate source code repository](test/integ.pipeline-ecs-separate-source.lit.ts)
854
+
855
+ ### AWS S3 Deployment
856
+
857
+ To use an S3 Bucket as a deployment target in CodePipeline:
858
+
859
+ ```ts
860
+ const sourceOutput = new codepipeline.Artifact();
861
+ const targetBucket = new s3.Bucket(this, 'MyBucket');
862
+
863
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
864
+ const deployAction = new codepipeline_actions.S3DeployAction({
865
+ actionName: 'S3Deploy',
866
+ bucket: targetBucket,
867
+ input: sourceOutput,
868
+ });
869
+ const deployStage = pipeline.addStage({
870
+ stageName: 'Deploy',
871
+ actions: [deployAction],
872
+ });
873
+ ```
874
+
875
+ #### Invalidating the CloudFront cache when deploying to S3
876
+
877
+ There is currently no native support in CodePipeline for invalidating a CloudFront cache after deployment.
878
+ One workaround is to add another build step after the deploy step,
879
+ and use the AWS CLI to invalidate the cache:
880
+
881
+ ```ts
882
+ // Create a Cloudfront Web Distribution
883
+ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
884
+ declare const distribution: cloudfront.Distribution;
885
+
886
+ // Create the build project that will invalidate the cache
887
+ const invalidateBuildProject = new codebuild.PipelineProject(this, `InvalidateProject`, {
888
+ buildSpec: codebuild.BuildSpec.fromObject({
889
+ version: '0.2',
890
+ phases: {
891
+ build: {
892
+ commands:[
893
+ 'aws cloudfront create-invalidation --distribution-id ${CLOUDFRONT_ID} --paths "/*"',
894
+ // Choose whatever files or paths you'd like, or all files as specified here
895
+ ],
896
+ },
897
+ },
898
+ }),
899
+ environmentVariables: {
900
+ CLOUDFRONT_ID: { value: distribution.distributionId },
901
+ },
902
+ });
903
+
904
+ // Add Cloudfront invalidation permissions to the project
905
+ const distributionArn = `arn:aws:cloudfront::${this.account}:distribution/${distribution.distributionId}`;
906
+ invalidateBuildProject.addToRolePolicy(new iam.PolicyStatement({
907
+ resources: [distributionArn],
908
+ actions: [
909
+ 'cloudfront:CreateInvalidation',
910
+ ],
911
+ }));
912
+
913
+ // Create the pipeline (here only the S3 deploy and Invalidate cache build)
914
+ const deployBucket = new s3.Bucket(this, 'DeployBucket');
915
+ const deployInput = new codepipeline.Artifact();
916
+ new codepipeline.Pipeline(this, 'Pipeline', {
917
+ stages: [
918
+ // ...
919
+ {
920
+ stageName: 'Deploy',
921
+ actions: [
922
+ new codepipeline_actions.S3DeployAction({
923
+ actionName: 'S3Deploy',
924
+ bucket: deployBucket,
925
+ input: deployInput,
926
+ runOrder: 1,
927
+ }),
928
+ new codepipeline_actions.CodeBuildAction({
929
+ actionName: 'InvalidateCache',
930
+ project: invalidateBuildProject,
931
+ input: deployInput,
932
+ runOrder: 2,
933
+ }),
934
+ ],
935
+ },
936
+ ],
937
+ });
938
+ ```
939
+
940
+ ### Alexa Skill
941
+
942
+ You can deploy to Alexa using CodePipeline with the following Action:
943
+
944
+ ```ts
945
+ // Read the secrets from ParameterStore
946
+ const clientId = SecretValue.secretsManager('AlexaClientId');
947
+ const clientSecret = SecretValue.secretsManager('AlexaClientSecret');
948
+ const refreshToken = SecretValue.secretsManager('AlexaRefreshToken');
949
+
950
+ // Add deploy action
951
+ const sourceOutput = new codepipeline.Artifact();
952
+ new codepipeline_actions.AlexaSkillDeployAction({
953
+ actionName: 'DeploySkill',
954
+ runOrder: 1,
955
+ input: sourceOutput,
956
+ clientId: clientId.toString(),
957
+ clientSecret: clientSecret,
958
+ refreshToken: refreshToken,
959
+ skillId: 'amzn1.ask.skill.12345678-1234-1234-1234-123456789012',
960
+ });
961
+ ```
962
+
963
+ If you need manifest overrides you can specify them as `parameterOverridesArtifact` in the action:
964
+
965
+ ```ts
966
+ // Deploy some CFN change set and store output
967
+ const executeOutput = new codepipeline.Artifact('CloudFormation');
968
+ const executeChangeSetAction = new codepipeline_actions.CloudFormationExecuteChangeSetAction({
969
+ actionName: 'ExecuteChangesTest',
970
+ runOrder: 2,
971
+ stackName: 'MyStack',
972
+ changeSetName: 'MyChangeSet',
973
+ outputFileName: 'overrides.json',
974
+ output: executeOutput,
975
+ });
976
+
977
+ // Provide CFN output as manifest overrides
978
+ const clientId = SecretValue.secretsManager('AlexaClientId');
979
+ const clientSecret = SecretValue.secretsManager('AlexaClientSecret');
980
+ const refreshToken = SecretValue.secretsManager('AlexaRefreshToken');
981
+ const sourceOutput = new codepipeline.Artifact();
982
+ new codepipeline_actions.AlexaSkillDeployAction({
983
+ actionName: 'DeploySkill',
984
+ runOrder: 1,
985
+ input: sourceOutput,
986
+ parameterOverridesArtifact: executeOutput,
987
+ clientId: clientId.toString(),
988
+ clientSecret: clientSecret,
989
+ refreshToken: refreshToken,
990
+ skillId: 'amzn1.ask.skill.12345678-1234-1234-1234-123456789012',
991
+ });
992
+ ```
993
+
994
+ ### AWS Service Catalog
995
+
996
+ You can deploy a CloudFormation template to an existing Service Catalog product with the following Action:
997
+
998
+ ```ts
999
+ const cdkBuildOutput = new codepipeline.Artifact();
1000
+ const serviceCatalogDeployAction = new codepipeline_actions.ServiceCatalogDeployActionBeta1({
1001
+ actionName: 'ServiceCatalogDeploy',
1002
+ templatePath: cdkBuildOutput.atPath("Sample.template.json"),
1003
+ productVersionName: "Version - " + Date.now.toString,
1004
+ productVersionDescription: "This is a version from the pipeline with a new description.",
1005
+ productId: "prod-XXXXXXXX",
1006
+ });
1007
+ ```
1008
+
1009
+ ## Approve & invoke
1010
+
1011
+ ### Manual approval Action
1012
+
1013
+ This package contains an Action that stops the Pipeline until someone manually clicks the approve button:
1014
+
1015
+ ```ts
1016
+ import * as sns from 'aws-cdk-lib/aws-sns';
1017
+
1018
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
1019
+ const approveStage = pipeline.addStage({ stageName: 'Approve' });
1020
+ const manualApprovalAction = new codepipeline_actions.ManualApprovalAction({
1021
+ actionName: 'Approve',
1022
+ notificationTopic: new sns.Topic(this, 'Topic'), // optional
1023
+ notifyEmails: [
1024
+ 'some_email@example.com',
1025
+ ], // optional
1026
+ additionalInformation: 'additional info', // optional
1027
+ });
1028
+ approveStage.addAction(manualApprovalAction);
1029
+ // `manualApprovalAction.notificationTopic` can be used to access the Topic
1030
+ // after the Action has been added to a Pipeline
1031
+ ```
1032
+
1033
+ If the `notificationTopic` has not been provided,
1034
+ but `notifyEmails` were,
1035
+ a new SNS Topic will be created
1036
+ (and accessible through the `notificationTopic` property of the Action).
1037
+
1038
+ If you want to grant a principal permissions to approve the changes,
1039
+ you can invoke the method `grantManualApproval` passing it a `IGrantable`:
1040
+
1041
+ ```ts
1042
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
1043
+ const approveStage = pipeline.addStage({ stageName: 'Approve' });
1044
+ const manualApprovalAction = new codepipeline_actions.ManualApprovalAction({
1045
+ actionName: 'Approve',
1046
+ });
1047
+ approveStage.addAction(manualApprovalAction);
1048
+
1049
+ const role = iam.Role.fromRoleArn(this, 'Admin', Arn.format({ service: 'iam', resource: 'role', resourceName: 'Admin' }, this));
1050
+ manualApprovalAction.grantManualApproval(role);
1051
+ ```
1052
+
1053
+ ### AWS Lambda
1054
+
1055
+ This module contains an Action that allows you to invoke a Lambda function in a Pipeline:
1056
+
1057
+ ```ts
1058
+ declare const fn: lambda.Function;
1059
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
1060
+ const lambdaAction = new codepipeline_actions.LambdaInvokeAction({
1061
+ actionName: 'Lambda',
1062
+ lambda: fn,
1063
+ });
1064
+ pipeline.addStage({
1065
+ stageName: 'Lambda',
1066
+ actions: [lambdaAction],
1067
+ });
1068
+ ```
1069
+
1070
+ The Lambda Action can have up to 5 inputs,
1071
+ and up to 5 outputs:
1072
+
1073
+ ```ts
1074
+ declare const fn: lambda.Function;
1075
+ const sourceOutput = new codepipeline.Artifact();
1076
+ const buildOutput = new codepipeline.Artifact();
1077
+ const lambdaAction = new codepipeline_actions.LambdaInvokeAction({
1078
+ actionName: 'Lambda',
1079
+ inputs: [
1080
+ sourceOutput,
1081
+ buildOutput,
1082
+ ],
1083
+ outputs: [
1084
+ new codepipeline.Artifact('Out1'),
1085
+ new codepipeline.Artifact('Out2'),
1086
+ ],
1087
+ lambda: fn,
1088
+ });
1089
+ ```
1090
+
1091
+ The Lambda Action supports custom user parameters that pipeline
1092
+ will pass to the Lambda function:
1093
+
1094
+ ```ts
1095
+ declare const fn: lambda.Function;
1096
+
1097
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
1098
+ const lambdaAction = new codepipeline_actions.LambdaInvokeAction({
1099
+ actionName: 'Lambda',
1100
+ lambda: fn,
1101
+ userParameters: {
1102
+ foo: 'bar',
1103
+ baz: 'qux',
1104
+ },
1105
+ // OR
1106
+ userParametersString: 'my-parameter-string',
1107
+ });
1108
+ ```
1109
+
1110
+ The Lambda invoke action emits variables.
1111
+ Unlike many other actions, the variables are not static,
1112
+ but dynamic, defined by the function calling the `PutJobSuccessResult`
1113
+ API with the `outputVariables` property filled with the map of variables
1114
+ Example:
1115
+
1116
+ ```ts
1117
+ const lambdaInvokeAction = new codepipeline_actions.LambdaInvokeAction({
1118
+ actionName: 'Lambda',
1119
+ lambda: new lambda.Function(this, 'Func', {
1120
+ runtime: lambda.Runtime.NODEJS_14_X,
1121
+ handler: 'index.handler',
1122
+ code: lambda.Code.fromInline(`
1123
+ const AWS = require('aws-sdk');
1124
+
1125
+ exports.handler = async function(event, context) {
1126
+ const codepipeline = new AWS.CodePipeline();
1127
+ await codepipeline.putJobSuccessResult({
1128
+ jobId: event['CodePipeline.job'].id,
1129
+ outputVariables: {
1130
+ MY_VAR: "some value",
1131
+ },
1132
+ }).promise();
1133
+ }
1134
+ `),
1135
+ }),
1136
+ variablesNamespace: 'MyNamespace', // optional - by default, a name will be generated for you
1137
+ });
1138
+
1139
+ // later:
1140
+ declare const project: codebuild.PipelineProject;
1141
+ const sourceOutput = new codepipeline.Artifact();
1142
+ new codepipeline_actions.CodeBuildAction({
1143
+ actionName: 'CodeBuild',
1144
+ project,
1145
+ input: sourceOutput,
1146
+ environmentVariables: {
1147
+ MyVar: {
1148
+ value: lambdaInvokeAction.variable('MY_VAR'),
1149
+ },
1150
+ },
1151
+ });
1152
+ ```
1153
+
1154
+ See [the AWS documentation](https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-invoke-lambda-function.html)
1155
+ on how to write a Lambda function invoked from CodePipeline.
1156
+
1157
+ ### AWS Step Functions
1158
+
1159
+ This module contains an Action that allows you to invoke a Step Function in a Pipeline:
1160
+
1161
+ ```ts
1162
+ import * as stepfunctions from 'aws-cdk-lib/aws-stepfunctions';
1163
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
1164
+ const startState = new stepfunctions.Pass(this, 'StartState');
1165
+ const simpleStateMachine = new stepfunctions.StateMachine(this, 'SimpleStateMachine', {
1166
+ definition: startState,
1167
+ });
1168
+ const stepFunctionAction = new codepipeline_actions.StepFunctionInvokeAction({
1169
+ actionName: 'Invoke',
1170
+ stateMachine: simpleStateMachine,
1171
+ stateMachineInput: codepipeline_actions.StateMachineInput.literal({ IsHelloWorldExample: true }),
1172
+ });
1173
+ pipeline.addStage({
1174
+ stageName: 'StepFunctions',
1175
+ actions: [stepFunctionAction],
1176
+ });
1177
+ ```
1178
+
1179
+ The `StateMachineInput` can be created with one of 2 static factory methods:
1180
+ `literal`, which takes an arbitrary map as its only argument, or `filePath`:
1181
+
1182
+ ```ts
1183
+ import * as stepfunctions from 'aws-cdk-lib/aws-stepfunctions';
1184
+
1185
+ const pipeline = new codepipeline.Pipeline(this, 'MyPipeline');
1186
+ const inputArtifact = new codepipeline.Artifact();
1187
+ const startState = new stepfunctions.Pass(this, 'StartState');
1188
+ const simpleStateMachine = new stepfunctions.StateMachine(this, 'SimpleStateMachine', {
1189
+ definition: startState,
1190
+ });
1191
+ const stepFunctionAction = new codepipeline_actions.StepFunctionInvokeAction({
1192
+ actionName: 'Invoke',
1193
+ stateMachine: simpleStateMachine,
1194
+ stateMachineInput: codepipeline_actions.StateMachineInput.filePath(inputArtifact.atPath('assets/input.json')),
1195
+ });
1196
+ pipeline.addStage({
1197
+ stageName: 'StepFunctions',
1198
+ actions: [stepFunctionAction],
1199
+ });
1200
+ ```
1201
+
1202
+ See [the AWS documentation](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-StepFunctions.html)
1203
+ for information on Action structure reference.