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,71 @@
1
+ import { IConstruct } from "constructs";
2
+ import * as notify from "..";
3
+ import { Duration } from "../../..";
4
+ import * as compute from "../../compute";
5
+ import * as iam from "../../iam";
6
+ /**
7
+ * The generic properties for an RuleTarget
8
+ */
9
+ export interface TargetBaseProps {
10
+ /**
11
+ * The SQS queue to be used as deadLetterQueue.
12
+ * Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations).
13
+ *
14
+ * The events not successfully delivered are automatically retried for a specified period of time,
15
+ * depending on the retry policy of the target.
16
+ * If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue.
17
+ *
18
+ * @default - no dead-letter queue
19
+ */
20
+ readonly deadLetterQueue?: notify.IQueue;
21
+ /**
22
+ * The maximum age of a request that Lambda sends to a function for
23
+ * processing.
24
+ *
25
+ * Minimum value of 60.
26
+ * Maximum value of 86400.
27
+ *
28
+ * @default Duration.hours(24)
29
+ */
30
+ readonly maxEventAge?: Duration;
31
+ /**
32
+ * The maximum number of times to retry when the function returns an error.
33
+ *
34
+ * Minimum value of 0.
35
+ * Maximum value of 185.
36
+ *
37
+ * @default 185
38
+ */
39
+ readonly retryAttempts?: number;
40
+ }
41
+ /**
42
+ * Bind props to base rule target config.
43
+ * @internal
44
+ */
45
+ export declare function bindBaseTargetConfig(props: TargetBaseProps): {
46
+ deadLetterConfig: {
47
+ arn: string;
48
+ } | undefined;
49
+ retryPolicy: {
50
+ maximumRetryAttempts: number | undefined;
51
+ maximumEventAgeInSeconds: number | undefined;
52
+ } | undefined;
53
+ };
54
+ /**
55
+ * Obtain the Role for the EventBridge event
56
+ *
57
+ * If a role already exists, it will be returned. This ensures that if multiple
58
+ * events have the same target, they will share a role.
59
+ * @internal
60
+ */
61
+ export declare function singletonEventRole(scope: IConstruct): iam.IRole;
62
+ /**
63
+ * Allows a Lambda function to be called from a rule
64
+ * @internal
65
+ */
66
+ export declare function addLambdaPermission(rule: notify.IRule, handler: compute.IFunction): void;
67
+ /**
68
+ * Allow a rule to send events with failed invocation to an Amazon SQS queue.
69
+ * @internal
70
+ */
71
+ export declare function addToDeadLetterQueueResourcePolicy(rule: notify.IRule, queue: notify.IQueue): void;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addToDeadLetterQueueResourcePolicy = exports.addLambdaPermission = exports.singletonEventRole = exports.bindBaseTargetConfig = void 0;
4
+ const cdktf_1 = require("cdktf");
5
+ const constructs_1 = require("constructs");
6
+ const __1 = require("../..");
7
+ const token_1 = require("../../../token");
8
+ const iam = require("../../iam");
9
+ /**
10
+ * Bind props to base rule target config.
11
+ * @internal
12
+ */
13
+ function bindBaseTargetConfig(props) {
14
+ let { deadLetterQueue, retryAttempts, maxEventAge } = props;
15
+ return {
16
+ deadLetterConfig: deadLetterQueue
17
+ ? { arn: deadLetterQueue?.queueArn }
18
+ : undefined,
19
+ retryPolicy: (retryAttempts !== undefined && retryAttempts >= 0) || maxEventAge
20
+ ? {
21
+ maximumRetryAttempts: retryAttempts,
22
+ maximumEventAgeInSeconds: maxEventAge?.toSeconds({
23
+ integral: true,
24
+ }),
25
+ }
26
+ : undefined,
27
+ };
28
+ }
29
+ exports.bindBaseTargetConfig = bindBaseTargetConfig;
30
+ /**
31
+ * Obtain the Role for the EventBridge event
32
+ *
33
+ * If a role already exists, it will be returned. This ensures that if multiple
34
+ * events have the same target, they will share a role.
35
+ * @internal
36
+ */
37
+ function singletonEventRole(scope) {
38
+ const id = "EventsRole";
39
+ const existing = scope.node.tryFindChild(id);
40
+ if (existing) {
41
+ return existing;
42
+ }
43
+ const role = new iam.Role(scope, id, {
44
+ assumedBy: new iam.ServicePrincipal("events.amazonaws.com"), // TODO: Should be "events"?
45
+ });
46
+ return role;
47
+ }
48
+ exports.singletonEventRole = singletonEventRole;
49
+ /**
50
+ * Allows a Lambda function to be called from a rule
51
+ * @internal
52
+ */
53
+ function addLambdaPermission(rule, handler) {
54
+ let scope;
55
+ let node = handler.permissionsNode;
56
+ let permissionId = `AllowEventRule${__1.AwsStack.uniqueId(rule.node)}`;
57
+ if (rule instanceof constructs_1.Construct) {
58
+ // Place the Permission resource in the same stack as Rule rather than the Function
59
+ // This is to reduce circular dependency when the lambda handler and the rule are across stacks.
60
+ scope = rule;
61
+ node = rule.node;
62
+ permissionId = `AllowEventRule${__1.AwsStack.uniqueId(handler.node)}`;
63
+ }
64
+ if (!node.tryFindChild(permissionId)) {
65
+ handler.addPermission(permissionId, {
66
+ scope,
67
+ action: "lambda:InvokeFunction",
68
+ principal: new iam.ServicePrincipal("events.amazonaws.com"),
69
+ sourceArn: rule.ruleArn,
70
+ });
71
+ }
72
+ }
73
+ exports.addLambdaPermission = addLambdaPermission;
74
+ /**
75
+ * Allow a rule to send events with failed invocation to an Amazon SQS queue.
76
+ * @internal
77
+ */
78
+ function addToDeadLetterQueueResourcePolicy(rule, queue) {
79
+ if (!sameEnvDimension(rule.env.region, queue.env.region)) {
80
+ throw new Error(`Cannot assign Dead Letter Queue in region ${queue.env.region} to the rule ${__1.AwsStack.uniqueId(rule.node)} in region ${rule.env.region}. Both the queue and the rule must be in the same region.`);
81
+ }
82
+ // Skip Resource Policy creation if the Queue is not in the same account.
83
+ // There is no way to add a target onto an imported rule, so we can assume we will run the following code only
84
+ // in the account where the rule is created.
85
+ if (sameEnvDimension(rule.env.account, queue.env.account)) {
86
+ const policyStatementId = `AllowEventRule${__1.AwsStack.uniqueId(rule.node)}`;
87
+ queue.addToResourcePolicy(new iam.PolicyStatement({
88
+ sid: policyStatementId,
89
+ principals: [new iam.ServicePrincipal("events.amazonaws.com")],
90
+ effect: iam.Effect.ALLOW,
91
+ actions: ["sqs:SendMessage"],
92
+ resources: [queue.queueArn],
93
+ condition: [
94
+ {
95
+ test: "ArnEquals",
96
+ variable: "aws:SourceArn",
97
+ values: [rule.ruleArn],
98
+ },
99
+ ],
100
+ }));
101
+ }
102
+ else {
103
+ // "@aws-cdk/aws-events-targets:manuallyAddDLQResourcePolicy",
104
+ cdktf_1.Annotations.of(rule).addWarning(`Cannot add a resource policy to your dead letter queue associated with rule ${rule.ruleName} because the queue is in a different account. You must add the resource policy manually to the dead letter queue in account ${queue.env.account}.`);
105
+ }
106
+ }
107
+ exports.addToDeadLetterQueueResourcePolicy = addToDeadLetterQueueResourcePolicy;
108
+ /**
109
+ * Whether two string probably contain the same environment dimension (region or account)
110
+ *
111
+ * Used to compare either accounts or regions on a best effort basis. If we cannot tell definitively
112
+ * that the dimensions are in different environments, we will pass.
113
+ *
114
+ * For example, returns true if both are unresolved (in which case both are expected to be
115
+ * "current region" or "current account").
116
+ *
117
+ * Also returns true if one is unresolved (in which case we expect the unresolved dimension to match
118
+ * the resolved dimension, but it is up to the user to ensure this). Returning true here makes sure
119
+ * that we are not overly aggressive in producing a synth-time error.
120
+ *
121
+ * @internal
122
+ */
123
+ function sameEnvDimension(dim1, dim2) {
124
+ return [
125
+ token_1.TokenComparison.SAME,
126
+ token_1.TokenComparison.ONE_UNRESOLVED,
127
+ token_1.TokenComparison.BOTH_UNRESOLVED,
128
+ ].includes((0, token_1.tokenCompareStrings)(dim1, dim2));
129
+ }
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3RhcmdldHMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBb0M7QUFDcEMsMkNBQXlEO0FBRXpELDZCQUFpQztBQUVqQywwQ0FBc0U7QUFFdEUsaUNBQWlDO0FBdUNqQzs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFzQjtJQUN6RCxJQUFJLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFNUQsT0FBTztRQUNMLGdCQUFnQixFQUFFLGVBQWU7WUFDL0IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUU7WUFDcEMsQ0FBQyxDQUFDLFNBQVM7UUFDYixXQUFXLEVBQ1QsQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsSUFBSSxDQUFDLENBQUMsSUFBSSxXQUFXO1lBQ2hFLENBQUMsQ0FBQztnQkFDRSxvQkFBb0IsRUFBRSxhQUFhO2dCQUNuQyx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDO29CQUMvQyxRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDO2FBQ0g7WUFDSCxDQUFDLENBQUMsU0FBUztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQWpCRCxvREFpQkM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFpQjtJQUNsRCxNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUM7SUFDeEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFjLENBQUM7SUFDMUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBa0IsRUFBRSxFQUFFLEVBQUU7UUFDaEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsNEJBQTRCO0tBQzFGLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQVpELGdEQVlDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2pDLElBQWtCLEVBQ2xCLE9BQTBCO0lBRTFCLElBQUksS0FBNEIsQ0FBQztJQUNqQyxJQUFJLElBQUksR0FBUyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3pDLElBQUksWUFBWSxHQUFHLGlCQUFpQixZQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25FLElBQUksSUFBSSxZQUFZLHNCQUFTLEVBQUUsQ0FBQztRQUM5QixtRkFBbUY7UUFDbkYsZ0dBQWdHO1FBQ2hHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDYixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQixZQUFZLEdBQUcsaUJBQWlCLFlBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUU7WUFDbEMsS0FBSztZQUNMLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzNELFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQztBQXRCRCxrREFzQkM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQ0FBa0MsQ0FDaEQsSUFBa0IsRUFDbEIsS0FBb0I7SUFFcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN6RCxNQUFNLElBQUksS0FBSyxDQUNiLDZDQUE2QyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sZ0JBQWdCLFlBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSwyREFBMkQsQ0FDbE0sQ0FBQztJQUNKLENBQUM7SUFFRCx5RUFBeUU7SUFDekUsOEdBQThHO0lBQzlHLDRDQUE0QztJQUM1QyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLGlCQUFpQixHQUFHLGlCQUFpQixZQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRTFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLEdBQUcsRUFBRSxpQkFBaUI7WUFDdEIsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUM5RCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQzVCLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDM0IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxXQUFXO29CQUNqQixRQUFRLEVBQUUsZUFBZTtvQkFDekIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDdkI7YUFDRjtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTiw4REFBOEQ7UUFDOUQsbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUM3QiwrRUFBK0UsSUFBSSxDQUFDLFFBQVEsK0hBQStILEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQ2hQLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQXRDRCxnRkFzQ0M7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLElBQVk7SUFDbEQsT0FBTztRQUNMLHVCQUFlLENBQUMsSUFBSTtRQUNwQix1QkFBZSxDQUFDLGNBQWM7UUFDOUIsdUJBQWUsQ0FBQyxlQUFlO0tBQ2hDLENBQUMsUUFBUSxDQUFDLElBQUEsMkJBQW1CLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb25zIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgbm90aWZ5IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uXCI7XG5pbXBvcnQgeyBUb2tlbkNvbXBhcmlzb24sIHRva2VuQ29tcGFyZVN0cmluZ3MgfSBmcm9tIFwiLi4vLi4vLi4vdG9rZW5cIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uLy4uL2NvbXB1dGVcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vaWFtXCI7XG5cbi8qKlxuICogVGhlIGdlbmVyaWMgcHJvcGVydGllcyBmb3IgYW4gUnVsZVRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldEJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgU1FTIHF1ZXVlIHRvIGJlIHVzZWQgYXMgZGVhZExldHRlclF1ZXVlLlxuICAgKiBDaGVjayBvdXQgdGhlIFtjb25zaWRlcmF0aW9ucyBmb3IgdXNpbmcgYSBkZWFkLWxldHRlciBxdWV1ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvcnVsZS1kbHEuaHRtbCNkbHEtY29uc2lkZXJhdGlvbnMpLlxuICAgKlxuICAgKiBUaGUgZXZlbnRzIG5vdCBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkIGFyZSBhdXRvbWF0aWNhbGx5IHJldHJpZWQgZm9yIGEgc3BlY2lmaWVkIHBlcmlvZCBvZiB0aW1lLFxuICAgKiBkZXBlbmRpbmcgb24gdGhlIHJldHJ5IHBvbGljeSBvZiB0aGUgdGFyZ2V0LlxuICAgKiBJZiBhbiBldmVudCBpcyBub3QgZGVsaXZlcmVkIGJlZm9yZSBhbGwgcmV0cnkgYXR0ZW1wdHMgYXJlIGV4aGF1c3RlZCwgaXQgd2lsbCBiZSBzZW50IHRvIHRoZSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZWFkLWxldHRlciBxdWV1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlPzogbm90aWZ5LklRdWV1ZTtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFnZSBvZiBhIHJlcXVlc3QgdGhhdCBMYW1iZGEgc2VuZHMgdG8gYSBmdW5jdGlvbiBmb3JcbiAgICogcHJvY2Vzc2luZy5cbiAgICpcbiAgICogTWluaW11bSB2YWx1ZSBvZiA2MC5cbiAgICogTWF4aW11bSB2YWx1ZSBvZiA4NjQwMC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uaG91cnMoMjQpXG4gICAqL1xuICByZWFkb25seSBtYXhFdmVudEFnZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gcmV0cnkgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvci5cbiAgICpcbiAgICogTWluaW11bSB2YWx1ZSBvZiAwLlxuICAgKiBNYXhpbXVtIHZhbHVlIG9mIDE4NS5cbiAgICpcbiAgICogQGRlZmF1bHQgMTg1XG4gICAqL1xuICByZWFkb25seSByZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEJpbmQgcHJvcHMgdG8gYmFzZSBydWxlIHRhcmdldCBjb25maWcuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJpbmRCYXNlVGFyZ2V0Q29uZmlnKHByb3BzOiBUYXJnZXRCYXNlUHJvcHMpIHtcbiAgbGV0IHsgZGVhZExldHRlclF1ZXVlLCByZXRyeUF0dGVtcHRzLCBtYXhFdmVudEFnZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHtcbiAgICBkZWFkTGV0dGVyQ29uZmlnOiBkZWFkTGV0dGVyUXVldWVcbiAgICAgID8geyBhcm46IGRlYWRMZXR0ZXJRdWV1ZT8ucXVldWVBcm4gfVxuICAgICAgOiB1bmRlZmluZWQsXG4gICAgcmV0cnlQb2xpY3k6XG4gICAgICAocmV0cnlBdHRlbXB0cyAhPT0gdW5kZWZpbmVkICYmIHJldHJ5QXR0ZW1wdHMgPj0gMCkgfHwgbWF4RXZlbnRBZ2VcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtYXhpbXVtUmV0cnlBdHRlbXB0czogcmV0cnlBdHRlbXB0cyxcbiAgICAgICAgICAgIG1heGltdW1FdmVudEFnZUluU2Vjb25kczogbWF4RXZlbnRBZ2U/LnRvU2Vjb25kcyh7XG4gICAgICAgICAgICAgIGludGVncmFsOiB0cnVlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBPYnRhaW4gdGhlIFJvbGUgZm9yIHRoZSBFdmVudEJyaWRnZSBldmVudFxuICpcbiAqIElmIGEgcm9sZSBhbHJlYWR5IGV4aXN0cywgaXQgd2lsbCBiZSByZXR1cm5lZC4gVGhpcyBlbnN1cmVzIHRoYXQgaWYgbXVsdGlwbGVcbiAqIGV2ZW50cyBoYXZlIHRoZSBzYW1lIHRhcmdldCwgdGhleSB3aWxsIHNoYXJlIGEgcm9sZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2luZ2xldG9uRXZlbnRSb2xlKHNjb3BlOiBJQ29uc3RydWN0KTogaWFtLklSb2xlIHtcbiAgY29uc3QgaWQgPSBcIkV2ZW50c1JvbGVcIjtcbiAgY29uc3QgZXhpc3RpbmcgPSBzY29wZS5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgaWFtLklSb2xlO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICByZXR1cm4gZXhpc3Rpbmc7XG4gIH1cblxuICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlIGFzIENvbnN0cnVjdCwgaWQsIHtcbiAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImV2ZW50cy5hbWF6b25hd3MuY29tXCIpLCAvLyBUT0RPOiBTaG91bGQgYmUgXCJldmVudHNcIj9cbiAgfSk7XG5cbiAgcmV0dXJuIHJvbGU7XG59XG5cbi8qKlxuICogQWxsb3dzIGEgTGFtYmRhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmcm9tIGEgcnVsZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRMYW1iZGFQZXJtaXNzaW9uKFxuICBydWxlOiBub3RpZnkuSVJ1bGUsXG4gIGhhbmRsZXI6IGNvbXB1dGUuSUZ1bmN0aW9uLFxuKTogdm9pZCB7XG4gIGxldCBzY29wZTogQ29uc3RydWN0IHwgdW5kZWZpbmVkO1xuICBsZXQgbm9kZTogTm9kZSA9IGhhbmRsZXIucGVybWlzc2lvbnNOb2RlO1xuICBsZXQgcGVybWlzc2lvbklkID0gYEFsbG93RXZlbnRSdWxlJHtBd3NTdGFjay51bmlxdWVJZChydWxlLm5vZGUpfWA7XG4gIGlmIChydWxlIGluc3RhbmNlb2YgQ29uc3RydWN0KSB7XG4gICAgLy8gUGxhY2UgdGhlIFBlcm1pc3Npb24gcmVzb3VyY2UgaW4gdGhlIHNhbWUgc3RhY2sgYXMgUnVsZSByYXRoZXIgdGhhbiB0aGUgRnVuY3Rpb25cbiAgICAvLyBUaGlzIGlzIHRvIHJlZHVjZSBjaXJjdWxhciBkZXBlbmRlbmN5IHdoZW4gdGhlIGxhbWJkYSBoYW5kbGVyIGFuZCB0aGUgcnVsZSBhcmUgYWNyb3NzIHN0YWNrcy5cbiAgICBzY29wZSA9IHJ1bGU7XG4gICAgbm9kZSA9IHJ1bGUubm9kZTtcbiAgICBwZXJtaXNzaW9uSWQgPSBgQWxsb3dFdmVudFJ1bGUke0F3c1N0YWNrLnVuaXF1ZUlkKGhhbmRsZXIubm9kZSl9YDtcbiAgfVxuICBpZiAoIW5vZGUudHJ5RmluZENoaWxkKHBlcm1pc3Npb25JZCkpIHtcbiAgICBoYW5kbGVyLmFkZFBlcm1pc3Npb24ocGVybWlzc2lvbklkLCB7XG4gICAgICBzY29wZSxcbiAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIixcbiAgICAgIHByaW5jaXBhbDogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBzb3VyY2VBcm46IHJ1bGUucnVsZUFybixcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEFsbG93IGEgcnVsZSB0byBzZW5kIGV2ZW50cyB3aXRoIGZhaWxlZCBpbnZvY2F0aW9uIHRvIGFuIEFtYXpvbiBTUVMgcXVldWUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvRGVhZExldHRlclF1ZXVlUmVzb3VyY2VQb2xpY3koXG4gIHJ1bGU6IG5vdGlmeS5JUnVsZSxcbiAgcXVldWU6IG5vdGlmeS5JUXVldWUsXG4pIHtcbiAgaWYgKCFzYW1lRW52RGltZW5zaW9uKHJ1bGUuZW52LnJlZ2lvbiwgcXVldWUuZW52LnJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGFzc2lnbiBEZWFkIExldHRlciBRdWV1ZSBpbiByZWdpb24gJHtxdWV1ZS5lbnYucmVnaW9ufSB0byB0aGUgcnVsZSAke0F3c1N0YWNrLnVuaXF1ZUlkKHJ1bGUubm9kZSl9IGluIHJlZ2lvbiAke3J1bGUuZW52LnJlZ2lvbn0uIEJvdGggdGhlIHF1ZXVlIGFuZCB0aGUgcnVsZSBtdXN0IGJlIGluIHRoZSBzYW1lIHJlZ2lvbi5gLFxuICAgICk7XG4gIH1cblxuICAvLyBTa2lwIFJlc291cmNlIFBvbGljeSBjcmVhdGlvbiBpZiB0aGUgUXVldWUgaXMgbm90IGluIHRoZSBzYW1lIGFjY291bnQuXG4gIC8vIFRoZXJlIGlzIG5vIHdheSB0byBhZGQgYSB0YXJnZXQgb250byBhbiBpbXBvcnRlZCBydWxlLCBzbyB3ZSBjYW4gYXNzdW1lIHdlIHdpbGwgcnVuIHRoZSBmb2xsb3dpbmcgY29kZSBvbmx5XG4gIC8vIGluIHRoZSBhY2NvdW50IHdoZXJlIHRoZSBydWxlIGlzIGNyZWF0ZWQuXG4gIGlmIChzYW1lRW52RGltZW5zaW9uKHJ1bGUuZW52LmFjY291bnQsIHF1ZXVlLmVudi5hY2NvdW50KSkge1xuICAgIGNvbnN0IHBvbGljeVN0YXRlbWVudElkID0gYEFsbG93RXZlbnRSdWxlJHtBd3NTdGFjay51bmlxdWVJZChydWxlLm5vZGUpfWA7XG5cbiAgICBxdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6IHBvbGljeVN0YXRlbWVudElkLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcInNxczpTZW5kTWVzc2FnZVwiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbcXVldWUucXVldWVBcm5dLFxuICAgICAgICBjb25kaXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXN0OiBcIkFybkVxdWFsc1wiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbcnVsZS5ydWxlQXJuXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBcIkBhd3MtY2RrL2F3cy1ldmVudHMtdGFyZ2V0czptYW51YWxseUFkZERMUVJlc291cmNlUG9saWN5XCIsXG4gICAgQW5ub3RhdGlvbnMub2YocnVsZSkuYWRkV2FybmluZyhcbiAgICAgIGBDYW5ub3QgYWRkIGEgcmVzb3VyY2UgcG9saWN5IHRvIHlvdXIgZGVhZCBsZXR0ZXIgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHJ1bGUgJHtydWxlLnJ1bGVOYW1lfSBiZWNhdXNlIHRoZSBxdWV1ZSBpcyBpbiBhIGRpZmZlcmVudCBhY2NvdW50LiBZb3UgbXVzdCBhZGQgdGhlIHJlc291cmNlIHBvbGljeSBtYW51YWxseSB0byB0aGUgZGVhZCBsZXR0ZXIgcXVldWUgaW4gYWNjb3VudCAke3F1ZXVlLmVudi5hY2NvdW50fS5gLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBXaGV0aGVyIHR3byBzdHJpbmcgcHJvYmFibHkgY29udGFpbiB0aGUgc2FtZSBlbnZpcm9ubWVudCBkaW1lbnNpb24gKHJlZ2lvbiBvciBhY2NvdW50KVxuICpcbiAqIFVzZWQgdG8gY29tcGFyZSBlaXRoZXIgYWNjb3VudHMgb3IgcmVnaW9ucyBvbiBhIGJlc3QgZWZmb3J0IGJhc2lzLiBJZiB3ZSBjYW5ub3QgdGVsbCBkZWZpbml0aXZlbHlcbiAqIHRoYXQgdGhlIGRpbWVuc2lvbnMgYXJlIGluIGRpZmZlcmVudCBlbnZpcm9ubWVudHMsIHdlIHdpbGwgcGFzcy5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgcmV0dXJucyB0cnVlIGlmIGJvdGggYXJlIHVucmVzb2x2ZWQgKGluIHdoaWNoIGNhc2UgYm90aCBhcmUgZXhwZWN0ZWQgdG8gYmVcbiAqIFwiY3VycmVudCByZWdpb25cIiBvciBcImN1cnJlbnQgYWNjb3VudFwiKS5cbiAqXG4gKiBBbHNvIHJldHVybnMgdHJ1ZSBpZiBvbmUgaXMgdW5yZXNvbHZlZCAoaW4gd2hpY2ggY2FzZSB3ZSBleHBlY3QgdGhlIHVucmVzb2x2ZWQgZGltZW5zaW9uIHRvIG1hdGNoXG4gKiB0aGUgcmVzb2x2ZWQgZGltZW5zaW9uLCBidXQgaXQgaXMgdXAgdG8gdGhlIHVzZXIgdG8gZW5zdXJlIHRoaXMpLiBSZXR1cm5pbmcgdHJ1ZSBoZXJlIG1ha2VzIHN1cmVcbiAqIHRoYXQgd2UgYXJlIG5vdCBvdmVybHkgYWdncmVzc2l2ZSBpbiBwcm9kdWNpbmcgYSBzeW50aC10aW1lIGVycm9yLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBzYW1lRW52RGltZW5zaW9uKGRpbTE6IHN0cmluZywgZGltMjogc3RyaW5nKSB7XG4gIHJldHVybiBbXG4gICAgVG9rZW5Db21wYXJpc29uLlNBTUUsXG4gICAgVG9rZW5Db21wYXJpc29uLk9ORV9VTlJFU09MVkVELFxuICAgIFRva2VuQ29tcGFyaXNvbi5CT1RIX1VOUkVTT0xWRUQsXG4gIF0uaW5jbHVkZXModG9rZW5Db21wYXJlU3RyaW5ncyhkaW0xLCBkaW0yKSk7XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { EventPattern } from "./event-pattern";
2
+ /**
3
+ * Merge the `src` event pattern into the `dest` event pattern by adding all
4
+ * values from `src` into the fields in `dest`.
5
+ *
6
+ * See `rule.addEventPattern` for details.
7
+ */
8
+ export declare function mergeEventPattern(dest: any, src: any): any;
9
+ /**
10
+ * Transform an eventPattern object into a valid Event Rule Pattern
11
+ * by changing detailType into detail-type when present.
12
+ */
13
+ export declare function renderEventPattern(eventPattern: EventPattern): any;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderEventPattern = exports.mergeEventPattern = void 0;
4
+ /**
5
+ * Merge the `src` event pattern into the `dest` event pattern by adding all
6
+ * values from `src` into the fields in `dest`.
7
+ *
8
+ * See `rule.addEventPattern` for details.
9
+ */
10
+ function mergeEventPattern(dest, src) {
11
+ dest = dest || {};
12
+ mergeObject(dest, src);
13
+ return dest;
14
+ function mergeObject(destObj, srcObj) {
15
+ if (typeof srcObj !== "object") {
16
+ throw new Error(`Invalid event pattern '${JSON.stringify(srcObj)}', expecting an object or an array`);
17
+ }
18
+ for (const field of Object.keys(srcObj)) {
19
+ const srcValue = srcObj[field];
20
+ const destValue = destObj[field];
21
+ if (srcValue === undefined) {
22
+ continue;
23
+ }
24
+ if (typeof srcValue !== "object") {
25
+ throw new Error(`Invalid event pattern field { ${field}: ${JSON.stringify(srcValue)} }. All fields must be arrays`);
26
+ }
27
+ // dest doesn't have this field
28
+ if (destObj[field] === undefined) {
29
+ destObj[field] = srcValue;
30
+ continue;
31
+ }
32
+ if (Array.isArray(srcValue) !== Array.isArray(destValue)) {
33
+ throw new Error(`Invalid event pattern field ${field}. ` +
34
+ `Type mismatch between existing pattern ${JSON.stringify(destValue)} and added pattern ${JSON.stringify(srcValue)}`);
35
+ }
36
+ // if this is an array, concat and deduplicate the values
37
+ if (Array.isArray(srcValue)) {
38
+ const result = [...destValue, ...srcValue];
39
+ const resultJson = result.map((i) => JSON.stringify(i));
40
+ destObj[field] = result.filter((value, index) => resultJson.indexOf(JSON.stringify(value)) === index);
41
+ continue;
42
+ }
43
+ // otherwise, it's an object, so recurse
44
+ mergeObject(destObj[field], srcValue);
45
+ }
46
+ }
47
+ }
48
+ exports.mergeEventPattern = mergeEventPattern;
49
+ /**
50
+ * Transform an eventPattern object into a valid Event Rule Pattern
51
+ * by changing detailType into detail-type when present.
52
+ */
53
+ function renderEventPattern(eventPattern) {
54
+ if (Object.keys(eventPattern).length === 0) {
55
+ return undefined;
56
+ }
57
+ // rename 'detailType' to 'detail-type'
58
+ const out = {};
59
+ for (let key of Object.keys(eventPattern)) {
60
+ const value = eventPattern[key];
61
+ if (key === "detailType") {
62
+ key = "detail-type";
63
+ }
64
+ out[key] = value;
65
+ }
66
+ return out;
67
+ }
68
+ exports.renderEventPattern = renderEventPattern;
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7O0dBS0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFTLEVBQUUsR0FBUTtJQUNuRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUVsQixXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXZCLE9BQU8sSUFBSSxDQUFDO0lBRVosU0FBUyxXQUFXLENBQUMsT0FBWSxFQUFFLE1BQVc7UUFDNUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUNiLDBCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixTQUFTO1lBQ1gsQ0FBQztZQUVELElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUNBQWlDLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FDbkcsQ0FBQztZQUNKLENBQUM7WUFFRCwrQkFBK0I7WUFDL0IsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQzFCLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQkFBK0IsS0FBSyxJQUFJO29CQUN0QywwQ0FBMEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDdEgsQ0FBQztZQUNKLENBQUM7WUFFRCx5REFBeUQ7WUFDekQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxTQUFTLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQ3RFLENBQUM7Z0JBQ0YsU0FBUztZQUNYLENBQUM7WUFFRCx3Q0FBd0M7WUFDeEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUF2REQsOENBdURDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsWUFBMEI7SUFDM0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBSSxZQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksR0FBRyxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ3pCLEdBQUcsR0FBRyxhQUFhLENBQUM7UUFDdEIsQ0FBQztRQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWhCRCxnREFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LXBhdHRlcm4udHNcbmltcG9ydCB7IEV2ZW50UGF0dGVybiB9IGZyb20gXCIuL2V2ZW50LXBhdHRlcm5cIjtcblxuLyoqXG4gKiBNZXJnZSB0aGUgYHNyY2AgZXZlbnQgcGF0dGVybiBpbnRvIHRoZSBgZGVzdGAgZXZlbnQgcGF0dGVybiBieSBhZGRpbmcgYWxsXG4gKiB2YWx1ZXMgZnJvbSBgc3JjYCBpbnRvIHRoZSBmaWVsZHMgaW4gYGRlc3RgLlxuICpcbiAqIFNlZSBgcnVsZS5hZGRFdmVudFBhdHRlcm5gIGZvciBkZXRhaWxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VFdmVudFBhdHRlcm4oZGVzdDogYW55LCBzcmM6IGFueSkge1xuICBkZXN0ID0gZGVzdCB8fCB7fTtcblxuICBtZXJnZU9iamVjdChkZXN0LCBzcmMpO1xuXG4gIHJldHVybiBkZXN0O1xuXG4gIGZ1bmN0aW9uIG1lcmdlT2JqZWN0KGRlc3RPYmo6IGFueSwgc3JjT2JqOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHNyY09iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBldmVudCBwYXR0ZXJuICcke0pTT04uc3RyaW5naWZ5KHNyY09iail9JywgZXhwZWN0aW5nIGFuIG9iamVjdCBvciBhbiBhcnJheWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgT2JqZWN0LmtleXMoc3JjT2JqKSkge1xuICAgICAgY29uc3Qgc3JjVmFsdWUgPSBzcmNPYmpbZmllbGRdO1xuICAgICAgY29uc3QgZGVzdFZhbHVlID0gZGVzdE9ialtmaWVsZF07XG5cbiAgICAgIGlmIChzcmNWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHNyY1ZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBldmVudCBwYXR0ZXJuIGZpZWxkIHsgJHtmaWVsZH06ICR7SlNPTi5zdHJpbmdpZnkoc3JjVmFsdWUpfSB9LiBBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gZGVzdCBkb2Vzbid0IGhhdmUgdGhpcyBmaWVsZFxuICAgICAgaWYgKGRlc3RPYmpbZmllbGRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGVzdE9ialtmaWVsZF0gPSBzcmNWYWx1ZTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNyY1ZhbHVlKSAhPT0gQXJyYXkuaXNBcnJheShkZXN0VmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBldmVudCBwYXR0ZXJuIGZpZWxkICR7ZmllbGR9LiBgICtcbiAgICAgICAgICAgIGBUeXBlIG1pc21hdGNoIGJldHdlZW4gZXhpc3RpbmcgcGF0dGVybiAke0pTT04uc3RyaW5naWZ5KGRlc3RWYWx1ZSl9IGFuZCBhZGRlZCBwYXR0ZXJuICR7SlNPTi5zdHJpbmdpZnkoc3JjVmFsdWUpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIGlmIHRoaXMgaXMgYW4gYXJyYXksIGNvbmNhdCBhbmQgZGVkdXBsaWNhdGUgdGhlIHZhbHVlc1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3JjVmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5kZXN0VmFsdWUsIC4uLnNyY1ZhbHVlXTtcbiAgICAgICAgY29uc3QgcmVzdWx0SnNvbiA9IHJlc3VsdC5tYXAoKGkpID0+IEpTT04uc3RyaW5naWZ5KGkpKTtcbiAgICAgICAgZGVzdE9ialtmaWVsZF0gPSByZXN1bHQuZmlsdGVyKFxuICAgICAgICAgICh2YWx1ZSwgaW5kZXgpID0+IHJlc3VsdEpzb24uaW5kZXhPZihKU09OLnN0cmluZ2lmeSh2YWx1ZSkpID09PSBpbmRleCxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIG90aGVyd2lzZSwgaXQncyBhbiBvYmplY3QsIHNvIHJlY3Vyc2VcbiAgICAgIG1lcmdlT2JqZWN0KGRlc3RPYmpbZmllbGRdLCBzcmNWYWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGFuIGV2ZW50UGF0dGVybiBvYmplY3QgaW50byBhIHZhbGlkIEV2ZW50IFJ1bGUgUGF0dGVyblxuICogYnkgY2hhbmdpbmcgZGV0YWlsVHlwZSBpbnRvIGRldGFpbC10eXBlIHdoZW4gcHJlc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckV2ZW50UGF0dGVybihldmVudFBhdHRlcm46IEV2ZW50UGF0dGVybik6IGFueSB7XG4gIGlmIChPYmplY3Qua2V5cyhldmVudFBhdHRlcm4pLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyByZW5hbWUgJ2RldGFpbFR5cGUnIHRvICdkZXRhaWwtdHlwZSdcbiAgY29uc3Qgb3V0OiBhbnkgPSB7fTtcbiAgZm9yIChsZXQga2V5IG9mIE9iamVjdC5rZXlzKGV2ZW50UGF0dGVybikpIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudFBhdHRlcm4gYXMgYW55KVtrZXldO1xuICAgIGlmIChrZXkgPT09IFwiZGV0YWlsVHlwZVwiKSB7XG4gICAgICBrZXkgPSBcImRldGFpbC10eXBlXCI7XG4gICAgfVxuICAgIG91dFtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuIl19
@@ -0,0 +1,220 @@
1
+ import type { IResolvable } from 'cdktf';
2
+ import type { provider } from '@cdktf/provider-aws';
3
+ /**
4
+ * Config for the AWS Provider
5
+ */
6
+ export interface AwsProviderConfig {
7
+ /**
8
+ * Resolve an endpoint with FIPS capability.
9
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#use_fips_endpoint AwsProvider#use_fips_endpoint}
10
+ * @stability stable
11
+ */
12
+ readonly useFipsEndpoint?: boolean | IResolvable;
13
+ /**
14
+ * Resolve an endpoint with DualStack capability.
15
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#use_dualstack_endpoint AwsProvider#use_dualstack_endpoint}
16
+ * @stability stable
17
+ */
18
+ readonly useDualstackEndpoint?: boolean | IResolvable;
19
+ /**
20
+ * The capacity of the AWS SDK's token bucket rate limiter.
21
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#token_bucket_rate_limiter_capacity AwsProvider#token_bucket_rate_limiter_capacity}
22
+ * @stability stable
23
+ */
24
+ readonly tokenBucketRateLimiterCapacity?: number;
25
+ /**
26
+ * session token. A session token is only required if you are using temporary security credentials.
27
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#token AwsProvider#token}
28
+ * @stability stable
29
+ */
30
+ readonly token?: string;
31
+ /**
32
+ * The region where AWS STS operations will take place. Examples are us-east-1 and us-west-2.
33
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#sts_region AwsProvider#sts_region}
34
+ * @stability stable
35
+ */
36
+ readonly stsRegion?: string;
37
+ /**
38
+ * Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
39
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_requesting_account_id AwsProvider#skip_requesting_account_id}
40
+ * @stability stable
41
+ */
42
+ readonly skipRequestingAccountId?: boolean | IResolvable;
43
+ /**
44
+ * Skip static validation of region name.
45
+ * Used by users of alternative AWS-like APIs or users w/ access to regions that are not public (yet).
46
+ *
47
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_region_validation AwsProvider#skip_region_validation}
48
+ * @stability stable
49
+ */
50
+ readonly skipRegionValidation?: boolean | IResolvable;
51
+ /**
52
+ * Skip the AWS Metadata API check. Used for AWS API implementations that do not have a metadata api endpoint.
53
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_metadata_api_check AwsProvider#skip_metadata_api_check}
54
+ * @stability stable
55
+ */
56
+ readonly skipMetadataApiCheck?: string;
57
+ /**
58
+ * Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS available/implemented.
59
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_credentials_validation AwsProvider#skip_credentials_validation}
60
+ * @stability stable
61
+ */
62
+ readonly skipCredentialsValidation?: boolean | IResolvable;
63
+ /**
64
+ * List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
65
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#shared_credentials_files AwsProvider#shared_credentials_files}
66
+ * @stability stable
67
+ */
68
+ readonly sharedCredentialsFiles?: Array<string>;
69
+ /**
70
+ * List of paths to shared config files. If not set, defaults to [~/.aws/config].
71
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#shared_config_files AwsProvider#shared_config_files}
72
+ * @stability stable
73
+ */
74
+ readonly sharedConfigFiles?: Array<string>;
75
+ /**
76
+ * The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
77
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#secret_key AwsProvider#secret_key}
78
+ * @stability stable
79
+ */
80
+ readonly secretKey?: string;
81
+ /**
82
+ * Set this to true to enable the request to use path-style addressing, i.e., https://s3.amazonaws.com/BUCKET/KEY. By default, the S3 client will use virtual hosted bucket addressing when possible (https://BUCKET.s3.amazonaws.com/KEY). Specific to the Amazon S3 service.
83
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#s3_use_path_style AwsProvider#s3_use_path_style}
84
+ * @stability stable
85
+ */
86
+ readonly s3UsePathStyle?: boolean | IResolvable;
87
+ /**
88
+ * Specifies whether S3 API calls in the `us-east-1` region use the legacy global endpoint or a regional endpoint.
89
+ * Valid values are `legacy` or `regional`. Can also be configured using the `AWS_S3_US_EAST_1_REGIONAL_ENDPOINT` environment variable or the `s3_us_east_1_regional_endpoint` shared config file parameter
90
+ *
91
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#s3_us_east_1_regional_endpoint AwsProvider#s3_us_east_1_regional_endpoint}
92
+ * @stability stable
93
+ */
94
+ readonly s3UsEast1RegionalEndpoint?: string;
95
+ /**
96
+ * Specifies how retries are attempted.
97
+ * Valid values are `standard` and `adaptive`. Can also be configured using the `AWS_RETRY_MODE` environment variable.
98
+ *
99
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#retry_mode AwsProvider#retry_mode}
100
+ * @stability stable
101
+ */
102
+ readonly retryMode?: string;
103
+ /**
104
+ * The region where AWS operations will take place. Examples are us-east-1, us-west-2, etc.
105
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#region AwsProvider#region}
106
+ * @stability stable
107
+ */
108
+ readonly region?: string;
109
+ /**
110
+ * The profile for API operations. If not set, the default profile created with `aws configure` will be used.
111
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#profile AwsProvider#profile}
112
+ * @stability stable
113
+ */
114
+ readonly profile?: string;
115
+ /**
116
+ * Comma-separated list of hosts that should not use HTTP or HTTPS proxies.
117
+ * Can also be set using the `NO_PROXY` or `no_proxy` environment variables.
118
+ *
119
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#no_proxy AwsProvider#no_proxy}
120
+ * @stability stable
121
+ */
122
+ readonly noProxy?: string;
123
+ /**
124
+ * The maximum number of times an AWS API request is being executed.
125
+ * If the API request still fails, an error is
126
+ * thrown.
127
+ *
128
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#max_retries AwsProvider#max_retries}
129
+ * @stability stable
130
+ */
131
+ readonly maxRetries?: number;
132
+ /**
133
+ * Explicitly allow the provider to perform "insecure" SSL requests. If omitted, default value is `false`.
134
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#insecure AwsProvider#insecure}
135
+ * @stability stable
136
+ */
137
+ readonly insecure?: boolean | IResolvable;
138
+ /**
139
+ * ignore_tags block.
140
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#ignore_tags AwsProvider#ignore_tags}
141
+ * @stability stable
142
+ */
143
+ readonly ignoreTags?: IResolvable | Array<provider.AwsProviderIgnoreTags>;
144
+ /**
145
+ * URL of a proxy to use for HTTPS requests when accessing the AWS API.
146
+ * Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables.
147
+ *
148
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#https_proxy AwsProvider#https_proxy}
149
+ * @stability stable
150
+ */
151
+ readonly httpsProxy?: string;
152
+ /**
153
+ * URL of a proxy to use for HTTP requests when accessing the AWS API.
154
+ * Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.
155
+ *
156
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#http_proxy AwsProvider#http_proxy}
157
+ * @stability stable
158
+ */
159
+ readonly httpProxy?: string;
160
+ /**
161
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#forbidden_account_ids AwsProvider#forbidden_account_ids}.
162
+ * @stability stable
163
+ */
164
+ readonly forbiddenAccountIds?: Array<string>;
165
+ /**
166
+ * endpoints block.
167
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#endpoints AwsProvider#endpoints}
168
+ * @stability stable
169
+ */
170
+ readonly endpoints?: IResolvable | Array<provider.AwsProviderEndpoints>;
171
+ /**
172
+ * Protocol to use with EC2 metadata service endpoint.Valid values are `IPv4` and `IPv6`. Can also be configured using the `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable.
173
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#ec2_metadata_service_endpoint_mode AwsProvider#ec2_metadata_service_endpoint_mode}
174
+ * @stability stable
175
+ */
176
+ readonly ec2MetadataServiceEndpointMode?: string;
177
+ /**
178
+ * Address of the EC2 metadata service endpoint to use. Can also be configured using the `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable.
179
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#ec2_metadata_service_endpoint AwsProvider#ec2_metadata_service_endpoint}
180
+ * @stability stable
181
+ */
182
+ readonly ec2MetadataServiceEndpoint?: string;
183
+ /**
184
+ * default_tags block.
185
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#default_tags AwsProvider#default_tags}
186
+ * @stability stable
187
+ */
188
+ readonly defaultTags?: IResolvable | Array<provider.AwsProviderDefaultTags>;
189
+ /**
190
+ * File containing custom root and intermediate certificates.
191
+ * Can also be configured using the `AWS_CA_BUNDLE` environment variable. (Setting `ca_bundle` in the shared config file is not supported.)
192
+ *
193
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#custom_ca_bundle AwsProvider#custom_ca_bundle}
194
+ * @stability stable
195
+ */
196
+ readonly customCaBundle?: string;
197
+ /**
198
+ * assume_role_with_web_identity block.
199
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#assume_role_with_web_identity AwsProvider#assume_role_with_web_identity}
200
+ * @stability stable
201
+ */
202
+ readonly assumeRoleWithWebIdentity?: IResolvable | Array<provider.AwsProviderAssumeRoleWithWebIdentity>;
203
+ /**
204
+ * assume_role block.
205
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#assume_role AwsProvider#assume_role}
206
+ * @stability stable
207
+ */
208
+ readonly assumeRole?: IResolvable | Array<provider.AwsProviderAssumeRole>;
209
+ /**
210
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#allowed_account_ids AwsProvider#allowed_account_ids}.
211
+ * @stability stable
212
+ */
213
+ readonly allowedAccountIds?: Array<string>;
214
+ /**
215
+ * The access key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
216
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#access_key AwsProvider#access_key}
217
+ * @stability stable
218
+ */
219
+ readonly accessKey?: string;
220
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvcHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBJUmVzb2x2YWJsZSB9IGZyb20gJ2Nka3RmJztcbmltcG9ydCB0eXBlIHsgcHJvdmlkZXIgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItYXdzJztcblxuLyoqXG4gKiBDb25maWcgZm9yIHRoZSBBV1MgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBSZXNvbHZlIGFuIGVuZHBvaW50IHdpdGggRklQUyBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3VzZV9maXBzX2VuZHBvaW50IEF3c1Byb3ZpZGVyI3VzZV9maXBzX2VuZHBvaW50fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlRmlwc0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogUmVzb2x2ZSBhbiBlbmRwb2ludCB3aXRoIER1YWxTdGFjayBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3VzZV9kdWFsc3RhY2tfZW5kcG9pbnQgQXdzUHJvdmlkZXIjdXNlX2R1YWxzdGFja19lbmRwb2ludH1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZUR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogVGhlIGNhcGFjaXR5IG9mIHRoZSBBV1MgU0RLJ3MgdG9rZW4gYnVja2V0IHJhdGUgbGltaXRlci5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyN0b2tlbl9idWNrZXRfcmF0ZV9saW1pdGVyX2NhcGFjaXR5IEF3c1Byb3ZpZGVyI3Rva2VuX2J1Y2tldF9yYXRlX2xpbWl0ZXJfY2FwYWNpdHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0b2tlbkJ1Y2tldFJhdGVMaW1pdGVyQ2FwYWNpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBzZXNzaW9uIHRva2VuLiBBIHNlc3Npb24gdG9rZW4gaXMgb25seSByZXF1aXJlZCBpZiB5b3UgYXJlIHVzaW5nIHRlbXBvcmFyeSBzZWN1cml0eSBjcmVkZW50aWFscy5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyN0b2tlbiBBd3NQcm92aWRlciN0b2tlbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlZ2lvbiB3aGVyZSBBV1MgU1RTIG9wZXJhdGlvbnMgd2lsbCB0YWtlIHBsYWNlLiBFeGFtcGxlcyBhcmUgdXMtZWFzdC0xIGFuZCB1cy13ZXN0LTIuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3Mjc3RzX3JlZ2lvbiBBd3NQcm92aWRlciNzdHNfcmVnaW9ufVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RzUmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU2tpcCByZXF1ZXN0aW5nIHRoZSBhY2NvdW50IElELiBVc2VkIGZvciBBV1MgQVBJIGltcGxlbWVudGF0aW9ucyB0aGF0IGRvIG5vdCBoYXZlIElBTS9TVFMgQVBJIGFuZC9vciBtZXRhZGF0YSBBUEkuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3Mjc2tpcF9yZXF1ZXN0aW5nX2FjY291bnRfaWQgQXdzUHJvdmlkZXIjc2tpcF9yZXF1ZXN0aW5nX2FjY291bnRfaWR9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwUmVxdWVzdGluZ0FjY291bnRJZD86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIFNraXAgc3RhdGljIHZhbGlkYXRpb24gb2YgcmVnaW9uIG5hbWUuXG4gICAqIFVzZWQgYnkgdXNlcnMgb2YgYWx0ZXJuYXRpdmUgQVdTLWxpa2UgQVBJcyBvciB1c2VycyB3LyBhY2Nlc3MgdG8gcmVnaW9ucyB0aGF0IGFyZSBub3QgcHVibGljICh5ZXQpLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NraXBfcmVnaW9uX3ZhbGlkYXRpb24gQXdzUHJvdmlkZXIjc2tpcF9yZWdpb25fdmFsaWRhdGlvbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHNraXBSZWdpb25WYWxpZGF0aW9uPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogU2tpcCB0aGUgQVdTIE1ldGFkYXRhIEFQSSBjaGVjay4gVXNlZCBmb3IgQVdTIEFQSSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBhIG1ldGFkYXRhIGFwaSBlbmRwb2ludC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNza2lwX21ldGFkYXRhX2FwaV9jaGVjayBBd3NQcm92aWRlciNza2lwX21ldGFkYXRhX2FwaV9jaGVja31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHNraXBNZXRhZGF0YUFwaUNoZWNrPzogc3RyaW5nO1xuICAvKipcbiAgICogU2tpcCB0aGUgY3JlZGVudGlhbHMgdmFsaWRhdGlvbiB2aWEgU1RTIEFQSS4gVXNlZCBmb3IgQVdTIEFQSSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBTVFMgYXZhaWxhYmxlL2ltcGxlbWVudGVkLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NraXBfY3JlZGVudGlhbHNfdmFsaWRhdGlvbiBBd3NQcm92aWRlciNza2lwX2NyZWRlbnRpYWxzX3ZhbGlkYXRpb259XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwQ3JlZGVudGlhbHNWYWxpZGF0aW9uPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogTGlzdCBvZiBwYXRocyB0byBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZXMuIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIFt+Ly5hd3MvY3JlZGVudGlhbHNdLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NoYXJlZF9jcmVkZW50aWFsc19maWxlcyBBd3NQcm92aWRlciNzaGFyZWRfY3JlZGVudGlhbHNfZmlsZXN9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRDcmVkZW50aWFsc0ZpbGVzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcGF0aHMgdG8gc2hhcmVkIGNvbmZpZyBmaWxlcy4gSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gW34vLmF3cy9jb25maWddLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NoYXJlZF9jb25maWdfZmlsZXMgQXdzUHJvdmlkZXIjc2hhcmVkX2NvbmZpZ19maWxlc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZENvbmZpZ0ZpbGVzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQga2V5IGZvciBBUEkgb3BlcmF0aW9ucy4gWW91IGNhbiByZXRyaWV2ZSB0aGlzIGZyb20gdGhlICdTZWN1cml0eSAmIENyZWRlbnRpYWxzJyBzZWN0aW9uIG9mIHRoZSBBV1MgY29uc29sZS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNzZWNyZXRfa2V5IEF3c1Byb3ZpZGVyI3NlY3JldF9rZXl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIHRvIGVuYWJsZSB0aGUgcmVxdWVzdCB0byB1c2UgcGF0aC1zdHlsZSBhZGRyZXNzaW5nLCBpLmUuLCBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vQlVDS0VUL0tFWS4gQnkgZGVmYXVsdCwgdGhlIFMzIGNsaWVudCB3aWxsIHVzZSB2aXJ0dWFsIGhvc3RlZCBidWNrZXQgYWRkcmVzc2luZyB3aGVuIHBvc3NpYmxlIChodHRwczovL0JVQ0tFVC5zMy5hbWF6b25hd3MuY29tL0tFWSkuIFNwZWNpZmljIHRvIHRoZSBBbWF6b24gUzMgc2VydmljZS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNzM191c2VfcGF0aF9zdHlsZSBBd3NQcm92aWRlciNzM191c2VfcGF0aF9zdHlsZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHMzVXNlUGF0aFN0eWxlPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgUzMgQVBJIGNhbGxzIGluIHRoZSBgdXMtZWFzdC0xYCByZWdpb24gdXNlIHRoZSBsZWdhY3kgZ2xvYmFsIGVuZHBvaW50IG9yIGEgcmVnaW9uYWwgZW5kcG9pbnQuXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgYGxlZ2FjeWAgb3IgYHJlZ2lvbmFsYC4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19TM19VU19FQVNUXzFfUkVHSU9OQUxfRU5EUE9JTlRgIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZSBgczNfdXNfZWFzdF8xX3JlZ2lvbmFsX2VuZHBvaW50YCBzaGFyZWQgY29uZmlnIGZpbGUgcGFyYW1ldGVyXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjczNfdXNfZWFzdF8xX3JlZ2lvbmFsX2VuZHBvaW50IEF3c1Byb3ZpZGVyI3MzX3VzX2Vhc3RfMV9yZWdpb25hbF9lbmRwb2ludH1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHMzVXNFYXN0MVJlZ2lvbmFsRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaG93IHJldHJpZXMgYXJlIGF0dGVtcHRlZC5cbiAgICogVmFsaWQgdmFsdWVzIGFyZSBgc3RhbmRhcmRgIGFuZCBgYWRhcHRpdmVgLiBDYW4gYWxzbyBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgQVdTX1JFVFJZX01PREVgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3JldHJ5X21vZGUgQXdzUHJvdmlkZXIjcmV0cnlfbW9kZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJldHJ5TW9kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgQVdTIG9wZXJhdGlvbnMgd2lsbCB0YWtlIHBsYWNlLiBFeGFtcGxlcyBhcmUgdXMtZWFzdC0xLCB1cy13ZXN0LTIsIGV0Yy5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNyZWdpb24gQXdzUHJvdmlkZXIjcmVnaW9ufVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHByb2ZpbGUgZm9yIEFQSSBvcGVyYXRpb25zLiBJZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBwcm9maWxlIGNyZWF0ZWQgd2l0aCBgYXdzIGNvbmZpZ3VyZWAgd2lsbCBiZSB1c2VkLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3Byb2ZpbGUgQXdzUHJvdmlkZXIjcHJvZmlsZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBob3N0cyB0aGF0IHNob3VsZCBub3QgdXNlIEhUVFAgb3IgSFRUUFMgcHJveGllcy5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBgTk9fUFJPWFlgIG9yIGBub19wcm94eWAgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI25vX3Byb3h5IEF3c1Byb3ZpZGVyI25vX3Byb3h5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbm9Qcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyBhbiBBV1MgQVBJIHJlcXVlc3QgaXMgYmVpbmcgZXhlY3V0ZWQuXG4gICAqIElmIHRoZSBBUEkgcmVxdWVzdCBzdGlsbCBmYWlscywgYW4gZXJyb3IgaXNcbiAgICogdGhyb3duLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI21heF9yZXRyaWVzIEF3c1Byb3ZpZGVyI21heF9yZXRyaWVzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmV0cmllcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEV4cGxpY2l0bHkgYWxsb3cgdGhlIHByb3ZpZGVyIHRvIHBlcmZvcm0gXCJpbnNlY3VyZVwiIFNTTCByZXF1ZXN0cy4gSWYgb21pdHRlZCwgZGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2luc2VjdXJlIEF3c1Byb3ZpZGVyI2luc2VjdXJlfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zZWN1cmU/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBpZ25vcmVfdGFncyBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNpZ25vcmVfdGFncyBBd3NQcm92aWRlciNpZ25vcmVfdGFnc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVRhZ3M/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVySWdub3JlVGFncz47XG4gIC8qKlxuICAgKiBVUkwgb2YgYSBwcm94eSB0byB1c2UgZm9yIEhUVFBTIHJlcXVlc3RzIHdoZW4gYWNjZXNzaW5nIHRoZSBBV1MgQVBJLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgdXNpbmcgdGhlIGBIVFRQU19QUk9YWWAgb3IgYGh0dHBzX3Byb3h5YCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjaHR0cHNfcHJveHkgQXdzUHJvdmlkZXIjaHR0cHNfcHJveHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBodHRwc1Byb3h5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVVJMIG9mIGEgcHJveHkgdG8gdXNlIGZvciBIVFRQIHJlcXVlc3RzIHdoZW4gYWNjZXNzaW5nIHRoZSBBV1MgQVBJLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgdXNpbmcgdGhlIGBIVFRQX1BST1hZYCBvciBgaHR0cF9wcm94eWAgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2h0dHBfcHJveHkgQXdzUHJvdmlkZXIjaHR0cF9wcm94eX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBQcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjZm9yYmlkZGVuX2FjY291bnRfaWRzIEF3c1Byb3ZpZGVyI2ZvcmJpZGRlbl9hY2NvdW50X2lkc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBmb3JiaWRkZW5BY2NvdW50SWRzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIGVuZHBvaW50cyBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNlbmRwb2ludHMgQXdzUHJvdmlkZXIjZW5kcG9pbnRzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRzPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckVuZHBvaW50cz47XG4gIC8qKlxuICAgKiBQcm90b2NvbCB0byB1c2Ugd2l0aCBFQzIgbWV0YWRhdGEgc2VydmljZSBlbmRwb2ludC5WYWxpZCB2YWx1ZXMgYXJlIGBJUHY0YCBhbmQgYElQdjZgLiBDYW4gYWxzbyBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgQVdTX0VDMl9NRVRBREFUQV9TRVJWSUNFX0VORFBPSU5UX01PREVgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50X21vZGUgQXdzUHJvdmlkZXIjZWMyX21ldGFkYXRhX3NlcnZpY2VfZW5kcG9pbnRfbW9kZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVjMk1ldGFkYXRhU2VydmljZUVuZHBvaW50TW9kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFkZHJlc3Mgb2YgdGhlIEVDMiBtZXRhZGF0YSBzZXJ2aWNlIGVuZHBvaW50IHRvIHVzZS4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19FQzJfTUVUQURBVEFfU0VSVklDRV9FTkRQT0lOVGAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjZWMyX21ldGFkYXRhX3NlcnZpY2VfZW5kcG9pbnQgQXdzUHJvdmlkZXIjZWMyX21ldGFkYXRhX3NlcnZpY2VfZW5kcG9pbnR9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlYzJNZXRhZGF0YVNlcnZpY2VFbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRfdGFncyBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNkZWZhdWx0X3RhZ3MgQXdzUHJvdmlkZXIjZGVmYXVsdF90YWdzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFRhZ3M/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVyRGVmYXVsdFRhZ3M+O1xuICAvKipcbiAgICogRmlsZSBjb250YWluaW5nIGN1c3RvbSByb290IGFuZCBpbnRlcm1lZGlhdGUgY2VydGlmaWNhdGVzLlxuICAgKiBDYW4gYWxzbyBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgQVdTX0NBX0JVTkRMRWAgZW52aXJvbm1lbnQgdmFyaWFibGUuIChTZXR0aW5nIGBjYV9idW5kbGVgIGluIHRoZSBzaGFyZWQgY29uZmlnIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4pXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjY3VzdG9tX2NhX2J1bmRsZSBBd3NQcm92aWRlciNjdXN0b21fY2FfYnVuZGxlfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tQ2FCdW5kbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eSBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eSBBd3NQcm92aWRlciNhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHk/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVyQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eT47XG4gIC8qKlxuICAgKiBhc3N1bWVfcm9sZSBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNhc3N1bWVfcm9sZSBBd3NQcm92aWRlciNhc3N1bWVfcm9sZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGU/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVyQXNzdW1lUm9sZT47XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2FsbG93ZWRfYWNjb3VudF9pZHMgQXdzUHJvdmlkZXIjYWxsb3dlZF9hY2NvdW50X2lkc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkQWNjb3VudElkcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIGtleSBmb3IgQVBJIG9wZXJhdGlvbnMuIFlvdSBjYW4gcmV0cmlldmUgdGhpcyBmcm9tIHRoZSAnU2VjdXJpdHkgJiBDcmVkZW50aWFscycgc2VjdGlvbiBvZiB0aGUgQVdTIGNvbnNvbGUuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjYWNjZXNzX2tleSBBd3NQcm92aWRlciNhY2Nlc3Nfa2V5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzS2V5Pzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,41 @@
1
+ import { Construct, IDependable } from "constructs";
2
+ import { IBucket } from "./bucket";
3
+ /**
4
+ * Implemented by constructs that can be used as bucket notification destinations.
5
+ */
6
+ export interface IBucketNotificationDestination {
7
+ /**
8
+ * Registers this resource to receive notifications for the specified
9
+ * bucket. This method will only be called once for each destination/bucket
10
+ * pair and the result will be cached, so there is no need to implement
11
+ * idempotency in each destination.
12
+ * @param bucket The bucket object to bind to
13
+ */
14
+ bind(scope: Construct, bucket: IBucket): BucketNotificationDestinationConfig;
15
+ }
16
+ /**
17
+ * Represents the properties of a notification destination.
18
+ */
19
+ export interface BucketNotificationDestinationConfig {
20
+ /**
21
+ * The notification type.
22
+ */
23
+ readonly type: BucketNotificationDestinationType;
24
+ /**
25
+ * The ARN of the destination (i.e. Lambda, SNS, SQS).
26
+ */
27
+ readonly arn: string;
28
+ /**
29
+ * Any additional dependencies that should be resolved before the bucket notification
30
+ * can be configured (for example, the SNS Topic Policy resource).
31
+ */
32
+ readonly dependencies?: IDependable[];
33
+ }
34
+ /**
35
+ * Supported types of notification destinations.
36
+ */
37
+ export declare enum BucketNotificationDestinationType {
38
+ LAMBDA = 0,
39
+ QUEUE = 1,
40
+ TOPIC = 2
41
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BucketNotificationDestinationType = void 0;
4
+ /**
5
+ * Supported types of notification destinations.
6
+ */
7
+ var BucketNotificationDestinationType;
8
+ (function (BucketNotificationDestinationType) {
9
+ BucketNotificationDestinationType[BucketNotificationDestinationType["LAMBDA"] = 0] = "LAMBDA";
10
+ BucketNotificationDestinationType[BucketNotificationDestinationType["QUEUE"] = 1] = "QUEUE";
11
+ BucketNotificationDestinationType[BucketNotificationDestinationType["TOPIC"] = 2] = "TOPIC";
12
+ })(BucketNotificationDestinationType || (exports.BucketNotificationDestinationType = BucketNotificationDestinationType = {}));
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LWRlc3RpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9zdG9yYWdlL2J1Y2tldC1kZXN0aW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFzQ0E7O0dBRUc7QUFDSCxJQUFZLGlDQUlYO0FBSkQsV0FBWSxpQ0FBaUM7SUFDM0MsNkZBQU0sQ0FBQTtJQUNOLDJGQUFLLENBQUE7SUFDTCwyRkFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGlDQUFpQyxpREFBakMsaUNBQWlDLFFBSTVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBJRGVwZW5kYWJsZSB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcIi4vYnVja2V0XCI7XG5cbi8qKlxuICogSW1wbGVtZW50ZWQgYnkgY29uc3RydWN0cyB0aGF0IGNhbiBiZSB1c2VkIGFzIGJ1Y2tldCBub3RpZmljYXRpb24gZGVzdGluYXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhpcyByZXNvdXJjZSB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWRcbiAgICogYnVja2V0LiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgY2FsbGVkIG9uY2UgZm9yIGVhY2ggZGVzdGluYXRpb24vYnVja2V0XG4gICAqIHBhaXIgYW5kIHRoZSByZXN1bHQgd2lsbCBiZSBjYWNoZWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gaW1wbGVtZW50XG4gICAqIGlkZW1wb3RlbmN5IGluIGVhY2ggZGVzdGluYXRpb24uXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIGJ1Y2tldCBvYmplY3QgdG8gYmluZCB0b1xuICAgKi9cbiAgYmluZChzY29wZTogQ29uc3RydWN0LCBidWNrZXQ6IElCdWNrZXQpOiBCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbkNvbmZpZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgbm90aWZpY2F0aW9uIGRlc3RpbmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24gdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZGVzdGluYXRpb24gKGkuZS4gTGFtYmRhLCBTTlMsIFNRUykuXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcblxuICAvKipcbiAgICogQW55IGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIHRoYXQgc2hvdWxkIGJlIHJlc29sdmVkIGJlZm9yZSB0aGUgYnVja2V0IG5vdGlmaWNhdGlvblxuICAgKiBjYW4gYmUgY29uZmlndXJlZCAoZm9yIGV4YW1wbGUsIHRoZSBTTlMgVG9waWMgUG9saWN5IHJlc291cmNlKS5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IElEZXBlbmRhYmxlW107XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIHR5cGVzIG9mIG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZSB7XG4gIExBTUJEQSxcbiAgUVVFVUUsXG4gIFRPUElDLFxufVxuIl19