terraconstructs 0.1.9 → 0.2.0

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 (303) hide show
  1. package/.jsii +1693 -955
  2. package/lib/asset-staging.js +1 -1
  3. package/lib/aws/arn.js +4 -3
  4. package/lib/aws/aws-asset-manager.js +1 -1
  5. package/lib/aws/aws-construct.js +1 -1
  6. package/lib/aws/aws-stack.d.ts +28 -4
  7. package/lib/aws/aws-stack.js +80 -22
  8. package/lib/aws/aws-tags.js +2 -2
  9. package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
  10. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  11. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  12. package/lib/aws/cloudwatch/actions/sns.js +1 -1
  13. package/lib/aws/cloudwatch/actions/ssm.js +2 -2
  14. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  15. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  16. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  17. package/lib/aws/cloudwatch/alarm.js +1 -1
  18. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  19. package/lib/aws/cloudwatch/dashboard.js +1 -1
  20. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  21. package/lib/aws/cloudwatch/graph.js +8 -8
  22. package/lib/aws/cloudwatch/layout.js +3 -3
  23. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  24. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  25. package/lib/aws/cloudwatch/log-group.js +1 -1
  26. package/lib/aws/cloudwatch/log-query.js +1 -1
  27. package/lib/aws/cloudwatch/log-stream.js +1 -1
  28. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  29. package/lib/aws/cloudwatch/metric.js +2 -2
  30. package/lib/aws/cloudwatch/pattern.js +3 -3
  31. package/lib/aws/cloudwatch/policy.js +1 -1
  32. package/lib/aws/cloudwatch/query-definition.js +2 -2
  33. package/lib/aws/cloudwatch/stats.js +1 -1
  34. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  35. package/lib/aws/cloudwatch/text.js +1 -1
  36. package/lib/aws/cloudwatch/variable.js +3 -3
  37. package/lib/aws/cloudwatch/widget.js +1 -1
  38. package/lib/aws/compute/access-log.js +4 -4
  39. package/lib/aws/compute/activity.js +1 -1
  40. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  41. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  42. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  43. package/lib/aws/compute/alb/application-listener.js +1 -1
  44. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  45. package/lib/aws/compute/alb/application-target-group.js +1 -1
  46. package/lib/aws/compute/alb/conditions.js +1 -1
  47. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  48. package/lib/aws/compute/alb/trust-store.js +1 -1
  49. package/lib/aws/compute/api-definition.js +3 -3
  50. package/lib/aws/compute/api-key.js +2 -2
  51. package/lib/aws/compute/architecture.js +1 -1
  52. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  53. package/lib/aws/compute/authorizer.js +1 -1
  54. package/lib/aws/compute/authorizers/identity-source.js +1 -1
  55. package/lib/aws/compute/authorizers/lambda.js +2 -2
  56. package/lib/aws/compute/base-path-mapping.js +1 -1
  57. package/lib/aws/compute/base-scalable-attribute.js +1 -1
  58. package/lib/aws/compute/bastion-host.js +1 -1
  59. package/lib/aws/compute/chain.js +1 -1
  60. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  61. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  62. package/lib/aws/compute/client-vpn-route.js +2 -2
  63. package/lib/aws/compute/code.js +8 -8
  64. package/lib/aws/compute/condition.js +1 -1
  65. package/lib/aws/compute/connections.js +1 -1
  66. package/lib/aws/compute/cors.js +1 -1
  67. package/lib/aws/compute/deployment.js +1 -1
  68. package/lib/aws/compute/domain-name.js +1 -1
  69. package/lib/aws/compute/event-invoke-config.js +1 -1
  70. package/lib/aws/compute/event-source-filter.js +2 -2
  71. package/lib/aws/compute/event-source-mapping.d.ts +10 -0
  72. package/lib/aws/compute/event-source-mapping.js +20 -23
  73. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  74. package/lib/aws/compute/event-sources/s3.js +1 -1
  75. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  76. package/lib/aws/compute/event-sources/sqs.d.ts +10 -0
  77. package/lib/aws/compute/event-sources/sqs.js +3 -3
  78. package/lib/aws/compute/fields.js +4 -4
  79. package/lib/aws/compute/function-alias.js +1 -1
  80. package/lib/aws/compute/function-base.js +2 -2
  81. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  82. package/lib/aws/compute/function-destinations/function.js +1 -1
  83. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  84. package/lib/aws/compute/function-nodejs/function.js +1 -1
  85. package/lib/aws/compute/function-url.js +1 -1
  86. package/lib/aws/compute/function.js +3 -3
  87. package/lib/aws/compute/gateway-response.js +2 -2
  88. package/lib/aws/compute/handler.js +1 -1
  89. package/lib/aws/compute/instance-types.js +1 -1
  90. package/lib/aws/compute/instance.js +1 -1
  91. package/lib/aws/compute/integration.js +1 -1
  92. package/lib/aws/compute/integrations/aws.js +1 -1
  93. package/lib/aws/compute/integrations/http.js +1 -1
  94. package/lib/aws/compute/integrations/lambda.js +1 -1
  95. package/lib/aws/compute/integrations/mock.js +1 -1
  96. package/lib/aws/compute/integrations/stepfunctions.js +1 -1
  97. package/lib/aws/compute/ip-addresses.js +2 -2
  98. package/lib/aws/compute/ipam.js +1 -1
  99. package/lib/aws/compute/key-pair.js +1 -1
  100. package/lib/aws/compute/lambda-api.js +1 -1
  101. package/lib/aws/compute/launch-template.js +2 -2
  102. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  103. package/lib/aws/compute/lb-shared/base-load-balancer.js +5 -7
  104. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  105. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  106. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  107. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  108. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  109. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  110. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  111. package/lib/aws/compute/load-balancer.js +3 -3
  112. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  113. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  114. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  115. package/lib/aws/compute/machine-image/common.js +1 -1
  116. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  117. package/lib/aws/compute/method.js +1 -1
  118. package/lib/aws/compute/model.js +3 -3
  119. package/lib/aws/compute/nat.js +5 -5
  120. package/lib/aws/compute/network-acl-types.js +2 -2
  121. package/lib/aws/compute/network-acl.js +3 -3
  122. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  123. package/lib/aws/compute/nlb/network-listener.js +1 -1
  124. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  125. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  126. package/lib/aws/compute/peer.js +1 -1
  127. package/lib/aws/compute/placement-group.js +1 -1
  128. package/lib/aws/compute/port.js +1 -1
  129. package/lib/aws/compute/prefix-list.js +1 -1
  130. package/lib/aws/compute/requestvalidator.js +1 -1
  131. package/lib/aws/compute/resource.js +3 -3
  132. package/lib/aws/compute/restapi.js +3 -3
  133. package/lib/aws/compute/route.js +8 -8
  134. package/lib/aws/compute/runtime.d.ts +0 -1
  135. package/lib/aws/compute/runtime.js +5 -36
  136. package/lib/aws/compute/scalable-target.js +1 -1
  137. package/lib/aws/compute/schedule.js +1 -1
  138. package/lib/aws/compute/security-group.js +1 -1
  139. package/lib/aws/compute/stage.js +2 -2
  140. package/lib/aws/compute/state-graph.js +1 -1
  141. package/lib/aws/compute/state-machine-fragment.js +1 -1
  142. package/lib/aws/compute/state-machine.js +4 -4
  143. package/lib/aws/compute/states/choice.js +1 -1
  144. package/lib/aws/compute/states/custom-state.js +1 -1
  145. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  146. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  147. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  148. package/lib/aws/compute/states/distributed-map.js +1 -1
  149. package/lib/aws/compute/states/fail.js +1 -1
  150. package/lib/aws/compute/states/map-base.js +1 -1
  151. package/lib/aws/compute/states/map.js +1 -1
  152. package/lib/aws/compute/states/parallel.js +1 -1
  153. package/lib/aws/compute/states/pass.js +2 -2
  154. package/lib/aws/compute/states/state.js +1 -1
  155. package/lib/aws/compute/states/succeed.js +1 -1
  156. package/lib/aws/compute/states/task-base.js +2 -2
  157. package/lib/aws/compute/states/task.js +1 -1
  158. package/lib/aws/compute/states/wait.js +2 -2
  159. package/lib/aws/compute/step-scaling-action.js +1 -1
  160. package/lib/aws/compute/step-scaling-policy.js +1 -1
  161. package/lib/aws/compute/stepfunctions-api.js +1 -1
  162. package/lib/aws/compute/subnet-v2.js +2 -2
  163. package/lib/aws/compute/subnet.js +1 -1
  164. package/lib/aws/compute/target-tracking-scaling-policy.js +1 -1
  165. package/lib/aws/compute/task-credentials.js +1 -1
  166. package/lib/aws/compute/task-input.js +1 -1
  167. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  168. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  169. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  170. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  171. package/lib/aws/compute/tasks/sqs/send-message.js +10 -13
  172. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  173. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  174. package/lib/aws/compute/types.js +1 -1
  175. package/lib/aws/compute/usage-plan.js +1 -1
  176. package/lib/aws/compute/user-data.js +3 -3
  177. package/lib/aws/compute/volume.js +2 -2
  178. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  179. package/lib/aws/compute/vpc-endpoint.js +6 -6
  180. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  181. package/lib/aws/compute/vpc-link.js +1 -1
  182. package/lib/aws/compute/vpc-v2-base.js +1 -1
  183. package/lib/aws/compute/vpc-v2.js +2 -2
  184. package/lib/aws/compute/vpc.js +4 -4
  185. package/lib/aws/compute/vpn.js +3 -3
  186. package/lib/aws/cx-api.d.ts +1 -0
  187. package/lib/aws/cx-api.js +6 -0
  188. package/lib/aws/edge/certificate.js +1 -1
  189. package/lib/aws/edge/distribution.js +3 -3
  190. package/lib/aws/edge/dns-alias-record-targets.js +6 -6
  191. package/lib/aws/edge/dns-record.js +13 -13
  192. package/lib/aws/edge/dns-zone.js +1 -1
  193. package/lib/aws/edge/function.js +2 -2
  194. package/lib/aws/edge/key-value-store.js +4 -4
  195. package/lib/aws/edge/origin.js +3 -3
  196. package/lib/aws/edge/response-headers-policy.js +1 -1
  197. package/lib/aws/encryption/alias.js +1 -1
  198. package/lib/aws/encryption/key.js +1 -1
  199. package/lib/aws/encryption/via-service-principal.js +1 -1
  200. package/lib/aws/environment-aware.d.ts +41 -0
  201. package/lib/aws/environment-aware.js +3 -0
  202. package/lib/aws/iam/grant.d.ts +34 -0
  203. package/lib/aws/iam/grant.js +27 -6
  204. package/lib/aws/iam/group.js +1 -1
  205. package/lib/aws/iam/instance-profile.js +1 -1
  206. package/lib/aws/iam/managed-policy.js +1 -1
  207. package/lib/aws/iam/oidc-provider.js +1 -1
  208. package/lib/aws/iam/policy-document.js +1 -1
  209. package/lib/aws/iam/policy-statement.js +1 -1
  210. package/lib/aws/iam/policy.js +1 -1
  211. package/lib/aws/iam/principals.js +20 -20
  212. package/lib/aws/iam/role.js +1 -1
  213. package/lib/aws/iam/saml-provider.js +2 -2
  214. package/lib/aws/iam/unknown-principal.js +1 -1
  215. package/lib/aws/iam/user.js +1 -1
  216. package/lib/aws/index.d.ts +1 -0
  217. package/lib/aws/index.js +2 -1
  218. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  219. package/lib/aws/network/subnet-group.js +3 -3
  220. package/lib/aws/network/subnet.js +4 -4
  221. package/lib/aws/notify/archive.js +1 -1
  222. package/lib/aws/notify/connection.js +3 -3
  223. package/lib/aws/notify/event-bus.d.ts +1 -1
  224. package/lib/aws/notify/event-bus.js +4 -4
  225. package/lib/aws/notify/event-pattern.js +1 -1
  226. package/lib/aws/notify/index.d.ts +3 -1
  227. package/lib/aws/notify/index.js +5 -5
  228. package/lib/aws/notify/input.js +2 -2
  229. package/lib/aws/notify/kinesis-stream.js +1 -1
  230. package/lib/aws/notify/notification-rule.js +1 -1
  231. package/lib/aws/notify/policy.js +1 -1
  232. package/lib/aws/notify/queue-base.d.ts +241 -0
  233. package/lib/aws/notify/queue-base.js +161 -0
  234. package/lib/aws/notify/queue-policy.js +1 -1
  235. package/lib/aws/notify/queue.d.ts +157 -190
  236. package/lib/aws/notify/queue.js +239 -186
  237. package/lib/aws/notify/resource-policy.js +1 -1
  238. package/lib/aws/notify/rule.js +1 -1
  239. package/lib/aws/notify/schedule.js +1 -1
  240. package/lib/aws/notify/sqs-augmentations.generated.d.ts +3 -3
  241. package/lib/aws/notify/sqs-augmentations.generated.js +23 -26
  242. package/lib/aws/notify/sqs-grants.generated.d.ts +72 -0
  243. package/lib/aws/notify/sqs-grants.generated.js +139 -0
  244. package/lib/aws/notify/subscription-filter.js +1 -1
  245. package/lib/aws/notify/subscription.js +4 -4
  246. package/lib/aws/notify/subscriptions/email.js +1 -1
  247. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  248. package/lib/aws/notify/subscriptions/sms.js +1 -1
  249. package/lib/aws/notify/subscriptions/sqs.js +30 -27
  250. package/lib/aws/notify/subscriptions/subscription.d.ts +1 -1
  251. package/lib/aws/notify/subscriptions/subscription.js +1 -1
  252. package/lib/aws/notify/subscriptions/url.js +1 -1
  253. package/lib/aws/notify/targets/event-bus.d.ts +1 -1
  254. package/lib/aws/notify/targets/event-bus.js +2 -2
  255. package/lib/aws/notify/targets/function.js +1 -1
  256. package/lib/aws/notify/targets/log-group.js +2 -2
  257. package/lib/aws/notify/targets/sqs.js +12 -14
  258. package/lib/aws/notify/targets/state-machine.js +1 -1
  259. package/lib/aws/notify/topic-base.js +1 -1
  260. package/lib/aws/notify/topic.js +1 -1
  261. package/lib/aws/region-lookup.d.ts +8 -0
  262. package/lib/aws/region-lookup.js +104 -0
  263. package/lib/aws/storage/assets/image-asset.js +3 -3
  264. package/lib/aws/storage/assets/s3.js +1 -1
  265. package/lib/aws/storage/auth-token.js +2 -2
  266. package/lib/aws/storage/billing.js +1 -1
  267. package/lib/aws/storage/bucket-notifications.js +1 -1
  268. package/lib/aws/storage/bucket-policy.js +1 -1
  269. package/lib/aws/storage/bucket-source.js +1 -1
  270. package/lib/aws/storage/bucket.js +27 -24
  271. package/lib/aws/storage/capacity.js +1 -1
  272. package/lib/aws/storage/ecr-repository.js +3 -3
  273. package/lib/aws/storage/encryption.js +1 -1
  274. package/lib/aws/storage/notification-targets/function.js +1 -1
  275. package/lib/aws/storage/notification-targets/queue.js +17 -21
  276. package/lib/aws/storage/origin-access-identity.js +1 -1
  277. package/lib/aws/storage/parameter.js +2 -2
  278. package/lib/aws/storage/table.js +3 -3
  279. package/lib/aws/storage/util.d.ts +0 -10
  280. package/lib/aws/storage/util.js +4 -91
  281. package/lib/bundling.js +3 -3
  282. package/lib/construct-base.js +2 -2
  283. package/lib/duration.js +1 -1
  284. package/lib/errors.js +1 -1
  285. package/lib/expiration.js +1 -1
  286. package/lib/fs/ignore.js +4 -4
  287. package/lib/fs/index.js +1 -1
  288. package/lib/helpers-internal/index.d.ts +1 -0
  289. package/lib/helpers-internal/index.js +16 -1
  290. package/lib/helpers-internal/validate-all-props.d.ts +29 -0
  291. package/lib/helpers-internal/validate-all-props.js +23 -0
  292. package/lib/size.js +1 -1
  293. package/lib/stack-base.d.ts +21 -5
  294. package/lib/stack-base.js +68 -5
  295. package/lib/terra-func.js +1 -1
  296. package/lib/time-zone.js +1 -1
  297. package/package.json +3 -1
  298. package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +0 -7
  299. package/lib/aws/compute/lb-shared/access-logs-accounts.js +0 -46
  300. package/lib/aws/notify/queue-config.generated.d.ts +0 -98
  301. package/lib/aws/notify/queue-config.generated.js +0 -3
  302. package/lib/aws/partition.d.ts +0 -21
  303. package/lib/aws/partition.js +0 -42
