terraconstructs 0.0.8

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 (680) hide show
  1. package/.envrc +5 -0
  2. package/.jsii +79780 -0
  3. package/.mise.toml +8 -0
  4. package/.nvmrc +1 -0
  5. package/.terraform-version +1 -0
  6. package/.terraform.d/plugin-cache/.gitignore +5 -0
  7. package/LICENSE +674 -0
  8. package/NOTICE.txt +12 -0
  9. package/README.md +42 -0
  10. package/bun.lockb +0 -0
  11. package/go.mod +158 -0
  12. package/go.sum +1206 -0
  13. package/lib/aws/arn.d.ts +187 -0
  14. package/lib/aws/arn.js +383 -0
  15. package/lib/aws/aws-construct.d.ts +76 -0
  16. package/lib/aws/aws-construct.js +38 -0
  17. package/lib/aws/aws-stack.d.ts +201 -0
  18. package/lib/aws/aws-stack.js +303 -0
  19. package/lib/aws/cloudwatch/actions/ec2.d.ts +35 -0
  20. package/lib/aws/cloudwatch/actions/ec2.js +48 -0
  21. package/lib/aws/cloudwatch/actions/index.d.ts +2 -0
  22. package/lib/aws/cloudwatch/actions/index.js +24 -0
  23. package/lib/aws/cloudwatch/actions/lambda.d.ts +16 -0
  24. package/lib/aws/cloudwatch/actions/lambda.js +48 -0
  25. package/lib/aws/cloudwatch/alarm-action.d.ts +23 -0
  26. package/lib/aws/cloudwatch/alarm-action.js +4 -0
  27. package/lib/aws/cloudwatch/alarm-base.d.ts +84 -0
  28. package/lib/aws/cloudwatch/alarm-base.js +64 -0
  29. package/lib/aws/cloudwatch/alarm-rule.d.ts +61 -0
  30. package/lib/aws/cloudwatch/alarm-rule.js +116 -0
  31. package/lib/aws/cloudwatch/alarm-status-widget.d.ts +77 -0
  32. package/lib/aws/cloudwatch/alarm-status-widget.js +62 -0
  33. package/lib/aws/cloudwatch/alarm.d.ts +158 -0
  34. package/lib/aws/cloudwatch/alarm.js +410 -0
  35. package/lib/aws/cloudwatch/composite-alarm.d.ts +88 -0
  36. package/lib/aws/cloudwatch/composite-alarm.js +98 -0
  37. package/lib/aws/cloudwatch/dashboard.d.ts +137 -0
  38. package/lib/aws/cloudwatch/dashboard.js +141 -0
  39. package/lib/aws/cloudwatch/data-protection-policy.d.ts +184 -0
  40. package/lib/aws/cloudwatch/data-protection-policy.js +246 -0
  41. package/lib/aws/cloudwatch/graph.d.ts +792 -0
  42. package/lib/aws/cloudwatch/graph.js +537 -0
  43. package/lib/aws/cloudwatch/index.d.ts +26 -0
  44. package/lib/aws/cloudwatch/index.js +49 -0
  45. package/lib/aws/cloudwatch/layout.d.ts +89 -0
  46. package/lib/aws/cloudwatch/layout.js +147 -0
  47. package/lib/aws/cloudwatch/log-destinations/index.d.ts +2 -0
  48. package/lib/aws/cloudwatch/log-destinations/index.js +20 -0
  49. package/lib/aws/cloudwatch/log-destinations/kinesis.d.ts +29 -0
  50. package/lib/aws/cloudwatch/log-destinations/kinesis.js +52 -0
  51. package/lib/aws/cloudwatch/log-destinations/lambda.d.ts +22 -0
  52. package/lib/aws/cloudwatch/log-destinations/lambda.js +46 -0
  53. package/lib/aws/cloudwatch/log-group.d.ts +453 -0
  54. package/lib/aws/cloudwatch/log-group.js +350 -0
  55. package/lib/aws/cloudwatch/log-query.d.ts +91 -0
  56. package/lib/aws/cloudwatch/log-query.js +85 -0
  57. package/lib/aws/cloudwatch/log-stream.d.ts +57 -0
  58. package/lib/aws/cloudwatch/log-stream.js +57 -0
  59. package/lib/aws/cloudwatch/metric-filter.d.ts +30 -0
  60. package/lib/aws/cloudwatch/metric-filter.js +69 -0
  61. package/lib/aws/cloudwatch/metric-types.d.ts +407 -0
  62. package/lib/aws/cloudwatch/metric-types.js +151 -0
  63. package/lib/aws/cloudwatch/metric.d.ts +492 -0
  64. package/lib/aws/cloudwatch/metric.js +493 -0
  65. package/lib/aws/cloudwatch/pattern.d.ts +195 -0
  66. package/lib/aws/cloudwatch/pattern.js +412 -0
  67. package/lib/aws/cloudwatch/policy.d.ts +43 -0
  68. package/lib/aws/cloudwatch/policy.js +50 -0
  69. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +14 -0
  70. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +37 -0
  71. package/lib/aws/cloudwatch/private/env-tokens.d.ts +8 -0
  72. package/lib/aws/cloudwatch/private/env-tokens.js +48 -0
  73. package/lib/aws/cloudwatch/private/metric-util.d.ts +60 -0
  74. package/lib/aws/cloudwatch/private/metric-util.js +132 -0
  75. package/lib/aws/cloudwatch/private/object.d.ts +1 -0
  76. package/lib/aws/cloudwatch/private/object.js +18 -0
  77. package/lib/aws/cloudwatch/private/rendering.d.ts +60 -0
  78. package/lib/aws/cloudwatch/private/rendering.js +181 -0
  79. package/lib/aws/cloudwatch/private/statistic.d.ts +51 -0
  80. package/lib/aws/cloudwatch/private/statistic.js +176 -0
  81. package/lib/aws/cloudwatch/query-definition.d.ts +150 -0
  82. package/lib/aws/cloudwatch/query-definition.js +114 -0
  83. package/lib/aws/cloudwatch/stats.d.ts +150 -0
  84. package/lib/aws/cloudwatch/stats.js +207 -0
  85. package/lib/aws/cloudwatch/subscription-filter.d.ts +75 -0
  86. package/lib/aws/cloudwatch/subscription-filter.js +51 -0
  87. package/lib/aws/cloudwatch/text.d.ts +52 -0
  88. package/lib/aws/cloudwatch/text.js +53 -0
  89. package/lib/aws/cloudwatch/variable.d.ts +156 -0
  90. package/lib/aws/cloudwatch/variable.js +156 -0
  91. package/lib/aws/cloudwatch/widget.d.ts +62 -0
  92. package/lib/aws/cloudwatch/widget.js +45 -0
  93. package/lib/aws/compute/activity.d.ts +81 -0
  94. package/lib/aws/compute/activity.js +132 -0
  95. package/lib/aws/compute/architecture.d.ts +33 -0
  96. package/lib/aws/compute/architecture.js +42 -0
  97. package/lib/aws/compute/chain.d.ts +52 -0
  98. package/lib/aws/compute/chain.js +68 -0
  99. package/lib/aws/compute/condition.d.ts +202 -0
  100. package/lib/aws/compute/condition.js +409 -0
  101. package/lib/aws/compute/event-invoke-config.d.ts +74 -0
  102. package/lib/aws/compute/event-invoke-config.js +63 -0
  103. package/lib/aws/compute/event-source-filter.d.ts +64 -0
  104. package/lib/aws/compute/event-source-filter.js +86 -0
  105. package/lib/aws/compute/event-source-mapping.d.ts +310 -0
  106. package/lib/aws/compute/event-source-mapping.js +267 -0
  107. package/lib/aws/compute/event-sources/index.d.ts +4 -0
  108. package/lib/aws/compute/event-sources/index.js +28 -0
  109. package/lib/aws/compute/event-sources/s3-onfailure-destination.d.ts +13 -0
  110. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +26 -0
  111. package/lib/aws/compute/event-sources/s3.d.ts +24 -0
  112. package/lib/aws/compute/event-sources/s3.js +25 -0
  113. package/lib/aws/compute/event-sources/sqs-dlq.d.ts +13 -0
  114. package/lib/aws/compute/event-sources/sqs-dlq.js +26 -0
  115. package/lib/aws/compute/event-sources/sqs.d.ts +75 -0
  116. package/lib/aws/compute/event-sources/sqs.js +84 -0
  117. package/lib/aws/compute/fields.d.ts +367 -0
  118. package/lib/aws/compute/fields.js +546 -0
  119. package/lib/aws/compute/function-alias.d.ts +148 -0
  120. package/lib/aws/compute/function-alias.js +176 -0
  121. package/lib/aws/compute/function-base.d.ts +314 -0
  122. package/lib/aws/compute/function-base.js +421 -0
  123. package/lib/aws/compute/function-destination.d.ts +42 -0
  124. package/lib/aws/compute/function-destination.js +18 -0
  125. package/lib/aws/compute/function-destinations/event-bridge.d.ts +19 -0
  126. package/lib/aws/compute/function-destinations/event-bridge.js +46 -0
  127. package/lib/aws/compute/function-destinations/function.d.ts +34 -0
  128. package/lib/aws/compute/function-destinations/function.js +55 -0
  129. package/lib/aws/compute/function-destinations/index.d.ts +3 -0
  130. package/lib/aws/compute/function-destinations/index.js +22 -0
  131. package/lib/aws/compute/function-destinations/sqs.d.ts +14 -0
  132. package/lib/aws/compute/function-destinations/sqs.js +27 -0
  133. package/lib/aws/compute/function-nodejs.d.ts +55 -0
  134. package/lib/aws/compute/function-nodejs.js +70 -0
  135. package/lib/aws/compute/function-permission.d.ts +83 -0
  136. package/lib/aws/compute/function-permission.js +3 -0
  137. package/lib/aws/compute/function-url.d.ts +210 -0
  138. package/lib/aws/compute/function-url.js +148 -0
  139. package/lib/aws/compute/function-vpc-config.generated.d.ts +36 -0
  140. package/lib/aws/compute/function-vpc-config.generated.js +3 -0
  141. package/lib/aws/compute/function.d.ts +492 -0
  142. package/lib/aws/compute/function.js +692 -0
  143. package/lib/aws/compute/index.d.ts +42 -0
  144. package/lib/aws/compute/index.js +64 -0
  145. package/lib/aws/compute/private/intrinstics.d.ts +86 -0
  146. package/lib/aws/compute/private/intrinstics.js +220 -0
  147. package/lib/aws/compute/private/json-path.d.ts +57 -0
  148. package/lib/aws/compute/private/json-path.js +351 -0
  149. package/lib/aws/compute/private/util.d.ts +1 -0
  150. package/lib/aws/compute/private/util.js +38 -0
  151. package/lib/aws/compute/state-graph.d.ts +100 -0
  152. package/lib/aws/compute/state-graph.js +177 -0
  153. package/lib/aws/compute/state-machine-fragment.d.ts +61 -0
  154. package/lib/aws/compute/state-machine-fragment.js +56 -0
  155. package/lib/aws/compute/state-machine.d.ts +323 -0
  156. package/lib/aws/compute/state-machine.js +392 -0
  157. package/lib/aws/compute/states/choice.d.ts +94 -0
  158. package/lib/aws/compute/states/choice.js +81 -0
  159. package/lib/aws/compute/states/custom-state.d.ts +55 -0
  160. package/lib/aws/compute/states/custom-state.js +114 -0
  161. package/lib/aws/compute/states/distributed-map/item-batcher.d.ts +64 -0
  162. package/lib/aws/compute/states/distributed-map/item-batcher.js +58 -0
  163. package/lib/aws/compute/states/distributed-map/item-reader.d.ts +256 -0
  164. package/lib/aws/compute/states/distributed-map/item-reader.js +253 -0
  165. package/lib/aws/compute/states/distributed-map/result-writer.d.ts +41 -0
  166. package/lib/aws/compute/states/distributed-map/result-writer.js +66 -0
  167. package/lib/aws/compute/states/distributed-map.d.ts +153 -0
  168. package/lib/aws/compute/states/distributed-map.js +207 -0
  169. package/lib/aws/compute/states/fail.d.ts +74 -0
  170. package/lib/aws/compute/states/fail.js +83 -0
  171. package/lib/aws/compute/states/map-base.d.ts +145 -0
  172. package/lib/aws/compute/states/map-base.js +109 -0
  173. package/lib/aws/compute/states/map.d.ts +76 -0
  174. package/lib/aws/compute/states/map.js +110 -0
  175. package/lib/aws/compute/states/parallel.d.ts +113 -0
  176. package/lib/aws/compute/states/parallel.js +100 -0
  177. package/lib/aws/compute/states/pass.d.ts +122 -0
  178. package/lib/aws/compute/states/pass.js +99 -0
  179. package/lib/aws/compute/states/private/state-type.d.ts +13 -0
  180. package/lib/aws/compute/states/private/state-type.js +19 -0
  181. package/lib/aws/compute/states/state.d.ts +276 -0
  182. package/lib/aws/compute/states/state.js +482 -0
  183. package/lib/aws/compute/states/succeed.d.ts +51 -0
  184. package/lib/aws/compute/states/succeed.js +32 -0
  185. package/lib/aws/compute/states/task-base.d.ts +225 -0
  186. package/lib/aws/compute/states/task-base.js +160 -0
  187. package/lib/aws/compute/states/task.d.ts +127 -0
  188. package/lib/aws/compute/states/task.js +92 -0
  189. package/lib/aws/compute/states/wait.d.ts +78 -0
  190. package/lib/aws/compute/states/wait.js +90 -0
  191. package/lib/aws/compute/step-functions-task.d.ts +78 -0
  192. package/lib/aws/compute/step-functions-task.js +27 -0
  193. package/lib/aws/compute/task-credentials.d.ts +45 -0
  194. package/lib/aws/compute/task-credentials.js +52 -0
  195. package/lib/aws/compute/task-input.d.ts +86 -0
  196. package/lib/aws/compute/task-input.js +107 -0
  197. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.d.ts +73 -0
  198. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +69 -0
  199. package/lib/aws/compute/tasks/eventbridge/put-events.d.ts +74 -0
  200. package/lib/aws/compute/tasks/eventbridge/put-events.js +94 -0
  201. package/lib/aws/compute/tasks/http/invoke.d.ts +104 -0
  202. package/lib/aws/compute/tasks/http/invoke.js +117 -0
  203. package/lib/aws/compute/tasks/index.d.ts +7 -0
  204. package/lib/aws/compute/tasks/index.js +42 -0
  205. package/lib/aws/compute/tasks/lambda/invoke.d.ts +106 -0
  206. package/lib/aws/compute/tasks/lambda/invoke.js +125 -0
  207. package/lib/aws/compute/tasks/private/task-utils.d.ts +8 -0
  208. package/lib/aws/compute/tasks/private/task-utils.js +36 -0
  209. package/lib/aws/compute/tasks/resource-arn-suffix.d.ts +3 -0
  210. package/lib/aws/compute/tasks/resource-arn-suffix.js +25 -0
  211. package/lib/aws/compute/tasks/sqs/send-message.d.ts +62 -0
  212. package/lib/aws/compute/tasks/sqs/send-message.js +70 -0
  213. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.d.ts +36 -0
  214. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +45 -0
  215. package/lib/aws/compute/tasks/stepfunctions/start-execution.d.ts +63 -0
  216. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +123 -0
  217. package/lib/aws/compute/types.d.ts +214 -0
  218. package/lib/aws/compute/types.js +103 -0
  219. package/lib/aws/compute/util.d.ts +12 -0
  220. package/lib/aws/compute/util.js +29 -0
  221. package/lib/aws/edge/certificate.d.ts +144 -0
  222. package/lib/aws/edge/certificate.js +191 -0
  223. package/lib/aws/edge/distribution.d.ts +505 -0
  224. package/lib/aws/edge/distribution.js +444 -0
  225. package/lib/aws/edge/dns-alias-record-targets.d.ts +29 -0
  226. package/lib/aws/edge/dns-alias-record-targets.js +46 -0
  227. package/lib/aws/edge/dns-record.d.ts +536 -0
  228. package/lib/aws/edge/dns-record.js +532 -0
  229. package/lib/aws/edge/dns-zone.d.ts +169 -0
  230. package/lib/aws/edge/dns-zone.js +149 -0
  231. package/lib/aws/edge/function.d.ts +185 -0
  232. package/lib/aws/edge/function.js +141 -0
  233. package/lib/aws/edge/index.d.ts +8 -0
  234. package/lib/aws/edge/index.js +25 -0
  235. package/lib/aws/edge/key-value-store.d.ts +162 -0
  236. package/lib/aws/edge/key-value-store.js +163 -0
  237. package/lib/aws/edge/origin.d.ts +160 -0
  238. package/lib/aws/edge/origin.js +245 -0
  239. package/lib/aws/encryption/alias.d.ts +137 -0
  240. package/lib/aws/encryption/alias.js +216 -0
  241. package/lib/aws/encryption/index.d.ts +4 -0
  242. package/lib/aws/encryption/index.js +21 -0
  243. package/lib/aws/encryption/key-lookup.d.ts +11 -0
  244. package/lib/aws/encryption/key-lookup.js +4 -0
  245. package/lib/aws/encryption/key.d.ts +461 -0
  246. package/lib/aws/encryption/key.js +586 -0
  247. package/lib/aws/encryption/private/perms.d.ts +5 -0
  248. package/lib/aws/encryption/private/perms.js +30 -0
  249. package/lib/aws/encryption/via-service-principal.d.ts +11 -0
  250. package/lib/aws/encryption/via-service-principal.js +39 -0
  251. package/lib/aws/iam/grant.d.ts +221 -0
  252. package/lib/aws/iam/grant.js +239 -0
  253. package/lib/aws/iam/identity-base.d.ts +20 -0
  254. package/lib/aws/iam/identity-base.js +3 -0
  255. package/lib/aws/iam/index.d.ts +16 -0
  256. package/lib/aws/iam/index.js +34 -0
  257. package/lib/aws/iam/managed-policy.d.ts +227 -0
  258. package/lib/aws/iam/managed-policy.js +237 -0
  259. package/lib/aws/iam/oidc-provider.d.ts +120 -0
  260. package/lib/aws/iam/oidc-provider.js +82 -0
  261. package/lib/aws/iam/policy-document-config.generated.d.ts +78 -0
  262. package/lib/aws/iam/policy-document-config.generated.js +3 -0
  263. package/lib/aws/iam/policy-document.d.ts +150 -0
  264. package/lib/aws/iam/policy-document.js +172 -0
  265. package/lib/aws/iam/policy-statement-props.generated.d.ts +55 -0
  266. package/lib/aws/iam/policy-statement-props.generated.js +3 -0
  267. package/lib/aws/iam/policy-statement.d.ts +451 -0
  268. package/lib/aws/iam/policy-statement.js +947 -0
  269. package/lib/aws/iam/policy.d.ts +122 -0
  270. package/lib/aws/iam/policy.js +192 -0
  271. package/lib/aws/iam/principals.d.ts +668 -0
  272. package/lib/aws/iam/principals.js +1032 -0
  273. package/lib/aws/iam/private/adapter.d.ts +21 -0
  274. package/lib/aws/iam/private/adapter.js +51 -0
  275. package/lib/aws/iam/private/assume-role-policy.d.ts +8 -0
  276. package/lib/aws/iam/private/assume-role-policy.js +27 -0
  277. package/lib/aws/iam/private/comparable-principal.d.ts +6 -0
  278. package/lib/aws/iam/private/comparable-principal.js +20 -0
  279. package/lib/aws/iam/private/immutable-role.d.ts +43 -0
  280. package/lib/aws/iam/private/immutable-role.js +76 -0
  281. package/lib/aws/iam/private/imported-role.d.ts +49 -0
  282. package/lib/aws/iam/private/imported-role.js +103 -0
  283. package/lib/aws/iam/private/merge-statements.d.ts +44 -0
  284. package/lib/aws/iam/private/merge-statements.js +214 -0
  285. package/lib/aws/iam/private/postprocess-policy-document.d.ts +15 -0
  286. package/lib/aws/iam/private/postprocess-policy-document.js +102 -0
  287. package/lib/aws/iam/private/util.d.ts +37 -0
  288. package/lib/aws/iam/private/util.js +87 -0
  289. package/lib/aws/iam/role.d.ts +425 -0
  290. package/lib/aws/iam/role.js +407 -0
  291. package/lib/aws/iam/saml-provider.d.ts +79 -0
  292. package/lib/aws/iam/saml-provider.js +79 -0
  293. package/lib/aws/iam/unknown-principal.d.ts +32 -0
  294. package/lib/aws/iam/unknown-principal.js +45 -0
  295. package/lib/aws/iam/utils.d.ts +12 -0
  296. package/lib/aws/iam/utils.js +41 -0
  297. package/lib/aws/index.d.ts +13 -0
  298. package/lib/aws/index.js +34 -0
  299. package/lib/aws/log-retention.d.ts +97 -0
  300. package/lib/aws/log-retention.js +103 -0
  301. package/lib/aws/network/index.d.ts +4 -0
  302. package/lib/aws/network/index.js +21 -0
  303. package/lib/aws/network/network.d.ts +77 -0
  304. package/lib/aws/network/network.js +3 -0
  305. package/lib/aws/network/simple-ipv4-vpc.d.ts +84 -0
  306. package/lib/aws/network/simple-ipv4-vpc.js +236 -0
  307. package/lib/aws/network/subnet-group.d.ts +42 -0
  308. package/lib/aws/network/subnet-group.js +72 -0
  309. package/lib/aws/network/subnet.d.ts +95 -0
  310. package/lib/aws/network/subnet.js +123 -0
  311. package/lib/aws/notify/archive.d.ts +77 -0
  312. package/lib/aws/notify/archive.js +62 -0
  313. package/lib/aws/notify/connection.d.ts +276 -0
  314. package/lib/aws/notify/connection.js +261 -0
  315. package/lib/aws/notify/event-bus.d.ts +298 -0
  316. package/lib/aws/notify/event-bus.js +326 -0
  317. package/lib/aws/notify/event-pattern.d.ts +220 -0
  318. package/lib/aws/notify/event-pattern.js +197 -0
  319. package/lib/aws/notify/index.d.ts +15 -0
  320. package/lib/aws/notify/index.js +35 -0
  321. package/lib/aws/notify/input.d.ts +126 -0
  322. package/lib/aws/notify/input.js +282 -0
  323. package/lib/aws/notify/kinesis-canned-metrics.generated.d.ts +68 -0
  324. package/lib/aws/notify/kinesis-canned-metrics.generated.js +103 -0
  325. package/lib/aws/notify/kinesis-fixed-canned-metrics.d.ts +195 -0
  326. package/lib/aws/notify/kinesis-fixed-canned-metrics.js +155 -0
  327. package/lib/aws/notify/kinesis-stream.d.ts +705 -0
  328. package/lib/aws/notify/kinesis-stream.js +541 -0
  329. package/lib/aws/notify/on-event-options.d.ts +54 -0
  330. package/lib/aws/notify/on-event-options.js +3 -0
  331. package/lib/aws/notify/queue-config.generated.d.ts +85 -0
  332. package/lib/aws/notify/queue-config.generated.js +3 -0
  333. package/lib/aws/notify/queue-policy.d.ts +35 -0
  334. package/lib/aws/notify/queue-policy.js +39 -0
  335. package/lib/aws/notify/queue.d.ts +355 -0
  336. package/lib/aws/notify/queue.js +305 -0
  337. package/lib/aws/notify/resource-policy.d.ts +41 -0
  338. package/lib/aws/notify/resource-policy.js +43 -0
  339. package/lib/aws/notify/rule.d.ts +153 -0
  340. package/lib/aws/notify/rule.js +227 -0
  341. package/lib/aws/notify/schedule.d.ts +83 -0
  342. package/lib/aws/notify/schedule.js +116 -0
  343. package/lib/aws/notify/target.d.ts +102 -0
  344. package/lib/aws/notify/target.js +3 -0
  345. package/lib/aws/notify/targets/event-bus.d.ts +39 -0
  346. package/lib/aws/notify/targets/event-bus.js +40 -0
  347. package/lib/aws/notify/targets/function.d.ts +31 -0
  348. package/lib/aws/notify/targets/function.js +36 -0
  349. package/lib/aws/notify/targets/index.d.ts +6 -0
  350. package/lib/aws/notify/targets/index.js +37 -0
  351. package/lib/aws/notify/targets/log-group.d.ts +89 -0
  352. package/lib/aws/notify/targets/log-group.js +110 -0
  353. package/lib/aws/notify/targets/sqs.d.ts +45 -0
  354. package/lib/aws/notify/targets/sqs.js +73 -0
  355. package/lib/aws/notify/targets/state-machine.d.ts +36 -0
  356. package/lib/aws/notify/targets/state-machine.js +39 -0
  357. package/lib/aws/notify/targets/util.d.ts +71 -0
  358. package/lib/aws/notify/targets/util.js +130 -0
  359. package/lib/aws/notify/util.d.ts +13 -0
  360. package/lib/aws/notify/util.js +69 -0
  361. package/lib/aws/provider-config.generated.d.ts +220 -0
  362. package/lib/aws/provider-config.generated.js +3 -0
  363. package/lib/aws/storage/bucket-destination.d.ts +41 -0
  364. package/lib/aws/storage/bucket-destination.js +13 -0
  365. package/lib/aws/storage/bucket-notifications.d.ts +58 -0
  366. package/lib/aws/storage/bucket-notifications.js +169 -0
  367. package/lib/aws/storage/bucket-perms.d.ts +9 -0
  368. package/lib/aws/storage/bucket-perms.js +33 -0
  369. package/lib/aws/storage/bucket-policy.d.ts +51 -0
  370. package/lib/aws/storage/bucket-policy.js +53 -0
  371. package/lib/aws/storage/bucket-source.d.ts +41 -0
  372. package/lib/aws/storage/bucket-source.js +79 -0
  373. package/lib/aws/storage/bucket.d.ts +941 -0
  374. package/lib/aws/storage/bucket.js +869 -0
  375. package/lib/aws/storage/cors-config.generated.d.ts +57 -0
  376. package/lib/aws/storage/cors-config.generated.js +3 -0
  377. package/lib/aws/storage/cors-rule-config.generated.d.ts +38 -0
  378. package/lib/aws/storage/cors-rule-config.generated.js +3 -0
  379. package/lib/aws/storage/index.d.ts +12 -0
  380. package/lib/aws/storage/index.js +31 -0
  381. package/lib/aws/storage/lifecycle-config.generated.d.ts +55 -0
  382. package/lib/aws/storage/lifecycle-config.generated.js +3 -0
  383. package/lib/aws/storage/notification-targets/function.d.ts +11 -0
  384. package/lib/aws/storage/notification-targets/function.js +48 -0
  385. package/lib/aws/storage/notification-targets/index.d.ts +2 -0
  386. package/lib/aws/storage/notification-targets/index.js +21 -0
  387. package/lib/aws/storage/notification-targets/queue.d.ts +15 -0
  388. package/lib/aws/storage/notification-targets/queue.js +58 -0
  389. package/lib/aws/storage/origin-access-identity.d.ts +91 -0
  390. package/lib/aws/storage/origin-access-identity.js +76 -0
  391. package/lib/aws/storage/util.d.ts +40 -0
  392. package/lib/aws/storage/util.js +85 -0
  393. package/lib/aws/storage/website-config.generated.d.ts +73 -0
  394. package/lib/aws/storage/website-config.generated.js +3 -0
  395. package/lib/aws/util.d.ts +4 -0
  396. package/lib/aws/util.js +25 -0
  397. package/lib/construct-base.d.ts +69 -0
  398. package/lib/construct-base.js +89 -0
  399. package/lib/duration.d.ts +160 -0
  400. package/lib/duration.js +327 -0
  401. package/lib/index.d.ts +5 -0
  402. package/lib/index.js +24 -0
  403. package/lib/private/index.d.ts +2 -0
  404. package/lib/private/index.js +19 -0
  405. package/lib/private/terraform-dependables-aspect.d.ts +20 -0
  406. package/lib/private/terraform-dependables-aspect.js +95 -0
  407. package/lib/private/unique-resource-name.d.ts +9 -0
  408. package/lib/private/unique-resource-name.js +145 -0
  409. package/lib/size.d.ts +146 -0
  410. package/lib/size.js +220 -0
  411. package/lib/stack-base.d.ts +188 -0
  412. package/lib/stack-base.js +183 -0
  413. package/lib/token.d.ts +32 -0
  414. package/lib/token.js +54 -0
  415. package/node_modules/camel-case/LICENSE +21 -0
  416. package/node_modules/camel-case/README.md +47 -0
  417. package/node_modules/camel-case/dist/index.d.ts +5 -0
  418. package/node_modules/camel-case/dist/index.js +23 -0
  419. package/node_modules/camel-case/dist/index.js.map +1 -0
  420. package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
  421. package/node_modules/camel-case/dist/index.spec.js +26 -0
  422. package/node_modules/camel-case/dist/index.spec.js.map +1 -0
  423. package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
  424. package/node_modules/camel-case/dist.es2015/index.js +17 -0
  425. package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
  426. package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
  427. package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
  428. package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
  429. package/node_modules/camel-case/package.json +89 -0
  430. package/node_modules/capital-case/LICENSE +21 -0
  431. package/node_modules/capital-case/README.md +37 -0
  432. package/node_modules/capital-case/dist/index.d.ts +4 -0
  433. package/node_modules/capital-case/dist/index.js +16 -0
  434. package/node_modules/capital-case/dist/index.js.map +1 -0
  435. package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
  436. package/node_modules/capital-case/dist/index.spec.js +24 -0
  437. package/node_modules/capital-case/dist/index.spec.js.map +1 -0
  438. package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
  439. package/node_modules/capital-case/dist.es2015/index.js +11 -0
  440. package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
  441. package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
  442. package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
  443. package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
  444. package/node_modules/capital-case/package.json +90 -0
  445. package/node_modules/change-case/LICENSE +21 -0
  446. package/node_modules/change-case/README.md +44 -0
  447. package/node_modules/change-case/dist/index.d.ts +11 -0
  448. package/node_modules/change-case/dist/index.js +15 -0
  449. package/node_modules/change-case/dist/index.js.map +1 -0
  450. package/node_modules/change-case/dist/index.spec.d.ts +1 -0
  451. package/node_modules/change-case/dist/index.spec.js +9 -0
  452. package/node_modules/change-case/dist/index.spec.js.map +1 -0
  453. package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
  454. package/node_modules/change-case/dist.es2015/index.js +12 -0
  455. package/node_modules/change-case/dist.es2015/index.js.map +1 -0
  456. package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
  457. package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
  458. package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
  459. package/node_modules/change-case/package.json +101 -0
  460. package/node_modules/constant-case/LICENSE +21 -0
  461. package/node_modules/constant-case/README.md +37 -0
  462. package/node_modules/constant-case/dist/index.d.ts +3 -0
  463. package/node_modules/constant-case/dist/index.js +12 -0
  464. package/node_modules/constant-case/dist/index.js.map +1 -0
  465. package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
  466. package/node_modules/constant-case/dist/index.spec.js +26 -0
  467. package/node_modules/constant-case/dist/index.spec.js.map +1 -0
  468. package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
  469. package/node_modules/constant-case/dist.es2015/index.js +8 -0
  470. package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
  471. package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
  472. package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
  473. package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
  474. package/node_modules/constant-case/package.json +90 -0
  475. package/node_modules/dot-case/LICENSE +21 -0
  476. package/node_modules/dot-case/README.md +37 -0
  477. package/node_modules/dot-case/dist/index.d.ts +3 -0
  478. package/node_modules/dot-case/dist/index.js +11 -0
  479. package/node_modules/dot-case/dist/index.js.map +1 -0
  480. package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
  481. package/node_modules/dot-case/dist/index.spec.js +26 -0
  482. package/node_modules/dot-case/dist/index.spec.js.map +1 -0
  483. package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
  484. package/node_modules/dot-case/dist.es2015/index.js +7 -0
  485. package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
  486. package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
  487. package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
  488. package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
  489. package/node_modules/dot-case/package.json +89 -0
  490. package/node_modules/esbuild-wasm/LICENSE.md +21 -0
  491. package/node_modules/esbuild-wasm/README.md +3 -0
  492. package/node_modules/esbuild-wasm/bin/esbuild +91 -0
  493. package/node_modules/esbuild-wasm/esbuild.wasm +0 -0
  494. package/node_modules/esbuild-wasm/esm/browser.d.ts +705 -0
  495. package/node_modules/esbuild-wasm/esm/browser.js +2370 -0
  496. package/node_modules/esbuild-wasm/esm/browser.min.js +20 -0
  497. package/node_modules/esbuild-wasm/lib/browser.d.ts +705 -0
  498. package/node_modules/esbuild-wasm/lib/browser.js +2415 -0
  499. package/node_modules/esbuild-wasm/lib/browser.min.js +22 -0
  500. package/node_modules/esbuild-wasm/lib/main.d.ts +705 -0
  501. package/node_modules/esbuild-wasm/lib/main.js +2051 -0
  502. package/node_modules/esbuild-wasm/package.json +19 -0
  503. package/node_modules/esbuild-wasm/wasm_exec.js +561 -0
  504. package/node_modules/esbuild-wasm/wasm_exec_node.js +39 -0
  505. package/node_modules/header-case/LICENSE +21 -0
  506. package/node_modules/header-case/README.md +37 -0
  507. package/node_modules/header-case/dist/index.d.ts +3 -0
  508. package/node_modules/header-case/dist/index.js +11 -0
  509. package/node_modules/header-case/dist/index.js.map +1 -0
  510. package/node_modules/header-case/dist/index.spec.d.ts +1 -0
  511. package/node_modules/header-case/dist/index.spec.js +24 -0
  512. package/node_modules/header-case/dist/index.spec.js.map +1 -0
  513. package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
  514. package/node_modules/header-case/dist.es2015/index.js +7 -0
  515. package/node_modules/header-case/dist.es2015/index.js.map +1 -0
  516. package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
  517. package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
  518. package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
  519. package/node_modules/header-case/package.json +89 -0
  520. package/node_modules/lower-case/LICENSE +21 -0
  521. package/node_modules/lower-case/README.md +35 -0
  522. package/node_modules/lower-case/dist/index.d.ts +8 -0
  523. package/node_modules/lower-case/dist/index.js +53 -0
  524. package/node_modules/lower-case/dist/index.js.map +1 -0
  525. package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
  526. package/node_modules/lower-case/dist/index.spec.js +36 -0
  527. package/node_modules/lower-case/dist/index.spec.js.map +1 -0
  528. package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
  529. package/node_modules/lower-case/dist.es2015/index.js +48 -0
  530. package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
  531. package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
  532. package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
  533. package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
  534. package/node_modules/lower-case/package.json +87 -0
  535. package/node_modules/mime-db/HISTORY.md +507 -0
  536. package/node_modules/mime-db/LICENSE +23 -0
  537. package/node_modules/mime-db/README.md +100 -0
  538. package/node_modules/mime-db/db.json +8519 -0
  539. package/node_modules/mime-db/index.js +12 -0
  540. package/node_modules/mime-db/package.json +60 -0
  541. package/node_modules/mime-types/HISTORY.md +397 -0
  542. package/node_modules/mime-types/LICENSE +23 -0
  543. package/node_modules/mime-types/README.md +113 -0
  544. package/node_modules/mime-types/index.js +188 -0
  545. package/node_modules/mime-types/package.json +44 -0
  546. package/node_modules/no-case/LICENSE +21 -0
  547. package/node_modules/no-case/README.md +37 -0
  548. package/node_modules/no-case/dist/index.d.ts +10 -0
  549. package/node_modules/no-case/dist/index.js +35 -0
  550. package/node_modules/no-case/dist/index.js.map +1 -0
  551. package/node_modules/no-case/dist/index.spec.d.ts +1 -0
  552. package/node_modules/no-case/dist/index.spec.js +59 -0
  553. package/node_modules/no-case/dist/index.spec.js.map +1 -0
  554. package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
  555. package/node_modules/no-case/dist.es2015/index.js +31 -0
  556. package/node_modules/no-case/dist.es2015/index.js.map +1 -0
  557. package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
  558. package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
  559. package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
  560. package/node_modules/no-case/package.json +85 -0
  561. package/node_modules/param-case/LICENSE +21 -0
  562. package/node_modules/param-case/README.md +37 -0
  563. package/node_modules/param-case/dist/index.d.ts +3 -0
  564. package/node_modules/param-case/dist/index.js +11 -0
  565. package/node_modules/param-case/dist/index.js.map +1 -0
  566. package/node_modules/param-case/dist/index.spec.d.ts +1 -0
  567. package/node_modules/param-case/dist/index.spec.js +24 -0
  568. package/node_modules/param-case/dist/index.spec.js.map +1 -0
  569. package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
  570. package/node_modules/param-case/dist.es2015/index.js +7 -0
  571. package/node_modules/param-case/dist.es2015/index.js.map +1 -0
  572. package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
  573. package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
  574. package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
  575. package/node_modules/param-case/package.json +91 -0
  576. package/node_modules/pascal-case/LICENSE +21 -0
  577. package/node_modules/pascal-case/README.md +47 -0
  578. package/node_modules/pascal-case/dist/index.d.ts +5 -0
  579. package/node_modules/pascal-case/dist/index.js +24 -0
  580. package/node_modules/pascal-case/dist/index.js.map +1 -0
  581. package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
  582. package/node_modules/pascal-case/dist/index.spec.js +25 -0
  583. package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
  584. package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
  585. package/node_modules/pascal-case/dist.es2015/index.js +18 -0
  586. package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
  587. package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
  588. package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
  589. package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
  590. package/node_modules/pascal-case/package.json +90 -0
  591. package/node_modules/path-case/LICENSE +21 -0
  592. package/node_modules/path-case/README.md +37 -0
  593. package/node_modules/path-case/dist/index.d.ts +3 -0
  594. package/node_modules/path-case/dist/index.js +11 -0
  595. package/node_modules/path-case/dist/index.js.map +1 -0
  596. package/node_modules/path-case/dist/index.spec.d.ts +1 -0
  597. package/node_modules/path-case/dist/index.spec.js +24 -0
  598. package/node_modules/path-case/dist/index.spec.js.map +1 -0
  599. package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
  600. package/node_modules/path-case/dist.es2015/index.js +7 -0
  601. package/node_modules/path-case/dist.es2015/index.js.map +1 -0
  602. package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
  603. package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
  604. package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
  605. package/node_modules/path-case/package.json +88 -0
  606. package/node_modules/sentence-case/LICENSE +21 -0
  607. package/node_modules/sentence-case/README.md +37 -0
  608. package/node_modules/sentence-case/dist/index.d.ts +4 -0
  609. package/node_modules/sentence-case/dist/index.js +19 -0
  610. package/node_modules/sentence-case/dist/index.js.map +1 -0
  611. package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
  612. package/node_modules/sentence-case/dist/index.spec.js +24 -0
  613. package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
  614. package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
  615. package/node_modules/sentence-case/dist.es2015/index.js +14 -0
  616. package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
  617. package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
  618. package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
  619. package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
  620. package/node_modules/sentence-case/package.json +89 -0
  621. package/node_modules/snake-case/LICENSE +21 -0
  622. package/node_modules/snake-case/README.md +37 -0
  623. package/node_modules/snake-case/dist/index.d.ts +3 -0
  624. package/node_modules/snake-case/dist/index.js +11 -0
  625. package/node_modules/snake-case/dist/index.js.map +1 -0
  626. package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
  627. package/node_modules/snake-case/dist/index.spec.js +25 -0
  628. package/node_modules/snake-case/dist/index.spec.js.map +1 -0
  629. package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
  630. package/node_modules/snake-case/dist.es2015/index.js +7 -0
  631. package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
  632. package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
  633. package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
  634. package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
  635. package/node_modules/snake-case/package.json +90 -0
  636. package/node_modules/tslib/CopyrightNotice.txt +15 -0
  637. package/node_modules/tslib/LICENSE.txt +12 -0
  638. package/node_modules/tslib/README.md +164 -0
  639. package/node_modules/tslib/SECURITY.md +41 -0
  640. package/node_modules/tslib/modules/index.d.ts +37 -0
  641. package/node_modules/tslib/modules/index.js +68 -0
  642. package/node_modules/tslib/modules/package.json +3 -0
  643. package/node_modules/tslib/package.json +47 -0
  644. package/node_modules/tslib/tslib.d.ts +453 -0
  645. package/node_modules/tslib/tslib.es6.html +1 -0
  646. package/node_modules/tslib/tslib.es6.js +374 -0
  647. package/node_modules/tslib/tslib.es6.mjs +373 -0
  648. package/node_modules/tslib/tslib.html +1 -0
  649. package/node_modules/tslib/tslib.js +424 -0
  650. package/node_modules/upper-case/README.md +34 -0
  651. package/node_modules/upper-case/dist/index.d.ts +8 -0
  652. package/node_modules/upper-case/dist/index.js +49 -0
  653. package/node_modules/upper-case/dist/index.js.map +1 -0
  654. package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
  655. package/node_modules/upper-case/dist/index.spec.js +34 -0
  656. package/node_modules/upper-case/dist/index.spec.js.map +1 -0
  657. package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
  658. package/node_modules/upper-case/dist.es2015/index.js +44 -0
  659. package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
  660. package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
  661. package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
  662. package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
  663. package/node_modules/upper-case/package.json +86 -0
  664. package/node_modules/upper-case-first/LICENSE +21 -0
  665. package/node_modules/upper-case-first/README.md +32 -0
  666. package/node_modules/upper-case-first/dist/index.d.ts +4 -0
  667. package/node_modules/upper-case-first/dist/index.js +11 -0
  668. package/node_modules/upper-case-first/dist/index.js.map +1 -0
  669. package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
  670. package/node_modules/upper-case-first/dist/index.spec.js +20 -0
  671. package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
  672. package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
  673. package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
  674. package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
  675. package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
  676. package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
  677. package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
  678. package/node_modules/upper-case-first/package.json +87 -0
  679. package/package.json +152 -0
  680. package/setup.js +2 -0
