terraconstructs 0.0.23 → 0.0.25

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 (266) hide show
  1. package/.jsii +61226 -46941
  2. package/go.mod +10 -7
  3. package/go.sum +20 -14
  4. package/lib/aws/arn.js +1 -1
  5. package/lib/aws/aws-construct.js +1 -1
  6. package/lib/aws/aws-stack.js +1 -1
  7. package/lib/aws/aws-tags.js +2 -2
  8. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  9. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  10. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  11. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  13. package/lib/aws/cloudwatch/alarm.js +4 -5
  14. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  15. package/lib/aws/cloudwatch/dashboard.js +1 -1
  16. package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
  17. package/lib/aws/cloudwatch/graph.js +8 -8
  18. package/lib/aws/cloudwatch/layout.js +3 -3
  19. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  20. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  21. package/lib/aws/cloudwatch/log-group.js +3 -3
  22. package/lib/aws/cloudwatch/log-query.js +1 -1
  23. package/lib/aws/cloudwatch/log-stream.js +1 -1
  24. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  25. package/lib/aws/cloudwatch/metric.js +4 -4
  26. package/lib/aws/cloudwatch/pattern.js +3 -3
  27. package/lib/aws/cloudwatch/policy.js +1 -1
  28. package/lib/aws/cloudwatch/private/metric-util.js +1 -2
  29. package/lib/aws/cloudwatch/query-definition.js +2 -2
  30. package/lib/aws/cloudwatch/stats.js +1 -1
  31. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  32. package/lib/aws/cloudwatch/text.js +1 -1
  33. package/lib/aws/cloudwatch/variable.js +3 -3
  34. package/lib/aws/cloudwatch/widget.js +1 -1
  35. package/lib/aws/compute/activity.js +1 -1
  36. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  37. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  38. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  39. package/lib/aws/compute/alb/application-listener.js +2 -4
  40. package/lib/aws/compute/alb/application-load-balancer.js +2 -4
  41. package/lib/aws/compute/alb/application-target-group.js +1 -1
  42. package/lib/aws/compute/alb/conditions.js +1 -1
  43. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  44. package/lib/aws/compute/alb/trust-store.js +1 -1
  45. package/lib/aws/compute/architecture.js +1 -1
  46. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  47. package/lib/aws/compute/autoscaling-common/index.d.ts +3 -0
  48. package/lib/aws/compute/autoscaling-common/index.js +21 -0
  49. package/lib/aws/compute/autoscaling-common/interval-utils.d.ts +21 -0
  50. package/lib/aws/compute/autoscaling-common/interval-utils.js +213 -0
  51. package/lib/aws/compute/autoscaling-common/test-utils.d.ts +21 -0
  52. package/lib/aws/compute/autoscaling-common/test-utils.js +94 -0
  53. package/lib/aws/compute/autoscaling-common/types.d.ts +34 -0
  54. package/lib/aws/compute/autoscaling-common/types.js +3 -0
  55. package/lib/aws/compute/base-scalable-attribute.d.ts +74 -0
  56. package/lib/aws/compute/base-scalable-attribute.js +58 -0
  57. package/lib/aws/compute/bastion-host.js +1 -1
  58. package/lib/aws/compute/chain.js +1 -1
  59. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  60. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  61. package/lib/aws/compute/client-vpn-route.js +2 -2
  62. package/lib/aws/compute/condition.js +1 -1
  63. package/lib/aws/compute/connections.js +1 -1
  64. package/lib/aws/compute/ec2-util.js +1 -4
  65. package/lib/aws/compute/event-invoke-config.js +1 -1
  66. package/lib/aws/compute/event-source-filter.js +2 -2
  67. package/lib/aws/compute/event-source-mapping.js +3 -3
  68. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  69. package/lib/aws/compute/event-sources/s3.js +1 -1
  70. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  71. package/lib/aws/compute/event-sources/sqs.js +1 -1
  72. package/lib/aws/compute/fields.js +4 -4
  73. package/lib/aws/compute/function-alias.js +1 -1
  74. package/lib/aws/compute/function-base.js +7 -8
  75. package/lib/aws/compute/function-destinations/event-bridge.js +3 -3
  76. package/lib/aws/compute/function-destinations/function.js +1 -1
  77. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  78. package/lib/aws/compute/function-nodejs.js +1 -1
  79. package/lib/aws/compute/function-url.js +1 -1
  80. package/lib/aws/compute/function.js +1 -1
  81. package/lib/aws/compute/index.d.ts +7 -0
  82. package/lib/aws/compute/index.js +11 -2
  83. package/lib/aws/compute/instance-types.js +1 -1
  84. package/lib/aws/compute/instance.js +1 -1
  85. package/lib/aws/compute/ip-addresses.js +2 -2
  86. package/lib/aws/compute/ipam.js +1 -1
  87. package/lib/aws/compute/key-pair.js +1 -1
  88. package/lib/aws/compute/launch-template.js +2 -2
  89. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  90. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  91. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  92. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  93. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  94. package/lib/aws/compute/lb-shared/util.js +1 -2
  95. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  96. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  97. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  98. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  99. package/lib/aws/compute/load-balancer.js +3 -3
  100. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  101. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  102. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  103. package/lib/aws/compute/machine-image/common.js +1 -1
  104. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  105. package/lib/aws/compute/machine-image/utils.js +6 -6
  106. package/lib/aws/compute/nat.js +5 -5
  107. package/lib/aws/compute/network-acl-types.js +2 -2
  108. package/lib/aws/compute/network-acl.js +3 -3
  109. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  110. package/lib/aws/compute/nlb/network-listener.js +2 -3
  111. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  112. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  113. package/lib/aws/compute/peer.js +1 -1
  114. package/lib/aws/compute/placement-group.js +1 -1
  115. package/lib/aws/compute/port.js +1 -1
  116. package/lib/aws/compute/prefix-list.js +1 -1
  117. package/lib/aws/compute/private/context-stub.js +2 -2
  118. package/lib/aws/compute/route.js +11 -11
  119. package/lib/aws/compute/scalable-target.d.ts +197 -0
  120. package/lib/aws/compute/scalable-target.js +168 -0
  121. package/lib/aws/compute/schedule.d.ts +81 -0
  122. package/lib/aws/compute/schedule.js +145 -0
  123. package/lib/aws/compute/security-group.js +4 -4
  124. package/lib/aws/compute/state-graph.js +1 -1
  125. package/lib/aws/compute/state-machine-fragment.js +1 -1
  126. package/lib/aws/compute/state-machine.js +4 -4
  127. package/lib/aws/compute/states/choice.js +1 -1
  128. package/lib/aws/compute/states/custom-state.js +1 -1
  129. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  130. package/lib/aws/compute/states/distributed-map/item-reader.js +7 -7
  131. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  132. package/lib/aws/compute/states/distributed-map.js +4 -4
  133. package/lib/aws/compute/states/fail.js +1 -1
  134. package/lib/aws/compute/states/map-base.js +1 -1
  135. package/lib/aws/compute/states/map.js +1 -1
  136. package/lib/aws/compute/states/parallel.js +1 -1
  137. package/lib/aws/compute/states/pass.js +2 -2
  138. package/lib/aws/compute/states/state.js +1 -1
  139. package/lib/aws/compute/states/succeed.js +1 -1
  140. package/lib/aws/compute/states/task-base.js +2 -2
  141. package/lib/aws/compute/states/task.js +1 -1
  142. package/lib/aws/compute/states/wait.js +2 -2
  143. package/lib/aws/compute/step-scaling-action.d.ts +148 -0
  144. package/lib/aws/compute/step-scaling-action.js +109 -0
  145. package/lib/aws/compute/step-scaling-policy.d.ts +132 -0
  146. package/lib/aws/compute/step-scaling-policy.js +153 -0
  147. package/lib/aws/compute/subnet-v2.js +2 -2
  148. package/lib/aws/compute/subnet.js +1 -1
  149. package/lib/aws/compute/target-tracking-scaling-policy.d.ts +262 -0
  150. package/lib/aws/compute/target-tracking-scaling-policy.js +234 -0
  151. package/lib/aws/compute/task-credentials.js +1 -1
  152. package/lib/aws/compute/task-input.js +1 -1
  153. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  154. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  155. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  156. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  157. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  158. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  159. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  160. package/lib/aws/compute/types.js +1 -1
  161. package/lib/aws/compute/user-data.js +3 -3
  162. package/lib/aws/compute/volume.js +2 -2
  163. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  164. package/lib/aws/compute/vpc-endpoint.js +6 -6
  165. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  166. package/lib/aws/compute/vpc-v2-base.js +1 -1
  167. package/lib/aws/compute/vpc-v2.js +2 -2
  168. package/lib/aws/compute/vpc.d.ts +1 -1
  169. package/lib/aws/compute/vpc.js +10 -16
  170. package/lib/aws/compute/vpn.js +4 -7
  171. package/lib/aws/compute/windows-versions.js +1 -2
  172. package/lib/aws/edge/certificate.js +1 -1
  173. package/lib/aws/edge/distribution.js +4 -5
  174. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  175. package/lib/aws/edge/dns-record.js +13 -13
  176. package/lib/aws/edge/dns-zone.js +1 -1
  177. package/lib/aws/edge/function.js +2 -2
  178. package/lib/aws/edge/key-value-store.js +4 -4
  179. package/lib/aws/edge/origin.js +3 -3
  180. package/lib/aws/edge/response-headers-policy.js +1 -1
  181. package/lib/aws/encryption/alias.js +1 -1
  182. package/lib/aws/encryption/key.js +1 -1
  183. package/lib/aws/encryption/via-service-principal.js +1 -1
  184. package/lib/aws/iam/grant.js +3 -4
  185. package/lib/aws/iam/group.js +1 -1
  186. package/lib/aws/iam/instance-profile.js +1 -1
  187. package/lib/aws/iam/managed-policy.js +1 -1
  188. package/lib/aws/iam/oidc-provider.js +3 -3
  189. package/lib/aws/iam/policy-document.js +1 -1
  190. package/lib/aws/iam/policy-statement.js +1 -1
  191. package/lib/aws/iam/policy.js +1 -1
  192. package/lib/aws/iam/principals.js +20 -20
  193. package/lib/aws/iam/role.js +1 -1
  194. package/lib/aws/iam/saml-provider.js +2 -2
  195. package/lib/aws/iam/unknown-principal.js +1 -1
  196. package/lib/aws/iam/user.js +1 -1
  197. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  198. package/lib/aws/network/subnet-group.js +3 -3
  199. package/lib/aws/network/subnet.js +4 -4
  200. package/lib/aws/notify/archive.js +1 -1
  201. package/lib/aws/notify/connection.js +7 -7
  202. package/lib/aws/notify/event-bus.js +3 -3
  203. package/lib/aws/notify/event-pattern.js +1 -1
  204. package/lib/aws/notify/input.js +2 -2
  205. package/lib/aws/notify/kinesis-stream.js +1 -1
  206. package/lib/aws/notify/notification-rule.js +1 -1
  207. package/lib/aws/notify/policy.js +1 -1
  208. package/lib/aws/notify/queue-policy.js +1 -1
  209. package/lib/aws/notify/queue.js +1 -1
  210. package/lib/aws/notify/resource-policy.js +1 -1
  211. package/lib/aws/notify/rule.js +1 -1
  212. package/lib/aws/notify/schedule.js +1 -1
  213. package/lib/aws/notify/subscription-filter.js +1 -1
  214. package/lib/aws/notify/subscription.js +4 -4
  215. package/lib/aws/notify/subscriptions/email.js +1 -1
  216. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  217. package/lib/aws/notify/subscriptions/sms.js +1 -1
  218. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  219. package/lib/aws/notify/subscriptions/url.js +1 -1
  220. package/lib/aws/notify/targets/event-bus.js +1 -1
  221. package/lib/aws/notify/targets/function.js +1 -1
  222. package/lib/aws/notify/targets/log-group.js +2 -2
  223. package/lib/aws/notify/targets/sqs.js +3 -3
  224. package/lib/aws/notify/targets/state-machine.js +1 -1
  225. package/lib/aws/notify/targets/util.js +2 -2
  226. package/lib/aws/notify/topic-base.js +1 -1
  227. package/lib/aws/notify/topic.js +1 -1
  228. package/lib/aws/storage/billing.d.ts +62 -0
  229. package/lib/aws/storage/billing.js +49 -0
  230. package/lib/aws/storage/bucket-notifications.js +1 -1
  231. package/lib/aws/storage/bucket-policy.js +1 -1
  232. package/lib/aws/storage/bucket-source.js +3 -3
  233. package/lib/aws/storage/bucket.js +2 -2
  234. package/lib/aws/storage/capacity.d.ts +96 -0
  235. package/lib/aws/storage/capacity.js +103 -0
  236. package/lib/aws/storage/dynamodb-canned-metrics.generated.d.ts +493 -0
  237. package/lib/aws/storage/dynamodb-canned-metrics.generated.js +263 -0
  238. package/lib/aws/storage/dynamodb-perms.d.ts +8 -0
  239. package/lib/aws/storage/dynamodb-perms.js +45 -0
  240. package/lib/aws/storage/encryption.d.ts +54 -0
  241. package/lib/aws/storage/encryption.js +116 -0
  242. package/lib/aws/storage/index.d.ts +6 -0
  243. package/lib/aws/storage/index.js +10 -1
  244. package/lib/aws/storage/notification-targets/function.js +1 -1
  245. package/lib/aws/storage/notification-targets/queue.js +1 -1
  246. package/lib/aws/storage/origin-access-identity.js +1 -1
  247. package/lib/aws/storage/parameter.js +2 -2
  248. package/lib/aws/storage/scalable-attribute-api.d.ts +36 -0
  249. package/lib/aws/storage/scalable-attribute-api.js +3 -0
  250. package/lib/aws/storage/scalable-table-attribute.d.ts +32 -0
  251. package/lib/aws/storage/scalable-table-attribute.js +48 -0
  252. package/lib/aws/storage/shared.d.ts +419 -0
  253. package/lib/aws/storage/shared.js +161 -0
  254. package/lib/aws/storage/table.d.ts +536 -0
  255. package/lib/aws/storage/table.js +1054 -0
  256. package/lib/construct-base.js +2 -2
  257. package/lib/duration.js +1 -1
  258. package/lib/expiration.js +1 -1
  259. package/lib/index.d.ts +1 -0
  260. package/lib/index.js +2 -1
  261. package/lib/size.js +1 -1
  262. package/lib/stack-base.js +1 -1
  263. package/lib/terra-func.js +1 -1
  264. package/lib/time-zone.d.ts +724 -0
  265. package/lib/time-zone.js +737 -0
  266. package/package.json +2 -1