package/lib/stack-base.js CHANGED
@@ -2,13 +2,16 @@
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.StackBase = void 0;
5
+ exports.rootPathTo = rootPathTo;
5
6
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
7
  const provider_archive_1 = require("@cdktf/provider-archive");
7
8
  const cdktf_1 = require("cdktf");
8
9
  const constructs_1 = require("constructs");
10
+ const errors_1 = require("./errors");
9
11
  const private_1 = require("./private");
10
12
  const TOKEN_RESOLVER = new cdktf_1.DefaultTokenResolver(new cdktf_1.StringConcat());
11
13
  const TERRASTACK_SYMBOL = Symbol.for("terraconstructs/lib.Stack");
14
+ const VALID_GRID_UUID_REGEX = /^[A-Za-z0-9-]*$/;
12
15
  /**
13
16
  * Base class for all TerraConstructs stacks
14
17
  *
@@ -66,14 +69,25 @@ class StackBase extends cdktf_1.TerraformStack {
66
69
  }
67
70
  return this.archiveProviderSingleton;
68
71
  }
69
- constructor(scope, id, props) {
72
+ constructor(scope, id, props = {}) {
73
+ // For unit test scope and id are optional for stacks, but we still want an App
74
+ // as the parent because apps implement much of the synthesis logic.
75
+ scope = scope ?? new cdktf_1.App();
76
+ // "Default" is a "hidden id" from a `node.uniqueId` perspective
77
+ id = id ?? "Default";
70
78
  super(scope, id);
71
- this.gridUUID = props.gridUUID;
72
- this.environmentName = props.environmentName;
79
+ this._environmentName = props.environmentName ?? "Default";
80
+ this._gridUUID = props.gridUUID ?? this.generateGridUuid(this, "g");
81
+ if (this.gridUUID.length > 36) {
82
+ throw new errors_1.ValidationError(`GridUUID must be <= 36 characters. GridUUID: '${this.gridUUID}'`, this);
83
+ }
73
84
  Object.defineProperty(this, TERRASTACK_SYMBOL, { value: true });
74
85
  if (props.gridBackendConfig) {
75
86
  this.gridBackend = new cdktf_1.HttpBackend(this, props.gridBackendConfig);
76
87
  }
88
+ if (!VALID_GRID_UUID_REGEX.test(this.gridUUID)) {
89
+ throw new errors_1.ValidationError(`GridUUID must match the regular expression: ${VALID_GRID_UUID_REGEX.toString()}, got '${this.gridUUID}'`, this);
90
+ }
77
91
  // Map construct tree dependencies to ITerraformDependables
78
92
  // ref: https://github.com/hashicorp/terraform-cdk/issues/2727#issuecomment-1473321075
79
93
  cdktf_1.Aspects.of(this).add(new private_1.TerraformDependencyAspect());
@@ -81,6 +95,12 @@ class StackBase extends cdktf_1.TerraformStack {
81
95
  // this should ensure any resources added during `prepareStack()` are included in the dependency tree
82
96
  // ref: https://github.com/hashicorp/terraform-cdk/blob/v0.20.9/packages/cdktf/lib/synthesize/synthesizer.ts#L121
83
97
  }
98
+ get gridUUID() {
99
+ return this._gridUUID;
100
+ }
101
+ get environmentName() {
102
+ return this._environmentName;
103
+ }
84
104
  /**
85
105
  * Returns a Terraform-compatible unique identifier for a Terraform Element based
86
106
  * on its path. This function finds the stackName of the parent stack (non-nested)
@@ -162,8 +182,51 @@ class StackBase extends cdktf_1.TerraformStack {
162
182
  },
163
183
  });
164
184
  }
185
+ /**
186
+ * Generate an ID with respect to the given container construct.
187
+ */
188
+ generateGridUuid(container, prefix = "") {
189
+ const rootPath = rootPathTo(this, container);
190
+ const ids = rootPath.map((c) => c.node.id);
191
+ // In unit tests our Stack (which is the only component) may not have an
192
+ // id, so in that case just pretend it's "Stack".
193
+ if (ids.length === 1 && !ids[0]) {
194
+ throw new errors_1.ValidationError("unexpected: stack id must always be defined", this);
195
+ }
196
+ return makeGridUuid(ids, prefix);
197
+ }
165
198
  }
166
199
  exports.StackBase = StackBase;
167
200
  _a = JSII_RTTI_SYMBOL_1;