@@ -0,0 +1,55 @@
1
+ import { Construct } from "constructs";
2
+ import { Chain } from "..";
3
+ import { State } from "./state";
4
+ import { CatchProps, IChainable, INextable, RetryProps } from "../types";
5
+ /**
6
+ * Properties for defining a custom state definition
7
+ */
8
+ export interface CustomStateProps {
9
+ /**
10
+ * Amazon States Language (JSON-based) definition of the state
11
+ *
12
+ * @see https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html
13
+ */
14
+ readonly stateJson: {
15
+ [key: string]: any;
16
+ };
17
+ }
18
+ /**
19
+ * State defined by supplying Amazon States Language (ASL) in the state machine.
20
+ *
21
+ */
22
+ export declare class CustomState extends State implements IChainable, INextable {
23
+ readonly endStates: INextable[];
24
+ /**
25
+ * Amazon States Language (JSON-based) definition of the state
26
+ */
27
+ private readonly stateJson;
28
+ constructor(scope: Construct, id: string, props: CustomStateProps);
29
+ /**
30
+ * Add retry configuration for this state
31
+ *
32
+ * This controls if and how the execution will be retried if a particular
33
+ * error occurs.
34
+ */
35
+ addRetry(props?: RetryProps): CustomState;
36
+ /**
37
+ * Add a recovery handler for this state
38
+ *
39
+ * When a particular error occurs, execution will continue at the error
40
+ * handler instead of failing the state machine execution.
41
+ */
42
+ addCatch(handler: IChainable, props?: CatchProps): CustomState;
43
+ /**
44
+ * Continue normal execution with the given state
45
+ */
46
+ next(next: IChainable): Chain;
47
+ /**
48
+ * Returns the Amazon States Language object for this state
49
+ */
50
+ toStateJson(): object;
51
+ private hasMultipleRetrySources;
52
+ private hasMultipleCatchSources;
53
+ private addMultipleRetrySourcesWarning;
54
+ private addMultipleCatchSourcesWarning;
55
+ }
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CustomState = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.160.0/packages/aws-cdk-lib/aws-stepfunctions/lib/states/custom-state.ts
7
+ const cdktf_1 = require("cdktf");
8
+ const __1 = require("..");
9
+ const state_1 = require("./state");
10
+ /**
11
+ * State defined by supplying Amazon States Language (ASL) in the state machine.
12
+ *
13
+ */
14
+ class CustomState extends state_1.State {
15
+ constructor(scope, id, props) {
16
+ super(scope, id, {});
17
+ this.endStates = [this];
18
+ this.stateJson = props.stateJson;
19
+ }
20
+ /**
21
+ * Add retry configuration for this state
22
+ *
23
+ * This controls if and how the execution will be retried if a particular
24
+ * error occurs.
25
+ */
26
+ addRetry(props = {}) {
27
+ super._addRetry(props);
28
+ return this;
29
+ }
30
+ /**
31
+ * Add a recovery handler for this state
32
+ *
33
+ * When a particular error occurs, execution will continue at the error
34
+ * handler instead of failing the state machine execution.
35
+ */
36
+ addCatch(handler, props = {}) {
37
+ super._addCatch(handler.startState, props);
38
+ return this;
39
+ }
40
+ /**
41
+ * Continue normal execution with the given state
42
+ */
43
+ next(next) {
44
+ super.makeNext(next.startState);
45
+ return __1.Chain.sequence(this, next);
46
+ }
47
+ /**
48
+ * Returns the Amazon States Language object for this state
49
+ */
50
+ toStateJson() {
51
+ const state = {
52
+ ...this.renderNextEnd(),
53
+ ...this.stateJson,
54
+ ...this.renderRetryCatch(),
55
+ };
56
+ if (this.hasMultipleRetrySources(state)) {
57
+ this.addMultipleRetrySourcesWarning();
58
+ }
59
+ if (this.hasMultipleCatchSources(state)) {
60
+ this.addMultipleCatchSourcesWarning();
61
+ }
62
+ // Retriers and Catchers can be specified directly in the stateJson or indirectly to the construct with addRetry() and addCatch().
63
+ // renderRetryCatch() only renders the indirectly supplied Retriers and Catchers, so we need to manually merge in those directly in the stateJson
64
+ if (Array.isArray(this.stateJson.Retry)) {
65
+ state.Retry = Array.isArray(state.Retry)
66
+ ? [...state.Retry, ...this.stateJson.Retry]
67
+ : [...this.stateJson.Retry];
68
+ }
69
+ if (Array.isArray(this.stateJson.Catch)) {
70
+ state.Catch = Array.isArray(state.Catch)
71
+ ? [...state.Catch, ...this.stateJson.Catch]
72
+ : [...this.stateJson.Catch];
73
+ }
74
+ return state;
75
+ }
76
+ hasMultipleRetrySources(state) {
77
+ if (!Array.isArray(state.Retry)) {
78
+ return false;
79
+ }
80
+ if (!Array.isArray(this.stateJson.Retry)) {
81
+ return false;
82
+ }
83
+ return state.Retry.length > 0 && this.stateJson.Retry.length > 0;
84
+ }
85
+ hasMultipleCatchSources(state) {
86
+ if (!Array.isArray(state.Catch)) {
87
+ return false;
88
+ }
89
+ if (!Array.isArray(this.stateJson.Catch)) {
90
+ return false;
91
+ }
92
+ return state.Catch.length > 0 && this.stateJson.Catch.length > 0;
93
+ }
94
+ addMultipleRetrySourcesWarning() {
95
+ // "@aws-cdk/aws-stepfunctions:multipleRetrySources", // TODO: CDKTF does not support acknowledgeable warnings
96
+ cdktf_1.Annotations.of(this).addWarning([
97
+ "CustomState constructs can configure state retries using the stateJson property or by using the addRetry() function.",
98
+ "When retries are configured using both of these, the state definition's Retry field is generated ",
99
+ "by first rendering retries from addRetry(), then rendering retries from the stateJson.",
100
+ ].join("\n"));
101
+ }
102
+ addMultipleCatchSourcesWarning() {
103
+ // "@aws-cdk/aws-stepfunctions:multipleCatchSources", // TODO: CDKTF does not support acknowledgeable warnings
104
+ cdktf_1.Annotations.of(this).addWarning([
105
+ "CustomState constructs can configure state catchers using the stateJson property or by using the addCatch() function.",
106
+ "When catchers are configured using both of these, the state definition's Catch field is generated ",
107
+ "by first rendering catchers from addCatch(), then rendering catchers from the stateJson.",
108
+ ].join("\n"));
109
+ }
110
+ }
111
+ exports.CustomState = CustomState;
112
+ _a = JSII_RTTI_SYMBOL_1;
113
+ CustomState[_a] = { fqn: "terraconstructs.aws.compute.CustomState", version: "0.0.8" };
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3N0YXRlcy9jdXN0b20tc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpSEFBaUg7QUFFakgsaUNBQW9DO0FBRXBDLDBCQUEyQjtBQUMzQixtQ0FBZ0M7QUFlaEM7OztHQUdHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsYUFBSztJQVFwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLFFBQW9CLEVBQUU7UUFDcEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBQyxPQUFtQixFQUFFLFFBQW9CLEVBQUU7UUFDekQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSSxDQUFDLElBQWdCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sU0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNoQixNQUFNLEtBQUssR0FBRztZQUNaLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixHQUFHLElBQUksQ0FBQyxTQUFTO1lBQ2pCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1NBQzNCLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFFRCxrSUFBa0k7UUFDbEksaUpBQWlKO1FBQ2pKLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2dCQUMzQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQVU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQVU7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVPLDhCQUE4QjtRQUNwQyw4R0FBOEc7UUFDOUcsbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUM3QjtZQUNFLHNIQUFzSDtZQUN0SCxtR0FBbUc7WUFDbkcsd0ZBQXdGO1NBQ3pGLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNiLENBQUM7SUFDSixDQUFDO0lBRU8sOEJBQThCO1FBQ3BDLDhHQUE4RztRQUM5RyxtQkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQzdCO1lBQ0UsdUhBQXVIO1lBQ3ZILG9HQUFvRztZQUNwRywwRkFBMEY7U0FDM0YsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ2IsQ0FBQztJQUNKLENBQUM7O0FBNUhILGtDQTZIQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE2MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zL2xpYi9zdGF0ZXMvY3VzdG9tLXN0YXRlLnRzXG5cbmltcG9ydCB7IEFubm90YXRpb25zIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQ2hhaW4gfSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSBcIi4vc3RhdGVcIjtcbmltcG9ydCB7IENhdGNoUHJvcHMsIElDaGFpbmFibGUsIElOZXh0YWJsZSwgUmV0cnlQcm9wcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgY3VzdG9tIHN0YXRlIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21TdGF0ZVByb3BzIHtcbiAgLyoqXG4gICAqIEFtYXpvbiBTdGF0ZXMgTGFuZ3VhZ2UgKEpTT04tYmFzZWQpIGRlZmluaXRpb24gb2YgdGhlIHN0YXRlXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9jb25jZXB0cy1hbWF6b24tc3RhdGVzLWxhbmd1YWdlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlSnNvbjogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBTdGF0ZSBkZWZpbmVkIGJ5IHN1cHBseWluZyBBbWF6b24gU3RhdGVzIExhbmd1YWdlIChBU0wpIGluIHRoZSBzdGF0ZSBtYWNoaW5lLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbVN0YXRlIGV4dGVuZHMgU3RhdGUgaW1wbGVtZW50cyBJQ2hhaW5hYmxlLCBJTmV4dGFibGUge1xuICBwdWJsaWMgcmVhZG9ubHkgZW5kU3RhdGVzOiBJTmV4dGFibGVbXTtcblxuICAvKipcbiAgICogQW1hem9uIFN0YXRlcyBMYW5ndWFnZSAoSlNPTi1iYXNlZCkgZGVmaW5pdGlvbiBvZiB0aGUgc3RhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGVKc29uOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDdXN0b21TdGF0ZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7fSk7XG5cbiAgICB0aGlzLmVuZFN0YXRlcyA9IFt0aGlzXTtcbiAgICB0aGlzLnN0YXRlSnNvbiA9IHByb3BzLnN0YXRlSnNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgcmV0cnkgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBzdGF0ZVxuICAgKlxuICAgKiBUaGlzIGNvbnRyb2xzIGlmIGFuZCBob3cgdGhlIGV4ZWN1dGlvbiB3aWxsIGJlIHJldHJpZWQgaWYgYSBwYXJ0aWN1bGFyXG4gICAqIGVycm9yIG9jY3Vycy5cbiAgICovXG4gIHB1YmxpYyBhZGRSZXRyeShwcm9wczogUmV0cnlQcm9wcyA9IHt9KTogQ3VzdG9tU3RhdGUge1xuICAgIHN1cGVyLl9hZGRSZXRyeShwcm9wcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgcmVjb3ZlcnkgaGFuZGxlciBmb3IgdGhpcyBzdGF0ZVxuICAgKlxuICAgKiBXaGVuIGEgcGFydGljdWxhciBlcnJvciBvY2N1cnMsIGV4ZWN1dGlvbiB3aWxsIGNvbnRpbnVlIGF0IHRoZSBlcnJvclxuICAgKiBoYW5kbGVyIGluc3RlYWQgb2YgZmFpbGluZyB0aGUgc3RhdGUgbWFjaGluZSBleGVjdXRpb24uXG4gICAqL1xuICBwdWJsaWMgYWRkQ2F0Y2goaGFuZGxlcjogSUNoYWluYWJsZSwgcHJvcHM6IENhdGNoUHJvcHMgPSB7fSk6IEN1c3RvbVN0YXRlIHtcbiAgICBzdXBlci5fYWRkQ2F0Y2goaGFuZGxlci5zdGFydFN0YXRlLCBwcm9wcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ29udGludWUgbm9ybWFsIGV4ZWN1dGlvbiB3aXRoIHRoZSBnaXZlbiBzdGF0ZVxuICAgKi9cbiAgcHVibGljIG5leHQobmV4dDogSUNoYWluYWJsZSk6IENoYWluIHtcbiAgICBzdXBlci5tYWtlTmV4dChuZXh0LnN0YXJ0U3RhdGUpO1xuICAgIHJldHVybiBDaGFpbi5zZXF1ZW5jZSh0aGlzLCBuZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBBbWF6b24gU3RhdGVzIExhbmd1YWdlIG9iamVjdCBmb3IgdGhpcyBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHRvU3RhdGVKc29uKCk6IG9iamVjdCB7XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAuLi50aGlzLnJlbmRlck5leHRFbmQoKSxcbiAgICAgIC4uLnRoaXMuc3RhdGVKc29uLFxuICAgICAgLi4udGhpcy5yZW5kZXJSZXRyeUNhdGNoKCksXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmhhc011bHRpcGxlUmV0cnlTb3VyY2VzKHN0YXRlKSkge1xuICAgICAgdGhpcy5hZGRNdWx0aXBsZVJldHJ5U291cmNlc1dhcm5pbmcoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNNdWx0aXBsZUNhdGNoU291cmNlcyhzdGF0ZSkpIHtcbiAgICAgIHRoaXMuYWRkTXVsdGlwbGVDYXRjaFNvdXJjZXNXYXJuaW5nKCk7XG4gICAgfVxuXG4gICAgLy8gUmV0cmllcnMgYW5kIENhdGNoZXJzIGNhbiBiZSBzcGVjaWZpZWQgZGlyZWN0bHkgaW4gdGhlIHN0YXRlSnNvbiBvciBpbmRpcmVjdGx5IHRvIHRoZSBjb25zdHJ1Y3Qgd2l0aCBhZGRSZXRyeSgpIGFuZCBhZGRDYXRjaCgpLlxuICAgIC8vIHJlbmRlclJldHJ5Q2F0Y2goKSBvbmx5IHJlbmRlcnMgdGhlIGluZGlyZWN0bHkgc3VwcGxpZWQgUmV0cmllcnMgYW5kIENhdGNoZXJzLCBzbyB3ZSBuZWVkIHRvIG1hbnVhbGx5IG1lcmdlIGluIHRob3NlIGRpcmVjdGx5IGluIHRoZSBzdGF0ZUpzb25cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnN0YXRlSnNvbi5SZXRyeSkpIHtcbiAgICAgIHN0YXRlLlJldHJ5ID0gQXJyYXkuaXNBcnJheShzdGF0ZS5SZXRyeSlcbiAgICAgICAgPyBbLi4uc3RhdGUuUmV0cnksIC4uLnRoaXMuc3RhdGVKc29uLlJldHJ5XVxuICAgICAgICA6IFsuLi50aGlzLnN0YXRlSnNvbi5SZXRyeV07XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5zdGF0ZUpzb24uQ2F0Y2gpKSB7XG4gICAgICBzdGF0ZS5DYXRjaCA9IEFycmF5LmlzQXJyYXkoc3RhdGUuQ2F0Y2gpXG4gICAgICAgID8gWy4uLnN0YXRlLkNhdGNoLCAuLi50aGlzLnN0YXRlSnNvbi5DYXRjaF1cbiAgICAgICAgOiBbLi4udGhpcy5zdGF0ZUpzb24uQ2F0Y2hdO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzTXVsdGlwbGVSZXRyeVNvdXJjZXMoc3RhdGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShzdGF0ZS5SZXRyeSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5zdGF0ZUpzb24uUmV0cnkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlLlJldHJ5Lmxlbmd0aCA+IDAgJiYgdGhpcy5zdGF0ZUpzb24uUmV0cnkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzTXVsdGlwbGVDYXRjaFNvdXJjZXMoc3RhdGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShzdGF0ZS5DYXRjaCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5zdGF0ZUpzb24uQ2F0Y2gpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlLkNhdGNoLmxlbmd0aCA+IDAgJiYgdGhpcy5zdGF0ZUpzb24uQ2F0Y2gubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTXVsdGlwbGVSZXRyeVNvdXJjZXNXYXJuaW5nKCk6IHZvaWQge1xuICAgIC8vIFwiQGF3cy1jZGsvYXdzLXN0ZXBmdW5jdGlvbnM6bXVsdGlwbGVSZXRyeVNvdXJjZXNcIiwgLy8gVE9ETzogQ0RLVEYgZG9lcyBub3Qgc3VwcG9ydCBhY2tub3dsZWRnZWFibGUgd2FybmluZ3NcbiAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKFxuICAgICAgW1xuICAgICAgICBcIkN1c3RvbVN0YXRlIGNvbnN0cnVjdHMgY2FuIGNvbmZpZ3VyZSBzdGF0ZSByZXRyaWVzIHVzaW5nIHRoZSBzdGF0ZUpzb24gcHJvcGVydHkgb3IgYnkgdXNpbmcgdGhlIGFkZFJldHJ5KCkgZnVuY3Rpb24uXCIsXG4gICAgICAgIFwiV2hlbiByZXRyaWVzIGFyZSBjb25maWd1cmVkIHVzaW5nIGJvdGggb2YgdGhlc2UsIHRoZSBzdGF0ZSBkZWZpbml0aW9uJ3MgUmV0cnkgZmllbGQgaXMgZ2VuZXJhdGVkIFwiLFxuICAgICAgICBcImJ5IGZpcnN0IHJlbmRlcmluZyByZXRyaWVzIGZyb20gYWRkUmV0cnkoKSwgdGhlbiByZW5kZXJpbmcgcmV0cmllcyBmcm9tIHRoZSBzdGF0ZUpzb24uXCIsXG4gICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTXVsdGlwbGVDYXRjaFNvdXJjZXNXYXJuaW5nKCk6IHZvaWQge1xuICAgIC8vIFwiQGF3cy1jZGsvYXdzLXN0ZXBmdW5jdGlvbnM6bXVsdGlwbGVDYXRjaFNvdXJjZXNcIiwgLy8gVE9ETzogQ0RLVEYgZG9lcyBub3Qgc3VwcG9ydCBhY2tub3dsZWRnZWFibGUgd2FybmluZ3NcbiAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKFxuICAgICAgW1xuICAgICAgICBcIkN1c3RvbVN0YXRlIGNvbnN0cnVjdHMgY2FuIGNvbmZpZ3VyZSBzdGF0ZSBjYXRjaGVycyB1c2luZyB0aGUgc3RhdGVKc29uIHByb3BlcnR5IG9yIGJ5IHVzaW5nIHRoZSBhZGRDYXRjaCgpIGZ1bmN0aW9uLlwiLFxuICAgICAgICBcIldoZW4gY2F0Y2hlcnMgYXJlIGNvbmZpZ3VyZWQgdXNpbmcgYm90aCBvZiB0aGVzZSwgdGhlIHN0YXRlIGRlZmluaXRpb24ncyBDYXRjaCBmaWVsZCBpcyBnZW5lcmF0ZWQgXCIsXG4gICAgICAgIFwiYnkgZmlyc3QgcmVuZGVyaW5nIGNhdGNoZXJzIGZyb20gYWRkQ2F0Y2goKSwgdGhlbiByZW5kZXJpbmcgY2F0Y2hlcnMgZnJvbSB0aGUgc3RhdGVKc29uLlwiLFxuICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Interface for ItemBatcher configuration properties
3
+ */
4
+ export interface ItemBatcherProps {
5
+ /**
6
+ * MaxItemsPerBatch
7
+ *
8
+ * Specifies the maximum number of items that each child workflow execution processes, as static number
9
+ *
10
+ * @default - uses value of `maxItemsPerBatchPath` as the max items per batch,
11
+ * no limits on the number of items in a batch under the 256KB limit if that property was also not provided
12
+ */
13
+ readonly maxItemsPerBatch?: number;
14
+ /**
15
+ * MaxItemsPerBatchPath
16
+ *
17
+ * Specifies the maximum number of items that each child workflow execution processes, as JsonPath
18
+ *
19
+ * @default - uses value of `maxItemsPerBatch` as the max items per batch,
20
+ * no limits on the number of items in a batch under the 256KB limit if that property was also not provided
21
+ */
22
+ readonly maxItemsPerBatchPath?: string;
23
+ /**
24
+ * MaxInputBytesPerBatch
25
+ *
26
+ * Specifies the maximum number of bytes that each child workflow execution processes, as static number
27
+ *
28
+ * @default - uses value of `maxInputBytesPerBatchPath` as the max size per batch,
29
+ * no limits on the batch size under the 256KB limit if that property was also not provided
30
+ */
31
+ readonly maxInputBytesPerBatch?: number;
32
+ /**
33
+ * MaxInputBytesPerBatchPath
34
+ *
35
+ * Specifies the maximum number of bytes that each child workflow execution processes, as JsonPath
36
+ *
37
+ * @default - uses value of `maxInputBytesPerBatch` as the max size per batch,
38
+ * no limits on the batch size under the 256KB limit if that property was also not provided
39
+ */
40
+ readonly maxInputBytesPerBatchPath?: string;
41
+ /**
42
+ * BatchInput
43
+ *
44
+ * Fixed JSON input to include in each batch passed to each child workflow execution
45
+ *
46
+ * @default - No batchInput
47
+ */
48
+ readonly batchInput?: object;
49
+ }
50
+ /**
51
+ * Configuration for processing a group of items in a single child workflow execution
52
+ */
53
+ export declare class ItemBatcher {
54
+ private props;
55
+ constructor(props: ItemBatcherProps);
56
+ /**
57
+ * Render ItemBatcher in ASL JSON format
58
+ */
59
+ render(): any;
60
+ /**
61
+ * Validate this ItemBatcher
62
+ */
63
+ validateItemBatcher(): string[];
64
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ItemBatcher = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Configuration for processing a group of items in a single child workflow execution
8
+ */
9
+ class ItemBatcher {
10
+ constructor(props) {
11
+ this.props = props;
12
+ }
13
+ /**
14
+ * Render ItemBatcher in ASL JSON format
15
+ */
16
+ render() {
17
+ return {
18
+ ...(this.props.maxItemsPerBatch && {
19
+ MaxItemsPerBatch: this.props.maxItemsPerBatch,
20
+ }),
21
+ ...(this.props.maxItemsPerBatchPath && {
22
+ MaxItemsPerBatchPath: this.props.maxItemsPerBatchPath,
23
+ }),
24
+ ...(this.props.maxInputBytesPerBatch && {
25
+ MaxInputBytesPerBatch: this.props.maxInputBytesPerBatch,
26
+ }),
27
+ ...(this.props.maxInputBytesPerBatchPath && {
28
+ MaxInputBytesPerBatchPath: this.props.maxInputBytesPerBatchPath,
29
+ }),
30
+ ...(this.props.batchInput && { BatchInput: this.props.batchInput }),
31
+ };
32
+ }
33
+ /**
34
+ * Validate this ItemBatcher
35
+ */
36
+ validateItemBatcher() {
37
+ const errors = [];
38
+ if (this.props.maxItemsPerBatch && this.props.maxItemsPerBatchPath) {
39
+ errors.push("Provide either `maxItemsPerBatch` or `maxItemsPerBatchPath`, but not both");
40
+ }
41
+ if (this.props.maxInputBytesPerBatch &&
42
+ this.props.maxInputBytesPerBatchPath) {
43
+ errors.push("Provide either `maxInputBytesPerBatch` or `maxInputBytesPerBatchPath`, but not both");
44
+ }
45
+ if (!this.props.maxItemsPerBatch &&
46
+ !this.props.maxItemsPerBatchPath &&
47
+ !this.props.maxInputBytesPerBatch &&
48
+ !this.props.maxInputBytesPerBatchPath &&
49
+ !this.props.batchInput) {
50
+ errors.push("Provide at least one value to the ItemBatcher");
51
+ }
52
+ return errors;
53
+ }
54
+ }
55
+ exports.ItemBatcher = ItemBatcher;
56
+ _a = JSII_RTTI_SYMBOL_1;
57
+ ItemBatcher[_a] = { fqn: "terraconstructs.aws.compute.ItemBatcher", version: "0.0.8" };
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1iYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3N0YXRlcy9kaXN0cmlidXRlZC1tYXAvaXRlbS1iYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBd0RBOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBR3RCLFlBQVksS0FBdUI7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE9BQU87WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSTtnQkFDakMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7YUFDOUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJO2dCQUNyQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQjthQUN0RCxDQUFDO1lBQ0YsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLElBQUk7Z0JBQ3RDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCO2FBQ3hELENBQUM7WUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsSUFBSTtnQkFDMUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUI7YUFDaEUsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3BFLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUI7UUFDeEIsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDbkUsTUFBTSxDQUFDLElBQUksQ0FDVCwyRUFBMkUsQ0FDNUUsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQ3BDLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUNULHFGQUFxRixDQUN0RixDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtZQUM1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CO1lBQ2hDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUI7WUFDakMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QjtZQUNyQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUN0QixDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztBQTNESCxrQ0E0REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNjAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy9saWIvc3RhdGVzL2l0ZW0tYmF0Y2hlci50c1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgSXRlbUJhdGNoZXIgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUJhdGNoZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBNYXhJdGVtc1BlckJhdGNoXG4gICAqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCBlYWNoIGNoaWxkIHdvcmtmbG93IGV4ZWN1dGlvbiBwcm9jZXNzZXMsIGFzIHN0YXRpYyBudW1iZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2VzIHZhbHVlIG9mIGBtYXhJdGVtc1BlckJhdGNoUGF0aGAgYXMgdGhlIG1heCBpdGVtcyBwZXIgYmF0Y2gsXG4gICAqICAgbm8gbGltaXRzIG9uIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gYSBiYXRjaCB1bmRlciB0aGUgMjU2S0IgbGltaXQgaWYgdGhhdCBwcm9wZXJ0eSB3YXMgYWxzbyBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IG1heEl0ZW1zUGVyQmF0Y2g/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heEl0ZW1zUGVyQmF0Y2hQYXRoXG4gICAqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdGhhdCBlYWNoIGNoaWxkIHdvcmtmbG93IGV4ZWN1dGlvbiBwcm9jZXNzZXMsIGFzIEpzb25QYXRoXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlcyB2YWx1ZSBvZiBgbWF4SXRlbXNQZXJCYXRjaGAgYXMgdGhlIG1heCBpdGVtcyBwZXIgYmF0Y2gsXG4gICAqICAgbm8gbGltaXRzIG9uIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gYSBiYXRjaCB1bmRlciB0aGUgMjU2S0IgbGltaXQgaWYgdGhhdCBwcm9wZXJ0eSB3YXMgYWxzbyBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IG1heEl0ZW1zUGVyQmF0Y2hQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXhJbnB1dEJ5dGVzUGVyQmF0Y2hcbiAgICpcbiAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyB0aGF0IGVhY2ggY2hpbGQgd29ya2Zsb3cgZXhlY3V0aW9uIHByb2Nlc3NlcywgYXMgc3RhdGljIG51bWJlclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgdmFsdWUgb2YgYG1heElucHV0Qnl0ZXNQZXJCYXRjaFBhdGhgIGFzIHRoZSBtYXggc2l6ZSBwZXIgYmF0Y2gsXG4gICAqICAgbm8gbGltaXRzIG9uIHRoZSBiYXRjaCBzaXplIHVuZGVyIHRoZSAyNTZLQiBsaW1pdCBpZiB0aGF0IHByb3BlcnR5IHdhcyBhbHNvIG5vdCBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4SW5wdXRCeXRlc1BlckJhdGNoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhJbnB1dEJ5dGVzUGVyQmF0Y2hQYXRoXG4gICAqXG4gICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBlYWNoIGNoaWxkIHdvcmtmbG93IGV4ZWN1dGlvbiBwcm9jZXNzZXMsIGFzIEpzb25QYXRoXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlcyB2YWx1ZSBvZiBgbWF4SW5wdXRCeXRlc1BlckJhdGNoYCBhcyB0aGUgbWF4IHNpemUgcGVyIGJhdGNoLFxuICAgKiAgIG5vIGxpbWl0cyBvbiB0aGUgYmF0Y2ggc2l6ZSB1bmRlciB0aGUgMjU2S0IgbGltaXQgaWYgdGhhdCBwcm9wZXJ0eSB3YXMgYWxzbyBub3QgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IG1heElucHV0Qnl0ZXNQZXJCYXRjaFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJhdGNoSW5wdXRcbiAgICpcbiAgICogRml4ZWQgSlNPTiBpbnB1dCB0byBpbmNsdWRlIGluIGVhY2ggYmF0Y2ggcGFzc2VkIHRvIGVhY2ggY2hpbGQgd29ya2Zsb3cgZXhlY3V0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYmF0Y2hJbnB1dFxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hJbnB1dD86IG9iamVjdDtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBwcm9jZXNzaW5nIGEgZ3JvdXAgb2YgaXRlbXMgaW4gYSBzaW5nbGUgY2hpbGQgd29ya2Zsb3cgZXhlY3V0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBJdGVtQmF0Y2hlciB7XG4gIHByaXZhdGUgcHJvcHM6IEl0ZW1CYXRjaGVyUHJvcHM7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEl0ZW1CYXRjaGVyUHJvcHMpIHtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIEl0ZW1CYXRjaGVyIGluIEFTTCBKU09OIGZvcm1hdFxuICAgKi9cbiAgcHVibGljIHJlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi4odGhpcy5wcm9wcy5tYXhJdGVtc1BlckJhdGNoICYmIHtcbiAgICAgICAgTWF4SXRlbXNQZXJCYXRjaDogdGhpcy5wcm9wcy5tYXhJdGVtc1BlckJhdGNoLFxuICAgICAgfSksXG4gICAgICAuLi4odGhpcy5wcm9wcy5tYXhJdGVtc1BlckJhdGNoUGF0aCAmJiB7XG4gICAgICAgIE1heEl0ZW1zUGVyQmF0Y2hQYXRoOiB0aGlzLnByb3BzLm1heEl0ZW1zUGVyQmF0Y2hQYXRoLFxuICAgICAgfSksXG4gICAgICAuLi4odGhpcy5wcm9wcy5tYXhJbnB1dEJ5dGVzUGVyQmF0Y2ggJiYge1xuICAgICAgICBNYXhJbnB1dEJ5dGVzUGVyQmF0Y2g6IHRoaXMucHJvcHMubWF4SW5wdXRCeXRlc1BlckJhdGNoLFxuICAgICAgfSksXG4gICAgICAuLi4odGhpcy5wcm9wcy5tYXhJbnB1dEJ5dGVzUGVyQmF0Y2hQYXRoICYmIHtcbiAgICAgICAgTWF4SW5wdXRCeXRlc1BlckJhdGNoUGF0aDogdGhpcy5wcm9wcy5tYXhJbnB1dEJ5dGVzUGVyQmF0Y2hQYXRoLFxuICAgICAgfSksXG4gICAgICAuLi4odGhpcy5wcm9wcy5iYXRjaElucHV0ICYmIHsgQmF0Y2hJbnB1dDogdGhpcy5wcm9wcy5iYXRjaElucHV0IH0pLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhpcyBJdGVtQmF0Y2hlclxuICAgKi9cbiAgcHVibGljIHZhbGlkYXRlSXRlbUJhdGNoZXIoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5wcm9wcy5tYXhJdGVtc1BlckJhdGNoICYmIHRoaXMucHJvcHMubWF4SXRlbXNQZXJCYXRjaFBhdGgpIHtcbiAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICBcIlByb3ZpZGUgZWl0aGVyIGBtYXhJdGVtc1BlckJhdGNoYCBvciBgbWF4SXRlbXNQZXJCYXRjaFBhdGhgLCBidXQgbm90IGJvdGhcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5wcm9wcy5tYXhJbnB1dEJ5dGVzUGVyQmF0Y2ggJiZcbiAgICAgIHRoaXMucHJvcHMubWF4SW5wdXRCeXRlc1BlckJhdGNoUGF0aFxuICAgICkge1xuICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgIFwiUHJvdmlkZSBlaXRoZXIgYG1heElucHV0Qnl0ZXNQZXJCYXRjaGAgb3IgYG1heElucHV0Qnl0ZXNQZXJCYXRjaFBhdGhgLCBidXQgbm90IGJvdGhcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgIXRoaXMucHJvcHMubWF4SXRlbXNQZXJCYXRjaCAmJlxuICAgICAgIXRoaXMucHJvcHMubWF4SXRlbXNQZXJCYXRjaFBhdGggJiZcbiAgICAgICF0aGlzLnByb3BzLm1heElucHV0Qnl0ZXNQZXJCYXRjaCAmJlxuICAgICAgIXRoaXMucHJvcHMubWF4SW5wdXRCeXRlc1BlckJhdGNoUGF0aCAmJlxuICAgICAgIXRoaXMucHJvcHMuYmF0Y2hJbnB1dFxuICAgICkge1xuICAgICAgZXJyb3JzLnB1c2goXCJQcm92aWRlIGF0IGxlYXN0IG9uZSB2YWx1ZSB0byB0aGUgSXRlbUJhdGNoZXJcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfVxufVxuIl19
@@ -0,0 +1,256 @@
1
+ import { Construct } from "constructs";
2
+ import * as iam from "../../../iam";
3
+ import { IBucket } from "../../../storage";
4
+ /**
5
+ * Base interface for Item Reader configurations
6
+ */
7
+ export interface IItemReader {
8
+ /**
9
+ * S3 Bucket containing objects to iterate over or a file with a list to iterate over
10
+ */
11
+ readonly bucket?: IBucket;
12
+ /**
13
+ * S3 bucket name containing objects to iterate over or a file with a list to iterate over, as JsonPath
14
+ */
15
+ readonly bucketNamePath?: string;
16
+ /**
17
+ * The Amazon S3 API action that Step Functions must invoke depending on the specified dataset.
18
+ */
19
+ readonly resource: string;
20
+ /**
21
+ * Limits the number of items passed to the Distributed Map state
22
+ *
23
+ * @default - Distributed Map state will iterate over all items provided by the ItemReader
24
+ */
25
+ readonly maxItems?: number;
26
+ /**
27
+ * Render the ItemReader as JSON object
28
+ */
29
+ render(): any;
30
+ /**
31
+ * Compile policy statements to provide relevent permissions to the state machine
32
+ */
33
+ providePolicyStatements(): iam.PolicyStatement[];
34
+ /**
35
+ * Validate that ItemReader contains exactly either @see bucket or @see bucketNamePath
36
+ */
37
+ validateItemReader(): string[];
38
+ }
39
+ /**
40
+ * Base interface for Item Reader configuration properties
41
+ */
42
+ export interface ItemReaderProps {
43
+ /**
44
+ * S3 Bucket containing objects to iterate over or a file with a list to iterate over
45
+ *
46
+ * @default - S3 bucket will be determined from @see bucketNamePath
47
+ */
48
+ readonly bucket?: IBucket;
49
+ /**
50
+ * S3 bucket name containing objects to iterate over or a file with a list to iterate over, as JsonPath
51
+ *
52
+ * @default - S3 bucket will be determined from @see bucket
53
+ */
54
+ readonly bucketNamePath?: string;
55
+ /**
56
+ * S3 bucket name scope, only required if @see bucketNamePath is provided
57
+ */
58
+ readonly bucketNameScope?: Construct;
59
+ /**
60
+ * Limits the number of items passed to the Distributed Map state
61
+ *
62
+ * @default - Distributed Map state will iterate over all items provided by the ItemReader
63
+ */
64
+ readonly maxItems?: number;
65
+ }
66
+ /**
67
+ * Properties for configuring an Item Reader that iterates over objects in an S3 bucket
68
+ */
69
+ export interface S3ObjectsItemReaderProps extends ItemReaderProps {
70
+ /**
71
+ * S3 prefix used to limit objects to iterate over
72
+ *
73
+ * @default - No prefix
74
+ */
75
+ readonly prefix?: string;
76
+ }
77
+ /**
78
+ * Item Reader configuration for iterating over objects in an S3 bucket
79
+ */
80
+ export declare class S3ObjectsItemReader implements IItemReader {
81
+ /**
82
+ * S3 Bucket containing objects to iterate over
83
+ */
84
+ readonly bucket?: IBucket;
85
+ /**
86
+ * S3 bucket name containing objects to iterate over or a file with a list to iterate over, as JsonPath
87
+ */
88
+ readonly bucketNamePath?: string;
89
+ /**
90
+ * ARN for the `listObjectsV2` method of the S3 API
91
+ * This API method is used to iterate all objects in the S3 bucket/prefix
92
+ */
93
+ readonly resource: string;
94
+ /**
95
+ * S3 prefix used to limit objects to iterate over
96
+ *
97
+ * @default - No prefix
98
+ */
99
+ readonly prefix?: string;
100
+ /**
101
+ * Limits the number of items passed to the Distributed Map state
102
+ *
103
+ * @default - Distributed Map state will iterate over all items provided by the ItemReader
104
+ */
105
+ readonly maxItems?: number;
106
+ /**
107
+ * S3 bucket name scope
108
+ */
109
+ readonly bucketNameScope?: Construct;
110
+ protected get partition(): string;
111
+ constructor(props: S3ObjectsItemReaderProps);
112
+ /**
113
+ * Renders the ItemReader configuration as JSON object
114
+ * @returns - JSON object
115
+ */
116
+ render(): any;
117
+ /**
118
+ * Compile policy statements to provide relevent permissions to the state machine
119
+ */
120
+ providePolicyStatements(): iam.PolicyStatement[];
121
+ /**
122
+ * Validate that ItemReader contains exactly either @see bucket or @see bucketNamePath
123
+ */
124
+ validateItemReader(): string[];
125
+ }
126
+ /**
127
+ * Base interface for Item Reader configuration properties the iterate over entries in a S3 file
128
+ */
129
+ export interface S3FileItemReaderProps extends ItemReaderProps {
130
+ /**
131
+ * Key of file stored in S3 bucket containing an array to iterate over
132
+ */
133
+ readonly key: string;
134
+ }
135
+ /**
136
+ * Base Item Reader configuration for iterating over entries in a S3 file
137
+ */
138
+ declare abstract class S3FileItemReader implements IItemReader {
139
+ /**
140
+ * S3 Bucket containing a file with a list to iterate over
141
+ */
142
+ readonly bucket?: IBucket;
143
+ /**
144
+ * S3 bucket name containing objects to iterate over or a file with a list to iterate over, as JsonPath
145
+ */
146
+ readonly bucketNamePath?: string;
147
+ /**
148
+ * S3 key of a file with a list to iterate over
149
+ */
150
+ readonly key: string;
151
+ /**
152
+ * ARN for the `getObject` method of the S3 API
153
+ * This API method is used to iterate all objects in the S3 bucket/prefix
154
+ */
155
+ readonly resource: string;
156
+ /**
157
+ * Limits the number of items passed to the Distributed Map state
158
+ *
159
+ * @default - No maxItems
160
+ */
161
+ readonly maxItems?: number;
162
+ /**
163
+ * S3 bucket name scope
164
+ */
165
+ readonly bucketNameScope?: Construct;
166
+ protected get partition(): string;
167
+ protected abstract readonly inputType: string;
168
+ constructor(props: S3FileItemReaderProps);
169
+ /**
170
+ * Renders the ItemReader configuration as JSON object
171
+ * @returns - JSON object
172
+ */
173
+ render(): any;
174
+ /**
175
+ * Compile policy statements to provide relevent permissions to the state machine
176
+ */
177
+ providePolicyStatements(): iam.PolicyStatement[];
178
+ /**
179
+ * Validate that ItemReader contains exactly either @see bucket or @see bucketNamePath and @see bucketNameScope
180
+ */
181
+ validateItemReader(): string[];
182
+ }
183
+ /**
184
+ * Item Reader configuration for iterating over items in a JSON array stored in a S3 file
185
+ */
186
+ export declare class S3JsonItemReader extends S3FileItemReader {
187
+ protected readonly inputType: string;
188
+ }
189
+ /**
190
+ * CSV header location options
191
+ */
192
+ export declare enum CsvHeaderLocation {
193
+ /**
194
+ * Headers will be read from first row of CSV file
195
+ */
196
+ FIRST_ROW = "FIRST_ROW",
197
+ /**
198
+ * Headers are provided in CSVHeaders property
199
+ */
200
+ GIVEN = "GIVEN"
201
+ }
202
+ /**
203
+ * Configuration for CSV header options for a CSV Item Reader
204
+ */
205
+ export declare class CsvHeaders {
206
+ /**
207
+ * Configures S3CsvItemReader to read headers from the first row of the CSV file
208
+ * @returns - CsvHeaders
209
+ */
210
+ static useFirstRow(): CsvHeaders;
211
+ /**
212
+ * Configures S3CsvItemReader to use the headers provided in the `headers` parameter
213
+ * @param headers - List of headers
214
+ * @returns - CsvHeaders
215
+ */
216
+ static use(headers: string[]): CsvHeaders;
217
+ /**
218
+ * Location of headers in CSV file
219
+ */
220
+ readonly headerLocation: CsvHeaderLocation;
221
+ /**
222
+ * List of headers if `headerLocation` is `GIVEN`
223
+ */
224
+ readonly headers?: string[];
225
+ private constructor();
226
+ }
227
+ /**
228
+ * Properties for configuring an Item Reader that iterates over items in a CSV file in S3
229
+ */
230
+ export interface S3CsvItemReaderProps extends S3FileItemReaderProps {
231
+ /**
232
+ * CSV file header configuration
233
+ *
234
+ * @default - CsvHeaders with CsvHeadersLocation.FIRST_ROW
235
+ */
236
+ readonly csvHeaders?: CsvHeaders;
237
+ }
238
+ /**
239
+ * Item Reader configuration for iterating over items in a CSV file stored in S3
240
+ */
241
+ export declare class S3CsvItemReader extends S3FileItemReader {
242
+ /**
243
+ * CSV headers configuration
244
+ */
245
+ readonly csvHeaders: CsvHeaders;
246
+ protected readonly inputType: string;
247
+ constructor(props: S3CsvItemReaderProps);
248
+ render(): any;
249
+ }
250
+ /**
251
+ * Item Reader configuration for iterating over items in a S3 inventory manifest file stored in S3
252
+ */
253
+ export declare class S3ManifestItemReader extends S3FileItemReader {
254
+ protected readonly inputType: string;
255
+ }
256
+ export {};