@@ -54,5 +54,5 @@ class QueueDestination {
54
54
  }
55
55
  exports.QueueDestination = QueueDestination;
56
56
  _a = JSII_RTTI_SYMBOL_1;
57
- QueueDestination[_a] = { fqn: "terraconstructs.aws.storage.targets.QueueDestination", version: "0.0.23" };
57
+ QueueDestination[_a] = { fqn: "terraconstructs.aws.storage.targets.QueueDestination", version: "0.0.25" };
58
58
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3N0b3JhZ2Uvbm90aWZpY2F0aW9uLXRhcmdldHMvcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw4QkFBOEI7QUFDOUIsaUNBQWlDO0FBR2pDOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFHM0IsWUFBNkIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFBRyxDQUFDO0lBRTlDOzs7T0FHRztJQUNJLElBQUksQ0FDVCxNQUFpQixFQUNqQixNQUF1QjtRQUV2QixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUMxQixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQyxVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQ0gsQ0FBQztRQUVGLDhCQUE4QjtRQUM5Qix1RkFBdUY7UUFDdkYsMkVBQTJFO1FBQzNFLHdDQUF3QztRQUN4QyxnREFBZ0Q7UUFDaEQsa0VBQWtFO1FBQ2xFLHdEQUF3RDtRQUN4RCx3QkFBd0I7UUFDeEIsUUFBUTtRQUNSLDBFQUEwRTtRQUMxRSxpQkFBaUI7UUFDakIsNEJBQTRCO1FBQzVCLE9BQU87UUFDUCxxQ0FBcUM7UUFDckMsaUVBQWlFO1FBQ2pFLDJLQUEySztRQUMzSyxTQUFTO1FBQ1QsTUFBTTtRQUNOLElBQUk7UUFFSixPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLEtBQUs7WUFDckQsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUMzQixDQUFDO0lBQ0osQ0FBQzs7QUFsREgsNENBbURDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi8uLi9pYW1cIjtcbmltcG9ydCB7IElRdWV1ZSB9IGZyb20gXCIuLi8uLi9ub3RpZnlcIjtcblxuLyoqXG4gKiBVc2UgYW4gU1FTIHF1ZXVlIGFzIGEgYnVja2V0IG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvblxuICovXG5leHBvcnQgY2xhc3MgUXVldWVEZXN0aW5hdGlvblxuICBpbXBsZW1lbnRzIHN0b3JhZ2UuSUJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uXG57XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcXVldWU6IElRdWV1ZSkge31cblxuICAvKipcbiAgICogQWxsb3dzIHVzaW5nIFNRUyBxdWV1ZXMgYXMgZGVzdGluYXRpb25zIGZvciBidWNrZXQgbm90aWZpY2F0aW9ucy5cbiAgICogVXNlIGBidWNrZXQub25FdmVudChldmVudCwgcXVldWUpYCB0byBzdWJzY3JpYmUuXG4gICAqL1xuICBwdWJsaWMgYmluZChcbiAgICBfc2NvcGU6IENvbnN0cnVjdCxcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgKTogc3RvcmFnZS5CdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgdGhpcy5xdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhcbiAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInMzLmFtYXpvbmF3cy5jb21cIiwge1xuICAgICAgICBjb25kaXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJBcm5MaWtlXCIsXG4gICAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQXJuXCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtidWNrZXQuYnVja2V0QXJuXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIC8vIFRPRE86IFJlLWFkZCBLTVMgU3VwcG9ydFxuICAgIC8vIC8vIGlmIHRoaXMgcXVldWUgaXMgZW5jcnlwdGVkLCB3ZSBuZWVkIHRvIGFsbG93IFMzIHRvIHJlYWQgbWVzc2FnZXMgc2luY2UgdGhhdCdzIGhvd1xuICAgIC8vIC8vIGl0IHZlcmlmaWVzIHRoYXQgdGhlIG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uIGlzIHZhbGlkLlxuICAgIC8vIGlmICh0aGlzLnF1ZXVlLmVuY3J5cHRpb25NYXN0ZXJLZXkpIHtcbiAgICAvLyAgIGNvbnN0IHN0YXRlbWVudCA9IG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAvLyAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInMzLmFtYXpvbmF3cy5jb21cIildLFxuICAgIC8vICAgICBhY3Rpb25zOiBbXCJrbXM6R2VuZXJhdGVEYXRhS2V5KlwiLCBcImttczpEZWNyeXB0XCJdLFxuICAgIC8vICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgLy8gICB9KTtcbiAgICAvLyAgIGNvbnN0IGFkZFJlc3VsdCA9IHRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIC8vICAgICBzdGF0ZW1lbnQsXG4gICAgLy8gICAgIC8qIGFsbG93Tm9PcCAqLyB0cnVlLFxuICAgIC8vICAgKTtcbiAgICAvLyAgIGlmICghYWRkUmVzdWx0LnN0YXRlbWVudEFkZGVkKSB7XG4gICAgLy8gICAgIEFubm90YXRpb25zLm9mKHRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleSkuYWRkV2FybmluZyhcbiAgICAvLyAgICAgICBgQ2FuIG5vdCBjaGFuZ2Uga2V5IHBvbGljeSBvZiBpbXBvcnRlZCBrbXMga2V5LiBFbnN1cmUgdGhhdCB5b3VyIGtleSBwb2xpY3kgY29udGFpbnMgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9uczogXFxuJHtKU09OLnN0cmluZ2lmeShzdGF0ZW1lbnQudG9KU09OKCksIG51bGwsIDIpfWAsXG4gICAgLy8gICAgICk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFybjogdGhpcy5xdWV1ZS5xdWV1ZUFybixcbiAgICAgIHR5cGU6IHN0b3JhZ2UuQnVja2V0Tm90aWZpY2F0aW9uRGVzdGluYXRpb25UeXBlLlFVRVVFLFxuICAgICAgZGVwZW5kZW5jaWVzOiBbdGhpcy5xdWV1ZV0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -73,5 +73,5 @@ class OriginAccessIdentity extends OriginAccessIdentityBase {
73
73
  }