168
- StackBase[_a] = { fqn: "terraconstructs.StackBase", version: "0.1.9" };
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFjay1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOERBQXNFO0FBQ3RFLGlDQVdlO0FBQ2YsMkNBQXlEO0FBQ3pELHVDQUltQjtBQUVuQixNQUFNLGNBQWMsR0FBRyxJQUFJLDRCQUFvQixDQUFDLElBQUksb0JBQVksRUFBRSxDQUFDLENBQUM7QUFFcEUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFzSGxFOzs7O0dBSUc7QUFDSCxNQUFzQixTQUFVLFNBQVEsc0JBQWM7SUFDcEQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBTTtRQUMvQixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLGlCQUFpQixJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQXFCO1FBQ2xELE1BQU0sQ0FBQyxHQUFHLHNCQUFjLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsYUFBYSxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksU0FBUyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksZ0ZBQWdGLENBQ3JKLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBNEI7UUFDakQsTUFBTSxJQUFJLEdBQUcsc0JBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxD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dUU7Z0JBQ3ZFLCtJQUErSTtnQkFDL0ksNENBQTRDO2dCQUM1QywrSUFBK0k7Z0JBQy9JLE1BQU0sUUFBUSxHQUFHLG9CQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtvQkFDekMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTO29CQUN4QixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7b0JBQ2hCLFFBQVEsRUFBRSxjQUFjO2lCQUN6QixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBOUxILDhCQStMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVyIGFzIGFyY2hpdmVQcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXJjaGl2ZVwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtU3RhY2ssXG4gIFRlcnJhZm9ybUVsZW1lbnQsXG4gIEh0dHBCYWNrZW5kQ29uZmlnLFxuICBIdHRwQmFja2VuZCxcbiAgVG9rZW5pemF0aW9uLFxuICBEZWZhdWx0VG9rZW5SZXNvbHZlciwgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuOS9wYWNrYWdlcy9jZGt0Zi9saWIvdG9rZW5zL3Jlc29sdmFibGUudHMjTDE3NlxuICBTdHJpbmdDb25jYXQsIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy9yZXNvbHZhYmxlLnRzI0wxNTZcbiAgQXNwZWN0cyxcbiAgSVJlc29sdmVDb250ZXh0LFxuICBMYXp5LFxufSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCwgTm9kZSB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBtYWtlVW5pcXVlUmVzb3VyY2VOYW1lLFxuICBtYWtlVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4LFxuICBUZXJyYWZvcm1EZXBlbmRlbmN5QXNwZWN0LFxufSBmcm9tIFwiLi9wcml2YXRlXCI7XG5cbmNvbnN0IFRPS0VOX1JFU09MVkVSID0gbmV3IERlZmF1bHRUb2tlblJlc29sdmVyKG5ldyBTdHJpbmdDb25jYXQoKSk7XG5cbmNvbnN0IFRFUlJBU1RBQ0tfU1lNQk9MID0gU3ltYm9sLmZvcihcInRlcnJhY29uc3RydWN0cy9saWIuU3RhY2tcIik7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2NvcmUvbGliL25hbWVzLnRzXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSB1bmlxdWUgcmVzb3VyY2UgbmFtZV9wcmVmaXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4T3B0aW9uc1xuICBleHRlbmRzIFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMge1xuICAvKipcbiAgICogTGVuZ3RoIG9mIHRoZSByYW5kb20gZ2VuZXJhdGVkIHN1ZmZpeCBhZGRlZCBieSBzb21lIFRlcnJhZm9ybSBwcm92aWRlcnMuXG4gICAqXG4gICAqIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9pc3N1ZXMvNjI1XG4gICAqIEBkZWZhdWx0IC0gMjZcbiAgICovXG4gIHJlYWRvbmx5IHN1ZmZpeExlbmd0aD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbGVuZ3RoIG9mIHRoZSB1bmlxdWUgcmVzb3VyY2UgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAyNTZcbiAgICovXG4gIHJlYWRvbmx5IG1heExlbmd0aD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHNlcGFyYXRvciB1c2VkIGJldHdlZW4gdGhlIHBhdGggY29tcG9uZW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBzZXBhcmF0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5vbi1hbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbGxvd2VkIGluIHRoZSB1bmlxdWUgcmVzb3VyY2UgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByZWZpeCB0byBiZSBhZGRlZCBpbnRvIHRoZSBzdGFjayBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGNvbnZlcnQgdGhlIHJlc291cmNlIG5hbWUgdG8gbG93ZXJjYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb3dlckNhc2U/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRlcnJhQ29uc3RydWN0IFVVSUQgd2l0aGluIHRoZSBncmlkLlxuICAgKlxuICAgKiBVVUlEIGlzIGdlbmVyYXRlZCBieSB0aGUgQ0xJIGFuZCBlbnN1cmVzIHJlc291cmNlIElkZW50aXR5XG4gICAqIGlzIGRlY291cGxlZCBmcm9tIHJlc291cmNlIHRhZ2dpbmcgZm9yIGNvbnNpc3RlbmN5LlxuICAgKlxuICAgKiBVVUlEIG1heSBiZSB1c2VyIHByb3ZpZGVkIGZvciBpbXBvcnRlZCByZXNvdXJjZXNcbiAgICovXG4gIHJlYWRvbmx5IGdyaWRVVUlEOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBuYW1lIHBhc3NlZCBpbiBmcm9tIHRoZSBDTElcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgdGhlIHN0YXRlIHVzaW5nIGEgc2ltcGxlIFJFU1QgY2xpZW50LlxuICAgKlxuICAgKiBTdGF0ZSB3aWxsIGJlIGZldGNoZWQgdmlhIEdFVCwgdXBkYXRlZCB2aWEgUE9TVCwgYW5kIHB1cmdlZCB3aXRoIERFTEVURS5cbiAgICogVGhlIG1ldGhvZCB1c2VkIGZvciB1cGRhdGluZyBpcyBjb25maWd1cmFibGUuXG4gICAqXG4gICAqIFRoaXMgYmFja2VuZCBvcHRpb25hbGx5IHN1cHBvcnRzIHN0YXRlIGxvY2tpbmcuXG4gICAqIFdoZW4gbG9ja2luZyBzdXBwb3J0IGlzIGVuYWJsZWQgaXQgd2lsbCB1c2UgTE9DSyBhbmQgVU5MT0NLIHJlcXVlc3RzIHByb3ZpZGluZyB0aGUgbG9jayBpbmZvIGluIHRoZSBib2R5LlxuICAgKiBUaGUgZW5kcG9pbnQgc2hvdWxkIHJldHVybiBhIDQyMzogTG9ja2VkIG9yIDQwOTogQ29uZmxpY3Qgd2l0aCB0aGUgaG9sZGluZyBsb2NrIGluZm8gd2hlblxuICAgKiBpdCdzIGFscmVhZHkgdGFrZW4sIDIwMDogT0sgZm9yIHN1Y2Nlc3MuIEFueSBvdGhlciBzdGF0dXMgd2lsbCBiZSBjb25zaWRlcmVkIGFuIGVycm9yLlxuICAgKiBUaGUgSUQgb2YgdGhlIGhvbGRpbmcgbG9jayBpbmZvIHdpbGwgYmUgYWRkZWQgYXMgYSBxdWVyeSBwYXJhbWV0ZXIgdG8gc3RhdGUgdXBkYXRlcyByZXF1ZXN0cy5cbiAgICpcbiAgICogUmVhZCBtb3JlIGFib3V0IHRoaXMgYmFja2VuZCBpbiB0aGUgVGVycmFmb3JtIGRvY3M6XG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVyLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2xhbmd1YWdlL3NldHRpbmdzL2JhY2tlbmRzL2h0dHBcbiAgICovXG4gIHJlYWRvbmx5IGdyaWRCYWNrZW5kQ29uZmlnPzogSHR0cEJhY2tlbmRDb25maWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVN0YWNrIGV4dGVuZHMgSUNvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCBOYW1lIHBhc3NlZCBpbiBmcm9tIHRoZSBDTElcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBncmlkVVVJRDogc3RyaW5nO1xuICByZWFkb25seSBncmlkQmFja2VuZD86IEh0dHBCYWNrZW5kO1xuICAvKipcbiAgICogQSBzaW5nbGV0b24gQXJjaGl2ZSBQcm92aWRlciB1c2VkIHRvIGFyY2hpdmUgYXNzZXRzLlxuICAgKiBUaGlzIGlzIHVzZWQgZm9yIGV4YW1wbGUgZm9yIGlubGluZSBDb2RlIGNvbnRlbnQgaW4gYXdzIExhbWJkYSBGdW5jdGlvbnMuXG4gICAqXG4gICAqIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy85Nzc0I2lzc3VlY29tbWVudC02NjkzNTY3ODZcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdmVQcm92aWRlcjogYXJjaGl2ZVByb3ZpZGVyLkFyY2hpdmVQcm92aWRlcjtcbiAgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nPzogYm9vbGVhbik6IGFueTtcbiAgdW5pcXVlUmVzb3VyY2VOYW1lKFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgLy8gdG9Kc29uU3RyaW5nKG9iajogYW55LCBzcGFjZT86IG51bWJlcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgVGVycmFDb25zdHJ1Y3RzIHN0YWNrc1xuICpcbiAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBncmlkIFVVSUQgYW5kIGVudmlyb25tZW50IG5hbWVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YWNrQmFzZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIGltcGxlbWVudHMgSVN0YWNrIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBTdGFjay5cbiAgICpcbiAgICogYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSBhcyAnaW5zdGFuY2VvZicgcG90ZW50aWFsbHkgZmFpbHMgYWNyb3NzIExpYnJhcnkgcmVsZWFzZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVGVycmFTdGFjayh4OiBhbnkpOiB4IGlzIElTdGFjayB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFTVEFDS19TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rcyB1cCB0aGUgZmlyc3Qgc3RhY2sgc2NvcGUgaW4gd2hpY2ggYGNvbnN0cnVjdGAgaXMgZGVmaW5lZC4gRmFpbHMgaWYgdGhlcmUgaXMgbm8gc3RhY2sgdXAgdGhlIHRyZWUgb3IgdGhlIHN0YWNrIGlzIG5vdCBhbiBJU3RhY2suXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mVGVycmFDb25zdHJ1Y3QoY29uc3RydWN0OiBJQ29uc3RydWN0KTogSVN0YWNrIHtcbiAgICBjb25zdCBzID0gVGVycmFmb3JtU3RhY2sub2YoY29uc3RydWN0KTtcbiAgICBpZiAoU3RhY2tCYXNlLmlzVGVycmFTdGFjayhzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSZXNvdXJjZSAnJHtjb25zdHJ1Y3QuY29uc3RydWN0b3I/Lm5hbWV9JyBhdCAnJHtjb25zdHJ1Y3Qubm9kZS5wYXRofScgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIHNjb3BlIG9mIFRlcnJhQ29uc3RydWN0IElTdGFjaywgYnV0IG5vIElTdGFjayBmb3VuZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgY29uc3RydWN0IGJhc2VkIG9uIGl0cyBwYXRoIHdpdGhpblxuICAgKiBhIFRlcnJhZm9ybVN0YWNrLiBzZWUgdW5pcXVlUmVzb3VyY2VOYW1lLCBidXQgd2l0aCBubyBzZXBhcmF0b3IsIG1heGltdW0gbGVuZ3RoIDI1NSBhbmQgYWxsb3dzXG4gICAqICBcIl9cIiBhbmQgXCItXCIgb24gdG9wIG9mIGFscGhhbnVtZXJpY2FsIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdFxuICAgKiBAcmV0dXJucyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lIGJhc2VkIG9uIHRoZSBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1bmlxdWVJZChjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCBOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdChjb25zdHJ1Y3QpID8gY29uc3RydWN0Lm5vZGUgOiBjb25zdHJ1Y3Q7XG4gICAgY29uc3Qgc3RhY2sgPSBub2RlLnNjb3Blc1xuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKGNvbXBvbmVudCkgPT4gVGVycmFmb3JtU3RhY2suaXNTdGFjayhjb21wb25lbnQpKTtcblxuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVbmFibGUgdG8gY2FsY3VsYXRlIGEgdW5pcXVlIGlkIHdpdGhvdXQgYSBzdGFjayBpbiB0aGUgY29uc3RydWN0IHBhdGhcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3BlY0luZGV4ID0gbm9kZS5zY29wZXMuaW5kZXhPZihzdGFjayk7XG4gICAgY29uc3QgY29tcG9uZW50c1BhdGggPSBub2RlLnNjb3Blc1xuICAgICAgLnNsaWNlKHNwZWNJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoY29tcG9uZW50c1BhdGgsIHtcbiAgICAgIG1heExlbmd0aDogMjU1LFxuICAgICAgLy8gYXZvaWQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy82NDIxXG4gICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiXy1cIixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFjayB1bmlxdWUgZ3JpZCBpZGVudGlmaWVyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JpZFVVSUQ6IHN0cmluZztcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgTmFtZSBwYXNzZWQgaW4gZnJvbSB0aGUgQ0xJXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBncmlkIHByb3ZpZGVkIGJhY2tlbmQgZm9yIHN0YXRlIHN0b3JhZ2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncmlkQmFja2VuZD86IEh0dHBCYWNrZW5kO1xuXG4gIHByaXZhdGUgYXJjaGl2ZVByb3ZpZGVyU2luZ2xldG9uPzogYXJjaGl2ZVByb3ZpZGVyLkFyY2hpdmVQcm92aWRlcjtcbiAgcHVibGljIGdldCBhcmNoaXZlUHJvdmlkZXIoKTogYXJjaGl2ZVByb3ZpZGVyLkFyY2hpdmVQcm92aWRlciB7XG4gICAgaWYgKCF0aGlzLmFyY2hpdmVQcm92aWRlclNpbmdsZXRvbikge1xuICAgICAgdGhpcy5hcmNoaXZlUHJvdmlkZXJTaW5nbGV0b24gPSBuZXcgYXJjaGl2ZVByb3ZpZGVyLkFyY2hpdmVQcm92aWRlcihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJBcmNoaXZlUHJvdmlkZXJcIixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFyY2hpdmVQcm92aWRlclNpbmdsZXRvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFja0Jhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5ncmlkVVVJRCA9IHByb3BzLmdyaWRVVUlEO1xuICAgIHRoaXMuZW52aXJvbm1lbnROYW1lID0gcHJvcHMuZW52aXJvbm1lbnROYW1lO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBURVJSQVNUQUNLX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICBpZiAocHJvcHMuZ3JpZEJhY2tlbmRDb25maWcpIHtcbiAgICAgIHRoaXMuZ3JpZEJhY2tlbmQgPSBuZXcgSHR0cEJhY2tlbmQodGhpcywgcHJvcHMuZ3JpZEJhY2tlbmRDb25maWcpO1xuICAgIH1cblxuICAgIC8vIE1hcCBjb25zdHJ1Y3QgdHJlZSBkZXBlbmRlbmNpZXMgdG8gSVRlcnJhZm9ybURlcGVuZGFibGVzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvaXNzdWVzLzI3MjcjaXNzdWVjb21tZW50LTE0NzMzMjEwNzVcbiAgICBBc3BlY3RzLm9mKHRoaXMpLmFkZChuZXcgVGVycmFmb3JtRGVwZW5kZW5jeUFzcGVjdCgpKTtcbiAgICAvLyBBc3BlY3RzIGFyZSBpbnZva2VkIGluIHN5bnRoIGFmdGVyIHN0YWNrIGhhcyBiZWVuIHByZXBhcmVkXG4gICAgLy8gdGhpcyBzaG91bGQgZW5zdXJlIGFueSByZXNvdXJjZXMgYWRkZWQgZHVyaW5nIGBwcmVwYXJlU3RhY2soKWAgYXJlIGluY2x1ZGVkIGluIHRoZSBkZXBlbmRlbmN5IHRyZWVcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3N5bnRoZXNpemUvc3ludGhlc2l6ZXIudHMjTDEyMVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBUZXJyYWZvcm0tY29tcGF0aWJsZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBUZXJyYWZvcm0gRWxlbWVudCBiYXNlZFxuICAgKiBvbiBpdHMgcGF0aC4gVGhpcyBmdW5jdGlvbiBmaW5kcyB0aGUgc3RhY2tOYW1lIG9mIHRoZSBwYXJlbnQgc3RhY2sgKG5vbi1uZXN0ZWQpXG4gICAqIHRvIHRoZSBjb25zdHJ1Y3QsIGFuZCB0aGUgaWRzIG9mIHRoZSBjb21wb25lbnRzIGluIHRoZSBjb25zdHJ1Y3QgcGF0aC5cbiAgICpcbiAgICogVGhlIHVzZXIgY2FuIGRlZmluZSBhbGxvd2VkIHNwZWNpYWwgY2hhcmFjdGVycywgYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgZWxlbWVudHMsXG4gICAqIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHJlc291cmNlIG5hbWUuIFRoZSBuYW1lIGluY2x1ZGVzIGEgaHVtYW4gcmVhZGFibGUgcG9ydGlvbiByZW5kZXJlZFxuICAgKiBmcm9tIHRoZSBwYXRoIGNvbXBvbmVudHMsIHdpdGggb3Igd2l0aG91dCB1c2VyIGRlZmluZWQgc2VwYXJhdG9ycywgYW5kIGEgaGFzaCBzdWZmaXguXG4gICAqIElmIHRoZSByZXNvdXJjZSBuYW1lIGlzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGxlbmd0aCwgaXQgaXMgdHJpbW1lZCBpbiB0aGUgbWlkZGxlLlxuICAgKlxuICAgKiBAcGFyYW0gdGZFbGVtZW50IFRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVmaW5pbmcgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lXG4gICAqIEByZXR1cm5zIGEgdW5pcXVlIHJlc291cmNlIG5hbWUgYmFzZWQgb24gdGhlIGNvbnN0cnVjdCBwYXRoXG4gICAqL1xuICBwdWJsaWMgdW5pcXVlUmVzb3VyY2VOYW1lKFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9uczogVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vZGUgPSBDb25zdHJ1Y3QuaXNDb25zdHJ1Y3QodGZFbGVtZW50KSA/IHRmRWxlbWVudC5ub2RlIDogdGZFbGVtZW50O1xuICAgIGNvbnN0IHN0YWNrID0gVGVycmFmb3JtRWxlbWVudC5pc1RlcnJhZm9ybUVsZW1lbnQodGZFbGVtZW50KVxuICAgICAgPyB0ZkVsZW1lbnQuY2RrdGZTdGFja1xuICAgICAgOiB0aGlzO1xuICAgIGNvbnN0IHN0YWNrSW5kZXggPSBub2RlLnNjb3Blcy5pbmRleE9mKHN0YWNrKTtcbiAgICBjb25zdCBjb21wb25lbnRzUGF0aCA9IG5vZGUuc2NvcGVzXG4gICAgICAuc2xpY2Uoc3RhY2tJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoY29tcG9uZW50c1BhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBUZXJyYWZvcm0tY29tcGF0aWJsZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYSBUZXJyYWZvcm0gRWxlbWVudCBiYXNlZFxuICAgKiBvbiBpdHMgcGF0aC4gVGhpcyBmdW5jdGlvbiBmaW5kcyB0aGUgc3RhY2tOYW1lIG9mIHRoZSBwYXJlbnQgc3RhY2sgKG5vbi1uZXN0ZWQpXG4gICAqIHRvIHRoZSBjb25zdHJ1Y3QsIGFuZCB0aGUgaWRzIG9mIHRoZSBjb21wb25lbnRzIGluIHRoZSBjb25zdHJ1Y3QgcGF0aC5cbiAgICpcbiAgICogVGhlIHVzZXIgY2FuIGRlZmluZSBhbGxvd2VkIHNwZWNpYWwgY2hhcmFjdGVycywgYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgZWxlbWVudHMsXG4gICAqIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHJlc291cmNlIG5hbWUuIFRoZSBuYW1lIGluY2x1ZGVzIGEgaHVtYW4gcmVhZGFibGUgcG9ydGlvbiByZW5kZXJlZFxuICAgKiBmcm9tIHRoZSBwYXRoIGNvbXBvbmVudHMsIHdpdGggb3Igd2l0aG91dCB1c2VyIGRlZmluZWQgc2VwYXJhdG9ycywgYW5kIGRlcGVuZHMgb24gdGhlXG4gICAqIHJlc291cmNlIHByb3ZpZGVyIHRvIGdlbmVyYXRlIHRoZSByYW5kb20gc3VmZml4LlxuICAgKlxuICAgKiBJZiB0aGUgcmVzb3VyY2UgbmFtZSBpcyBsb25nZXIgdGhhbiB0aGUgbWF4aW11bSBsZW5ndGggLSBzdWZmaXhMZW5ndGgsIGl0IGlzIHRyaW1tZWQgaW4gdGhlIG1pZGRsZS5cbiAgICpcbiAgICogQHBhcmFtIHRmRWxlbWVudCBUaGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMgZm9yIGRlZmluaW5nIHRoZSB1bmlxdWUgcmVzb3VyY2UgbmFtZVxuICAgKiBAcmV0dXJucyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lIGJhc2VkIG9uIHRoZSBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcHVibGljIHVuaXF1ZVJlc291cmNlTmFtZVByZWZpeChcbiAgICB0ZkVsZW1lbnQ6IFRlcnJhZm9ybUVsZW1lbnQgfCBOb2RlLFxuICAgIG9wdGlvbnM6IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMgPSB7fSxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBub2RlID0gQ29uc3RydWN0LmlzQ29uc3RydWN0KHRmRWxlbWVudCkgPyB0ZkVsZW1lbnQubm9kZSA6IHRmRWxlbWVudDtcbiAgICBjb25zdCBzdGFjayA9IFRlcnJhZm9ybUVsZW1lbnQuaXNUZXJyYWZvcm1FbGVtZW50KHRmRWxlbWVudClcbiAgICAgID8gdGZFbGVtZW50LmNka3RmU3RhY2tcbiAgICAgIDogdGhpcztcbiAgICBjb25zdCBzdGFja0luZGV4ID0gbm9kZS5zY29wZXMuaW5kZXhPZihzdGFjayk7XG4gICAgY29uc3QgY29tcG9uZW50c1BhdGggPSBub2RlLnNjb3Blc1xuICAgICAgLnNsaWNlKHN0YWNrSW5kZXgpXG4gICAgICAubWFwKChjb21wb25lbnQpID0+IGNvbXBvbmVudC5ub2RlLmlkKTtcblxuICAgIHJldHVybiBtYWtlVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KGNvbXBvbmVudHNQYXRoLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBSZXNvbHZlIElSZXNvbHZhYmxlIGluIHNjb3BlIG9mIHRoaXMgQXdzU3RhY2sgKi9cbiAgcHVibGljIHJlc29sdmUob2JqOiBhbnksIHByZXBhcmluZyA9IGZhbHNlKTogYW55IHtcbiAgICByZXR1cm4gVG9rZW5pemF0aW9uLnJlc29sdmUob2JqLCB7XG4gICAgICBzY29wZTogdGhpcyxcbiAgICAgIHByZXBhcmluZyxcbiAgICAgIHJlc29sdmVyOiBUT0tFTl9SRVNPTFZFUixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGFuIG9iamVjdCwgcG90ZW50aWFsbHkgY29udGFpbmluZyB0b2tlbnMsIHRvIGEgSlNPTiBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyB0b0pzb25TdHJpbmcob2JqOiBhbnksIHNwYWNlPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICBwcm9kdWNlOiAoY3R4OiBJUmVzb2x2ZUNvbnRleHQpID0+IHtcbiAgICAgICAgLy8gRmlyc3QgcmVzb2x2ZSBUb2tlbiBvYmplY3RzIHdpdGggc3RyaW5nIGNvbmNhdC4uLiB0aGVuIEpTT04uc3RyaW5naWZ5IHRoZSByZXN1bHRpbmcgb2JqZWN0XG4gICAgICAgIC8vXG4gICAgICAgIC8vIHVubGlrZSBjbG91ZGZvcm1hdGlvbiwgVGVycmFmb3JtIGRvZXMgbm90IG5lZWQgYW4gaW50cmluc2ljIHdyYXBwZXI/XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzhkY2E1MDc5ZTE4OTMxMjIwNTdmOWUyYzU0YzBkYTBiYTY0NDkyNmUvcGFja2FnZXMvJTQwYXdzLWNkay9jb3JlL2xpYi9wcml2YXRlL2Nsb3VkZm9ybWF0aW9uLWxhbmcudHMjTDczXG4gICAgICAgIC8vIGludHJpbnNpYyB3cmFwcGVyIHdpdGhvdXQgY3Jvc3Mgc3RhY2sgcmVmXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzE0ZTRiYzkxZWQ1ZjBmOGNiN2M4YWM5ZWU4YTZkZTRkYTU0ZTY1ODUvcGFja2FnZXMvJTQwYXdzLWNkay9jb3JlL2xpYi9wcml2YXRlL2Nsb3VkZm9ybWF0aW9uLWxhbmcudHMjTDUwXG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gVG9rZW5pemF0aW9uLnJlc29sdmUob2JqLCB7XG4gICAgICAgICAgcHJlcGFyaW5nOiBjdHgucHJlcGFyaW5nLFxuICAgICAgICAgIHNjb3BlOiBjdHguc2NvcGUsXG4gICAgICAgICAgcmVzb2x2ZXI6IFRPS0VOX1JFU09MVkVSLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc29sdmVkLCB1bmRlZmluZWQsIHNwYWNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
201
+ StackBase[_a] = { fqn: "terraconstructs.StackBase", version: "0.2.0" };
202
+ /**
203
+ * Return the construct root path of the given construct relative to the given ancestor
204
+ *
205
+ * If no ancestor is given or the ancestor is not found, return the entire root path.
206
+ */
207
+ function rootPathTo(construct, ancestor) {
208
+ const scopes = construct.node.scopes;
209
+ for (let i = scopes.length - 2; i >= 0; i--) {
210
+ if (scopes[i] === ancestor) {
211
+ return scopes.slice(i + 1);
212
+ }
213
+ }
214
+ return scopes;
215
+ }
216
+ /**
217
+ * makeUniqueId, specialized for Grid UUID
218
+ *
219
+ * Grid UUID may contain '-', so we allow that character if the stack name
220
+ * has only one component. Otherwise we fall back to the regular "makeUniqueId"
221
+ * behavior.
222
+ */
223
+ function makeGridUuid(components, prefix = "") {
224
+ if (components.length === 1) {
225
+ const gridUuid = prefix + components[0];
226
+ if (gridUuid.length <= 36) {
227
+ return gridUuid;
228
+ }
229
+ }
230
+ return (0, private_1.makeUniqueResourceName)(components, { maxLength: 36, prefix: prefix });
231
+ }
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFjay1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFrWkEsZ0NBV0M7O0FBN1pELDhEQUFzRTtBQUN0RSxpQ0FZZTtBQUNmLDJDQUF5RDtBQUN6RCxxQ0FBMkM7QUFDM0MsdUNBSW1CO0FBRW5CLE1BQU0sY0FBYyxHQUFHLElBQUksNEJBQW9CLENBQUMsSUFBSSxvQkFBWSxFQUFFLENBQUMsQ0FBQztBQUVwRSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUVsRSxNQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBMkhoRDs7OztHQUlHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLHNCQUFjO0lBQ3BEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQU07UUFDL0IsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxpQkFBaUIsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFxQjtRQUNsRCxNQUFNLENBQUMsR0FBRyxzQkFBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLGFBQWEsU0FBUyxDQUFDLFdBQVcsRUFBRSxJQUFJLFNBQVMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGdGQUFnRixDQUNySixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQTRCO1FBQ2pELE1BQU0sSUFBSSxHQUFHLHNCQUFTLENBQUMs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Ozs7O0dBTUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxVQUFvQixFQUFFLFNBQWlCLEVBQUU7SUFDN0QsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFBLGdDQUFzQixFQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVyIGFzIGFyY2hpdmVQcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXJjaGl2ZVwiO1xuaW1wb3J0IHtcbiAgVGVycmFmb3JtU3RhY2ssXG4gIFRlcnJhZm9ybUVsZW1lbnQsXG4gIEh0dHBCYWNrZW5kQ29uZmlnLFxuICBIdHRwQmFja2VuZCxcbiAgVG9rZW5pemF0aW9uLFxuICBEZWZhdWx0VG9rZW5SZXNvbHZlciwgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2Jsb2IvdjAuMjAuOS9wYWNrYWdlcy9jZGt0Zi9saWIvdG9rZW5zL3Jlc29sdmFibGUudHMjTDE3NlxuICBTdHJpbmdDb25jYXQsIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay9ibG9iL3YwLjIwLjkvcGFja2FnZXMvY2RrdGYvbGliL3Rva2Vucy9yZXNvbHZhYmxlLnRzI0wxNTZcbiAgQXNwZWN0cyxcbiAgSVJlc29sdmVDb250ZXh0LFxuICBMYXp5LFxuICBBcHAsXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0LCBOb2RlIH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZSxcbiAgbWFrZVVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCxcbiAgVGVycmFmb3JtRGVwZW5kZW5jeUFzcGVjdCxcbn0gZnJvbSBcIi4vcHJpdmF0ZVwiO1xuXG5jb25zdCBUT0tFTl9SRVNPTFZFUiA9IG5ldyBEZWZhdWx0VG9rZW5SZXNvbHZlcihuZXcgU3RyaW5nQ29uY2F0KCkpO1xuXG5jb25zdCBURVJSQVNUQUNLX1NZTUJPTCA9IFN5bWJvbC5mb3IoXCJ0ZXJyYWNvbnN0cnVjdHMvbGliLlN0YWNrXCIpO1xuXG5jb25zdCBWQUxJRF9HUklEX1VVSURfUkVHRVggPSAvXltBLVphLXowLTktXSokLztcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvbmFtZXMudHNcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lX3ByZWZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXhPcHRpb25zXG4gIGV4dGVuZHMgVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMZW5ndGggb2YgdGhlIHJhbmRvbSBnZW5lcmF0ZWQgc3VmZml4IGFkZGVkIGJ5IHNvbWUgVGVycmFmb3JtIHByb3ZpZGVycy5cbiAgICpcbiAgICogTk9URTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy82MjVcbiAgICogQGRlZmF1bHQgLSAyNlxuICAgKi9cbiAgcmVhZG9ubHkgc3VmZml4TGVuZ3RoPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgdW5pcXVlIHJlc291cmNlIG5hbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW5pcXVlUmVzb3VyY2VOYW1lT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBsZW5ndGggb2YgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDI1NlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VwYXJhdG9yIHVzZWQgYmV0d2VlbiB0aGUgcGF0aCBjb21wb25lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHNlcGFyYXRvcj86IHN0cmluZztcblxuICAvKipcbiAgICogTm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFsbG93ZWQgaW4gdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVycz86IHN0cmluZztcblxuICAvKipcbiAgICogUHJlZml4IHRvIGJlIGFkZGVkIGludG8gdGhlIHN0YWNrIG5hbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29udmVydCB0aGUgcmVzb3VyY2UgbmFtZSB0byBsb3dlcmNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvd2VyQ2FzZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tCYXNlUHJvcHMge1xuICAvKipcbiAgICogVGVycmFDb25zdHJ1Y3QgVVVJRCB3aXRoaW4gdGhlIGdyaWQuXG4gICAqXG4gICAqIFVVSUQgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBDTEkgYW5kIGVuc3VyZXMgcmVzb3VyY2UgSWRlbnRpdHlcbiAgICogaXMgZGVjb3VwbGVkIGZyb20gcmVzb3VyY2UgdGFnZ2luZyBmb3IgY29uc2lzdGVuY3kuXG4gICAqXG4gICAqIFVVSUQgbWF5IGJlIHVzZXIgcHJvdmlkZWQgZm9yIGltcG9ydGVkIHJlc291cmNlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBncmlkVVVJRD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IG5hbWUgcGFzc2VkIGluIGZyb20gdGhlIENMSVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBzdGF0ZSB1c2luZyBhIHNpbXBsZSBSRVNUIGNsaWVudC5cbiAgICpcbiAgICogU3RhdGUgd2lsbCBiZSBmZXRjaGVkIHZpYSBHRVQsIHVwZGF0ZWQgdmlhIFBPU1QsIGFuZCBwdXJnZWQgd2l0aCBERUxFVEUuXG4gICAqIFRoZSBtZXRob2QgdXNlZCBmb3IgdXBkYXRpbmcgaXMgY29uZmlndXJhYmxlLlxuICAgKlxuICAgKiBUaGlzIGJhY2tlbmQgb3B0aW9uYWxseSBzdXBwb3J0cyBzdGF0ZSBsb2NraW5nLlxuICAgKiBXaGVuIGxvY2tpbmcgc3VwcG9ydCBpcyBlbmFibGVkIGl0IHdpbGwgdXNlIExPQ0sgYW5kIFVOTE9DSyByZXF1ZXN0cyBwcm92aWRpbmcgdGhlIGxvY2sgaW5mbyBpbiB0aGUgYm9keS5cbiAgICogVGhlIGVuZHBvaW50IHNob3VsZCByZXR1cm4gYSA0MjM6IExvY2tlZCBvciA0MDk6IENvbmZsaWN0IHdpdGggdGhlIGhvbGRpbmcgbG9jayBpbmZvIHdoZW5cbiAgICogaXQncyBhbHJlYWR5IHRha2VuLCAyMDA6IE9LIGZvciBzdWNjZXNzLiBBbnkgb3RoZXIgc3RhdHVzIHdpbGwgYmUgY29uc2lkZXJlZCBhbiBlcnJvci5cbiAgICogVGhlIElEIG9mIHRoZSBob2xkaW5nIGxvY2sgaW5mbyB3aWxsIGJlIGFkZGVkIGFzIGEgcXVlcnkgcGFyYW1ldGVyIHRvIHN0YXRlIHVwZGF0ZXMgcmVxdWVzdHMuXG4gICAqXG4gICAqIFJlYWQgbW9yZSBhYm91dCB0aGlzIGJhY2tlbmQgaW4gdGhlIFRlcnJhZm9ybSBkb2NzOlxuICAgKiBodHRwczovL2RldmVsb3Blci5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9sYW5ndWFnZS9zZXR0aW5ncy9iYWNrZW5kcy9odHRwXG4gICAqL1xuICByZWFkb25seSBncmlkQmFja2VuZENvbmZpZz86IEh0dHBCYWNrZW5kQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGFjayBleHRlbmRzIElDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogRW52aXJvbm1lbnQgTmFtZSBwYXNzZWQgaW4gZnJvbSB0aGUgQ0xJXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZFVVSUQ6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JpZEJhY2tlbmQ/OiBIdHRwQmFja2VuZDtcblxuICAvKipcbiAgICogQSBzaW5nbGV0b24gQXJjaGl2ZSBQcm92aWRlciB1c2VkIHRvIGFyY2hpdmUgYXNzZXRzLlxuICAgKiBUaGlzIGlzIHVzZWQgZm9yIGV4YW1wbGUgZm9yIGlubGluZSBDb2RlIGNvbnRlbnQgaW4gYXdzIExhbWJkYSBGdW5jdGlvbnMuXG4gICAqXG4gICAqIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2lzc3Vlcy85Nzc0I2lzc3VlY29tbWVudC02NjkzNTY3ODZcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdmVQcm92aWRlcjogYXJjaGl2ZVByb3ZpZGVyLkFyY2hpdmVQcm92aWRlcjtcbiAgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nPzogYm9vbGVhbik6IGFueTtcbiAgdW5pcXVlUmVzb3VyY2VOYW1lKFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZU9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9ucz86IFVuaXF1ZVJlc291cmNlTmFtZVByZWZpeE9wdGlvbnMsXG4gICk6IHN0cmluZztcbiAgLy8gdG9Kc29uU3RyaW5nKG9iajogYW55LCBzcGFjZT86IG51bWJlcik6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgVGVycmFDb25zdHJ1Y3RzIHN0YWNrc1xuICpcbiAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBncmlkIFVVSUQgYW5kIGVudmlyb25tZW50IG5hbWVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0YWNrQmFzZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIGltcGxlbWVudHMgSVN0YWNrIHtcbiAgLyoqXG4gICAqIFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBTdGFjay5cbiAgICpcbiAgICogYXR0cmlidXRlIGRldGVjdGlvbiBzaW5jZSBhcyAnaW5zdGFuY2VvZicgcG90ZW50aWFsbHkgZmFpbHMgYWNyb3NzIExpYnJhcnkgcmVsZWFzZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzVGVycmFTdGFjayh4OiBhbnkpOiB4IGlzIElTdGFjayB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCIgJiYgVEVSUkFTVEFDS19TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb29rcyB1cCB0aGUgZmlyc3Qgc3RhY2sgc2NvcGUgaW4gd2hpY2ggYGNvbnN0cnVjdGAgaXMgZGVmaW5lZC4gRmFpbHMgaWYgdGhlcmUgaXMgbm8gc3RhY2sgdXAgdGhlIHRyZWUgb3IgdGhlIHN0YWNrIGlzIG5vdCBhbiBJU3RhY2suXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mVGVycmFDb25zdHJ1Y3QoY29uc3RydWN0OiBJQ29uc3RydWN0KTogSVN0YWNrIHtcbiAgICBjb25zdCBzID0gVGVycmFmb3JtU3RhY2sub2YoY29uc3RydWN0KTtcbiAgICBpZiAoU3RhY2tCYXNlLmlzVGVycmFTdGFjayhzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSZXNvdXJjZSAnJHtjb25zdHJ1Y3QuY29uc3RydWN0b3I/Lm5hbWV9JyBhdCAnJHtjb25zdHJ1Y3Qubm9kZS5wYXRofScgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIHNjb3BlIG9mIFRlcnJhQ29uc3RydWN0IElTdGFjaywgYnV0IG5vIElTdGFjayBmb3VuZGAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIGEgY29uc3RydWN0IGJhc2VkIG9uIGl0cyBwYXRoIHdpdGhpblxuICAgKiBhIFRlcnJhZm9ybVN0YWNrLiBzZWUgdW5pcXVlUmVzb3VyY2VOYW1lLCBidXQgd2l0aCBubyBzZXBhcmF0b3IsIG1heGltdW0gbGVuZ3RoIDI1NSBhbmQgYWxsb3dzXG4gICAqICBcIl9cIiBhbmQgXCItXCIgb24gdG9wIG9mIGFscGhhbnVtZXJpY2FsIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJ1Y3QgVGhlIGNvbnN0cnVjdFxuICAgKiBAcmV0dXJucyBhIHVuaXF1ZSByZXNvdXJjZSBuYW1lIGJhc2VkIG9uIHRoZSBjb25zdHJ1Y3QgcGF0aFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1bmlxdWVJZChjb25zdHJ1Y3Q6IElDb25zdHJ1Y3QgfCBOb2RlKSB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdChjb25zdHJ1Y3QpID8gY29uc3RydWN0Lm5vZGUgOiBjb25zdHJ1Y3Q7XG4gICAgY29uc3Qgc3RhY2sgPSBub2RlLnNjb3Blc1xuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKGNvbXBvbmVudCkgPT4gVGVycmFmb3JtU3RhY2suaXNTdGFjayhjb21wb25lbnQpKTtcblxuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJVbmFibGUgdG8gY2FsY3VsYXRlIGEgdW5pcXVlIGlkIHdpdGhvdXQgYSBzdGFjayBpbiB0aGUgY29uc3RydWN0IHBhdGhcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3BlY0luZGV4ID0gbm9kZS5zY29wZXMuaW5kZXhPZihzdGFjayk7XG4gICAgY29uc3QgY29tcG9uZW50c1BhdGggPSBub2RlLnNjb3Blc1xuICAgICAgLnNsaWNlKHNwZWNJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWUoY29tcG9uZW50c1BhdGgsIHtcbiAgICAgIG1heExlbmd0aDogMjU1LFxuICAgICAgLy8gYXZvaWQgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy82NDIxXG4gICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiXy1cIixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFjayB1bmlxdWUgZ3JpZCBpZGVudGlmaWVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9ncmlkVVVJRDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCBOYW1lIHBhc3NlZCBpbiBmcm9tIHRoZSBDTElcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Vudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZ3JpZCBwcm92aWRlZCBiYWNrZW5kIGZvciBzdGF0ZSBzdG9yYWdlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JpZEJhY2tlbmQ/OiBIdHRwQmFja2VuZDtcblxuICBwcml2YXRlIGFyY2hpdmVQcm92aWRlclNpbmdsZXRvbj86IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXI7XG4gIHB1YmxpYyBnZXQgYXJjaGl2ZVByb3ZpZGVyKCk6IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXIge1xuICAgIGlmICghdGhpcy5hcmNoaXZlUHJvdmlkZXJTaW5nbGV0b24pIHtcbiAgICAgIHRoaXMuYXJjaGl2ZVByb3ZpZGVyU2luZ2xldG9uID0gbmV3IGFyY2hpdmVQcm92aWRlci5BcmNoaXZlUHJvdmlkZXIoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQXJjaGl2ZVByb3ZpZGVyXCIsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcmNoaXZlUHJvdmlkZXJTaW5nbGV0b247XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZT86IENvbnN0cnVjdCwgaWQ/OiBzdHJpbmcsIHByb3BzOiBTdGFja0Jhc2VQcm9wcyA9IHt9KSB7XG4gICAgLy8gRm9yIHVuaXQgdGVzdCBzY29wZSBhbmQgaWQgYXJlIG9wdGlvbmFsIGZvciBzdGFja3MsIGJ1dCB3ZSBzdGlsbCB3YW50IGFuIEFwcFxuICAgIC8vIGFzIHRoZSBwYXJlbnQgYmVjYXVzZSBhcHBzIGltcGxlbWVudCBtdWNoIG9mIHRoZSBzeW50aGVzaXMgbG9naWMuXG4gICAgc2NvcGUgPSBzY29wZSA/PyBuZXcgQXBwKCk7XG5cbiAgICAvLyBcIkRlZmF1bHRcIiBpcyBhIFwiaGlkZGVuIGlkXCIgZnJvbSBhIGBub2RlLnVuaXF1ZUlkYCBwZXJzcGVjdGl2ZVxuICAgIGlkID0gaWQgPz8gXCJEZWZhdWx0XCI7XG5cbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMuX2Vudmlyb25tZW50TmFtZSA9IHByb3BzLmVudmlyb25tZW50TmFtZSA/PyBcIkRlZmF1bHRcIjtcbiAgICB0aGlzLl9ncmlkVVVJRCA9IHByb3BzLmdyaWRVVUlEID8/IHRoaXMuZ2VuZXJhdGVHcmlkVXVpZCh0aGlzLCBcImdcIik7XG4gICAgaWYgKHRoaXMuZ3JpZFVVSUQubGVuZ3RoID4gMzYpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGBHcmlkVVVJRCBtdXN0IGJlIDw9IDM2IGNoYXJhY3RlcnMuIEdyaWRVVUlEOiAnJHt0aGlzLmdyaWRVVUlEfSdgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFRFUlJBU1RBQ0tfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIGlmIChwcm9wcy5ncmlkQmFja2VuZENvbmZpZykge1xuICAgICAgdGhpcy5ncmlkQmFja2VuZCA9IG5ldyBIdHRwQmFja2VuZCh0aGlzLCBwcm9wcy5ncmlkQmFja2VuZENvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKCFWQUxJRF9HUklEX1VVSURfUkVHRVgudGVzdCh0aGlzLmdyaWRVVUlEKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYEdyaWRVVUlEIG11c3QgbWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbjogJHtWQUxJRF9HUklEX1VVSURfUkVHRVgudG9TdHJpbmcoKX0sIGdvdCAnJHt0aGlzLmdyaWRVVUlEfSdgLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBNYXAgY29uc3RydWN0IHRyZWUgZGVwZW5kZW5jaWVzIHRvIElUZXJyYWZvcm1EZXBlbmRhYmxlc1xuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrL2lzc3Vlcy8yNzI3I2lzc3VlY29tbWVudC0xNDczMzIxMDc1XG4gICAgQXNwZWN0cy5vZih0aGlzKS5hZGQobmV3IFRlcnJhZm9ybURlcGVuZGVuY3lBc3BlY3QoKSk7XG4gICAgLy8gQXNwZWN0cyBhcmUgaW52b2tlZCBpbiBzeW50aCBhZnRlciBzdGFjayBoYXMgYmVlbiBwcmVwYXJlZFxuICAgIC8vIHRoaXMgc2hvdWxkIGVuc3VyZSBhbnkgcmVzb3VyY2VzIGFkZGVkIGR1cmluZyBgcHJlcGFyZVN0YWNrKClgIGFyZSBpbmNsdWRlZCBpbiB0aGUgZGVwZW5kZW5jeSB0cmVlXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi9zeW50aGVzaXplL3N5bnRoZXNpemVyLnRzI0wxMjFcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ3JpZFVVSUQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZ3JpZFVVSUQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudmlyb25tZW50TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9lbnZpcm9ubWVudE5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFRlcnJhZm9ybS1jb21wYXRpYmxlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFRlcnJhZm9ybSBFbGVtZW50IGJhc2VkXG4gICAqIG9uIGl0cyBwYXRoLiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBzdGFja05hbWUgb2YgdGhlIHBhcmVudCBzdGFjayAobm9uLW5lc3RlZClcbiAgICogdG8gdGhlIGNvbnN0cnVjdCwgYW5kIHRoZSBpZHMgb2YgdGhlIGNvbXBvbmVudHMgaW4gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKlxuICAgKiBUaGUgdXNlciBjYW4gZGVmaW5lIGFsbG93ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzLCBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBlbGVtZW50cyxcbiAgICogYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgcmVzb3VyY2UgbmFtZS4gVGhlIG5hbWUgaW5jbHVkZXMgYSBodW1hbiByZWFkYWJsZSBwb3J0aW9uIHJlbmRlcmVkXG4gICAqIGZyb20gdGhlIHBhdGggY29tcG9uZW50cywgd2l0aCBvciB3aXRob3V0IHVzZXIgZGVmaW5lZCBzZXBhcmF0b3JzLCBhbmQgYSBoYXNoIHN1ZmZpeC5cbiAgICogSWYgdGhlIHJlc291cmNlIG5hbWUgaXMgbG9uZ2VyIHRoYW4gdGhlIG1heGltdW0gbGVuZ3RoLCBpdCBpcyB0cmltbWVkIGluIHRoZSBtaWRkbGUuXG4gICAqXG4gICAqIEBwYXJhbSB0ZkVsZW1lbnQgVGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBkZWZpbmluZyB0aGUgdW5pcXVlIHJlc291cmNlIG5hbWVcbiAgICogQHJldHVybnMgYSB1bmlxdWUgcmVzb3VyY2UgbmFtZSBiYXNlZCBvbiB0aGUgY29uc3RydWN0IHBhdGhcbiAgICovXG4gIHB1YmxpYyB1bmlxdWVSZXNvdXJjZU5hbWUoXG4gICAgdGZFbGVtZW50OiBUZXJyYWZvcm1FbGVtZW50IHwgTm9kZSxcbiAgICBvcHRpb25zOiBVbmlxdWVSZXNvdXJjZU5hbWVPcHRpb25zID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9kZSA9IENvbnN0cnVjdC5pc0NvbnN0cnVjdCh0ZkVsZW1lbnQpID8gdGZFbGVtZW50Lm5vZGUgOiB0ZkVsZW1lbnQ7XG4gICAgY29uc3Qgc3RhY2sgPSBUZXJyYWZvcm1FbGVtZW50LmlzVGVycmFmb3JtRWxlbWVudCh0ZkVsZW1lbnQpXG4gICAgICA/IHRmRWxlbWVudC5jZGt0ZlN0YWNrXG4gICAgICA6IHRoaXM7XG4gICAgY29uc3Qgc3RhY2tJbmRleCA9IG5vZGUuc2NvcGVzLmluZGV4T2Yoc3RhY2spO1xuICAgIGNvbnN0IGNvbXBvbmVudHNQYXRoID0gbm9kZS5zY29wZXNcbiAgICAgIC5zbGljZShzdGFja0luZGV4KVxuICAgICAgLm1hcCgoY29tcG9uZW50KSA9PiBjb21wb25lbnQubm9kZS5pZCk7XG5cbiAgICByZXR1cm4gbWFrZVVuaXF1ZVJlc291cmNlTmFtZShjb21wb25lbnRzUGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIFRlcnJhZm9ybS1jb21wYXRpYmxlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIFRlcnJhZm9ybSBFbGVtZW50IGJhc2VkXG4gICAqIG9uIGl0cyBwYXRoLiBUaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBzdGFja05hbWUgb2YgdGhlIHBhcmVudCBzdGFjayAobm9uLW5lc3RlZClcbiAgICogdG8gdGhlIGNvbnN0cnVjdCwgYW5kIHRoZSBpZHMgb2YgdGhlIGNvbXBvbmVudHMgaW4gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKlxuICAgKiBUaGUgdXNlciBjYW4gZGVmaW5lIGFsbG93ZWQgc3BlY2lhbCBjaGFyYWN0ZXJzLCBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBlbGVtZW50cyxcbiAgICogYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgcmVzb3VyY2UgbmFtZS4gVGhlIG5hbWUgaW5jbHVkZXMgYSBodW1hbiByZWFkYWJsZSBwb3J0aW9uIHJlbmRlcmVkXG4gICAqIGZyb20gdGhlIHBhdGggY29tcG9uZW50cywgd2l0aCBvciB3aXRob3V0IHVzZXIgZGVmaW5lZCBzZXBhcmF0b3JzLCBhbmQgZGVwZW5kcyBvbiB0aGVcbiAgICogcmVzb3VyY2UgcHJvdmlkZXIgdG8gZ2VuZXJhdGUgdGhlIHJhbmRvbSBzdWZmaXguXG4gICAqXG4gICAqIElmIHRoZSByZXNvdXJjZSBuYW1lIGlzIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGxlbmd0aCAtIHN1ZmZpeExlbmd0aCwgaXQgaXMgdHJpbW1lZCBpbiB0aGUgbWlkZGxlLlxuICAgKlxuICAgKiBAcGFyYW0gdGZFbGVtZW50IFRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZGVmaW5pbmcgdGhlIHVuaXF1ZSByZXNvdXJjZSBuYW1lXG4gICAqIEByZXR1cm5zIGEgdW5pcXVlIHJlc291cmNlIG5hbWUgYmFzZWQgb24gdGhlIGNvbnN0cnVjdCBwYXRoXG4gICAqL1xuICBwdWJsaWMgdW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4KFxuICAgIHRmRWxlbWVudDogVGVycmFmb3JtRWxlbWVudCB8IE5vZGUsXG4gICAgb3B0aW9uczogVW5pcXVlUmVzb3VyY2VOYW1lUHJlZml4T3B0aW9ucyA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vZGUgPSBDb25zdHJ1Y3QuaXNDb25zdHJ1Y3QodGZFbGVtZW50KSA/IHRmRWxlbWVudC5ub2RlIDogdGZFbGVtZW50O1xuICAgIGNvbnN0IHN0YWNrID0gVGVycmFmb3JtRWxlbWVudC5pc1RlcnJhZm9ybUVsZW1lbnQodGZFbGVtZW50KVxuICAgICAgPyB0ZkVsZW1lbnQuY2RrdGZTdGFja1xuICAgICAgOiB0aGlzO1xuICAgIGNvbnN0IHN0YWNrSW5kZXggPSBub2RlLnNjb3Blcy5pbmRleE9mKHN0YWNrKTtcbiAgICBjb25zdCBjb21wb25lbnRzUGF0aCA9IG5vZGUuc2NvcGVzXG4gICAgICAuc2xpY2Uoc3RhY2tJbmRleClcbiAgICAgIC5tYXAoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Lm5vZGUuaWQpO1xuXG4gICAgcmV0dXJuIG1ha2VVbmlxdWVSZXNvdXJjZU5hbWVQcmVmaXgoY29tcG9uZW50c1BhdGgsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqIFJlc29sdmUgSVJlc29sdmFibGUgaW4gc2NvcGUgb2YgdGhpcyBBd3NTdGFjayAqL1xuICBwdWJsaWMgcmVzb2x2ZShvYmo6IGFueSwgcHJlcGFyaW5nID0gZmFsc2UpOiBhbnkge1xuICAgIHJldHVybiBUb2tlbml6YXRpb24ucmVzb2x2ZShvYmosIHtcbiAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgcHJlcGFyaW5nLFxuICAgICAgcmVzb2x2ZXI6IFRPS0VOX1JFU09MVkVSLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYW4gb2JqZWN0LCBwb3RlbnRpYWxseSBjb250YWluaW5nIHRva2VucywgdG8gYSBKU09OIHN0cmluZ1xuICAgKi9cbiAgcHVibGljIHRvSnNvblN0cmluZyhvYmo6IGFueSwgc3BhY2U/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBMYXp5LnN0cmluZ1ZhbHVlKHtcbiAgICAgIHByb2R1Y2U6IChjdHg6IElSZXNvbHZlQ29udGV4dCkgPT4ge1xuICAgICAgICAvLyBGaXJzdCByZXNvbHZlIFRva2VuIG9iamVjdHMgd2l0aCBzdHJpbmcgY29uY2F0Li4uIHRoZW4gSlNPTi5zdHJpbmdpZnkgdGhlIHJlc3VsdGluZyBvYmplY3RcbiAgICAgICAgLy9cbiAgICAgICAgLy8gdW5saWtlIGNsb3VkZm9ybWF0aW9uLCBUZXJyYWZvcm0gZG9lcyBub3QgbmVlZCBhbiBpbnRyaW5zaWMgd3JhcHBlcj9cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvOGRjYTUwNzllMTg5MzEyMjA1N2Y5ZTJjNTRjMGRhMGJhNjQ0OTI2ZS9wYWNrYWdlcy8lNDBhd3MtY2RrL2NvcmUvbGliL3ByaXZhdGUvY2xvdWRmb3JtYXRpb24tbGFuZy50cyNMNzNcbiAgICAgICAgLy8gaW50cmluc2ljIHdyYXBwZXIgd2l0aG91dCBjcm9zcyBzdGFjayByZWZcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvMTRlNGJjOTFlZDVmMGY4Y2I3YzhhYzllZThhNmRlNGRhNTRlNjU4NS9wYWNrYWdlcy8lNDBhd3MtY2RrL2NvcmUvbGliL3ByaXZhdGUvY2xvdWRmb3JtYXRpb24tbGFuZy50cyNMNTBcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSBUb2tlbml6YXRpb24ucmVzb2x2ZShvYmosIHtcbiAgICAgICAgICBwcmVwYXJpbmc6IGN0eC5wcmVwYXJpbmcsXG4gICAgICAgICAgc2NvcGU6IGN0eC5zY29wZSxcbiAgICAgICAgICByZXNvbHZlcjogVE9LRU5fUkVTT0xWRVIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzb2x2ZWQsIHVuZGVmaW5lZCwgc3BhY2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhbiBJRCB3aXRoIHJlc3BlY3QgdG8gdGhlIGdpdmVuIGNvbnRhaW5lciBjb25zdHJ1Y3QuXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlR3JpZFV1aWQoXG4gICAgY29udGFpbmVyOiBJQ29uc3RydWN0IHwgdW5kZWZpbmVkLFxuICAgIHByZWZpeDogc3RyaW5nID0gXCJcIixcbiAgKSB7XG4gICAgY29uc3Qgcm9vdFBhdGggPSByb290UGF0aFRvKHRoaXMsIGNvbnRhaW5lcik7XG4gICAgY29uc3QgaWRzID0gcm9vdFBhdGgubWFwKChjKSA9PiBjLm5vZGUuaWQpO1xuXG4gICAgLy8gSW4gdW5pdCB0ZXN0cyBvdXIgU3RhY2sgKHdoaWNoIGlzIHRoZSBvbmx5IGNvbXBvbmVudCkgbWF5IG5vdCBoYXZlIGFuXG4gICAgLy8gaWQsIHNvIGluIHRoYXQgY2FzZSBqdXN0IHByZXRlbmQgaXQncyBcIlN0YWNrXCIuXG4gICAgaWYgKGlkcy5sZW5ndGggPT09IDEgJiYgIWlkc1swXSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJ1bmV4cGVjdGVkOiBzdGFjayBpZCBtdXN0IGFsd2F5cyBiZSBkZWZpbmVkXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBtYWtlR3JpZFV1aWQoaWRzLCBwcmVmaXgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBjb25zdHJ1Y3Qgcm9vdCBwYXRoIG9mIHRoZSBnaXZlbiBjb25zdHJ1Y3QgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIGFuY2VzdG9yXG4gKlxuICogSWYgbm8gYW5jZXN0b3IgaXMgZ2l2ZW4gb3IgdGhlIGFuY2VzdG9yIGlzIG5vdCBmb3VuZCwgcmV0dXJuIHRoZSBlbnRpcmUgcm9vdCBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdFBhdGhUbyhcbiAgY29uc3RydWN0OiBJQ29uc3RydWN0LFxuICBhbmNlc3Rvcj86IElDb25zdHJ1Y3QsXG4pOiBJQ29uc3RydWN0W10ge1xuICBjb25zdCBzY29wZXMgPSBjb25zdHJ1Y3Qubm9kZS5zY29wZXM7XG4gIGZvciAobGV0IGkgPSBzY29wZXMubGVuZ3RoIC0gMjsgaSA+PSAwOyBpLS0pIHtcbiAgICBpZiAoc2NvcGVzW2ldID09PSBhbmNlc3Rvcikge1xuICAgICAgcmV0dXJuIHNjb3Blcy5zbGljZShpICsgMSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBzY29wZXM7XG59XG5cbi8qKlxuICogbWFrZVVuaXF1ZUlkLCBzcGVjaWFsaXplZCBmb3IgR3JpZCBVVUlEXG4gKlxuICogR3JpZCBVVUlEIG1heSBjb250YWluICctJywgc28gd2UgYWxsb3cgdGhhdCBjaGFyYWN0ZXIgaWYgdGhlIHN0YWNrIG5hbWVcbiAqIGhhcyBvbmx5IG9uZSBjb21wb25lbnQuIE90aGVyd2lzZSB3ZSBmYWxsIGJhY2sgdG8gdGhlIHJlZ3VsYXIgXCJtYWtlVW5pcXVlSWRcIlxuICogYmVoYXZpb3IuXG4gKi9cbmZ1bmN0aW9uIG1ha2VHcmlkVXVpZChjb21wb25lbnRzOiBzdHJpbmdbXSwgcHJlZml4OiBzdHJpbmcgPSBcIlwiKSB7XG4gIGlmIChjb21wb25lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGdyaWRVdWlkID0gcHJlZml4ICsgY29tcG9uZW50c1swXTtcbiAgICBpZiAoZ3JpZFV1aWQubGVuZ3RoIDw9IDM2KSB7XG4gICAgICByZXR1cm4gZ3JpZFV1aWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYWtlVW5pcXVlUmVzb3VyY2VOYW1lKGNvbXBvbmVudHMsIHsgbWF4TGVuZ3RoOiAzNiwgcHJlZml4OiBwcmVmaXggfSk7XG59XG4iXX0=
package/lib/terra-func.js CHANGED
@@ -159,7 +159,7 @@ class Fn extends cdktf_1.Fn {
159
159
  }
