terraconstructs 0.0.11 → 0.0.13

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 (411) hide show
  1. package/.jsii +105205 -35113
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.d.ts +1 -1
  4. package/lib/aws/aws-construct.js +28 -2
  5. package/lib/aws/aws-stack.d.ts +2 -4
  6. package/lib/aws/aws-stack.js +21 -8
  7. package/lib/aws/aws-tags.d.ts +58 -0
  8. package/lib/aws/aws-tags.js +77 -0
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  12. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  13. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  14. package/lib/aws/cloudwatch/alarm.js +1 -1
  15. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  16. package/lib/aws/cloudwatch/dashboard.js +1 -1
  17. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  18. package/lib/aws/cloudwatch/graph.js +8 -8
  19. package/lib/aws/cloudwatch/layout.js +3 -3
  20. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  21. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  22. package/lib/aws/cloudwatch/log-group.js +1 -1
  23. package/lib/aws/cloudwatch/log-query.js +1 -1
  24. package/lib/aws/cloudwatch/log-stream.js +1 -1
  25. package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
  26. package/lib/aws/cloudwatch/metric-filter.js +4 -4
  27. package/lib/aws/cloudwatch/metric.js +2 -2
  28. package/lib/aws/cloudwatch/pattern.js +3 -3
  29. package/lib/aws/cloudwatch/policy.js +1 -1
  30. package/lib/aws/cloudwatch/private/env-tokens.js +5 -6
  31. package/lib/aws/cloudwatch/private/metric-util.js +4 -5
  32. package/lib/aws/cloudwatch/private/object.js +2 -3
  33. package/lib/aws/cloudwatch/private/rendering.js +3 -3
  34. package/lib/aws/cloudwatch/private/statistic.js +6 -7
  35. package/lib/aws/cloudwatch/query-definition.js +2 -2
  36. package/lib/aws/cloudwatch/stats.js +1 -1
  37. package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
  38. package/lib/aws/cloudwatch/subscription-filter.js +4 -4
  39. package/lib/aws/cloudwatch/text.js +1 -1
  40. package/lib/aws/cloudwatch/variable.js +3 -3
  41. package/lib/aws/cloudwatch/widget.d.ts +1 -1
  42. package/lib/aws/cloudwatch/widget.js +4 -4
  43. package/lib/aws/compute/activity.js +3 -2
  44. package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
  45. package/lib/aws/compute/alb/application-listener-action.js +281 -0
  46. package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
  47. package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
  48. package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
  49. package/lib/aws/compute/alb/application-listener-rule.js +220 -0
  50. package/lib/aws/compute/alb/application-listener.d.ts +574 -0
  51. package/lib/aws/compute/alb/application-listener.js +538 -0
  52. package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
  53. package/lib/aws/compute/alb/application-load-balancer.js +780 -0
  54. package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
  55. package/lib/aws/compute/alb/application-target-group.js +427 -0
  56. package/lib/aws/compute/alb/conditions.d.ts +61 -0
  57. package/lib/aws/compute/alb/conditions.js +164 -0
  58. package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
  59. package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
  60. package/lib/aws/compute/alb/trust-store.d.ts +86 -0
  61. package/lib/aws/compute/alb/trust-store.js +79 -0
  62. package/lib/aws/compute/architecture.js +1 -1
  63. package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
  64. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
  65. package/lib/aws/compute/bastion-host.d.ts +172 -0
  66. package/lib/aws/compute/bastion-host.js +114 -0
  67. package/lib/aws/compute/chain.js +1 -1
  68. package/lib/aws/compute/cidr-splits.d.ts +49 -0
  69. package/lib/aws/compute/cidr-splits.js +59 -0
  70. package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
  71. package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
  72. package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
  73. package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
  74. package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
  75. package/lib/aws/compute/client-vpn-endpoint.js +259 -0
  76. package/lib/aws/compute/client-vpn-route.d.ts +67 -0
  77. package/lib/aws/compute/client-vpn-route.js +57 -0
  78. package/lib/aws/compute/condition.js +1 -1
  79. package/lib/aws/compute/connections.d.ts +137 -0
  80. package/lib/aws/compute/connections.js +208 -0
  81. package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
  82. package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
  83. package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
  84. package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
  85. package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
  86. package/lib/aws/compute/ec2-util-v2.js +286 -0
  87. package/lib/aws/compute/ec2-util.d.ts +52 -0
  88. package/lib/aws/compute/ec2-util.js +138 -0
  89. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
  90. package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
  91. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
  92. package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
  93. package/lib/aws/compute/event-invoke-config.js +1 -1
  94. package/lib/aws/compute/event-source-filter.js +2 -2
  95. package/lib/aws/compute/event-source-mapping.js +1 -1
  96. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  97. package/lib/aws/compute/event-sources/s3.js +1 -1
  98. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  99. package/lib/aws/compute/event-sources/sqs.js +1 -1
  100. package/lib/aws/compute/fields.js +4 -4
  101. package/lib/aws/compute/function-alias.js +1 -1
  102. package/lib/aws/compute/function-base.js +2 -2
  103. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  104. package/lib/aws/compute/function-destinations/function.js +1 -1
  105. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  106. package/lib/aws/compute/function-nodejs.js +1 -1
  107. package/lib/aws/compute/function-url.js +1 -1
  108. package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
  109. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  110. package/lib/aws/compute/function.d.ts +1 -1
  111. package/lib/aws/compute/function.js +5 -5
  112. package/lib/aws/compute/index-alpha.d.ts +5 -0
  113. package/lib/aws/compute/index-alpha.js +22 -0
  114. package/lib/aws/compute/index.d.ts +60 -0
  115. package/lib/aws/compute/index.js +70 -2
  116. package/lib/aws/compute/instance-types.d.ts +1354 -0
  117. package/lib/aws/compute/instance-types.js +1683 -0
  118. package/lib/aws/compute/instance.d.ts +436 -0
  119. package/lib/aws/compute/instance.js +262 -0
  120. package/lib/aws/compute/ip-addresses.d.ts +249 -0
  121. package/lib/aws/compute/ip-addresses.js +248 -0
  122. package/lib/aws/compute/ipam.d.ts +309 -0
  123. package/lib/aws/compute/ipam.js +306 -0
  124. package/lib/aws/compute/key-pair.d.ts +178 -0
  125. package/lib/aws/compute/key-pair.js +194 -0
  126. package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
  127. package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
  128. package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
  129. package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
  130. package/lib/aws/compute/launch-template.d.ts +540 -0
  131. package/lib/aws/compute/launch-template.js +468 -0
  132. package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
  133. package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
  134. package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
  135. package/lib/aws/compute/lb-shared/base-listener.js +181 -0
  136. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
  137. package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
  138. package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
  139. package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
  140. package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
  141. package/lib/aws/compute/lb-shared/enums.js +301 -0
  142. package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
  143. package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
  144. package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
  145. package/lib/aws/compute/lb-shared/imported.js +27 -0
  146. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
  147. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
  148. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
  149. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
  150. package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
  151. package/lib/aws/compute/lb-shared/listener-action.js +4 -0
  152. package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
  153. package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
  154. package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
  155. package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
  156. package/lib/aws/compute/lb-shared/util.d.ts +113 -0
  157. package/lib/aws/compute/lb-shared/util.js +264 -0
  158. package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
  159. package/lib/aws/compute/lb-targets/alb-target.js +100 -0
  160. package/lib/aws/compute/lb-targets/index.d.ts +4 -0
  161. package/lib/aws/compute/lb-targets/index.js +22 -0
  162. package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
  163. package/lib/aws/compute/lb-targets/instance-target.js +67 -0
  164. package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
  165. package/lib/aws/compute/lb-targets/ip-target.js +79 -0
  166. package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
  167. package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
  168. package/lib/aws/compute/load-balancer.d.ts +336 -0
  169. package/lib/aws/compute/load-balancer.js +287 -0
  170. package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
  171. package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
  172. package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
  173. package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
  174. package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
  175. package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
  176. package/lib/aws/compute/machine-image/common.d.ts +181 -0
  177. package/lib/aws/compute/machine-image/common.js +122 -0
  178. package/lib/aws/compute/machine-image/index.d.ts +5 -0
  179. package/lib/aws/compute/machine-image/index.js +22 -0
  180. package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
  181. package/lib/aws/compute/machine-image/machine-image.js +566 -0
  182. package/lib/aws/compute/machine-image/utils.d.ts +2 -0
  183. package/lib/aws/compute/machine-image/utils.js +17 -0
  184. package/lib/aws/compute/nat.d.ts +325 -0
  185. package/lib/aws/compute/nat.js +455 -0
  186. package/lib/aws/compute/network-acl-types.d.ts +152 -0
  187. package/lib/aws/compute/network-acl-types.js +156 -0
  188. package/lib/aws/compute/network-acl.d.ts +285 -0
  189. package/lib/aws/compute/network-acl.js +207 -0
  190. package/lib/aws/compute/network-util.d.ts +116 -0
  191. package/lib/aws/compute/network-util.js +241 -0
  192. package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
  193. package/lib/aws/compute/nlb/network-listener-action.js +146 -0
  194. package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
  195. package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
  196. package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
  197. package/lib/aws/compute/nlb/network-listener.js +217 -0
  198. package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
  199. package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
  200. package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
  201. package/lib/aws/compute/nlb/network-target-group.js +223 -0
  202. package/lib/aws/compute/peer.d.ts +64 -0
  203. package/lib/aws/compute/peer.js +235 -0
  204. package/lib/aws/compute/placement-group.d.ts +161 -0
  205. package/lib/aws/compute/placement-group.js +133 -0
  206. package/lib/aws/compute/port.d.ts +287 -0
  207. package/lib/aws/compute/port.js +390 -0
  208. package/lib/aws/compute/prefix-list.d.ts +131 -0
  209. package/lib/aws/compute/prefix-list.js +114 -0
  210. package/lib/aws/compute/private/context-stub.d.ts +7 -0
  211. package/lib/aws/compute/private/context-stub.js +43 -0
  212. package/lib/aws/compute/private/ebs-util.d.ts +14 -0
  213. package/lib/aws/compute/private/ebs-util.js +145 -0
  214. package/lib/aws/compute/private/intrinstics.js +2 -1
  215. package/lib/aws/compute/private/json-path.js +8 -8
  216. package/lib/aws/compute/private/util.js +2 -3
  217. package/lib/aws/compute/route.d.ts +547 -0
  218. package/lib/aws/compute/route.js +469 -0
  219. package/lib/aws/compute/security-group.d.ts +414 -0
  220. package/lib/aws/compute/security-group.js +538 -0
  221. package/lib/aws/compute/state-graph.js +1 -1
  222. package/lib/aws/compute/state-machine-fragment.js +1 -1
  223. package/lib/aws/compute/state-machine.d.ts +2 -2
  224. package/lib/aws/compute/state-machine.js +14 -12
  225. package/lib/aws/compute/states/choice.js +1 -1
  226. package/lib/aws/compute/states/custom-state.js +1 -1
  227. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  228. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  229. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  230. package/lib/aws/compute/states/distributed-map.js +1 -1
  231. package/lib/aws/compute/states/fail.js +1 -1
  232. package/lib/aws/compute/states/map-base.js +1 -1
  233. package/lib/aws/compute/states/map.js +1 -1
  234. package/lib/aws/compute/states/parallel.js +1 -1
  235. package/lib/aws/compute/states/pass.js +2 -2
  236. package/lib/aws/compute/states/state.js +5 -5
  237. package/lib/aws/compute/states/succeed.js +1 -1
  238. package/lib/aws/compute/states/task-base.js +2 -2
  239. package/lib/aws/compute/states/task.js +1 -1
  240. package/lib/aws/compute/states/wait.js +2 -2
  241. package/lib/aws/compute/stepfunctions-canned-metrics.generated.d.ts +83 -0
  242. package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
  243. package/lib/aws/compute/subnet-v2.d.ts +213 -0
  244. package/lib/aws/compute/subnet-v2.js +405 -0
  245. package/lib/aws/compute/subnet.d.ts +37 -0
  246. package/lib/aws/compute/subnet.js +181 -0
  247. package/lib/aws/compute/task-credentials.js +1 -1
  248. package/lib/aws/compute/task-input.js +1 -1
  249. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  250. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  251. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  252. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  253. package/lib/aws/compute/tasks/private/task-utils.js +3 -4
  254. package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
  255. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  256. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  257. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  258. package/lib/aws/compute/types.js +2 -2
  259. package/lib/aws/compute/user-data.d.ts +270 -0
  260. package/lib/aws/compute/user-data.js +487 -0
  261. package/lib/aws/compute/util.d.ts +1 -1
  262. package/lib/aws/compute/util.js +4 -5
  263. package/lib/aws/compute/volume.d.ts +480 -0
  264. package/lib/aws/compute/volume.js +426 -0
  265. package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
  266. package/lib/aws/compute/vpc-endpoint-service.js +90 -0
  267. package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
  268. package/lib/aws/compute/vpc-endpoint.js +811 -0
  269. package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
  270. package/lib/aws/compute/vpc-flow-logs.js +693 -0
  271. package/lib/aws/compute/vpc-lookup.d.ts +73 -0
  272. package/lib/aws/compute/vpc-lookup.js +3 -0
  273. package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
  274. package/lib/aws/compute/vpc-v2-base.js +493 -0
  275. package/lib/aws/compute/vpc-v2.d.ts +385 -0
  276. package/lib/aws/compute/vpc-v2.js +408 -0
  277. package/lib/aws/compute/vpc.d.ts +1448 -0
  278. package/lib/aws/compute/vpc.js +1495 -0
  279. package/lib/aws/compute/vpn.d.ts +443 -0
  280. package/lib/aws/compute/vpn.js +397 -0
  281. package/lib/aws/compute/windows-versions.d.ts +418 -0
  282. package/lib/aws/compute/windows-versions.js +426 -0
  283. package/lib/aws/edge/certificate-base.d.ts +20 -0
  284. package/lib/aws/edge/certificate-base.js +28 -0
  285. package/lib/aws/edge/certificate.d.ts +23 -2
  286. package/lib/aws/edge/certificate.js +54 -4
  287. package/lib/aws/edge/distribution.js +3 -3
  288. package/lib/aws/edge/dns-alias-record-targets.js +2 -2
  289. package/lib/aws/edge/dns-record.js +16 -16
  290. package/lib/aws/edge/dns-zone.d.ts +20 -2
  291. package/lib/aws/edge/dns-zone.js +25 -10
  292. package/lib/aws/edge/function.js +2 -2
  293. package/lib/aws/edge/index.d.ts +1 -0
  294. package/lib/aws/edge/index.js +2 -1
  295. package/lib/aws/edge/key-value-store.js +4 -4
  296. package/lib/aws/edge/origin.js +7 -5
  297. package/lib/aws/edge/response-headers-policy.js +1 -1
  298. package/lib/aws/encryption/alias.js +1 -1
  299. package/lib/aws/encryption/key.js +1 -1
  300. package/lib/aws/encryption/via-service-principal.js +1 -1
  301. package/lib/aws/iam/grant.js +2 -2
  302. package/lib/aws/iam/index.d.ts +1 -0
  303. package/lib/aws/iam/index.js +2 -1
  304. package/lib/aws/iam/instance-profile.d.ts +155 -0
  305. package/lib/aws/iam/instance-profile.js +124 -0
  306. package/lib/aws/iam/managed-policy.js +1 -1
  307. package/lib/aws/iam/oidc-provider.js +1 -1
  308. package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
  309. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  310. package/lib/aws/iam/policy-document.js +1 -1
  311. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  312. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  313. package/lib/aws/iam/policy-statement.js +9 -9
  314. package/lib/aws/iam/policy.js +1 -1
  315. package/lib/aws/iam/principals.js +26 -26
  316. package/lib/aws/iam/private/assume-role-policy.js +2 -3
  317. package/lib/aws/iam/private/comparable-principal.js +2 -3
  318. package/lib/aws/iam/private/immutable-role.d.ts +2 -1
  319. package/lib/aws/iam/private/immutable-role.js +3 -3
  320. package/lib/aws/iam/private/imported-role.d.ts +1 -1
  321. package/lib/aws/iam/private/imported-role.js +3 -3
  322. package/lib/aws/iam/private/merge-statements.js +2 -3
  323. package/lib/aws/iam/private/util.js +4 -4
  324. package/lib/aws/iam/role.js +1 -1
  325. package/lib/aws/iam/saml-provider.d.ts +1 -1
  326. package/lib/aws/iam/saml-provider.js +6 -6
  327. package/lib/aws/iam/unknown-principal.js +1 -1
  328. package/lib/aws/iam/utils.js +2 -3
  329. package/lib/aws/index.d.ts +1 -0
  330. package/lib/aws/index.js +4 -1
  331. package/lib/aws/network/simple-ipv4-vpc.js +5 -5
  332. package/lib/aws/network/subnet-group.js +3 -3
  333. package/lib/aws/network/subnet.d.ts +1 -1
  334. package/lib/aws/network/subnet.js +7 -7
  335. package/lib/aws/notify/archive.js +3 -2
  336. package/lib/aws/notify/connection.js +5 -4
  337. package/lib/aws/notify/event-bus.js +5 -4
  338. package/lib/aws/notify/event-pattern.d.ts +26 -1
  339. package/lib/aws/notify/event-pattern.js +49 -5
  340. package/lib/aws/notify/index.js +3 -1
  341. package/lib/aws/notify/input.js +4 -3
  342. package/lib/aws/notify/kinesis-stream.js +3 -2
  343. package/lib/aws/notify/on-event-options.js +2 -1
  344. package/lib/aws/notify/queue-config.generated.d.ts +18 -11
  345. package/lib/aws/notify/queue-config.generated.js +1 -1
  346. package/lib/aws/notify/queue-policy.js +1 -1
  347. package/lib/aws/notify/queue.js +1 -1
  348. package/lib/aws/notify/resource-policy.js +1 -1
  349. package/lib/aws/notify/rule.js +3 -2
  350. package/lib/aws/notify/schedule.js +2 -2
  351. package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
  352. package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
  353. package/lib/aws/notify/target.js +2 -1
  354. package/lib/aws/notify/targets/event-bus.js +1 -1
  355. package/lib/aws/notify/targets/function.js +1 -1
  356. package/lib/aws/notify/targets/log-group.js +2 -2
  357. package/lib/aws/notify/targets/sqs.js +1 -1
  358. package/lib/aws/notify/targets/state-machine.js +1 -1
  359. package/lib/aws/notify/targets/util.d.ts +1 -1
  360. package/lib/aws/notify/targets/util.js +10 -11
  361. package/lib/aws/notify/util.js +4 -4
  362. package/lib/aws/provider-config.generated.d.ts +33 -33
  363. package/lib/aws/provider-config.generated.js +1 -1
  364. package/lib/aws/storage/bucket-notifications.js +1 -1
  365. package/lib/aws/storage/bucket-policy.js +1 -1
  366. package/lib/aws/storage/bucket-source.js +1 -1
  367. package/lib/aws/storage/bucket.d.ts +298 -65
  368. package/lib/aws/storage/bucket.js +548 -225
  369. package/lib/aws/storage/cors-config.generated.d.ts +3 -3
  370. package/lib/aws/storage/cors-config.generated.js +1 -1
  371. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  372. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  373. package/lib/aws/storage/index.d.ts +1 -0
  374. package/lib/aws/storage/index.js +2 -1
  375. package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
  376. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  377. package/lib/aws/storage/notification-targets/function.js +6 -6
  378. package/lib/aws/storage/notification-targets/queue.js +1 -1
  379. package/lib/aws/storage/origin-access-identity.d.ts +1 -1
  380. package/lib/aws/storage/origin-access-identity.js +5 -4
  381. package/lib/aws/storage/parameter-util.d.ts +12 -0
  382. package/lib/aws/storage/parameter-util.js +65 -0
  383. package/lib/aws/storage/parameter.d.ts +526 -0
  384. package/lib/aws/storage/parameter.js +606 -0
  385. package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
  386. package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
  387. package/lib/aws/storage/util.d.ts +25 -3
  388. package/lib/aws/storage/util.js +84 -17
  389. package/lib/aws/storage/website-config.generated.d.ts +5 -5
  390. package/lib/aws/storage/website-config.generated.js +1 -1
  391. package/lib/aws/util.js +2 -3
  392. package/lib/construct-base.d.ts +10 -1
  393. package/lib/construct-base.js +9 -6
  394. package/lib/duration.js +1 -1
  395. package/lib/expiration.d.ts +48 -0
  396. package/lib/expiration.js +68 -0
  397. package/lib/helpers-internal/index.d.ts +1 -0
  398. package/lib/helpers-internal/index.js +7 -0
  399. package/lib/index.d.ts +2 -0
  400. package/lib/index.js +3 -1
  401. package/lib/private/md5.d.ts +4 -0
  402. package/lib/private/md5.js +14 -0
  403. package/lib/private/unique-resource-name.js +3 -4
  404. package/lib/size.js +2 -2
  405. package/lib/stack-base.d.ts +4 -23
  406. package/lib/stack-base.js +9 -30
  407. package/lib/terra-func.d.ts +103 -0
  408. package/lib/terra-func.js +170 -0
  409. package/lib/token.js +5 -5
  410. package/package.json +15 -8
  411. package/bun.lockb +0 -0