74
74
  exports.OriginAccessIdentity = OriginAccessIdentity;
75
75
  _a = JSII_RTTI_SYMBOL_1;
76
- OriginAccessIdentity[_a] = { fqn: "terraconstructs.aws.storage.OriginAccessIdentity", version: "0.0.23" };
76
+ OriginAccessIdentity[_a] = { fqn: "terraconstructs.aws.storage.OriginAccessIdentity", version: "0.0.25" };
77
77
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JpZ2luLWFjY2Vzcy1pZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvc3RvcmFnZS9vcmlnaW4tYWNjZXNzLWlkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUhBQWlIO0FBRWpILHNEQUc2QjtBQUc3QixvREFJMEI7QUFDMUIsZ0NBQThEO0FBdUM5RCxNQUFlLHdCQUF5QixTQUFRLGdDQUFnQjtJQXNCOUQsTUFBTTtJQUNOLHVFQUF1RTtJQUN2RSxNQUFNO0lBQ04sNEJBQTRCO0lBQzVCLG9EQUFvRDtJQUNwRCxRQUFRO0lBQ1Isd0JBQXdCO0lBQ3hCLDhCQUE4QjtJQUM5QiwrQkFBK0I7SUFDL0IsMEJBQTBCO0lBQzFCLDBGQUEwRjtJQUMxRixTQUFTO0lBQ1QsT0FBTztJQUNQLElBQUk7SUFFSixJQUFXLE9BQU87UUFDaEIsT0FBTztZQUNMLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7WUFDbkQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxvQkFDWCxTQUFRLHdCQUF3QjtJQUdoQzs7T0FFRztJQUNJLE1BQU0sQ0FBQywwQkFBMEIsQ0FDdEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLHNCQUE4QjtRQUU5QixNQUFNLE1BQU8sU0FBUSx3QkFBd0I7WUFNM0MsWUFBWSxDQUFZLEVBQUUsQ0FBUztnQkFDakMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBTEYsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUM7Z0JBTTlELElBQUksQ0FBQyxRQUFRO29CQUNYLElBQUksb0RBQXFDLENBQUMscUNBQXFDLENBQzdFLElBQUksRUFDSixVQUFVLEVBQ1Y7d0JBQ0UsRUFBRSxFQUFFLHNCQUFzQjtxQkFDM0IsQ0FDRixDQUFDO2dCQUNKLElBQUksQ0FBQyxrQ0FBa0M7b0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsNEJBQTRCLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxrQkFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RCxDQUFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBaUNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlCLG1DQUFtQztRQUNuQyxNQUFNLE9BQU8sR0FBRyxDQUNkLEtBQUssRUFBRSxPQUFPLElBQUksdUNBQXVDLENBQzFELENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUTtZQUNYLElBQUksNkNBQThCLENBQUMsOEJBQThCLENBQy9ELElBQUksRUFDSixVQUFVLEVBQ1Y7Z0JBQ0UsT0FBTzthQUNSLENBQ0YsQ0FBQztRQUNKLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLGtDQUFrQztZQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGtCQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RELENBQUM7O0FBMUZILG9EQTJGQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250L2xpYi9vcmlnaW4tYWNjZXNzLWlkZW50aXR5LnRzXG5cbmltcG9ydCB7XG4gIGNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgZGF0YUF3c0Nsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IElUZXJyYWZvcm1EZXBlbmRhYmxlIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgSUF3c0NvbnN0cnVjdCxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBcm5QcmluY2lwYWwsIElQcmluY2lwYWwsIElHcmFudGFibGUgfSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8vIFRPRE86IG1pZ3JhdGUgdG8gT0FDXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMTI1NFxuLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkRnJvbnQvbGF0ZXN0L0RldmVsb3Blckd1aWRlL3ByaXZhdGUtY29udGVudC1yZXN0cmljdGluZy1hY2Nlc3MtdG8tczMuaHRtbCNtaWdyYXRlLWZyb20tb2FpLXRvLW9hY1xuLy8gaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42MC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3VkZnJvbnRfb3JpZ2luX2FjY2Vzc19jb250cm9sXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JpZ2luQWNjZXNzSWRlbnRpdHlQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEEgY29tbWVudCB0byBkZXNjcmliZSB0aGUgb3JpZ2luIGFjY2VzcyBpZGVudGl0eS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBDbG91ZEZyb250IE9yaWdpbkFjY2Vzc0lkZW50aXR5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU9yaWdpbkFjY2Vzc0lkZW50aXR5IGV4dGVuZHMgSUF3c0NvbnN0cnVjdCwgSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgT3JpZ2luIEFjY2VzcyBJZGVudGl0eSBJZCAocGh5c2ljYWwgaWQpXG4gICAqL1xuICByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHNob3J0Y3V0IHRvIHRoZSBmdWxsIHBhdGggZm9yIHRoZSBvcmlnaW4gYWNjZXNzIGlkZW50aXR5IHRvIHVzZSBpbiBDbG91ZEZyb250LlxuICAgKlxuICAgKiBFeGFtcGxlOiBgb3JpZ2luLWFjY2Vzcy1pZGVudGl0eS9jbG91ZGZyb250L0UyUVdSVUhBUE9NUVpMYC5cbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVBhdGg6IHN0cmluZztcbiAgLyoqXG4gICAqIFByZS1nZW5lcmF0ZWQgQVJOIGZvciB1c2UgaW4gUzMgYnVja2V0IHBvbGljaWVzLlxuICAgKlxuICAgKiBFeGFtcGxlOiBgYXJuOmF3czppYW06OmNsb3VkZnJvbnQ6dXNlci9DbG91ZEZyb250IE9yaWdpbiBBY2Nlc3MgSWRlbnRpdHkgRTJRV1JVSEFQT01RWkxgLlxuICAgKi9cbiAgcmVhZG9ubHkgaWFtQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZXJpdmVkIHByaW5jaXBhbCB2YWx1ZSBmb3IgYnVja2V0IGFjY2Vzc1xuICAgKi9cbn1cblxuYWJzdHJhY3QgY2xhc3MgT3JpZ2luQWNjZXNzSWRlbnRpdHlCYXNlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZSB0byBkZXBlbmQgb24gdG8gbWFrZSBzdXJlIHRoZSBPcmlnaW5BY2Nlc3NJZGVudGl0eSBpcyBjcmVhdGVkIGJlZm9yZSB1c2luZyBpdC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSByZXNvdXJjZTogSVRlcnJhZm9ybURlcGVuZGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBPcmlnaW4gQWNjZXNzIElkZW50aXR5IElkIChwaHlzaWNhbCBpZClcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc2hvcnRjdXQgdG8gdGhlIGZ1bGwgcGF0aCBmb3IgdGhlIG9yaWdpbiBhY2Nlc3MgaWRlbnRpdHkgdG8gdXNlIGluIENsb3VkRnJvbnQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXJpdmVkIHByaW5jaXBhbCB2YWx1ZSBmb3IgYnVja2V0IGFjY2Vzc1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBJUHJpbmNpcGFsO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBpYW1Bcm46IHN0cmluZztcbiAgLy8gLyoqXG4gIC8vICAqIFRoZSBBUk4gdG8gaW5jbHVkZSBpbiBTMyBidWNrZXQgcG9saWN5IHRvIGFsbG93IENsb3VkRnJvbnQgYWNjZXNzXG4gIC8vICAqL1xuICAvLyBwcm90ZWN0ZWQgYXJuKCk6IHN0cmluZyB7XG4gIC8vICAgcmV0dXJuIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmZvcm1hdEFybihcbiAgLy8gICAgIHtcbiAgLy8gICAgICAgc2VydmljZTogJ2lhbScsXG4gIC8vICAgICAgIHJlZ2lvbjogJycsIC8vIGdsb2JhbFxuICAvLyAgICAgICBhY2NvdW50OiAnY2xvdWRmcm9udCcsXG4gIC8vICAgICAgIHJlc291cmNlOiAndXNlcicsXG4gIC8vICAgICAgIHJlc291cmNlTmFtZTogYENsb3VkRnJvbnQgT3JpZ2luIEFjY2VzcyBJZGVudGl0eSAke3RoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHlJZH1gLFxuICAvLyAgICAgfSxcbiAgLy8gICApO1xuICAvLyB9XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkOiB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5SWQsXG4gICAgICBpYW1Bcm46IHRoaXMuaWFtQXJuLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBvcmlnaW4gYWNjZXNzIGlkZW50aXR5IGlzIGEgc3BlY2lhbCBDbG91ZEZyb250IHVzZXIgdGhhdCB5b3UgY2FuXG4gKiBhc3NvY2lhdGUgd2l0aCBBbWF6b24gUzMgb3JpZ2lucywgc28gdGhhdCB5b3UgY2FuIHNlY3VyZSBhbGwgb3IganVzdCBzb21lIG9mXG4gKiB5b3VyIEFtYXpvbiBTMyBjb250ZW50LlxuICovXG5leHBvcnQgY2xhc3MgT3JpZ2luQWNjZXNzSWRlbnRpdHlcbiAgZXh0ZW5kcyBPcmlnaW5BY2Nlc3NJZGVudGl0eUJhc2VcbiAgaW1wbGVtZW50cyBJT3JpZ2luQWNjZXNzSWRlbnRpdHlcbntcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBPcmlnaW5BY2Nlc3NJZGVudGl0eSBieSBwcm92aWRpbmcgdGhlIE9yaWdpbkFjY2Vzc0lkZW50aXR5SWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21PcmlnaW5BY2Nlc3NJZGVudGl0eUlkKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkOiBzdHJpbmcsXG4gICk6IElPcmlnaW5BY2Nlc3NJZGVudGl0eSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgT3JpZ2luQWNjZXNzSWRlbnRpdHlCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogZGF0YUF3c0Nsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eS5EYXRhQXdzQ2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuICAgICAgcHVibGljIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5SWQgPSBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVBhdGg6IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSBpYW1Bcm46IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogSVByaW5jaXBhbDtcbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGksIHt9KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9XG4gICAgICAgICAgbmV3IGRhdGFBd3NDbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHkuRGF0YUF3c0Nsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB0aGlzLmNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVBhdGggPVxuICAgICAgICAgIHRoaXMucmVzb3VyY2UuY2xvdWRmcm9udEFjY2Vzc0lkZW50aXR5UGF0aDtcbiAgICAgICAgdGhpcy5pYW1Bcm4gPSB0aGlzLnJlc291cmNlLmlhbUFybjtcbiAgICAgICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IG5ldyBBcm5QcmluY2lwYWwodGhpcy5pYW1Bcm4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIE9yaWdpbiBBY2Nlc3MgSWRlbnRpdHkgSWQgKHBoeXNpY2FsIGlkKVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3JpZ2luQWNjZXNzSWRlbnRpdHlJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNob3J0Y3V0IHRvIHRoZSBmdWxsIHBhdGggZm9yIHRoZSBvcmlnaW4gYWNjZXNzIGlkZW50aXR5IHRvIHVzZSBpbiBDbG91ZEZyb250LlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmUtZ2VuZXJhdGVkIEFSTiBmb3IgdXNlIGluIFMzIGJ1Y2tldCBwb2xpY2llcy5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlhbUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXJpdmVkIHByaW5jaXBhbCB2YWx1ZSBmb3IgYnVja2V0IGFjY2Vzc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBJUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBDREtURiBMMSByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHkuQ2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogT3JpZ2luQWNjZXNzSWRlbnRpdHlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMgPz8ge30pO1xuXG4gICAgLy8gQ29tbWVudCBoYXMgYSBtYXggbGVuZ3RoIG9mIDEyOC5cbiAgICBjb25zdCBjb21tZW50ID0gKFxuICAgICAgcHJvcHM/LmNvbW1lbnQgPz8gXCJBbGxvd3MgQ2xvdWRGcm9udCB0byByZWFjaCB0aGUgYnVja2V0XCJcbiAgICApLnNsaWNlKDAsIDEyOCk7XG4gICAgdGhpcy5yZXNvdXJjZSA9XG4gICAgICBuZXcgY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LkNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgY29tbWVudCxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgLy8gcGh5c2ljYWwgaWQgLSBPQUkgSWRcbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5SWQgPSB0aGlzLnJlc291cmNlLmlkO1xuICAgIHRoaXMuY2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5UGF0aCA9XG4gICAgICB0aGlzLnJlc291cmNlLmNsb3VkZnJvbnRBY2Nlc3NJZGVudGl0eVBhdGg7XG4gICAgdGhpcy5pYW1Bcm4gPSB0aGlzLnJlc291cmNlLmlhbUFybjtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gbmV3IEFyblByaW5jaXBhbCh0aGlzLmlhbUFybik7XG4gIH1cbn1cbiJdfQ==
@@ -452,7 +452,7 @@ class StringParameter extends ParameterBase {
452
452
  }