160
160
  exports.Fn = Fn;
161
161
  _a = JSII_RTTI_SYMBOL_1;
162
- Fn[_a] = { fqn: "terraconstructs.Fn", version: "0.1.9" };
162
+ Fn[_a] = { fqn: "terraconstructs.Fn", version: "0.2.0" };
163
163
  function range(n) {
164
164
  const ret = [];
165
165
  for (let i = 0; i < n; i++) {
package/lib/time-zone.js CHANGED
@@ -29,7 +29,7 @@ class TimeZone {
29
29
  }
30
30
  exports.TimeZone = TimeZone;
31
31
  _a = JSII_RTTI_SYMBOL_1;
32
- TimeZone[_a] = { fqn: "terraconstructs.TimeZone", version: "0.1.9" };
32
+ TimeZone[_a] = { fqn: "terraconstructs.TimeZone", version: "0.2.0" };
33
33
  /** IANA Time Zone database entry for Africa/Abidjan. UTC offset +00:00/+00:00. */
34
34
  TimeZone.AFRICA_ABIDJAN = new TimeZone("Africa/Abidjan");
35
35
  /** IANA Time Zone database entry for Africa/Algiers. UTC offset +01:00/+01:00. */
package/package.json CHANGED
@@ -10,6 +10,7 @@
10
10
  "organization": false
11
11
  },
12
12
  "devDependencies": {
13
+ "@aws-cdk/region-info": "2.233.0",
13
14
  "@cdktf/provider-archive": "11.0.0",
14
15
  "@cdktf/provider-aws": "21.22.0",
15
16
  "@cdktf/provider-cloudinit": "11.0.0",
@@ -46,6 +47,7 @@
46
47
  "typescript": "~5.9"
47
48
  },
48
49
  "peerDependencies": {
50
+ "@aws-cdk/region-info": "^2.233.0",
49
51
  "@cdktf/provider-archive": "^11.0.0",
50
52
  "@cdktf/provider-aws": "^21.22.0",
51
53
  "@cdktf/provider-cloudinit": "^11.0.0",
@@ -82,7 +84,7 @@
82
84
  "publishConfig": {
83
85
  "access": "public"
84
86
  },
85
- "version": "0.1.9",
87
+ "version": "0.2.0",
86
88
  "jest": {
87
89
  "coverageProvider": "v8",
88
90
  "setupFilesAfterEnv": [
@@ -1,7 +0,0 @@
1
- export declare const ELBV2_ACCOUNTS: {
2
- [region: string]: string;
3
- };
4
- /**
5
- * The account ID for ELBv2 in this region
6
- */
7
- export declare function getElbv2Account(region: string): string | undefined;
@@ -1,46 +0,0 @@
1
- "use strict";
2
- // https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/region-info/build-tools/fact-tables.ts#L120
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ELBV2_ACCOUNTS = void 0;
5
- exports.getElbv2Account = getElbv2Account;
6
- // https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-logging-bucket-permissions
7
- // https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-access-logs.html#attach-bucket-policy
8
- // Any not listed regions use the service principal "logdelivery.elasticloadbalancing.amazonaws.com"
9
- exports.ELBV2_ACCOUNTS = {
10
- "af-south-1": "098369216593",
11
- "ap-east-1": "754344448648",
12
- "ap-northeast-1": "582318560864",
13
- "ap-northeast-2": "600734575887",
14
- "ap-northeast-3": "383597477331",
15
- "ap-south-1": "718504428378",
16
- "ap-southeast-1": "114774131450",
17
- "ap-southeast-2": "783225319266",
18
- "ap-southeast-3": "589379963580",
19
- "ca-central-1": "985666609251",
20
- "cn-north-1": "638102146993",
21
- "cn-northwest-1": "037604701340",
22
- "eu-central-1": "054676820928",
23
- "eu-north-1": "897822967062",
24
- "eu-south-1": "635631232127",
25
- "eu-west-1": "156460612806",
26
- "eu-west-2": "652711504416",
27
- "eu-west-3": "009996457667",
28
- "me-south-1": "076674570225",
29
- "sa-east-1": "507241528517",
30
- "us-east-1": "127311923021",
31
- "us-east-2": "033677994240",
32
- "us-gov-east-1": "190560391635",
33
- "us-gov-west-1": "048591011584",
34
- "us-iso-east-1": "770363063475",
35
- "us-isob-east-1": "740734521339",
36
- "us-iso-west-1": "121062877647",
37
- "us-west-1": "027434742980",
38
- "us-west-2": "797873946194",
39
- };
40
- /**
41
- * The account ID for ELBv2 in this region
42
- */
43
- function getElbv2Account(region) {
44
- return exports.ELBV2_ACCOUNTS[region];
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWxvZ3MtYWNjb3VudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvbGItc2hhcmVkL2FjY2Vzcy1sb2dzLWFjY291bnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxnSEFBZ0g7OztBQXdDaEgsMENBRUM7QUF4Q0QsdUlBQXVJO0FBQ3ZJLCtHQUErRztBQUMvRyxvR0FBb0c7QUFDdkYsUUFBQSxjQUFjLEdBQWlDO0lBQzFELFlBQVksRUFBRSxjQUFjO0lBQzVCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLGdCQUFnQixFQUFFLGNBQWM7SUFDaEMsZ0JBQWdCLEVBQUUsY0FBYztJQUNoQyxnQkFBZ0IsRUFBRSxjQUFjO0lBQ2hDLFlBQVksRUFBRSxjQUFjO0lBQzVCLGdCQUFnQixFQUFFLGNBQWM7SUFDaEMsZ0JBQWdCLEVBQUUsY0FBYztJQUNoQyxnQkFBZ0IsRUFBRSxjQUFjO0lBQ2hDLGNBQWMsRUFBRSxjQUFjO0lBQzlCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGdCQUFnQixFQUFFLGNBQWM7SUFDaEMsY0FBYyxFQUFFLGNBQWM7SUFDOUIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsWUFBWSxFQUFFLGNBQWM7SUFDNUIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsV0FBVyxFQUFFLGNBQWM7SUFDM0IsZUFBZSxFQUFFLGNBQWM7SUFDL0IsZUFBZSxFQUFFLGNBQWM7SUFDL0IsZUFBZSxFQUFFLGNBQWM7SUFDL0IsZ0JBQWdCLEVBQUUsY0FBYztJQUNoQyxlQUFlLEVBQUUsY0FBYztJQUMvQixXQUFXLEVBQUUsY0FBYztJQUMzQixXQUFXLEVBQUUsY0FBYztDQUM1QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQUMsTUFBYztJQUM1QyxPQUFPLHNCQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL3JlZ2lvbi1pbmZvL2J1aWxkLXRvb2xzL2ZhY3QtdGFibGVzLnRzI0wxMjBcblxuLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9sb2FkLWJhbGFuY2VyLWFjY2Vzcy1sb2dzLmh0bWwjYWNjZXNzLWxvZ2dpbmctYnVja2V0LXBlcm1pc3Npb25zXG4vLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L2NsYXNzaWMvZW5hYmxlLWFjY2Vzcy1sb2dzLmh0bWwjYXR0YWNoLWJ1Y2tldC1wb2xpY3lcbi8vIEFueSBub3QgbGlzdGVkIHJlZ2lvbnMgdXNlIHRoZSBzZXJ2aWNlIHByaW5jaXBhbCBcImxvZ2RlbGl2ZXJ5LmVsYXN0aWNsb2FkYmFsYW5jaW5nLmFtYXpvbmF3cy5jb21cIlxuZXhwb3J0IGNvbnN0IEVMQlYyX0FDQ09VTlRTOiB7IFtyZWdpb246IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBcImFmLXNvdXRoLTFcIjogXCIwOTgzNjkyMTY1OTNcIixcbiAgXCJhcC1lYXN0LTFcIjogXCI3NTQzNDQ0NDg2NDhcIixcbiAgXCJhcC1ub3J0aGVhc3QtMVwiOiBcIjU4MjMxODU2MDg2NFwiLFxuICBcImFwLW5vcnRoZWFzdC0yXCI6IFwiNjAwNzM0NTc1ODg3XCIsXG4gIFwiYXAtbm9ydGhlYXN0LTNcIjogXCIzODM1OTc0NzczMzFcIixcbiAgXCJhcC1zb3V0aC0xXCI6IFwiNzE4NTA0NDI4Mzc4XCIsXG4gIFwiYXAtc291dGhlYXN0LTFcIjogXCIxMTQ3NzQxMzE0NTBcIixcbiAgXCJhcC1zb3V0aGVhc3QtMlwiOiBcIjc4MzIyNTMxOTI2NlwiLFxuICBcImFwLXNvdXRoZWFzdC0zXCI6IFwiNTg5Mzc5OTYzNTgwXCIsXG4gIFwiY2EtY2VudHJhbC0xXCI6IFwiOTg1NjY2NjA5MjUxXCIsXG4gIFwiY24tbm9ydGgtMVwiOiBcIjYzODEwMjE0Njk5M1wiLFxuICBcImNuLW5vcnRod2VzdC0xXCI6IFwiMDM3NjA0NzAxMzQwXCIsXG4gIFwiZXUtY2VudHJhbC0xXCI6IFwiMDU0Njc2ODIwOTI4XCIsXG4gIFwiZXUtbm9ydGgtMVwiOiBcIjg5NzgyMjk2NzA2MlwiLFxuICBcImV1LXNvdXRoLTFcIjogXCI2MzU2MzEyMzIxMjdcIixcbiAgXCJldS13ZXN0LTFcIjogXCIxNTY0NjA2MTI4MDZcIixcbiAgXCJldS13ZXN0LTJcIjogXCI2NTI3MTE1MDQ0MTZcIixcbiAgXCJldS13ZXN0LTNcIjogXCIwMDk5OTY0NTc2NjdcIixcbiAgXCJtZS1zb3V0aC0xXCI6IFwiMDc2Njc0NTcwMjI1XCIsXG4gIFwic2EtZWFzdC0xXCI6IFwiNTA3MjQxNTI4NTE3XCIsXG4gIFwidXMtZWFzdC0xXCI6IFwiMTI3MzExOTIzMDIxXCIsXG4gIFwidXMtZWFzdC0yXCI6IFwiMDMzNjc3OTk0MjQwXCIsXG4gIFwidXMtZ292LWVhc3QtMVwiOiBcIjE5MDU2MDM5MTYzNVwiLFxuICBcInVzLWdvdi13ZXN0LTFcIjogXCIwNDg1OTEwMTE1ODRcIixcbiAgXCJ1cy1pc28tZWFzdC0xXCI6IFwiNzcwMzYzMDYzNDc1XCIsXG4gIFwidXMtaXNvYi1lYXN0LTFcIjogXCI3NDA3MzQ1MjEzMzlcIixcbiAgXCJ1cy1pc28td2VzdC0xXCI6IFwiMTIxMDYyODc3NjQ3XCIsXG4gIFwidXMtd2VzdC0xXCI6IFwiMDI3NDM0NzQyOTgwXCIsXG4gIFwidXMtd2VzdC0yXCI6IFwiNzk3ODczOTQ2MTk0XCIsXG59O1xuXG4vKipcbiAqIFRoZSBhY2NvdW50IElEIGZvciBFTEJ2MiBpbiB0aGlzIHJlZ2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWxidjJBY2NvdW50KHJlZ2lvbjogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIEVMQlYyX0FDQ09VTlRTW3JlZ2lvbl07XG59XG4iXX0=
@@ -1,98 +0,0 @@
1
- import type { sqsQueue } from '@cdktf/provider-aws';
2
- import type { FileProvisioner, IResolvable, ITerraformDependable, ITerraformIterator, LocalExecProvisioner, RemoteExecProvisioner, SSHProvisionerConnection, TerraformCount, TerraformResourceLifecycle, WinrmProvisionerConnection } from 'cdktf';
3
- /**
4
- * Config for external source (like an EventBridge Rule, SNS, or S3) permission to access the Lambda function
5
- */
6
- export interface SqsQueueConfig {
7
- /**
8
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#visibility_timeout_seconds SqsQueue#visibility_timeout_seconds}.
9
- * @stability stable
10
- */
11
- readonly visibilityTimeoutSeconds?: number;
12
- /**
13
- * timeouts block.
14
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#timeouts SqsQueue#timeouts}
15
- * @stability stable
16
- */
17
- readonly timeouts?: sqsQueue.SqsQueueTimeouts;
18
- /**
19
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#tags_all SqsQueue#tags_all}.
20
- * @stability stable
21
- */
22
- readonly tagsAll?: Record<string, string>;
23
- /**
24
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#tags SqsQueue#tags}.
25
- * @stability stable
26
- */
27
- readonly tags?: Record<string, string>;
28
- /**
29
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#sqs_managed_sse_enabled SqsQueue#sqs_managed_sse_enabled}.
30
- * @stability stable
31
- */
32
- readonly sqsManagedSseEnabled?: boolean | IResolvable;
33
- /**
34
- * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference).
35
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#region SqsQueue#region}
36
- * @stability stable
37
- */
38
- readonly region?: string;
39
- /**
40
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#receive_wait_time_seconds SqsQueue#receive_wait_time_seconds}.
41
- * @stability stable
42
- */
43
- readonly receiveWaitTimeSeconds?: number;
44
- /**
45
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#policy SqsQueue#policy}.
46
- * @stability stable
47
- */
48
- readonly policy?: string;
49
- /**
50
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#message_retention_seconds SqsQueue#message_retention_seconds}.
51
- * @stability stable
52
- */
53
- readonly messageRetentionSeconds?: number;
54
- /**
55
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#max_message_size SqsQueue#max_message_size}.
56
- * @stability stable
57
- */
58
- readonly maxMessageSize?: number;
59
- /**
60
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#kms_master_key_id SqsQueue#kms_master_key_id}.
61
- * @stability stable
62
- */
63
- readonly kmsMasterKeyId?: string;
64
- /**
65
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#kms_data_key_reuse_period_seconds SqsQueue#kms_data_key_reuse_period_seconds}.
66
- * @stability stable
67
- */
68
- readonly kmsDataKeyReusePeriodSeconds?: number;
69
- /**
70
- * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/sqs_queue#delay_seconds SqsQueue#delay_seconds}.
71
- * @stability stable
72
- */
73
- readonly delaySeconds?: number;
74
- /**
75
- * @stability experimental
76
- */
77
- readonly provisioners?: Array<FileProvisioner | LocalExecProvisioner | RemoteExecProvisioner>;
78
- /**
79
- * @stability experimental
80
- */
81
- readonly lifecycle?: TerraformResourceLifecycle;
82
- /**
83
- * @stability experimental
84
- */
85
- readonly forEach?: ITerraformIterator;
86
- /**
87
- * @stability experimental
88
- */
89
- readonly dependsOn?: Array<ITerraformDependable>;
90
- /**
91
- * @stability experimental
92
- */
93
- readonly count?: number | TerraformCount;
94
- /**
95
- * @stability experimental
96
- */
97
- readonly connection?: SSHProvisionerConnection | WinrmProvisionerConnection;
98
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtY29uZmlnLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3F1ZXVlLWNvbmZpZy5nZW5lcmF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi5cbmltcG9ydCB0eXBlIHsgc3FzUXVldWUgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItYXdzJztcbmltcG9ydCB0eXBlIHsgRmlsZVByb3Zpc2lvbmVyLCBJUmVzb2x2YWJsZSwgSVRlcnJhZm9ybURlcGVuZGFibGUsIElUZXJyYWZvcm1JdGVyYXRvciwgTG9jYWxFeGVjUHJvdmlzaW9uZXIsIFJlbW90ZUV4ZWNQcm92aXNpb25lciwgU1NIUHJvdmlzaW9uZXJDb25uZWN0aW9uLCBUZXJyYWZvcm1Db3VudCwgVGVycmFmb3JtUmVzb3VyY2VMaWZlY3ljbGUsIFdpbnJtUHJvdmlzaW9uZXJDb25uZWN0aW9uIH0gZnJvbSAnY2RrdGYnO1xuXG4vKipcbiAqIENvbmZpZyBmb3IgZXh0ZXJuYWwgc291cmNlIChsaWtlIGFuIEV2ZW50QnJpZGdlIFJ1bGUsIFNOUywgb3IgUzMpIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoZSBMYW1iZGEgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcXNRdWV1ZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUjdmlzaWJpbGl0eV90aW1lb3V0X3NlY29uZHMgU3FzUXVldWUjdmlzaWJpbGl0eV90aW1lb3V0X3NlY29uZHN9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdmlzaWJpbGl0eVRpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xuICAvKipcbiAgICogdGltZW91dHMgYmxvY2suXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL3Nxc19xdWV1ZSN0aW1lb3V0cyBTcXNRdWV1ZSN0aW1lb3V0c31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRzPzogc3FzUXVldWUuU3FzUXVldWVUaW1lb3V0cztcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL3Nxc19xdWV1ZSN0YWdzX2FsbCBTcXNRdWV1ZSN0YWdzX2FsbH0uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0YWdzQWxsPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL3Nxc19xdWV1ZSN0YWdzIFNxc1F1ZXVlI3RhZ3N9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUjc3FzX21hbmFnZWRfc3NlX2VuYWJsZWQgU3FzUXVldWUjc3FzX21hbmFnZWRfc3NlX2VuYWJsZWR9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3FzTWFuYWdlZFNzZUVuYWJsZWQ/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBSZWdpb24gd2hlcmUgdGhpcyByZXNvdXJjZSB3aWxsIGJlIFttYW5hZ2VkXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2VuZXJhbC9sYXRlc3QvZ3IvcmFuZGUuaHRtbCNyZWdpb25hbC1lbmRwb2ludHMpLiBEZWZhdWx0cyB0byB0aGUgUmVnaW9uIHNldCBpbiB0aGUgW3Byb3ZpZGVyIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzL2xhdGVzdC9kb2NzI2F3cy1jb25maWd1cmF0aW9uLXJlZmVyZW5jZSkuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL3Nxc19xdWV1ZSNyZWdpb24gU3FzUXVldWUjcmVnaW9ufVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvc3FzX3F1ZXVlI3JlY2VpdmVfd2FpdF90aW1lX3NlY29uZHMgU3FzUXVldWUjcmVjZWl2ZV93YWl0X3RpbWVfc2Vjb25kc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSByZWNlaXZlV2FpdFRpbWVTZWNvbmRzPzogbnVtYmVyO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvc3FzX3F1ZXVlI3BvbGljeSBTcXNRdWV1ZSNwb2xpY3l9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5Pzogc3RyaW5nO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvc3FzX3F1ZXVlI21lc3NhZ2VfcmV0ZW50aW9uX3NlY29uZHMgU3FzUXVldWUjbWVzc2FnZV9yZXRlbnRpb25fc2Vjb25kc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlUmV0ZW50aW9uU2Vjb25kcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL3Nxc19xdWV1ZSNtYXhfbWVzc2FnZV9zaXplIFNxc1F1ZXVlI21heF9tZXNzYWdlX3NpemV9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TWVzc2FnZVNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUja21zX21hc3Rlcl9rZXlfaWQgU3FzUXVldWUja21zX21hc3Rlcl9rZXlfaWR9LlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkga21zTWFzdGVyS2V5SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUja21zX2RhdGFfa2V5X3JldXNlX3BlcmlvZF9zZWNvbmRzIFNxc1F1ZXVlI2ttc19kYXRhX2tleV9yZXVzZV9wZXJpb2Rfc2Vjb25kc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBrbXNEYXRhS2V5UmV1c2VQZXJpb2RTZWNvbmRzPzogbnVtYmVyO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvc3FzX3F1ZXVlI2RlbGF5X3NlY29uZHMgU3FzUXVldWUjZGVsYXlfc2Vjb25kc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBkZWxheVNlY29uZHM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlzaW9uZXJzPzogQXJyYXk8RmlsZVByb3Zpc2lvbmVyIHwgTG9jYWxFeGVjUHJvdmlzaW9uZXIgfCBSZW1vdGVFeGVjUHJvdmlzaW9uZXI+O1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGxpZmVjeWNsZT86IFRlcnJhZm9ybVJlc291cmNlTGlmZWN5Y2xlO1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGZvckVhY2g/OiBJVGVycmFmb3JtSXRlcmF0b3I7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kc09uPzogQXJyYXk8SVRlcnJhZm9ybURlcGVuZGFibGU+O1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHJlYWRvbmx5IGNvdW50PzogbnVtYmVyIHwgVGVycmFmb3JtQ291bnQ7XG4gIC8qKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbj86IFNTSFByb3Zpc2lvbmVyQ29ubmVjdGlvbiB8IFdpbnJtUHJvdmlzaW9uZXJDb25uZWN0aW9uO1xufVxuIl19
@@ -1,21 +0,0 @@
1
- export declare enum Partition {
2
- Default = "aws",
3
- Cn = "aws-cn",
4
- UsGov = "aws-us-gov",
5
- UsIso = "aws-iso",
6
- UsIsoB = "aws-iso-b",
7
- UsIsoF = "aws-iso-f",
8
- EuIsoE = "aws-iso-e"
9
- }
10
- export declare function partitionLookup(region: string): {
11
- partition: Partition;
12
- domainSuffix: string;
13
- };
14
- interface Region {
15
- partition: Partition;
16
- domainSuffix: string;
17
- }
18
- export declare const PARTITION_MAP: {
19
- [region: string]: Region;
20
- };
21
- export {};
@@ -1,42 +0,0 @@
1
- "use strict";
2
- // not exported on purpose for JSII compatibility
3
- // NOTE: this file should be under core/private ...
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.PARTITION_MAP = exports.Partition = void 0;
6
- exports.partitionLookup = partitionLookup;
7
- const cdktf_1 = require("cdktf");
8
- // JSII requires enum members to be ALL_CAPS
9
- var Partition;
10
- (function (Partition) {
11
- Partition["Default"] = "aws";
12
- Partition["Cn"] = "aws-cn";
13
- Partition["UsGov"] = "aws-us-gov";
14
- Partition["UsIso"] = "aws-iso";
15
- Partition["UsIsoB"] = "aws-iso-b";
16
- Partition["UsIsoF"] = "aws-iso-f";
17
- Partition["EuIsoE"] = "aws-iso-e";
18
- })(Partition || (exports.Partition = Partition = {}));
19
- function partitionLookup(region) {
20
- if (cdktf_1.Token.isUnresolved(region)) {
21
- throw new Error("Cannot determine region partition for unresolved region");
22
- }
23
- let partition = exports.PARTITION_MAP.default.partition;
24
- let domainSuffix = exports.PARTITION_MAP.default.domainSuffix;
25
- for (const key in exports.PARTITION_MAP) {
26
- if (region.startsWith(key)) {
27
- partition = exports.PARTITION_MAP[key].partition;
28
- domainSuffix = exports.PARTITION_MAP[key].domainSuffix;
29
- }
30
- }
31
- return { partition, domainSuffix };
32
- }
33
- exports.PARTITION_MAP = {
34
- default: { partition: Partition.Default, domainSuffix: "amazonaws.com" },
35
- "cn-": { partition: Partition.Cn, domainSuffix: "amazonaws.com.cn" },
36
- "us-gov-": { partition: Partition.UsGov, domainSuffix: "amazonaws.com" },
37
- "us-iso-": { partition: Partition.UsIso, domainSuffix: "c2s.ic.gov" },
38
- "us-isob-": { partition: Partition.UsIsoB, domainSuffix: "sc2s.sgov.gov" },
39
- "us-isof-": { partition: Partition.UsIsoF, domainSuffix: "csp.hci.ic.gov" },
40
- "eu-isoe-": { partition: Partition.EuIsoE, domainSuffix: "cloud.adc-e.uk" },
41
- };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGl0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9wYXJ0aXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlEQUFpRDtBQUNqRCxtREFBbUQ7OztBQWVuRCwwQ0FpQkM7QUE5QkQsaUNBQThCO0FBRTlCLDRDQUE0QztBQUM1QyxJQUFZLFNBUVg7QUFSRCxXQUFZLFNBQVM7SUFDbkIsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7SUFDYixpQ0FBb0IsQ0FBQTtJQUNwQiw4QkFBaUIsQ0FBQTtJQUNqQixpQ0FBb0IsQ0FBQTtJQUNwQixpQ0FBb0IsQ0FBQTtJQUNwQixpQ0FBb0IsQ0FBQTtBQUN0QixDQUFDLEVBUlcsU0FBUyx5QkFBVCxTQUFTLFFBUXBCO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLE1BQWM7SUFJNUMsSUFBSSxhQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxJQUFJLFNBQVMsR0FBRyxxQkFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDaEQsSUFBSSxZQUFZLEdBQUcscUJBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBRXRELEtBQUssTUFBTSxHQUFHLElBQUkscUJBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLFNBQVMsR0FBRyxxQkFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6QyxZQUFZLEdBQUcscUJBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxDQUFDO0FBQ3JDLENBQUM7QUFNWSxRQUFBLGFBQWEsR0FBaUM7SUFDekQsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRTtJQUN4RSxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUU7SUFDcEUsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRTtJQUN4RSxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFO0lBQ3JFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUU7SUFDMUUsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFO0lBQzNFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRTtDQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbm90IGV4cG9ydGVkIG9uIHB1cnBvc2UgZm9yIEpTSUkgY29tcGF0aWJpbGl0eVxuLy8gTk9URTogdGhpcyBmaWxlIHNob3VsZCBiZSB1bmRlciBjb3JlL3ByaXZhdGUgLi4uXG5cbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5cbi8vIEpTSUkgcmVxdWlyZXMgZW51bSBtZW1iZXJzIHRvIGJlIEFMTF9DQVBTXG5leHBvcnQgZW51bSBQYXJ0aXRpb24ge1xuICBEZWZhdWx0ID0gXCJhd3NcIixcbiAgQ24gPSBcImF3cy1jblwiLFxuICBVc0dvdiA9IFwiYXdzLXVzLWdvdlwiLFxuICBVc0lzbyA9IFwiYXdzLWlzb1wiLFxuICBVc0lzb0IgPSBcImF3cy1pc28tYlwiLFxuICBVc0lzb0YgPSBcImF3cy1pc28tZlwiLFxuICBFdUlzb0UgPSBcImF3cy1pc28tZVwiLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFydGl0aW9uTG9va3VwKHJlZ2lvbjogc3RyaW5nKToge1xuICBwYXJ0aXRpb246IFBhcnRpdGlvbjtcbiAgZG9tYWluU3VmZml4OiBzdHJpbmc7XG59IHtcbiAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChyZWdpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRldGVybWluZSByZWdpb24gcGFydGl0aW9uIGZvciB1bnJlc29sdmVkIHJlZ2lvblwiKTtcbiAgfVxuICBsZXQgcGFydGl0aW9uID0gUEFSVElUSU9OX01BUC5kZWZhdWx0LnBhcnRpdGlvbjtcbiAgbGV0IGRvbWFpblN1ZmZpeCA9IFBBUlRJVElPTl9NQVAuZGVmYXVsdC5kb21haW5TdWZmaXg7XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gUEFSVElUSU9OX01BUCkge1xuICAgIGlmIChyZWdpb24uc3RhcnRzV2l0aChrZXkpKSB7XG4gICAgICBwYXJ0aXRpb24gPSBQQVJUSVRJT05fTUFQW2tleV0ucGFydGl0aW9uO1xuICAgICAgZG9tYWluU3VmZml4ID0gUEFSVElUSU9OX01BUFtrZXldLmRvbWFpblN1ZmZpeDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcGFydGl0aW9uLCBkb21haW5TdWZmaXggfTtcbn1cblxuaW50ZXJmYWNlIFJlZ2lvbiB7XG4gIHBhcnRpdGlvbjogUGFydGl0aW9uO1xuICBkb21haW5TdWZmaXg6IHN0cmluZztcbn1cbmV4cG9ydCBjb25zdCBQQVJUSVRJT05fTUFQOiB7IFtyZWdpb246IHN0cmluZ106IFJlZ2lvbiB9ID0ge1xuICBkZWZhdWx0OiB7IHBhcnRpdGlvbjogUGFydGl0aW9uLkRlZmF1bHQsIGRvbWFpblN1ZmZpeDogXCJhbWF6b25hd3MuY29tXCIgfSxcbiAgXCJjbi1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5DbiwgZG9tYWluU3VmZml4OiBcImFtYXpvbmF3cy5jb20uY25cIiB9LFxuICBcInVzLWdvdi1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5Vc0dvdiwgZG9tYWluU3VmZml4OiBcImFtYXpvbmF3cy5jb21cIiB9LFxuICBcInVzLWlzby1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5Vc0lzbywgZG9tYWluU3VmZml4OiBcImMycy5pYy5nb3ZcIiB9LFxuICBcInVzLWlzb2ItXCI6IHsgcGFydGl0aW9uOiBQYXJ0aXRpb24uVXNJc29CLCBkb21haW5TdWZmaXg6IFwic2Mycy5zZ292LmdvdlwiIH0sXG4gIFwidXMtaXNvZi1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5Vc0lzb0YsIGRvbWFpblN1ZmZpeDogXCJjc3AuaGNpLmljLmdvdlwiIH0sXG4gIFwiZXUtaXNvZS1cIjogeyBwYXJ0aXRpb246IFBhcnRpdGlvbi5FdUlzb0UsIGRvbWFpblN1ZmZpeDogXCJjbG91ZC5hZGMtZS51a1wiIH0sXG59O1xuIl19