@@ -0,0 +1,480 @@
1
+ import { ebsVolume } from "@cdktf/provider-aws";
2
+ import { Construct } from "constructs";
3
+ import { Grant, IGrantable } from "../iam";
4
+ import { IInstance } from "./instance";
5
+ import { Size } from "../../size";
6
+ import { IAwsConstruct, AwsConstructBase, AwsConstructProps } from "../aws-construct";
7
+ import { IKey } from "../encryption";
8
+ /**
9
+ * Block device
10
+ */
11
+ export interface BlockDevice {
12
+ /**
13
+ * The device name exposed to the EC2 instance
14
+ *
15
+ * For example, a value like `/dev/sdh`, `xvdh`.
16
+ *
17
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html
18
+ */
19
+ readonly deviceName: string;
20
+ /**
21
+ * Defines the block device volume, to be either an Amazon EBS volume or an ephemeral instance store volume
22
+ *
23
+ * For example, a value like `BlockDeviceVolume.ebs(15)`, `BlockDeviceVolume.ephemeral(0)`.
24
+ */
25
+ readonly volume: BlockDeviceVolume;
26
+ /**
27
+ * If false, the device mapping will be suppressed.
28
+ * If set to false for the root device, the instance might fail the Amazon EC2 health check.
29
+ * Amazon EC2 Auto Scaling launches a replacement instance if the instance fails the health check.
30
+ *
31
+ * NOTE: Terraform Provider AWS does not support this for aws_instance non-ephemeral Block Devices
32
+ *
33
+ * @default true - device mapping is left untouched
34
+ */
35
+ readonly mappingEnabled?: boolean;
36
+ }
37
+ /**
38
+ * Base block device options for an EBS volume
39
+ */
40
+ export interface EbsDeviceOptionsBase {
41
+ /**
42
+ * Indicates whether to delete the volume when the instance is terminated.
43
+ *
44
+ * @default - true for Amazon EC2 Auto Scaling, false otherwise (e.g. EBS)
45
+ */
46
+ readonly deleteOnTermination?: boolean;
47
+ /**
48
+ * The number of I/O operations per second (IOPS) to provision for the volume.
49
+ *
50
+ * Must only be set for `volumeType`: `EbsDeviceVolumeType.IO1`
51
+ *
52
+ * The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
53
+ * you need at least 100 GiB storage on the volume.
54
+ *
55
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
56
+ *
57
+ * @default - none, required for `EbsDeviceVolumeType.IO1`
58
+ */
59
+ readonly iops?: number;
60
+ /**
61
+ * The EBS volume type
62
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
63
+ *
64
+ * @default `EbsDeviceVolumeType.GENERAL_PURPOSE_SSD` or `EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3` if
65
+ * `@aws-cdk/aws-ec2:ebsDefaultGp3Volume` is enabled.
66
+ */
67
+ readonly volumeType?: EbsDeviceVolumeType;
68
+ /**
69
+ * The throughput to provision for a `gp3` volume.
70
+ *
71
+ * Valid Range: Minimum value of 125. Maximum value of 1000.
72
+ *
73
+ * `gp3` volumes deliver a consistent baseline throughput performance of 125 MiB/s.
74
+ * You can provision additional throughput for an additional cost at a ratio of 0.25 MiB/s per provisioned IOPS.
75
+ *
76
+ * @see https://docs.aws.amazon.com/ebs/latest/userguide/general-purpose.html#gp3-performance
77
+ *
78
+ * @default - 125 MiB/s.
79
+ */
80
+ readonly throughput?: number;
81
+ }
82
+ /**
83
+ * Block device options for an EBS volume
84
+ */
85
+ export interface EbsDeviceOptions extends EbsDeviceOptionsBase {
86
+ /**
87
+ * Specifies whether the EBS volume is encrypted.
88
+ * Encrypted EBS volumes can only be attached to instances that support Amazon EBS encryption
89
+ *
90
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances
91
+ *
92
+ * @default false
93
+ */
94
+ readonly encrypted?: boolean;
95
+ /**
96
+ * The ARN of the AWS Key Management Service (AWS KMS) CMK used for encryption.
97
+ *
98
+ * You have to ensure that the KMS CMK has the correct permissions to be used by the service launching the ec2 instances.
99
+ *
100
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#ebs-encryption-requirements
101
+ *
102
+ * @default - If encrypted is true, the default aws/ebs KMS key will be used.
103
+ */
104
+ readonly kmsKey?: IKey;
105
+ }
106
+ /**
107
+ * Block device options for an EBS volume created from a snapshot
108
+ */
109
+ export interface EbsDeviceSnapshotOptions extends EbsDeviceOptionsBase {
110
+ /**
111
+ * The volume size, in Gibibytes (GiB)
112
+ *
113
+ * If you specify volumeSize, it must be equal or greater than the size of the snapshot.
114
+ *
115
+ * @default - The snapshot size
116
+ */
117
+ readonly volumeSize?: number;
118
+ }
119
+ /**
120
+ * Properties of an EBS block device
121
+ */
122
+ export interface EbsDeviceProps extends EbsDeviceSnapshotOptions, EbsDeviceOptions {
123
+ /**
124
+ * The snapshot ID of the volume to use
125
+ *
126
+ * @default - No snapshot will be used
127
+ */
128
+ readonly snapshotId?: string;
129
+ }
130
+ /**
131
+ * Describes a block device mapping for an EC2 instance or Auto Scaling group.
132
+ */
133
+ export declare class BlockDeviceVolume {
134
+ readonly ebsDevice?: EbsDeviceProps | undefined;
135
+ readonly virtualName?: string | undefined;
136
+ /**
137
+ * Creates a new Elastic Block Storage device
138
+ *
139
+ * @param volumeSize The volume size, in Gibibytes (GiB)
140
+ * @param options additional device options
141
+ */
142
+ static ebs(volumeSize: number, options?: EbsDeviceOptions): BlockDeviceVolume;
143
+ /**
144
+ * Creates a new Elastic Block Storage device from an existing snapshot
145
+ *
146
+ * @param snapshotId The snapshot ID of the volume to use
147
+ * @param options additional device options
148
+ */
149
+ static ebsFromSnapshot(snapshotId: string, options?: EbsDeviceSnapshotOptions): BlockDeviceVolume;
150
+ /**
151
+ * Creates a virtual, ephemeral device.
152
+ * The name will be in the form ephemeral{volumeIndex}.
153
+ *
154
+ * @param volumeIndex the volume index. Must be equal or greater than 0
155
+ */
156
+ static ephemeral(volumeIndex: number): BlockDeviceVolume;
157
+ /**
158
+ * @param ebsDevice EBS device info
159
+ * @param virtualName Virtual device name
160
+ */
161
+ protected constructor(ebsDevice?: EbsDeviceProps | undefined, virtualName?: string | undefined);
162
+ isEphemeral(): this is BlockDeviceVolume & {
163
+ virtualName: string;
164
+ };
165
+ }
166
+ /**
167
+ * Supported EBS volume types for blockDevices
168
+ */
169
+ export declare enum EbsDeviceVolumeType {
170
+ /**
171
+ * Magnetic
172
+ */
173
+ STANDARD = "standard",
174
+ /**
175
+ * Provisioned IOPS SSD - IO1
176
+ */
177
+ IO1 = "io1",
178
+ /**
179
+ * Provisioned IOPS SSD - IO2
180
+ */
181
+ IO2 = "io2",
182
+ /**
183
+ * General Purpose SSD - GP2
184
+ */
185
+ GP2 = "gp2",
186
+ /**
187
+ * General Purpose SSD - GP3
188
+ */
189
+ GP3 = "gp3",
190
+ /**
191
+ * Throughput Optimized HDD
192
+ */
193
+ ST1 = "st1",
194
+ /**
195
+ * Cold HDD
196
+ */
197
+ SC1 = "sc1",
198
+ /**
199
+ * General purpose SSD volume (GP2) that balances price and performance for a wide variety of workloads.
200
+ */
201
+ GENERAL_PURPOSE_SSD = "gp2",
202
+ /**
203
+ * General purpose SSD volume (GP3) that balances price and performance for a wide variety of workloads.
204
+ */
205
+ GENERAL_PURPOSE_SSD_GP3 = "gp3",
206
+ /**
207
+ * Highest-performance SSD volume (IO1) for mission-critical low-latency or high-throughput workloads.
208
+ */
209
+ PROVISIONED_IOPS_SSD = "io1",
210
+ /**
211
+ * Highest-performance SSD volume (IO2) for mission-critical low-latency or high-throughput workloads.
212
+ */
213
+ PROVISIONED_IOPS_SSD_IO2 = "io2",
214
+ /**
215
+ * Low-cost HDD volume designed for frequently accessed, throughput-intensive workloads.
216
+ */
217
+ THROUGHPUT_OPTIMIZED_HDD = "st1",
218
+ /**
219
+ * Lowest cost HDD volume designed for less frequently accessed workloads.
220
+ */
221
+ COLD_HDD = "sc1",
222
+ /**
223
+ * Magnetic volumes are backed by magnetic drives and are suited for workloads where data is accessed infrequently, and scenarios where low-cost
224
+ * storage for small volume sizes is important.
225
+ */
226
+ MAGNETIC = "standard"
227
+ }
228
+ /**
229
+ * Outputs which may be registered for output via the Grid.
230
+ */
231
+ export interface VolumeOutputs {
232
+ /**
233
+ * The EBS Volume's ID
234
+ *
235
+ * @attribute
236
+ */
237
+ readonly volumeId: string;
238
+ /**
239
+ * The availability zone that the EBS Volume is contained within (ex: us-west-2a)
240
+ */
241
+ readonly availabilityZone: string;
242
+ /**
243
+ * The customer-managed encryption key that is used to encrypt the Volume.
244
+ *
245
+ * @attribute
246
+ */
247
+ readonly encryptionKeyId?: string;
248
+ }
249
+ /**
250
+ * An EBS Volume in AWS EC2.
251
+ */
252
+ export interface IVolume extends IAwsConstruct {
253
+ /** Strongly typed outputs */
254
+ readonly volumeOutputs: VolumeOutputs;
255
+ /**
256
+ * The EBS Volume's ID
257
+ *
258
+ * @attribute
259
+ */
260
+ readonly volumeId: string;
261
+ /**
262
+ * The availability zone that the EBS Volume is contained within (ex: us-west-2a)
263
+ */
264
+ readonly availabilityZone: string;
265
+ /**
266
+ * The customer-managed encryption key that is used to encrypt the Volume.
267
+ *
268
+ * @attribute
269
+ */
270
+ readonly encryptionKey?: IKey;
271
+ /**
272
+ * Grants permission to attach this Volume to an instance.
273
+ * CAUTION: Granting an instance permission to attach to itself using this method will lead to
274
+ * an unresolvable circular reference between the instance role and the instance.
275
+ * Use `IVolume.grantAttachVolumeToSelf` to grant an instance permission to attach this
276
+ * volume to itself.
277
+ *
278
+ * @param grantee the principal being granted permission.
279
+ * @param instances the instances to which permission is being granted to attach this
280
+ * volume to. If not specified, then permission is granted to attach
281
+ * to all instances in this account.
282
+ */
283
+ grantAttachVolume(grantee: IGrantable, instances?: IInstance[]): Grant;
284
+ /**
285
+ * Grants permission to attach the Volume by a ResourceTag condition. If you are looking to
286
+ * grant an Instance, AutoScalingGroup, EC2-Fleet, SpotFleet, ECS host, etc the ability to attach
287
+ * this volume to **itself** then this is the method you want to use.
288
+ *
289
+ * This is implemented by adding a Tag with key `VolumeGrantAttach-<suffix>` to the given
290
+ * constructs and this Volume, and then conditioning the Grant such that the grantee is only
291
+ * given the ability to AttachVolume if both the Volume and the destination Instance have that
292
+ * tag applied to them.
293
+ *
294
+ * @param grantee the principal being granted permission.
295
+ * @param constructs The list of constructs that will have the generated resource tag applied to them.
296
+ * @param tagKeySuffix A suffix to use on the generated Tag key in place of the generated hash value.
297
+ * Defaults to a hash calculated from this volume and list of constructs. (DEPRECATED)
298
+ */
299
+ grantAttachVolumeByResourceTag(grantee: IGrantable, constructs: Construct[], tagKeySuffix?: string): Grant;
300
+ /**
301
+ * Grants permission to detach this Volume from an instance
302
+ * CAUTION: Granting an instance permission to detach from itself using this method will lead to
303
+ * an unresolvable circular reference between the instance role and the instance.
304
+ * Use `IVolume.grantDetachVolumeFromSelf` to grant an instance permission to detach this
305
+ * volume from itself.
306
+ *
307
+ * @param grantee the principal being granted permission.
308
+ * @param instances the instances to which permission is being granted to detach this
309
+ * volume from. If not specified, then permission is granted to detach
310
+ * from all instances in this account.
311
+ */
312
+ grantDetachVolume(grantee: IGrantable, instances?: IInstance[]): Grant;
313
+ /**
314
+ * Grants permission to detach the Volume by a ResourceTag condition.
315
+ *
316
+ * This is implemented via the same mechanism as `IVolume.grantAttachVolumeByResourceTag`,
317
+ * and is subject to the same conditions.
318
+ *
319
+ * @param grantee the principal being granted permission.
320
+ * @param constructs The list of constructs that will have the generated resource tag applied to them.
321
+ * @param tagKeySuffix A suffix to use on the generated Tag key in place of the generated hash value.
322
+ * Defaults to a hash calculated from this volume and list of constructs. (DEPRECATED)
323
+ */
324
+ grantDetachVolumeByResourceTag(grantee: IGrantable, constructs: Construct[], tagKeySuffix?: string): Grant;
325
+ }
326
+ /**
327
+ * Properties of an EBS Volume
328
+ */
329
+ export interface VolumeProps extends AwsConstructProps {
330
+ /**
331
+ * The value of the physicalName property of this resource.
332
+ *
333
+ * @default The physical name will be allocated by CloudFormation at deployment time
334
+ */
335
+ readonly volumeName?: string;
336
+ /**
337
+ * The Availability Zone in which to create the volume.
338
+ */
339
+ readonly availabilityZone: string;
340
+ /**
341
+ * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size.
342
+ * See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html
343
+ * for details on the allowable size for each type of volume.
344
+ *
345
+ * @default If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size.
346
+ */
347
+ readonly size?: Size;
348
+ /**
349
+ * The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size.
350
+ *
351
+ * @default The EBS volume is not created from a snapshot.
352
+ */
353
+ readonly snapshotId?: string;
354
+ /**
355
+ * Indicates whether Amazon EBS Multi-Attach is enabled.
356
+ * See [Considerations and limitations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html#considerations)
357
+ * for the constraints of multi-attach.
358
+ *
359
+ * @default false
360
+ */
361
+ readonly enableMultiAttach?: boolean;
362
+ /**
363
+ * Specifies whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin
364
+ * (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information,
365
+ * see [Encryption by Default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default)
366
+ * in the Amazon Elastic Compute Cloud User Guide.
367
+ *
368
+ * Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see
369
+ * [Supported Instance Types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances).
370
+ *
371
+ * @default false
372
+ */
373
+ readonly encrypted?: boolean;
374
+ /**
375
+ * The customer-managed encryption key that is used to encrypt the Volume. The encrypted property must
376
+ * be true if this is provided.
377
+ *
378
+ * Note: If using an `aws-kms.IKey` created from a `aws-kms.Key.fromKeyArn()` here,
379
+ * then the KMS key **must** have the following in its Key policy; otherwise, the Volume
380
+ * will fail to create.
381
+ *
382
+ * {
383
+ * "Effect": "Allow",
384
+ * "Principal": { "AWS": "<arn for your account-user> ex: arn:aws:iam::00000000000:root" },
385
+ * "Resource": "*",
386
+ * "Action": [
387
+ * "kms:DescribeKey",
388
+ * "kms:GenerateDataKeyWithoutPlainText",
389
+ * ],
390
+ * "Condition": {
391
+ * "StringEquals": {
392
+ * "kms:ViaService": "ec2.<Region>.amazonaws.com", (eg: ec2.us-east-1.amazonaws.com)
393
+ * "kms:CallerAccount": "0000000000" (your account ID)
394
+ * }
395
+ * }
396
+ * }
397
+ *
398
+ * @default The default KMS key for the account, region, and EC2 service is used.
399
+ */
400
+ readonly encryptionKey?: IKey;
401
+ /**
402
+ * The type of the volume; what type of storage to use to form the EBS Volume.
403
+ *
404
+ * @default `EbsDeviceVolumeType.GENERAL_PURPOSE_SSD_GP3`
405
+ */
406
+ readonly volumeType?: EbsDeviceVolumeType;
407
+ /**
408
+ * The number of I/O operations per second (IOPS) to provision for the volume. The maximum ratio is 50 IOPS/GiB for PROVISIONED_IOPS_SSD,
409
+ * and 500 IOPS/GiB for both PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3.
410
+ * See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html
411
+ * for more information.
412
+ *
413
+ * This parameter is valid only for PROVISIONED_IOPS_SSD, PROVISIONED_IOPS_SSD_IO2 and GENERAL_PURPOSE_SSD_GP3 volumes.
414
+ *
415
+ * @default None -- Required for io1 and io2 volumes. The default for gp3 volumes is 3,000 IOPS if omitted.
416
+ */
417
+ readonly iops?: number;
418
+ /**
419
+ * The throughput that the volume supports, in MiB/s
420
+ * Takes a minimum of 125 and maximum of 1000.
421
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html#cfn-ec2-volume-throughput
422
+ * @default - 125 MiB/s. Only valid on gp3 volumes.
423
+ */
424
+ readonly throughput?: number;
425
+ }
426
+ /**
427
+ * Attributes required to import an existing EBS Volume into the Stack.
428
+ */
429
+ export interface VolumeAttributes {
430
+ /**
431
+ * The EBS Volume's ID
432
+ */
433
+ readonly volumeId: string;
434
+ /**
435
+ * The availability zone that the EBS Volume is contained within (ex: us-west-2a)
436
+ */
437
+ readonly availabilityZone: string;
438
+ /**
439
+ * The customer-managed encryption key that is used to encrypt the Volume.
440
+ *
441
+ * @default None -- The EBS Volume is not using a customer-managed KMS key for encryption.
442
+ */
443
+ readonly encryptionKey?: IKey;
444
+ }
445
+ /**
446
+ * Common behavior of Volumes. Users should not use this class directly, and instead use ``Volume``.
447
+ */
448
+ declare abstract class VolumeBase extends AwsConstructBase implements IVolume {
449
+ abstract readonly volumeId: string;
450
+ abstract readonly availabilityZone: string;
451
+ abstract readonly encryptionKey?: IKey;
452
+ get volumeOutputs(): VolumeOutputs;
453
+ get outputs(): Record<string, any>;
454
+ grantAttachVolume(grantee: IGrantable, instances?: IInstance[]): Grant;
455
+ grantAttachVolumeByResourceTag(grantee: IGrantable, constructs: Construct[], tagKeySuffix?: string): Grant;
456
+ grantDetachVolume(grantee: IGrantable, instances?: IInstance[]): Grant;
457
+ grantDetachVolumeByResourceTag(grantee: IGrantable, constructs: Construct[], tagKeySuffix?: string): Grant;
458
+ private collectGrantResourceArns;
459
+ private calculateResourceTagValue;
460
+ }
461
+ /**
462
+ * Creates a new EBS Volume in AWS EC2.
463
+ */
464
+ export declare class Volume extends VolumeBase {
465
+ /**
466
+ * Import an existing EBS Volume into the Stack.
467
+ *
468
+ * @param scope the scope of the import.
469
+ * @param id the ID of the imported Volume in the construct tree.
470
+ * @param attrs the attributes of the imported Volume
471
+ */
472
+ static fromVolumeAttributes(scope: Construct, id: string, attrs: VolumeAttributes): IVolume;
473
+ readonly volumeId: string;
474
+ readonly availabilityZone: string;
475
+ readonly encryptionKey?: IKey;
476
+ readonly resource: ebsVolume.EbsVolume;
477
+ constructor(scope: Construct, id: string, props: VolumeProps);
478
+ protected validateProps(props: VolumeProps): void;
479
+ }
480
+ export {};