453
453
  exports.StringParameter = StringParameter;
454
454
  _a = JSII_RTTI_SYMBOL_1;
455
- StringParameter[_a] = { fqn: "terraconstructs.aws.storage.StringParameter", version: "0.0.23" };
455
+ StringParameter[_a] = { fqn: "terraconstructs.aws.storage.StringParameter", version: "0.0.25" };
456
456
  /**
457
457
  * Creates a new StringList SSM Parameter.
458
458
  * @resource AWS::SSM::Parameter
@@ -570,7 +570,7 @@ class StringListParameter extends ParameterBase {
570
570
  }
571
571
  exports.StringListParameter = StringListParameter;
572
572
  _b = JSII_RTTI_SYMBOL_1;
573
- StringListParameter[_b] = { fqn: "terraconstructs.aws.storage.StringListParameter", version: "0.0.23" };
573
+ StringListParameter[_b] = { fqn: "terraconstructs.aws.storage.StringListParameter", version: "0.0.25" };
574
574
  /**
575
575
  * Validates whether a supplied value conforms to the allowedPattern, granted neither is an unresolved token.
576
576
  *
@@ -0,0 +1,36 @@
1
+ import * as appscaling from "../compute";
2
+ /**
3
+ * Interface for scalable attributes
4
+ */
5
+ export interface IScalableTableAttribute {
6
+ /**
7
+ * Add scheduled scaling for this scaling attribute
8
+ */
9
+ scaleOnSchedule(id: string, actions: appscaling.ScalingSchedule): void;
10
+ /**
11
+ * Scale out or in to keep utilization at a given level
12
+ */
13
+ scaleOnUtilization(props: UtilizationScalingProps): void;
14
+ }
15
+ /**
16
+ * Properties for enabling DynamoDB capacity scaling
17
+ */
18
+ export interface EnableScalingProps {
19
+ /**
20
+ * Minimum capacity to scale to
21
+ */
22
+ readonly minCapacity: number;
23
+ /**
24
+ * Maximum capacity to scale to
25
+ */
26
+ readonly maxCapacity: number;
27
+ }
28
+ /**
29
+ * Properties for enabling DynamoDB utilization tracking
30
+ */
31
+ export interface UtilizationScalingProps extends appscaling.BaseTargetTrackingProps {
32
+ /**
33
+ * Target utilization percentage for the attribute
34
+ */
35
+ readonly targetUtilizationPercent: number;
36
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFibGUtYXR0cmlidXRlLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvc3RvcmFnZS9zY2FsYWJsZS1hdHRyaWJ1dGUtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhcHBzY2FsaW5nIGZyb20gXCIuLi9jb21wdXRlXCI7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBzY2FsYWJsZSBhdHRyaWJ1dGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNjYWxhYmxlVGFibGVBdHRyaWJ1dGUge1xuICAvKipcbiAgICogQWRkIHNjaGVkdWxlZCBzY2FsaW5nIGZvciB0aGlzIHNjYWxpbmcgYXR0cmlidXRlXG4gICAqL1xuICBzY2FsZU9uU2NoZWR1bGUoaWQ6IHN0cmluZywgYWN0aW9uczogYXBwc2NhbGluZy5TY2FsaW5nU2NoZWR1bGUpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTY2FsZSBvdXQgb3IgaW4gdG8ga2VlcCB1dGlsaXphdGlvbiBhdCBhIGdpdmVuIGxldmVsXG4gICAqL1xuICBzY2FsZU9uVXRpbGl6YXRpb24ocHJvcHM6IFV0aWxpemF0aW9uU2NhbGluZ1Byb3BzKTogdm9pZDtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBlbmFibGluZyBEeW5hbW9EQiBjYXBhY2l0eSBzY2FsaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hYmxlU2NhbGluZ1Byb3BzIHtcbiAgLyoqXG4gICAqIE1pbmltdW0gY2FwYWNpdHkgdG8gc2NhbGUgdG9cbiAgICovXG4gIHJlYWRvbmx5IG1pbkNhcGFjaXR5OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gY2FwYWNpdHkgdG8gc2NhbGUgdG9cbiAgICovXG4gIHJlYWRvbmx5IG1heENhcGFjaXR5OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZW5hYmxpbmcgRHluYW1vREIgdXRpbGl6YXRpb24gdHJhY2tpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVdGlsaXphdGlvblNjYWxpbmdQcm9wc1xuICBleHRlbmRzIGFwcHNjYWxpbmcuQmFzZVRhcmdldFRyYWNraW5nUHJvcHMge1xuICAvKipcbiAgICogVGFyZ2V0IHV0aWxpemF0aW9uIHBlcmNlbnRhZ2UgZm9yIHRoZSBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFV0aWxpemF0aW9uUGVyY2VudDogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,32 @@
1
+ import { UtilizationScalingProps } from "./scalable-attribute-api";
2
+ import { BaseScalableAttribute } from "../compute/base-scalable-attribute";
3
+ import { ScalingSchedule } from "../compute/scalable-target";
4
+ /**
5
+ * A scalable table attribute
6
+ */
7
+ export declare class ScalableTableAttribute extends BaseScalableAttribute {
8
+ private scalingPolicyCreated;
9
+ /**
10
+ * Scale out or in based on time
11
+ */
12
+ scaleOnSchedule(id: string, action: ScalingSchedule): void;
13
+ /**
14
+ * Scale out or in to keep utilization at a given level
15
+ */
16
+ scaleOnUtilization(props: UtilizationScalingProps): void;
17
+ /** @internal */
18
+ get _scalingPolicyCreated(): boolean;
19
+ }
20
+ /**
21
+ * Properties for enabling DynamoDB capacity scaling
22
+ */
23
+ export interface EnableScalingProps {
24
+ /**
25
+ * Minimum capacity to scale to
26
+ */
27
+ minCapacity: number;
28
+ /**
29
+ * Maximum capacity to scale to
30
+ */
31
+ maxCapacity: number;
32
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScalableTableAttribute = void 0;
4
+ const base_scalable_attribute_1 = require("../compute/base-scalable-attribute");
5
+ const target_tracking_scaling_policy_1 = require("../compute/target-tracking-scaling-policy");
6
+ /**
7
+ * A scalable table attribute
8
+ */
9
+ class ScalableTableAttribute extends base_scalable_attribute_1.BaseScalableAttribute {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.scalingPolicyCreated = false;
13
+ }
14
+ /**
15
+ * Scale out or in based on time
16
+ */
17
+ scaleOnSchedule(id, action) {
18
+ this.scalingPolicyCreated = true;
19
+ super.doScaleOnSchedule(id, action);
20
+ }
21
+ /**
22
+ * Scale out or in to keep utilization at a given level
23
+ */
24
+ scaleOnUtilization(props) {
25
+ if (props.targetUtilizationPercent < 10 ||
26
+ props.targetUtilizationPercent > 90) {
27
+ throw new RangeError(`targetUtilizationPercent for DynamoDB scaling must be between 10 and 90 percent, got: ${props.targetUtilizationPercent}`);
28
+ }
29
+ this.scalingPolicyCreated = true;
30
+ const predefinedMetric = this.props.dimension.indexOf("ReadCapacity") === -1
31
+ ? target_tracking_scaling_policy_1.PredefinedMetric.DYNAMODB_WRITE_CAPACITY_UTILIZATION
32
+ : target_tracking_scaling_policy_1.PredefinedMetric.DYNAMODB_READ_CAPACITY_UTILIZATION;
33
+ super.doScaleToTrackMetric("Tracking", {
34
+ policyName: props.policyName,
35
+ disableScaleIn: props.disableScaleIn,
36
+ scaleInCooldown: props.scaleInCooldown,
37
+ scaleOutCooldown: props.scaleOutCooldown,
38
+ targetValue: props.targetUtilizationPercent,
39
+ predefinedMetric,
40
+ });
41
+ }
42
+ /** @internal */
43
+ get _scalingPolicyCreated() {
44
+ return this.scalingPolicyCreated;
45
+ }
46
+ }
47
+ exports.ScalableTableAttribute = ScalableTableAttribute;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFibGUtdGFibGUtYXR0cmlidXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9zdG9yYWdlL3NjYWxhYmxlLXRhYmxlLWF0dHJpYnV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnRkFBMkU7QUFFM0UsOEZBQTZFO0FBRTdFOztHQUVHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSwrQ0FBcUI7SUFBakU7O1FBQ1UseUJBQW9CLEdBQUcsS0FBSyxDQUFDO0lBMEN2QyxDQUFDO0lBeENDOztPQUVHO0lBQ0ksZUFBZSxDQUFDLEVBQVUsRUFBRSxNQUF1QjtRQUN4RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQWtCLENBQUMsS0FBOEI7UUFDdEQsSUFDRSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRTtZQUNuQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxFQUNuQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLFVBQVUsQ0FDbEIseUZBQXlGLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUMxSCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsTUFBTSxnQkFBZ0IsR0FDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsaURBQWdCLENBQUMsbUNBQW1DO1lBQ3RELENBQUMsQ0FBQyxpREFBZ0IsQ0FBQyxrQ0FBa0MsQ0FBQztRQUUxRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFO1lBQ3JDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7WUFDcEMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsV0FBVyxFQUFFLEtBQUssQ0FBQyx3QkFBd0I7WUFDM0MsZ0JBQWdCO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBM0NELHdEQTJDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFV0aWxpemF0aW9uU2NhbGluZ1Byb3BzIH0gZnJvbSBcIi4vc2NhbGFibGUtYXR0cmlidXRlLWFwaVwiO1xuaW1wb3J0IHsgQmFzZVNjYWxhYmxlQXR0cmlidXRlIH0gZnJvbSBcIi4uL2NvbXB1dGUvYmFzZS1zY2FsYWJsZS1hdHRyaWJ1dGVcIjtcbmltcG9ydCB7IFNjYWxpbmdTY2hlZHVsZSB9IGZyb20gXCIuLi9jb21wdXRlL3NjYWxhYmxlLXRhcmdldFwiO1xuaW1wb3J0IHsgUHJlZGVmaW5lZE1ldHJpYyB9IGZyb20gXCIuLi9jb21wdXRlL3RhcmdldC10cmFja2luZy1zY2FsaW5nLXBvbGljeVwiO1xuXG4vKipcbiAqIEEgc2NhbGFibGUgdGFibGUgYXR0cmlidXRlXG4gKi9cbmV4cG9ydCBjbGFzcyBTY2FsYWJsZVRhYmxlQXR0cmlidXRlIGV4dGVuZHMgQmFzZVNjYWxhYmxlQXR0cmlidXRlIHtcbiAgcHJpdmF0ZSBzY2FsaW5nUG9saWN5Q3JlYXRlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTY2FsZSBvdXQgb3IgaW4gYmFzZWQgb24gdGltZVxuICAgKi9cbiAgcHVibGljIHNjYWxlT25TY2hlZHVsZShpZDogc3RyaW5nLCBhY3Rpb246IFNjYWxpbmdTY2hlZHVsZSkge1xuICAgIHRoaXMuc2NhbGluZ1BvbGljeUNyZWF0ZWQgPSB0cnVlO1xuICAgIHN1cGVyLmRvU2NhbGVPblNjaGVkdWxlKGlkLCBhY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjYWxlIG91dCBvciBpbiB0byBrZWVwIHV0aWxpemF0aW9uIGF0IGEgZ2l2ZW4gbGV2ZWxcbiAgICovXG4gIHB1YmxpYyBzY2FsZU9uVXRpbGl6YXRpb24ocHJvcHM6IFV0aWxpemF0aW9uU2NhbGluZ1Byb3BzKSB7XG4gICAgaWYgKFxuICAgICAgcHJvcHMudGFyZ2V0VXRpbGl6YXRpb25QZXJjZW50IDwgMTAgfHxcbiAgICAgIHByb3BzLnRhcmdldFV0aWxpemF0aW9uUGVyY2VudCA+IDkwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcihcbiAgICAgICAgYHRhcmdldFV0aWxpemF0aW9uUGVyY2VudCBmb3IgRHluYW1vREIgc2NhbGluZyBtdXN0IGJlIGJldHdlZW4gMTAgYW5kIDkwIHBlcmNlbnQsIGdvdDogJHtwcm9wcy50YXJnZXRVdGlsaXphdGlvblBlcmNlbnR9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc2NhbGluZ1BvbGljeUNyZWF0ZWQgPSB0cnVlO1xuICAgIGNvbnN0IHByZWRlZmluZWRNZXRyaWMgPVxuICAgICAgdGhpcy5wcm9wcy5kaW1lbnNpb24uaW5kZXhPZihcIlJlYWRDYXBhY2l0eVwiKSA9PT0gLTFcbiAgICAgICAgPyBQcmVkZWZpbmVkTWV0cmljLkRZTkFNT0RCX1dSSVRFX0NBUEFDSVRZX1VUSUxJWkFUSU9OXG4gICAgICAgIDogUHJlZGVmaW5lZE1ldHJpYy5EWU5BTU9EQl9SRUFEX0NBUEFDSVRZX1VUSUxJWkFUSU9OO1xuXG4gICAgc3VwZXIuZG9TY2FsZVRvVHJhY2tNZXRyaWMoXCJUcmFja2luZ1wiLCB7XG4gICAgICBwb2xpY3lOYW1lOiBwcm9wcy5wb2xpY3lOYW1lLFxuICAgICAgZGlzYWJsZVNjYWxlSW46IHByb3BzLmRpc2FibGVTY2FsZUluLFxuICAgICAgc2NhbGVJbkNvb2xkb3duOiBwcm9wcy5zY2FsZUluQ29vbGRvd24sXG4gICAgICBzY2FsZU91dENvb2xkb3duOiBwcm9wcy5zY2FsZU91dENvb2xkb3duLFxuICAgICAgdGFyZ2V0VmFsdWU6IHByb3BzLnRhcmdldFV0aWxpemF0aW9uUGVyY2VudCxcbiAgICAgIHByZWRlZmluZWRNZXRyaWMsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBnZXQgX3NjYWxpbmdQb2xpY3lDcmVhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNjYWxpbmdQb2xpY3lDcmVhdGVkO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZW5hYmxpbmcgRHluYW1vREIgY2FwYWNpdHkgc2NhbGluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuYWJsZVNjYWxpbmdQcm9wcyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGNhcGFjaXR5IHRvIHNjYWxlIHRvXG4gICAqL1xuICBtaW5DYXBhY2l0eTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGNhcGFjaXR5IHRvIHNjYWxlIHRvXG4gICAqL1xuICBtYXhDYXBhY2l0eTogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,419 @@
1
+ import { IAwsConstruct } from "../aws-construct";
2
+ import * as cloudwatch from "../cloudwatch";
3
+ import * as kms from "../encryption";
4
+ import * as iam from "../iam";
5
+ /**
6
+ * Supported DynamoDB table operations.
7
+ */
8
+ export declare enum Operation {
9
+ /** GetItem */
10
+ GET_ITEM = "GetItem",
11
+ /** BatchGetItem */
12
+ BATCH_GET_ITEM = "BatchGetItem",
13
+ /** Scan */
14
+ SCAN = "Scan",
15
+ /** Query */
16
+ QUERY = "Query",
17
+ /** GetRecords */
18
+ GET_RECORDS = "GetRecords",
19
+ /** PutItem */
20
+ PUT_ITEM = "PutItem",
21
+ /** DeleteItem */
22
+ DELETE_ITEM = "DeleteItem",
23
+ /** UpdateItem */
24
+ UPDATE_ITEM = "UpdateItem",
25
+ /** BatchWriteItem */
26
+ BATCH_WRITE_ITEM = "BatchWriteItem",
27
+ /** TransactWriteItems */
28
+ TRANSACT_WRITE_ITEMS = "TransactWriteItems",
29
+ /** TransactGetItems */
30
+ TRANSACT_GET_ITEMS = "TransactGetItems",
31
+ /** ExecuteTransaction */
32
+ EXECUTE_TRANSACTION = "ExecuteTransaction",
33
+ /** BatchExecuteStatement */
34
+ BATCH_EXECUTE_STATEMENT = "BatchExecuteStatement",
35
+ /** ExecuteStatement */
36
+ EXECUTE_STATEMENT = "ExecuteStatement"
37
+ }
38
+ /**
39
+ * Options for configuring a system errors metric that considers multiple operations.
40
+ */
41
+ export interface SystemErrorsForOperationsMetricOptions extends cloudwatch.MetricOptions {
42
+ /**
43
+ * The operations to apply the metric to.
44
+ *
45
+ * @default - All operations available by DynamoDB tables will be considered.
46
+ */
47
+ readonly operations?: Operation[];
48
+ }
49
+ /**
50
+ * Options for configuring metrics that considers multiple operations.
51
+ */
52
+ export interface OperationsMetricOptions extends SystemErrorsForOperationsMetricOptions {
53
+ }
54
+ /**
55
+ * Represents an attribute for describing the key schema for the table
56
+ * and indexes.
57
+ */
58
+ export interface Attribute {
59
+ /**
60
+ * The name of an attribute.
61
+ */
62
+ readonly name: string;
63
+ /**
64
+ * The data type of an attribute.
65
+ */
66
+ readonly type: AttributeType;
67
+ }
68
+ /**
69
+ * Reference to WarmThroughput for a DynamoDB table
70
+ */
71
+ export interface WarmThroughput {
72
+ /**
73
+ * Configures the number of read units per second a table will be able to handle instantly
74
+ * @default - no readUnitsPerSecond configured
75
+ */
76
+ readonly readUnitsPerSecond?: number;
77
+ /**
78
+ * Configures the number of write units per second a table will be able to handle instantly
79
+ * @default - no writeUnitsPerSecond configured
80
+ */
81
+ readonly writeUnitsPerSecond?: number;
82
+ }
83
+ /**
84
+ * Reference to PointInTimeRecovey Specification
85
+ * for continuous backups
86
+ */
87
+ export interface PointInTimeRecoverySpecification {
88
+ /**
89
+ * Indicates whether point in time recovery is enabled (true) or disabled (false) on the table.
90
+ * @default false
91
+ */
92
+ readonly pointInTimeRecoveryEnabled: boolean;
93
+ /**
94
+ * The number of preceding days for which continuous backups are taken and maintained.
95
+ * Your table data is only recoverable to any point-in-time from within the configured recovery period.
96
+ * If no value is provided, the value will default to 35.
97
+ *
98
+ * NOTE: Unused pending upgrade to v5.98.0 of the AWS Provider for Terraform.
99
+ *
100
+ * @default 35
101
+ */
102
+ readonly recoveryPeriodInDays?: number;
103
+ }
104
+ /**
105
+ * Data types for attributes within a table
106
+ *
107
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes
108
+ */
109
+ export declare enum AttributeType {
110
+ /**
111
+ * Up to 400KiB of binary data (which must be encoded as base64 before sending to DynamoDB)
112
+ */
113
+ BINARY = "B",
114
+ /**
115
+ * Numeric values made of up to 38 digits (positive, negative or zero)
116
+ */
117
+ NUMBER = "N",
118
+ /**
119
+ * Up to 400KiB of UTF-8 encoded text
120
+ */
121
+ STRING = "S"
122
+ }
123
+ /**
124
+ * DynamoDB's Read/Write capacity modes.
125
+ */
126
+ export declare enum BillingMode {
127
+ /**
128
+ * Pay only for what you use. You don't configure Read/Write capacity units.
129
+ */
130
+ PAY_PER_REQUEST = "PAY_PER_REQUEST",
131
+ /**
132
+ * Explicitly specified Read/Write capacity units.
133
+ */
134
+ PROVISIONED = "PROVISIONED"
135
+ }
136
+ /**
137
+ * The set of attributes that are projected into the index
138
+ *
139
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Projection.html
140
+ */
141
+ export declare enum ProjectionType {
142
+ /**
143
+ * Only the index and primary keys are projected into the index.
144
+ */
145
+ KEYS_ONLY = "KEYS_ONLY",
146
+ /**
147
+ * Only the specified table attributes are projected into the index. The list
148
+ * of projected attributes is in `nonKeyAttributes`.
149
+ */
150
+ INCLUDE = "INCLUDE",
151
+ /**
152
+ * All of the table attributes are projected into the index.
153
+ */
154
+ ALL = "ALL"
155
+ }
156
+ /**
157
+ * DynamoDB's table class.
158
+ *
159
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.TableClasses.html
160
+ */
161
+ export declare enum TableClass {
162
+ /**
163
+ * Default table class for DynamoDB.
164
+ */
165
+ STANDARD = "STANDARD",
166
+ /**
167
+ * Table class for DynamoDB that reduces storage costs compared to existing DynamoDB
168
+ * standard tables.
169
+ */
170
+ STANDARD_INFREQUENT_ACCESS = "STANDARD_INFREQUENT_ACCESS"
171
+ }
172
+ /**
173
+ * What kind of server-side encryption to apply to this table.
174
+ */
175
+ export declare enum TableEncryption {
176
+ /**
177
+ * Server-side KMS encryption with a master key owned by AWS.
178
+ */
179
+ DEFAULT = "AWS_OWNED",
180
+ /**
181
+ * Server-side KMS encryption with a customer master key managed by customer.
182
+ * If `encryptionKey` is specified, this key will be used, otherwise, one will be defined.
183
+ *
184
+ * > **NOTE**: if `encryptionKey` is not specified and the `Table` construct creates
185
+ * > a KMS key for you, the key will be created with default permissions. If you are using
186
+ * > CDKv2, these permissions will be sufficient to enable the key for use with DynamoDB tables.
187
+ * > If you are using CDKv1, make sure the feature flag `@aws-cdk/aws-kms:defaultKeyPolicies`
188
+ * > is set to `true` in your `cdk.json`.
189
+ */
190
+ CUSTOMER_MANAGED = "CUSTOMER_MANAGED",
191
+ /**
192
+ * Server-side KMS encryption with a master key managed by AWS.
193
+ */
194
+ AWS_MANAGED = "AWS_MANAGED"
195
+ }
196
+ /**
197
+ * When an item in the table is modified, StreamViewType determines what information
198
+ * is written to the stream for this table.
199
+ *
200
+ * @see https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_StreamSpecification.html
201
+ */
202
+ export declare enum StreamViewType {
203
+ /**
204
+ * The entire item, as it appears after it was modified, is written to the stream.
205
+ */
206
+ NEW_IMAGE = "NEW_IMAGE",
207
+ /**
208
+ * The entire item, as it appeared before it was modified, is written to the stream.
209
+ */
210
+ OLD_IMAGE = "OLD_IMAGE",
211
+ /**
212
+ * Both the new and the old item images of the item are written to the stream.
213
+ */
214
+ NEW_AND_OLD_IMAGES = "NEW_AND_OLD_IMAGES",
215
+ /**
216
+ * Only the key attributes of the modified item are written to the stream.
217
+ */
218
+ KEYS_ONLY = "KEYS_ONLY"
219
+ }
220
+ /**
221
+ * Properties for a secondary index
222
+ */
223
+ export interface SecondaryIndexProps {
224
+ /**
225
+ * The name of the secondary index.
226
+ */
227
+ readonly indexName: string;
228
+ /**
229
+ * The set of attributes that are projected into the secondary index.
230
+ * @default ALL
231
+ */
232
+ readonly projectionType?: ProjectionType;
233
+ /**
234
+ * The non-key attributes that are projected into the secondary index.
235
+ * @default - No additional attributes
236
+ */
237
+ readonly nonKeyAttributes?: string[];
238
+ }
239
+ /**
240
+ * Properties for a local secondary index
241
+ */
242
+ export interface LocalSecondaryIndexProps extends SecondaryIndexProps {
243
+ /**
244
+ * The attribute of a sort key for the local secondary index.
245
+ */
246
+ readonly sortKey: Attribute;
247
+ }
248
+ /**
249
+ * An interface that represents a DynamoDB Table - either created with the CDK, or an existing one.
250
+ */
251
+ export interface ITable extends IAwsConstruct {
252
+ /**
253
+ * Arn of the dynamodb table.
254
+ *
255
+ * @attribute
256
+ */
257
+ readonly tableArn: string;
258
+ /**
259
+ * Table name of the dynamodb table.
260
+ *
261
+ * @attribute
262
+ */
263
+ readonly tableName: string;
264
+ /**
265
+ * ARN of the table's stream, if there is one.
266
+ *
267
+ * @attribute
268
+ */
269
+ readonly tableStreamArn?: string;
270
+ /**
271
+ *
272
+ * Optional KMS encryption key associated with this table.
273
+ */
274
+ readonly encryptionKey?: kms.IKey;
275
+ /**
276
+ * Adds an IAM policy statement associated with this table to an IAM
277
+ * principal's policy.
278
+ *
279
+ * If `encryptionKey` is present, appropriate grants to the key needs to be added
280
+ * separately using the `table.encryptionKey.grant*` methods.
281
+ *
282
+ * @param grantee The principal (no-op if undefined)
283
+ * @param actions The set of actions to allow (i.e. "dynamodb:PutItem", "dynamodb:GetItem", ...)
284
+ */
285
+ grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
286
+ /**
287
+ * Adds an IAM policy statement associated with this table's stream to an
288
+ * IAM principal's policy.
289
+ *
290
+ * If `encryptionKey` is present, appropriate grants to the key needs to be added
291
+ * separately using the `table.encryptionKey.grant*` methods.
292
+ *
293
+ * @param grantee The principal (no-op if undefined)
294
+ * @param actions The set of actions to allow (i.e. "dynamodb:DescribeStream", "dynamodb:GetRecords", ...)
295
+ */
296
+ grantStream(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
297
+ /**
298
+ * Permits an IAM principal all data read operations from this table:
299
+ * BatchGetItem, GetRecords, GetShardIterator, Query, GetItem, Scan.
300
+ *
301
+ * Appropriate grants will also be added to the customer-managed KMS key
302
+ * if one was configured.
303
+ *
304
+ * @param grantee The principal to grant access to
305
+ */
306
+ grantReadData(grantee: iam.IGrantable): iam.Grant;
307
+ /**
308
+ * Permits an IAM Principal to list streams attached to current dynamodb table.
309
+ *
310
+ * @param grantee The principal (no-op if undefined)
311
+ */
312
+ grantTableListStreams(grantee: iam.IGrantable): iam.Grant;
313
+ /**
314
+ * Permits an IAM principal all stream data read operations for this
315
+ * table's stream:
316
+ * DescribeStream, GetRecords, GetShardIterator, ListStreams.
317
+ *
318
+ * Appropriate grants will also be added to the customer-managed KMS key
319
+ * if one was configured.
320
+ *
321
+ * @param grantee The principal to grant access to
322
+ */
323
+ grantStreamRead(grantee: iam.IGrantable): iam.Grant;
324
+ /**
325
+ * Permits an IAM principal all data write operations to this table:
326
+ * BatchWriteItem, PutItem, UpdateItem, DeleteItem.
327
+ *
328
+ * Appropriate grants will also be added to the customer-managed KMS key
329
+ * if one was configured.
330
+ *
331
+ * @param grantee The principal to grant access to
332
+ */
333
+ grantWriteData(grantee: iam.IGrantable): iam.Grant;
334
+ /**
335
+ * Permits an IAM principal to all data read/write operations to this table.
336
+ * BatchGetItem, GetRecords, GetShardIterator, Query, GetItem, Scan,
337
+ * BatchWriteItem, PutItem, UpdateItem, DeleteItem
338
+ *
339
+ * Appropriate grants will also be added to the customer-managed KMS key
340
+ * if one was configured.
341
+ *
342
+ * @param grantee The principal to grant access to
343
+ */
344
+ grantReadWriteData(grantee: iam.IGrantable): iam.Grant;
345
+ /**
346
+ * Permits all DynamoDB operations ("dynamodb:*") to an IAM principal.
347
+ *
348
+ * Appropriate grants will also be added to the customer-managed KMS key
349
+ * if one was configured.
350
+ *
351
+ * @param grantee The principal to grant access to
352
+ */
353
+ grantFullAccess(grantee: iam.IGrantable): iam.Grant;
354
+ /**
355
+ * Metric for the number of Errors executing all Lambdas
356
+ */
357
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
358
+ /**
359
+ * Metric for the consumed read capacity units
360
+ *
361
+ * @param props properties of a metric
362
+ */
363
+ metricConsumedReadCapacityUnits(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
364
+ /**
365
+ * Metric for the consumed write capacity units
366
+ *
367
+ * @param props properties of a metric
368
+ */
369
+ metricConsumedWriteCapacityUnits(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
370
+ /**
371
+ * Metric for the system errors
372
+ *
373
+ * @param props properties of a metric
374
+ *
375
+ * @deprecated use `metricSystemErrorsForOperations`
376
+ */
377
+ metricSystemErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
378
+ /**
379
+ * Metric for the system errors this table
380
+ *
381
+ * @param props properties of a metric
382
+ *
383
+ */
384
+ metricSystemErrorsForOperations(props?: SystemErrorsForOperationsMetricOptions): cloudwatch.IMetric;
385
+ /**
386
+ * Metric for the user errors
387
+ *
388
+ * @param props properties of a metric
389
+ */
390
+ metricUserErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
391
+ /**
392
+ * Metric for the conditional check failed requests
393
+ *
394
+ * @param props properties of a metric
395
+ */
396
+ metricConditionalCheckFailedRequests(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
397
+ /**
398
+ * Metric for throttled requests
399
+ *
400
+ * @param props properties of a metric
401
+ *
402
+ * @deprecated use `metricThrottledRequestsForOperations`
403
+ */
404
+ metricThrottledRequests(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
405
+ /**
406
+ * Metric for throttled requests
407
+ *
408
+ * @param props properties of a metric
409
+ *
410
+ */
411
+ metricThrottledRequestsForOperations(props?: OperationsMetricOptions): cloudwatch.IMetric;
412
+ /**
413
+ * Metric for the successful request latency
414
+ *
415
+ * @param props properties of a metric
416
+ *
417
+ */
418
+ metricSuccessfulRequestLatency(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
419
+ }