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,540 @@
1
+ import { launchTemplate as tfLaunchTemplate } from "@cdktf/provider-aws";
2
+ import { Construct } from "constructs";
3
+ import { Connections, IConnectable } from "./connections";
4
+ import { InstanceType } from "./instance-types";
5
+ import { IKeyPair } from "./key-pair";
6
+ import { IMachineImage, OperatingSystemType } from "./machine-image";
7
+ import { ISecurityGroup } from "./security-group";
8
+ import { UserData } from "./user-data";
9
+ import { BlockDevice } from "./volume";
10
+ import { Duration } from "../../duration";
11
+ import { Expiration } from "../../expiration";
12
+ import { IAwsConstruct, AwsConstructBase } from "../aws-construct";
13
+ import * as iam from "../iam";
14
+ /**
15
+ * Provides the options for specifying the CPU credit type for burstable EC2 instance types (T2, T3, T3a, etc).
16
+ *
17
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-how-to.html
18
+ */
19
+ export declare enum CpuCredits {
20
+ /**
21
+ * Standard bursting mode.
22
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-standard-mode.html
23
+ */
24
+ STANDARD = "standard",
25
+ /**
26
+ * Unlimited bursting mode.
27
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances-unlimited-mode.html
28
+ */
29
+ UNLIMITED = "unlimited"
30
+ }
31
+ /**
32
+ * Provides the options for specifying the instance initiated shutdown behavior.
33
+ *
34
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior
35
+ */
36
+ export declare enum InstanceInitiatedShutdownBehavior {
37
+ /**
38
+ * The instance will stop when it initiates a shutdown.
39
+ */
40
+ STOP = "stop",
41
+ /**
42
+ * The instance will be terminated when it initiates a shutdown.
43
+ */
44
+ TERMINATE = "terminate"
45
+ }
46
+ export interface LaunchTemplateOutputs {
47
+ /**
48
+ * The version number of this launch template to use
49
+ *
50
+ * @attribute
51
+ */
52
+ readonly versionNumber: string;
53
+ /**
54
+ * The identifier of the Launch Template
55
+ *
56
+ * Exactly one of `launchTemplateId` and `launchTemplateName` will be set.
57
+ *
58
+ * @attribute
59
+ */
60
+ readonly launchTemplateId?: string;
61
+ /**
62
+ * The name of the Launch Template
63
+ *
64
+ * Exactly one of `launchTemplateId` and `launchTemplateName` will be set.
65
+ *
66
+ * @attribute
67
+ */
68
+ readonly launchTemplateName?: string;
69
+ }
70
+ /**
71
+ * Interface for LaunchTemplate-like objects.
72
+ */
73
+ export interface ILaunchTemplate extends IAwsConstruct {
74
+ /** strongly typed outputs */
75
+ readonly launchTemplateOutputs: LaunchTemplateOutputs;
76
+ /**
77
+ * The version number of this launch template to use
78
+ *
79
+ * @attribute
80
+ */
81
+ readonly versionNumber: string;
82
+ /**
83
+ * The identifier of the Launch Template
84
+ *
85
+ * Exactly one of `launchTemplateId` and `launchTemplateName` will be set.
86
+ *
87
+ * @attribute
88
+ */
89
+ readonly launchTemplateId?: string;
90
+ /**
91
+ * The name of the Launch Template
92
+ *
93
+ * Exactly one of `launchTemplateId` and `launchTemplateName` will be set.
94
+ *
95
+ * @attribute
96
+ */
97
+ readonly launchTemplateName?: string;
98
+ }
99
+ /**
100
+ * Provides the options for the types of interruption for spot instances.
101
+ */
102
+ export declare enum SpotInstanceInterruption {
103
+ /**
104
+ * The instance will stop when interrupted.
105
+ */
106
+ STOP = "stop",
107
+ /**
108
+ * The instance will be terminated when interrupted.
109
+ */
110
+ TERMINATE = "terminate",
111
+ /**
112
+ * The instance will hibernate when interrupted.
113
+ */
114
+ HIBERNATE = "hibernate"
115
+ }
116
+ /**
117
+ * The Spot Instance request type.
118
+ *
119
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html
120
+ */
121
+ export declare enum SpotRequestType {
122
+ /**
123
+ * A one-time Spot Instance request remains active until Amazon EC2 launches the Spot Instance,
124
+ * the request expires, or you cancel the request. If the Spot price exceeds your maximum price
125
+ * or capacity is not available, your Spot Instance is terminated and the Spot Instance request
126
+ * is closed.
127
+ */
128
+ ONE_TIME = "one-time",
129
+ /**
130
+ * A persistent Spot Instance request remains active until it expires or you cancel it, even if
131
+ * the request is fulfilled. If the Spot price exceeds your maximum price or capacity is not available,
132
+ * your Spot Instance is interrupted. After your instance is interrupted, when your maximum price exceeds
133
+ * the Spot price or capacity becomes available again, the Spot Instance is started if stopped or resumed
134
+ * if hibernated.
135
+ */
136
+ PERSISTENT = "persistent"
137
+ }
138
+ /**
139
+ * Interface for the Spot market instance options provided in a LaunchTemplate.
140
+ */
141
+ export interface LaunchTemplateSpotOptions {
142
+ /**
143
+ * Spot Instances with a defined duration (also known as Spot blocks) are designed not to be interrupted and will run continuously for the duration you select.
144
+ * You can use a duration of 1, 2, 3, 4, 5, or 6 hours.
145
+ *
146
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#fixed-duration-spot-instances
147
+ *
148
+ * @default Requested spot instances do not have a pre-defined duration.
149
+ */
150
+ readonly blockDuration?: Duration;
151
+ /**
152
+ * The behavior when a Spot Instance is interrupted.
153
+ *
154
+ * @default Spot instances will terminate when interrupted.
155
+ */
156
+ readonly interruptionBehavior?: SpotInstanceInterruption;
157
+ /**
158
+ * Maximum hourly price you're willing to pay for each Spot instance. The value is given
159
+ * in dollars. ex: 0.01 for 1 cent per hour, or 0.001 for one-tenth of a cent per hour.
160
+ *
161
+ * @default Maximum hourly price will default to the on-demand price for the instance type.
162
+ */
163
+ readonly maxPrice?: number;
164
+ /**
165
+ * The Spot Instance request type.
166
+ *
167
+ * If you are using Spot Instances with an Auto Scaling group, use one-time requests, as the
168
+ * Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is
169
+ * below its desired capacity.
170
+ *
171
+ * @default One-time spot request.
172
+ */
173
+ readonly requestType?: SpotRequestType;
174
+ /**
175
+ * The end date of the request. For a one-time request, the request remains active until all instances
176
+ * launch, the request is canceled, or this date is reached. If the request is persistent, it remains
177
+ * active until it is canceled or this date and time is reached.
178
+ *
179
+ * @default The default end date is 7 days from the current date.
180
+ */
181
+ readonly validUntil?: Expiration;
182
+ }
183
+ /**
184
+ * The state of token usage for your instance metadata requests.
185
+ *
186
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httptokens
187
+ */
188
+ export declare enum LaunchTemplateHttpTokens {
189
+ /**
190
+ * If the state is optional, you can choose to retrieve instance metadata with or without a signed token header on your request.
191
+ */
192
+ OPTIONAL = "optional",
193
+ /**
194
+ * If the state is required, you must send a signed token header with any instance metadata retrieval requests. In this state,
195
+ * retrieving the IAM role credentials always returns the version 2.0 credentials; the version 1.0 credentials are not available.
196
+ */
197
+ REQUIRED = "required"
198
+ }
199
+ /**
200
+ * Properties of a LaunchTemplate.
201
+ */
202
+ export interface LaunchTemplateProps {
203
+ /**
204
+ * Name for this launch template.
205
+ *
206
+ * @default Automatically generated name
207
+ */
208
+ readonly launchTemplateName?: string;
209
+ /**
210
+ * A description for the first version of the launch template.
211
+ *
212
+ * The version description must be maximum 255 characters long.
213
+ *
214
+ * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-versiondescription
215
+ *
216
+ * @default - No description
217
+ */
218
+ readonly versionDescription?: string;
219
+ /**
220
+ * Type of instance to launch.
221
+ *
222
+ * @default - This Launch Template does not specify a default Instance Type.
223
+ */
224
+ readonly instanceType?: InstanceType;
225
+ /**
226
+ * The AMI that will be used by instances.
227
+ *
228
+ * @default - This Launch Template does not specify a default AMI.
229
+ */
230
+ readonly machineImage?: IMachineImage;
231
+ /**
232
+ * The AMI that will be used by instances.
233
+ *
234
+ * @default - This Launch Template creates a UserData based on the type of provided
235
+ * machineImage; no UserData is created if a machineImage is not provided
236
+ */
237
+ readonly userData?: UserData;
238
+ /**
239
+ * An IAM role to associate with the instance profile that is used by instances.
240
+ *
241
+ * The role must be assumable by the service principal `ec2.amazonaws.com`.
242
+ * Note: You can provide an instanceProfile or a role, but not both.
243
+ *
244
+ * @example
245
+ * const role = new iam.Role(this, 'MyRole', {
246
+ * assumedBy: new iam.ServicePrincipal('ec2.amazonaws.com')
247
+ * });
248
+ *
249
+ * @default - No new role is created.
250
+ */
251
+ readonly role?: iam.IRole;
252
+ /**
253
+ * Specifies how block devices are exposed to the instance. You can specify virtual devices and EBS volumes.
254
+ *
255
+ * Each instance that is launched has an associated root device volume,
256
+ * either an Amazon EBS volume or an instance store volume.
257
+ * You can use block device mappings to specify additional EBS volumes or
258
+ * instance store volumes to attach to an instance when it is launched.
259
+ *
260
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
261
+ *
262
+ * @default - Uses the block device mapping of the AMI
263
+ */
264
+ readonly blockDevices?: BlockDevice[];
265
+ /**
266
+ * CPU credit type for burstable EC2 instance types.
267
+ *
268
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
269
+ *
270
+ * @default - No credit type is specified in the Launch Template.
271
+ */
272
+ readonly cpuCredits?: CpuCredits;
273
+ /**
274
+ * If you set this parameter to true, you cannot terminate the instances launched with this launch template
275
+ * using the Amazon EC2 console, CLI, or API; otherwise, you can.
276
+ *
277
+ * @default - The API termination setting is not specified in the Launch Template.
278
+ */
279
+ readonly disableApiTermination?: boolean;
280
+ /**
281
+ * Indicates whether the instances are optimized for Amazon EBS I/O. This optimization provides dedicated throughput
282
+ * to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization
283
+ * isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.
284
+ *
285
+ * @default - EBS optimization is not specified in the launch template.
286
+ */
287
+ readonly ebsOptimized?: boolean;
288
+ /**
289
+ * If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves.
290
+ *
291
+ * @default - Enablement of Nitro enclaves is not specified in the launch template; defaulting to false.
292
+ */
293
+ readonly nitroEnclaveEnabled?: boolean;
294
+ /**
295
+ * If you set this parameter to true, the instance is enabled for hibernation.
296
+ *
297
+ * @default - Hibernation configuration is not specified in the launch template; defaulting to false.
298
+ */
299
+ readonly hibernationConfigured?: boolean;
300
+ /**
301
+ * Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
302
+ *
303
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior
304
+ *
305
+ * @default - Shutdown behavior is not specified in the launch template; defaults to STOP.
306
+ */
307
+ readonly instanceInitiatedShutdownBehavior?: InstanceInitiatedShutdownBehavior;
308
+ /**
309
+ * If this property is defined, then the Launch Template's InstanceMarketOptions will be
310
+ * set to use Spot instances, and the options for the Spot instances will be as defined.
311
+ *
312
+ * @default - Instance launched with this template will not be spot instances.
313
+ */
314
+ readonly spotOptions?: LaunchTemplateSpotOptions;
315
+ /**
316
+ * Name of SSH keypair to grant access to instance
317
+ *
318
+ * @default - No SSH access will be possible.
319
+ * @deprecated - Use `keyPair` instead - https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2-readme.html#using-an-existing-ec2-key-pair
320
+ */
321
+ readonly keyName?: string;
322
+ /**
323
+ * The SSH keypair to grant access to the instance.
324
+ *
325
+ * @default - No SSH access will be possible.
326
+ */
327
+ readonly keyPair?: IKeyPair;
328
+ /**
329
+ * If set to true, then detailed monitoring will be enabled on instances created with this
330
+ * launch template.
331
+ *
332
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html
333
+ *
334
+ * @default False - Detailed monitoring is disabled.
335
+ */
336
+ readonly detailedMonitoring?: boolean;
337
+ /**
338
+ * Security group to assign to instances created with the launch template.
339
+ *
340
+ * @default No security group is assigned.
341
+ */
342
+ readonly securityGroup?: ISecurityGroup;
343
+ /**
344
+ * Whether IMDSv2 should be required on launched instances.
345
+ *
346
+ * @default - false
347
+ */
348
+ readonly requireImdsv2?: boolean;
349
+ /**
350
+ * Enables or disables the HTTP metadata endpoint on your instances.
351
+ *
352
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpendpoint
353
+ *
354
+ * @default true
355
+ */
356
+ readonly httpEndpoint?: boolean;
357
+ /**
358
+ * Enables or disables the IPv6 endpoint for the instance metadata service.
359
+ *
360
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpprotocolipv6
361
+ *
362
+ * @default true
363
+ */
364
+ readonly httpProtocolIpv6?: boolean;
365
+ /**
366
+ * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.
367
+ *
368
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httpputresponsehoplimit
369
+ *
370
+ * @default 1
371
+ */
372
+ readonly httpPutResponseHopLimit?: number;
373
+ /**
374
+ * The state of token usage for your instance metadata requests. The default state is `optional` if not specified. However,
375
+ * if requireImdsv2 is true, the state must be `required`.
376
+ *
377
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-httptokens
378
+ *
379
+ * @default LaunchTemplateHttpTokens.OPTIONAL
380
+ */
381
+ readonly httpTokens?: LaunchTemplateHttpTokens;
382
+ /**
383
+ * Set to enabled to allow access to instance tags from the instance metadata. Set to disabled to turn off access to instance tags from the instance metadata.
384
+ *
385
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-metadataoptions.html#cfn-ec2-launchtemplate-launchtemplatedata-metadataoptions-instancemetadatatags
386
+ *
387
+ * @default false
388
+ */
389
+ readonly instanceMetadataTags?: boolean;
390
+ /**
391
+ * Whether instances should have a public IP addresses associated with them.
392
+ *
393
+ * @default - Use subnet settings
394
+ */
395
+ readonly associatePublicIpAddress?: boolean;
396
+ /**
397
+ * The instance profile used to pass role information to EC2 instances.
398
+ *
399
+ * Note: You can provide an instanceProfile or a role, but not both.
400
+ *
401
+ * @default - No instance profile
402
+ */
403
+ readonly instanceProfile?: iam.IInstanceProfile;
404
+ }
405
+ /**
406
+ * A class that provides convenient access to special version tokens for LaunchTemplate
407
+ * versions.
408
+ */
409
+ export declare class LaunchTemplateSpecialVersions {
410
+ /**
411
+ * The special value that denotes that users of a Launch Template should
412
+ * reference the LATEST version of the template.
413
+ */
414
+ static readonly LATEST_VERSION: string;
415
+ /**
416
+ * The special value that denotes that users of a Launch Template should
417
+ * reference the DEFAULT version of the template.
418
+ */
419
+ static readonly DEFAULT_VERSION: string;
420
+ }
421
+ /**
422
+ * Attributes for an imported LaunchTemplate.
423
+ */
424
+ export interface LaunchTemplateAttributes {
425
+ /**
426
+ * The version number of this launch template to use
427
+ *
428
+ * @default Version: "$Default"
429
+ */
430
+ readonly versionNumber?: string;
431
+ /**
432
+ * The identifier of the Launch Template
433
+ *
434
+ * Exactly one of `launchTemplateId` and `launchTemplateName` may be set.
435
+ *
436
+ * @default None
437
+ */
438
+ readonly launchTemplateId?: string;
439
+ /**
440
+ * The name of the Launch Template
441
+ *
442
+ * Exactly one of `launchTemplateId` and `launchTemplateName` may be set.
443
+ *
444
+ * @default None
445
+ */
446
+ readonly launchTemplateName?: string;
447
+ }
448
+ /**
449
+ * This represents an EC2 LaunchTemplate.
450
+ *
451
+ * @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html
452
+ */
453
+ export declare class LaunchTemplate extends AwsConstructBase implements ILaunchTemplate, iam.IGrantable, IConnectable {
454
+ /**
455
+ * Import an existing LaunchTemplate.
456
+ */
457
+ static fromLaunchTemplateAttributes(scope: Construct, id: string, attrs: LaunchTemplateAttributes): ILaunchTemplate;
458
+ get launchTemplateOutputs(): LaunchTemplateOutputs;
459
+ get outputs(): Record<string, any>;
460
+ readonly versionNumber: string;
461
+ readonly launchTemplateId?: string;
462
+ readonly launchTemplateName?: string;
463
+ /**
464
+ * The default version for the launch template.
465
+ *
466
+ * @attribute
467
+ */
468
+ readonly defaultVersionNumber: string;
469
+ /**
470
+ * The latest version of the launch template.
471
+ *
472
+ * @attribute
473
+ */
474
+ readonly latestVersionNumber: string;
475
+ /**
476
+ * The type of OS the instance is running.
477
+ *
478
+ * @attribute
479
+ */
480
+ readonly osType?: OperatingSystemType;
481
+ /**
482
+ * The AMI ID of the image to use
483
+ *
484
+ * @attribute
485
+ */
486
+ readonly imageId?: string;
487
+ /**
488
+ * IAM Role assumed by instances that are launched from this template.
489
+ *
490
+ * @attribute
491
+ */
492
+ readonly role?: iam.IRole;
493
+ /**
494
+ * UserData executed by instances that are launched from this template.
495
+ *
496
+ * @attribute
497
+ */
498
+ readonly userData?: UserData;
499
+ /**
500
+ * Type of instance to launch.
501
+ *
502
+ * @attribute
503
+ */
504
+ readonly instanceType?: InstanceType;
505
+ readonly resource: tfLaunchTemplate.LaunchTemplate;
506
+ /**
507
+ * Principal to grant permissions to.
508
+ * @internal
509
+ */
510
+ protected readonly _grantPrincipal?: iam.IPrincipal;
511
+ /**
512
+ * Allows specifying security group connections for the instance.
513
+ * @internal
514
+ */
515
+ protected readonly _connections?: Connections;
516
+ private _tags;
517
+ set tags(value: Record<string, string>);
518
+ get tags(): Record<string, string>;
519
+ get tagsInput(): Record<string, string> | undefined;
520
+ constructor(scope: Construct, id: string, props?: LaunchTemplateProps);
521
+ private renderMetadataOptions;
522
+ /**
523
+ * Add the security group to the instance.
524
+ *
525
+ * @param securityGroup: The security group to add
526
+ */
527
+ addSecurityGroup(securityGroup: ISecurityGroup): void;
528
+ /**
529
+ * Allows specifying security group connections for the instance.
530
+ *
531
+ * @note Only available if you provide a securityGroup when constructing the LaunchTemplate.
532
+ */
533
+ get connections(): Connections;
534
+ /**
535
+ * Principal to grant permissions to.
536
+ *
537
+ * @note Only available if you provide a role when constructing the LaunchTemplate.
538
+ */
539
+ get grantPrincipal(): iam.IPrincipal;
540
+ }