cdktn 0.24.0-pre.87 → 0.24.0-pre.89

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 (78) hide show
  1. package/.jsii +1292 -141
  2. package/lib/annotations.js +1 -1
  3. package/lib/app.js +3 -2
  4. package/lib/aspect.js +1 -1
  5. package/lib/backends/azurerm-backend.js +2 -2
  6. package/lib/backends/cloud-backend.js +4 -4
  7. package/lib/backends/consul-backend.js +2 -2
  8. package/lib/backends/cos-backend.js +2 -2
  9. package/lib/backends/gcs-backend.js +2 -2
  10. package/lib/backends/http-backend.js +2 -2
  11. package/lib/backends/local-backend.js +2 -2
  12. package/lib/backends/oss-backend.js +2 -2
  13. package/lib/backends/pg-backend.js +2 -2
  14. package/lib/backends/remote-backend.js +4 -4
  15. package/lib/backends/s3-backend.js +2 -2
  16. package/lib/backends/swift-backend.js +2 -2
  17. package/lib/complex-computed-list.js +26 -26
  18. package/lib/errors.d.ts +1 -0
  19. package/lib/errors.js +4 -2
  20. package/lib/functions/helpers.js +1 -3
  21. package/lib/functions/provider-function.d.ts +32 -0
  22. package/lib/functions/provider-function.js +59 -0
  23. package/lib/functions/terraform-functions.generated.js +1 -1
  24. package/lib/hcl/render.d.ts +15 -0
  25. package/lib/hcl/render.js +76 -1
  26. package/lib/importable-resource.js +1 -1
  27. package/lib/index.d.ts +3 -0
  28. package/lib/index.js +7 -2
  29. package/lib/manifest.js +1 -1
  30. package/lib/provider-feature-constraints.d.ts +91 -0
  31. package/lib/provider-feature-constraints.js +106 -0
  32. package/lib/resource.js +1 -1
  33. package/lib/synthesize/synthesizer.js +19 -1
  34. package/lib/synthesize/types.d.ts +22 -0
  35. package/lib/synthesize/types.js +1 -1
  36. package/lib/terraform-asset.js +1 -1
  37. package/lib/terraform-backend.js +1 -1
  38. package/lib/terraform-count.js +1 -1
  39. package/lib/terraform-data-resource.js +1 -1
  40. package/lib/terraform-data-source.js +1 -1
  41. package/lib/terraform-element.d.ts +63 -0
  42. package/lib/terraform-element.js +103 -2
  43. package/lib/terraform-ephemeral-resource.d.ts +91 -0
  44. package/lib/terraform-ephemeral-resource.js +138 -0
  45. package/lib/terraform-functions.js +1 -1
  46. package/lib/terraform-hcl-module.js +1 -1
  47. package/lib/terraform-iterator.js +5 -5
  48. package/lib/terraform-local.js +1 -1
  49. package/lib/terraform-module.js +1 -1
  50. package/lib/terraform-operators.js +1 -1
  51. package/lib/terraform-output.js +1 -1
  52. package/lib/terraform-provider.js +1 -1
  53. package/lib/terraform-provisioner.js +1 -1
  54. package/lib/terraform-remote-state.js +1 -1
  55. package/lib/terraform-resource-targets.js +1 -1
  56. package/lib/terraform-resource.d.ts +43 -0
  57. package/lib/terraform-resource.js +67 -2
  58. package/lib/terraform-stack.d.ts +98 -0
  59. package/lib/terraform-stack.js +119 -3
  60. package/lib/terraform-variable.js +2 -2
  61. package/lib/testing/index.js +15 -2
  62. package/lib/testing/matchers.js +1 -1
  63. package/lib/tfExpression.js +105 -1
  64. package/lib/tokens/lazy.js +2 -2
  65. package/lib/tokens/resolvable.js +2 -2
  66. package/lib/tokens/string-fragments.js +1 -1
  67. package/lib/tokens/token.js +2 -2
  68. package/lib/tsconfig.tsbuildinfo +1 -1
  69. package/lib/upgrade-id-aspect.js +1 -1
  70. package/lib/validations/index.d.ts +1 -0
  71. package/lib/validations/index.js +2 -1
  72. package/lib/validations/validate-function-version-support.d.ts +9 -0
  73. package/lib/validations/validate-function-version-support.js +16 -3
  74. package/lib/validations/validate-provider-function-target-support.d.ts +31 -0
  75. package/lib/validations/validate-provider-function-target-support.js +61 -0
  76. package/package.json +2 -2
  77. package/lib/functions/usage-registry.d.ts +0 -6
  78. package/lib/functions/usage-registry.js +0 -34
package/.jsii CHANGED
@@ -76,7 +76,7 @@
76
76
  "cdktn.testingMatchers": {
77
77
  "locationInModule": {
78
78
  "filename": "src/index.ts",
79
- "line": 17
79
+ "line": 20
80
80
  },
81
81
  "symbolId": "src/testing/matchers:"
82
82
  }
@@ -1054,7 +1054,7 @@
1054
1054
  },
1055
1055
  "locationInModule": {
1056
1056
  "filename": "src/app.ts",
1057
- "line": 191
1057
+ "line": 192
1058
1058
  },
1059
1059
  "name": "crossStackReference",
1060
1060
  "parameters": [
@@ -12205,6 +12205,24 @@
12205
12205
  "type": {
12206
12206
  "primitive": "boolean"
12207
12207
  }
12208
+ },
12209
+ {
12210
+ "abstract": true,
12211
+ "docs": {
12212
+ "remarks": "`App.synth()` sets this to `true`: it calls `prepareStack()` on every\nstack up front, so resolve-discovered provider-feature usage (see\n`TerraformElement._registerResolveDiscoveredProviderFeatureUsage`) and\nTerraform-function usage are visible across ALL of an App's stacks\nbefore ANY of them run validations - a cross-stack reference in stack B\nthat only surfaces usage while resolving stack A must not make stack\nA's validation miss it.\n\nLeft unset (or `false`) by sessions built outside `App.synth()` (a\n`StackSynthesizer` driven directly). `StackSynthesizer.synthesize()`\nthen runs `prepareStack()` itself before validating, so those entry\npoints still discover current-pass usage instead of silently skipping\nthe validations that depend on it - at the cost of only ever seeing\nthat one stack's own usage, since no sibling-stack preparation happened\nfirst.",
12213
+ "stability": "experimental",
12214
+ "summary": "Whether every stack that will be synthesized in this session already had `prepareStack()` run against it, for ALL of those stacks, before any of their synthesizers are invoked."
12215
+ },
12216
+ "immutable": true,
12217
+ "locationInModule": {
12218
+ "filename": "src/synthesize/types.ts",
12219
+ "line": 51
12220
+ },
12221
+ "name": "stacksPrepared",
12222
+ "optional": true,
12223
+ "type": {
12224
+ "primitive": "boolean"
12225
+ }
12208
12226
  }
12209
12227
  ],
12210
12228
  "symbolId": "src/synthesize/types:ISynthesisSession"
@@ -12257,6 +12275,182 @@
12257
12275
  "name": "ITerraformDependable",
12258
12276
  "symbolId": "src/terraform-dependable:ITerraformDependable"
12259
12277
  },
12278
+ "cdktn.ITerraformEphemeralResource": {
12279
+ "assembly": "cdktn",
12280
+ "docs": {
12281
+ "stability": "experimental"
12282
+ },
12283
+ "fqn": "cdktn.ITerraformEphemeralResource",
12284
+ "kind": "interface",
12285
+ "locationInModule": {
12286
+ "filename": "src/terraform-ephemeral-resource.ts",
12287
+ "line": 44
12288
+ },
12289
+ "methods": [
12290
+ {
12291
+ "abstract": true,
12292
+ "docs": {
12293
+ "stability": "experimental"
12294
+ },
12295
+ "locationInModule": {
12296
+ "filename": "src/terraform-ephemeral-resource.ts",
12297
+ "line": 55
12298
+ },
12299
+ "name": "interpolationForAttribute",
12300
+ "parameters": [
12301
+ {
12302
+ "name": "terraformAttribute",
12303
+ "type": {
12304
+ "primitive": "string"
12305
+ }
12306
+ }
12307
+ ],
12308
+ "returns": {
12309
+ "type": {
12310
+ "fqn": "cdktn.IResolvable"
12311
+ }
12312
+ }
12313
+ }
12314
+ ],
12315
+ "name": "ITerraformEphemeralResource",
12316
+ "properties": [
12317
+ {
12318
+ "abstract": true,
12319
+ "docs": {
12320
+ "stability": "experimental"
12321
+ },
12322
+ "immutable": true,
12323
+ "locationInModule": {
12324
+ "filename": "src/terraform-ephemeral-resource.ts",
12325
+ "line": 46
12326
+ },
12327
+ "name": "fqn",
12328
+ "type": {
12329
+ "primitive": "string"
12330
+ }
12331
+ },
12332
+ {
12333
+ "abstract": true,
12334
+ "docs": {
12335
+ "stability": "experimental"
12336
+ },
12337
+ "immutable": true,
12338
+ "locationInModule": {
12339
+ "filename": "src/terraform-ephemeral-resource.ts",
12340
+ "line": 47
12341
+ },
12342
+ "name": "friendlyUniqueId",
12343
+ "type": {
12344
+ "primitive": "string"
12345
+ }
12346
+ },
12347
+ {
12348
+ "abstract": true,
12349
+ "docs": {
12350
+ "stability": "experimental"
12351
+ },
12352
+ "immutable": true,
12353
+ "locationInModule": {
12354
+ "filename": "src/terraform-ephemeral-resource.ts",
12355
+ "line": 45
12356
+ },
12357
+ "name": "terraformResourceType",
12358
+ "type": {
12359
+ "primitive": "string"
12360
+ }
12361
+ },
12362
+ {
12363
+ "abstract": true,
12364
+ "docs": {
12365
+ "stability": "experimental"
12366
+ },
12367
+ "locationInModule": {
12368
+ "filename": "src/terraform-ephemeral-resource.ts",
12369
+ "line": 50
12370
+ },
12371
+ "name": "count",
12372
+ "optional": true,
12373
+ "type": {
12374
+ "union": {
12375
+ "types": [
12376
+ {
12377
+ "primitive": "number"
12378
+ },
12379
+ {
12380
+ "fqn": "cdktn.TerraformCount"
12381
+ }
12382
+ ]
12383
+ }
12384
+ }
12385
+ },
12386
+ {
12387
+ "abstract": true,
12388
+ "docs": {
12389
+ "stability": "experimental"
12390
+ },
12391
+ "locationInModule": {
12392
+ "filename": "src/terraform-ephemeral-resource.ts",
12393
+ "line": 49
12394
+ },
12395
+ "name": "dependsOn",
12396
+ "optional": true,
12397
+ "type": {
12398
+ "collection": {
12399
+ "elementtype": {
12400
+ "primitive": "string"
12401
+ },
12402
+ "kind": "array"
12403
+ }
12404
+ }
12405
+ },
12406
+ {
12407
+ "abstract": true,
12408
+ "docs": {
12409
+ "stability": "experimental"
12410
+ },
12411
+ "locationInModule": {
12412
+ "filename": "src/terraform-ephemeral-resource.ts",
12413
+ "line": 53
12414
+ },
12415
+ "name": "forEach",
12416
+ "optional": true,
12417
+ "type": {
12418
+ "fqn": "cdktn.ITerraformIterator"
12419
+ }
12420
+ },
12421
+ {
12422
+ "abstract": true,
12423
+ "docs": {
12424
+ "stability": "experimental"
12425
+ },
12426
+ "locationInModule": {
12427
+ "filename": "src/terraform-ephemeral-resource.ts",
12428
+ "line": 52
12429
+ },
12430
+ "name": "lifecycle",
12431
+ "optional": true,
12432
+ "type": {
12433
+ "fqn": "cdktn.TerraformEphemeralResourceLifecycle"
12434
+ }
12435
+ },
12436
+ {
12437
+ "abstract": true,
12438
+ "docs": {
12439
+ "stability": "experimental"
12440
+ },
12441
+ "locationInModule": {
12442
+ "filename": "src/terraform-ephemeral-resource.ts",
12443
+ "line": 51
12444
+ },
12445
+ "name": "provider",
12446
+ "optional": true,
12447
+ "type": {
12448
+ "fqn": "cdktn.TerraformProvider"
12449
+ }
12450
+ }
12451
+ ],
12452
+ "symbolId": "src/terraform-ephemeral-resource:ITerraformEphemeralResource"
12453
+ },
12260
12454
  "cdktn.ITerraformIterator": {
12261
12455
  "assembly": "cdktn",
12262
12456
  "docs": {
@@ -12280,7 +12474,7 @@
12280
12474
  "kind": "interface",
12281
12475
  "locationInModule": {
12282
12476
  "filename": "src/terraform-resource.ts",
12283
- "line": 42
12477
+ "line": 44
12284
12478
  },
12285
12479
  "methods": [
12286
12480
  {
@@ -12290,7 +12484,7 @@
12290
12484
  },
12291
12485
  "locationInModule": {
12292
12486
  "filename": "src/terraform-resource.ts",
12293
- "line": 53
12487
+ "line": 55
12294
12488
  },
12295
12489
  "name": "interpolationForAttribute",
12296
12490
  "parameters": [
@@ -12318,7 +12512,7 @@
12318
12512
  "immutable": true,
12319
12513
  "locationInModule": {
12320
12514
  "filename": "src/terraform-resource.ts",
12321
- "line": 44
12515
+ "line": 46
12322
12516
  },
12323
12517
  "name": "fqn",
12324
12518
  "type": {
@@ -12333,7 +12527,7 @@
12333
12527
  "immutable": true,
12334
12528
  "locationInModule": {
12335
12529
  "filename": "src/terraform-resource.ts",
12336
- "line": 45
12530
+ "line": 47
12337
12531
  },
12338
12532
  "name": "friendlyUniqueId",
12339
12533
  "type": {
@@ -12348,7 +12542,7 @@
12348
12542
  "immutable": true,
12349
12543
  "locationInModule": {
12350
12544
  "filename": "src/terraform-resource.ts",
12351
- "line": 43
12545
+ "line": 45
12352
12546
  },
12353
12547
  "name": "terraformResourceType",
12354
12548
  "type": {
@@ -12362,7 +12556,7 @@
12362
12556
  },
12363
12557
  "locationInModule": {
12364
12558
  "filename": "src/terraform-resource.ts",
12365
- "line": 48
12559
+ "line": 50
12366
12560
  },
12367
12561
  "name": "count",
12368
12562
  "optional": true,
@@ -12386,7 +12580,7 @@
12386
12580
  },
12387
12581
  "locationInModule": {
12388
12582
  "filename": "src/terraform-resource.ts",
12389
- "line": 47
12583
+ "line": 49
12390
12584
  },
12391
12585
  "name": "dependsOn",
12392
12586
  "optional": true,
@@ -12406,7 +12600,7 @@
12406
12600
  },
12407
12601
  "locationInModule": {
12408
12602
  "filename": "src/terraform-resource.ts",
12409
- "line": 51
12603
+ "line": 53
12410
12604
  },
12411
12605
  "name": "forEach",
12412
12606
  "optional": true,
@@ -12421,7 +12615,7 @@
12421
12615
  },
12422
12616
  "locationInModule": {
12423
12617
  "filename": "src/terraform-resource.ts",
12424
- "line": 50
12618
+ "line": 52
12425
12619
  },
12426
12620
  "name": "lifecycle",
12427
12621
  "optional": true,
@@ -12436,7 +12630,7 @@
12436
12630
  },
12437
12631
  "locationInModule": {
12438
12632
  "filename": "src/terraform-resource.ts",
12439
- "line": 49
12633
+ "line": 51
12440
12634
  },
12441
12635
  "name": "provider",
12442
12636
  "optional": true,
@@ -16493,6 +16687,53 @@
16493
16687
  ],
16494
16688
  "symbolId": "src/backends/remote-backend:PrefixedRemoteWorkspaces"
16495
16689
  },
16690
+ "cdktn.ProviderFeature": {
16691
+ "assembly": "cdktn",
16692
+ "docs": {
16693
+ "remarks": "Generated provider bindings pass a member of\nthis enum to `TerraformResource.registerProviderFeatureUsage()` when a\nversioned feature is actually used; the per-product minimum versions live\nin the (internal) `providerFeatureConstraints` map in this module.",
16694
+ "stability": "experimental",
16695
+ "summary": "Provider-protocol feature families whose usage is gated on the project's declared `targetVersions`."
16696
+ },
16697
+ "fqn": "cdktn.ProviderFeature",
16698
+ "kind": "enum",
16699
+ "locationInModule": {
16700
+ "filename": "src/provider-feature-constraints.ts",
16701
+ "line": 12
16702
+ },
16703
+ "members": [
16704
+ {
16705
+ "docs": {
16706
+ "stability": "experimental",
16707
+ "summary": "Provider-defined functions (`provider::<ns>::<fn>()` expressions)."
16708
+ },
16709
+ "name": "PROVIDER_FUNCTIONS"
16710
+ },
16711
+ {
16712
+ "docs": {
16713
+ "stability": "experimental",
16714
+ "summary": "Ephemeral resources (`ephemeral` blocks), which are never persisted to state or plan files."
16715
+ },
16716
+ "name": "EPHEMERAL_RESOURCES"
16717
+ },
16718
+ {
16719
+ "docs": {
16720
+ "stability": "experimental",
16721
+ "summary": "Write-only resource attributes: accepted on create/update but never persisted to state and never returned by the provider."
16722
+ },
16723
+ "name": "WRITE_ONLY_ATTRIBUTES"
16724
+ },
16725
+ {
16726
+ "docs": {
16727
+ "remarks": "Reserved: not yet consumed by\nany generated binding.",
16728
+ "stability": "experimental",
16729
+ "summary": "Resource identity data alongside state."
16730
+ },
16731
+ "name": "RESOURCE_IDENTITY"
16732
+ }
16733
+ ],
16734
+ "name": "ProviderFeature",
16735
+ "symbolId": "src/provider-feature-constraints:ProviderFeature"
16736
+ },
16496
16737
  "cdktn.RemoteBackend": {
16497
16738
  "assembly": "cdktn",
16498
16739
  "base": "cdktn.TerraformBackend",
@@ -21813,7 +22054,7 @@
21813
22054
  },
21814
22055
  "locationInModule": {
21815
22056
  "filename": "src/terraform-element.ts",
21816
- "line": 35
22057
+ "line": 103
21817
22058
  },
21818
22059
  "parameters": [
21819
22060
  {
@@ -21840,7 +22081,7 @@
21840
22081
  "kind": "class",
21841
22082
  "locationInModule": {
21842
22083
  "filename": "src/terraform-element.ts",
21843
- "line": 19
22084
+ "line": 67
21844
22085
  },
21845
22086
  "methods": [
21846
22087
  {
@@ -21849,7 +22090,7 @@
21849
22090
  },
21850
22091
  "locationInModule": {
21851
22092
  "filename": "src/terraform-element.ts",
21852
- "line": 51
22093
+ "line": 119
21853
22094
  },
21854
22095
  "name": "isTerraformElement",
21855
22096
  "parameters": [
@@ -21873,7 +22114,7 @@
21873
22114
  },
21874
22115
  "locationInModule": {
21875
22116
  "filename": "src/terraform-element.ts",
21876
- "line": 114
22117
+ "line": 288
21877
22118
  },
21878
22119
  "name": "addOverride",
21879
22120
  "parameters": [
@@ -21898,7 +22139,7 @@
21898
22139
  },
21899
22140
  "locationInModule": {
21900
22141
  "filename": "src/terraform-element.ts",
21901
- "line": 95
22142
+ "line": 269
21902
22143
  },
21903
22144
  "name": "overrideLogicalId",
21904
22145
  "parameters": [
@@ -21913,6 +22154,27 @@
21913
22154
  }
21914
22155
  ]
21915
22156
  },
22157
+ {
22158
+ "docs": {
22159
+ "remarks": "Called by generated provider bindings when a versioned feature is\nstructurally in use - the element's existence in the construct tree\nalready implies the feature is used, e.g. constructing a\n`TerraformEphemeralResource` at all - so, unlike\n`_registerResolveDiscoveredProviderFeatureUsage`, this registration is\nnever deactivated by `_resetResolveDiscoveredProviderFeatureUsage`. Not\nintended to be called directly by user code. Lives on `TerraformElement`\n(rather than `TerraformResource`) so it covers any element subclass\nthat needs it.",
22160
+ "stability": "experimental",
22161
+ "summary": "Registers a synth-time validation that the project's declared targetVersions admit the given provider-protocol feature family."
22162
+ },
22163
+ "locationInModule": {
22164
+ "filename": "src/terraform-element.ts",
22165
+ "line": 136
22166
+ },
22167
+ "name": "registerProviderFeatureUsage",
22168
+ "parameters": [
22169
+ {
22170
+ "name": "feature",
22171
+ "type": {
22172
+ "fqn": "cdktn.ProviderFeature"
22173
+ }
22174
+ }
22175
+ ],
22176
+ "protected": true
22177
+ },
21916
22178
  {
21917
22179
  "docs": {
21918
22180
  "stability": "experimental",
@@ -21920,7 +22182,7 @@
21920
22182
  },
21921
22183
  "locationInModule": {
21922
22184
  "filename": "src/terraform-element.ts",
21923
- "line": 106
22185
+ "line": 280
21924
22186
  },
21925
22187
  "name": "resetOverrideLogicalId"
21926
22188
  },
@@ -21930,7 +22192,7 @@
21930
22192
  },
21931
22193
  "locationInModule": {
21932
22194
  "filename": "src/terraform-element.ts",
21933
- "line": 59
22195
+ "line": 233
21934
22196
  },
21935
22197
  "name": "toHclTerraform",
21936
22198
  "returns": {
@@ -21945,7 +22207,7 @@
21945
22207
  },
21946
22208
  "locationInModule": {
21947
22209
  "filename": "src/terraform-element.ts",
21948
- "line": 63
22210
+ "line": 237
21949
22211
  },
21950
22212
  "name": "toMetadata",
21951
22213
  "returns": {
@@ -21960,7 +22222,7 @@
21960
22222
  },
21961
22223
  "locationInModule": {
21962
22224
  "filename": "src/terraform-element.ts",
21963
- "line": 55
22225
+ "line": 229
21964
22226
  },
21965
22227
  "name": "toTerraform",
21966
22228
  "returns": {
@@ -21979,7 +22241,7 @@
21979
22241
  "immutable": true,
21980
22242
  "locationInModule": {
21981
22243
  "filename": "src/terraform-element.ts",
21982
- "line": 47
22244
+ "line": 115
21983
22245
  },
21984
22246
  "name": "cdktfStack",
21985
22247
  "type": {
@@ -21993,7 +22255,7 @@
21993
22255
  "immutable": true,
21994
22256
  "locationInModule": {
21995
22257
  "filename": "src/terraform-element.ts",
21996
- "line": 138
22258
+ "line": 312
21997
22259
  },
21998
22260
  "name": "constructNodeMetadata",
21999
22261
  "protected": true,
@@ -22013,7 +22275,7 @@
22013
22275
  "immutable": true,
22014
22276
  "locationInModule": {
22015
22277
  "filename": "src/terraform-element.ts",
22016
- "line": 69
22278
+ "line": 243
22017
22279
  },
22018
22280
  "name": "fqn",
22019
22281
  "type": {
@@ -22027,7 +22289,7 @@
22027
22289
  "immutable": true,
22028
22290
  "locationInModule": {
22029
22291
  "filename": "src/terraform-element.ts",
22030
- "line": 81
22292
+ "line": 255
22031
22293
  },
22032
22294
  "name": "friendlyUniqueId",
22033
22295
  "type": {
@@ -22041,7 +22303,7 @@
22041
22303
  "immutable": true,
22042
22304
  "locationInModule": {
22043
22305
  "filename": "src/terraform-element.ts",
22044
- "line": 20
22306
+ "line": 68
22045
22307
  },
22046
22308
  "name": "rawOverrides",
22047
22309
  "protected": true,
@@ -22062,7 +22324,7 @@
22062
22324
  "kind": "interface",
22063
22325
  "locationInModule": {
22064
22326
  "filename": "src/terraform-element.ts",
22065
- "line": 12
22327
+ "line": 60
22066
22328
  },
22067
22329
  "name": "TerraformElementMetadata",
22068
22330
  "properties": [
@@ -22074,7 +22336,7 @@
22074
22336
  "immutable": true,
22075
22337
  "locationInModule": {
22076
22338
  "filename": "src/terraform-element.ts",
22077
- "line": 13
22339
+ "line": 61
22078
22340
  },
22079
22341
  "name": "path",
22080
22342
  "type": {
@@ -22088,14 +22350,800 @@
22088
22350
  },
22089
22351
  "immutable": true,
22090
22352
  "locationInModule": {
22091
- "filename": "src/terraform-element.ts",
22092
- "line": 15
22353
+ "filename": "src/terraform-element.ts",
22354
+ "line": 63
22355
+ },
22356
+ "name": "stackTrace",
22357
+ "type": {
22358
+ "collection": {
22359
+ "elementtype": {
22360
+ "primitive": "string"
22361
+ },
22362
+ "kind": "array"
22363
+ }
22364
+ }
22365
+ },
22366
+ {
22367
+ "abstract": true,
22368
+ "docs": {
22369
+ "stability": "experimental"
22370
+ },
22371
+ "immutable": true,
22372
+ "locationInModule": {
22373
+ "filename": "src/terraform-element.ts",
22374
+ "line": 62
22375
+ },
22376
+ "name": "uniqueId",
22377
+ "type": {
22378
+ "primitive": "string"
22379
+ }
22380
+ }
22381
+ ],
22382
+ "symbolId": "src/terraform-element:TerraformElementMetadata"
22383
+ },
22384
+ "cdktn.TerraformEphemeralMetaArguments": {
22385
+ "assembly": "cdktn",
22386
+ "datatype": true,
22387
+ "docs": {
22388
+ "remarks": "Terraform ephemeral blocks\ndo not support provisioners or connection blocks, unlike managed resources.",
22389
+ "stability": "experimental",
22390
+ "summary": "Meta-arguments accepted by ephemeral resources."
22391
+ },
22392
+ "fqn": "cdktn.TerraformEphemeralMetaArguments",
22393
+ "kind": "interface",
22394
+ "locationInModule": {
22395
+ "filename": "src/terraform-ephemeral-resource.ts",
22396
+ "line": 62
22397
+ },
22398
+ "name": "TerraformEphemeralMetaArguments",
22399
+ "properties": [
22400
+ {
22401
+ "abstract": true,
22402
+ "docs": {
22403
+ "stability": "experimental"
22404
+ },
22405
+ "immutable": true,
22406
+ "locationInModule": {
22407
+ "filename": "src/terraform-ephemeral-resource.ts",
22408
+ "line": 64
22409
+ },
22410
+ "name": "count",
22411
+ "optional": true,
22412
+ "type": {
22413
+ "union": {
22414
+ "types": [
22415
+ {
22416
+ "primitive": "number"
22417
+ },
22418
+ {
22419
+ "fqn": "cdktn.TerraformCount"
22420
+ }
22421
+ ]
22422
+ }
22423
+ }
22424
+ },
22425
+ {
22426
+ "abstract": true,
22427
+ "docs": {
22428
+ "stability": "experimental"
22429
+ },
22430
+ "immutable": true,
22431
+ "locationInModule": {
22432
+ "filename": "src/terraform-ephemeral-resource.ts",
22433
+ "line": 63
22434
+ },
22435
+ "name": "dependsOn",
22436
+ "optional": true,
22437
+ "type": {
22438
+ "collection": {
22439
+ "elementtype": {
22440
+ "fqn": "cdktn.ITerraformDependable"
22441
+ },
22442
+ "kind": "array"
22443
+ }
22444
+ }
22445
+ },
22446
+ {
22447
+ "abstract": true,
22448
+ "docs": {
22449
+ "stability": "experimental"
22450
+ },
22451
+ "immutable": true,
22452
+ "locationInModule": {
22453
+ "filename": "src/terraform-ephemeral-resource.ts",
22454
+ "line": 67
22455
+ },
22456
+ "name": "forEach",
22457
+ "optional": true,
22458
+ "type": {
22459
+ "fqn": "cdktn.ITerraformIterator"
22460
+ }
22461
+ },
22462
+ {
22463
+ "abstract": true,
22464
+ "docs": {
22465
+ "stability": "experimental"
22466
+ },
22467
+ "immutable": true,
22468
+ "locationInModule": {
22469
+ "filename": "src/terraform-ephemeral-resource.ts",
22470
+ "line": 66
22471
+ },
22472
+ "name": "lifecycle",
22473
+ "optional": true,
22474
+ "type": {
22475
+ "fqn": "cdktn.TerraformEphemeralResourceLifecycle"
22476
+ }
22477
+ },
22478
+ {
22479
+ "abstract": true,
22480
+ "docs": {
22481
+ "stability": "experimental"
22482
+ },
22483
+ "immutable": true,
22484
+ "locationInModule": {
22485
+ "filename": "src/terraform-ephemeral-resource.ts",
22486
+ "line": 65
22487
+ },
22488
+ "name": "provider",
22489
+ "optional": true,
22490
+ "type": {
22491
+ "fqn": "cdktn.TerraformProvider"
22492
+ }
22493
+ }
22494
+ ],
22495
+ "symbolId": "src/terraform-ephemeral-resource:TerraformEphemeralMetaArguments"
22496
+ },
22497
+ "cdktn.TerraformEphemeralResource": {
22498
+ "assembly": "cdktn",
22499
+ "base": "cdktn.TerraformElement",
22500
+ "docs": {
22501
+ "stability": "experimental"
22502
+ },
22503
+ "fqn": "cdktn.TerraformEphemeralResource",
22504
+ "initializer": {
22505
+ "docs": {
22506
+ "stability": "experimental"
22507
+ },
22508
+ "locationInModule": {
22509
+ "filename": "src/terraform-ephemeral-resource.ts",
22510
+ "line": 94
22511
+ },
22512
+ "parameters": [
22513
+ {
22514
+ "name": "scope",
22515
+ "type": {
22516
+ "fqn": "constructs.Construct"
22517
+ }
22518
+ },
22519
+ {
22520
+ "name": "id",
22521
+ "type": {
22522
+ "primitive": "string"
22523
+ }
22524
+ },
22525
+ {
22526
+ "name": "config",
22527
+ "type": {
22528
+ "fqn": "cdktn.TerraformEphemeralResourceConfig"
22529
+ }
22530
+ }
22531
+ ]
22532
+ },
22533
+ "interfaces": [
22534
+ "cdktn.ITerraformEphemeralResource",
22535
+ "cdktn.ITerraformDependable",
22536
+ "cdktn.IInterpolatingParent"
22537
+ ],
22538
+ "kind": "class",
22539
+ "locationInModule": {
22540
+ "filename": "src/terraform-ephemeral-resource.ts",
22541
+ "line": 76
22542
+ },
22543
+ "methods": [
22544
+ {
22545
+ "docs": {
22546
+ "stability": "experimental"
22547
+ },
22548
+ "locationInModule": {
22549
+ "filename": "src/terraform-ephemeral-resource.ts",
22550
+ "line": 125
22551
+ },
22552
+ "name": "isTerraformEphemeralResource",
22553
+ "parameters": [
22554
+ {
22555
+ "name": "x",
22556
+ "type": {
22557
+ "primitive": "any"
22558
+ }
22559
+ }
22560
+ ],
22561
+ "returns": {
22562
+ "type": {
22563
+ "primitive": "boolean"
22564
+ }
22565
+ },
22566
+ "static": true
22567
+ },
22568
+ {
22569
+ "docs": {
22570
+ "stability": "experimental"
22571
+ },
22572
+ "locationInModule": {
22573
+ "filename": "src/terraform-ephemeral-resource.ts",
22574
+ "line": 175
22575
+ },
22576
+ "name": "getAnyMapAttribute",
22577
+ "parameters": [
22578
+ {
22579
+ "name": "terraformAttribute",
22580
+ "type": {
22581
+ "primitive": "string"
22582
+ }
22583
+ }
22584
+ ],
22585
+ "returns": {
22586
+ "type": {
22587
+ "collection": {
22588
+ "elementtype": {
22589
+ "primitive": "any"
22590
+ },
22591
+ "kind": "map"
22592
+ }
22593
+ }
22594
+ }
22595
+ },
22596
+ {
22597
+ "docs": {
22598
+ "stability": "experimental"
22599
+ },
22600
+ "locationInModule": {
22601
+ "filename": "src/terraform-ephemeral-resource.ts",
22602
+ "line": 147
22603
+ },
22604
+ "name": "getBooleanAttribute",
22605
+ "parameters": [
22606
+ {
22607
+ "name": "terraformAttribute",
22608
+ "type": {
22609
+ "primitive": "string"
22610
+ }
22611
+ }
22612
+ ],
22613
+ "returns": {
22614
+ "type": {
22615
+ "fqn": "cdktn.IResolvable"
22616
+ }
22617
+ }
22618
+ },
22619
+ {
22620
+ "docs": {
22621
+ "stability": "experimental"
22622
+ },
22623
+ "locationInModule": {
22624
+ "filename": "src/terraform-ephemeral-resource.ts",
22625
+ "line": 169
22626
+ },
22627
+ "name": "getBooleanMapAttribute",
22628
+ "parameters": [
22629
+ {
22630
+ "name": "terraformAttribute",
22631
+ "type": {
22632
+ "primitive": "string"
22633
+ }
22634
+ }
22635
+ ],
22636
+ "returns": {
22637
+ "type": {
22638
+ "collection": {
22639
+ "elementtype": {
22640
+ "primitive": "boolean"
22641
+ },
22642
+ "kind": "map"
22643
+ }
22644
+ }
22645
+ }
22646
+ },
22647
+ {
22648
+ "docs": {
22649
+ "stability": "experimental"
22650
+ },
22651
+ "locationInModule": {
22652
+ "filename": "src/terraform-ephemeral-resource.ts",
22653
+ "line": 143
22654
+ },
22655
+ "name": "getListAttribute",
22656
+ "parameters": [
22657
+ {
22658
+ "name": "terraformAttribute",
22659
+ "type": {
22660
+ "primitive": "string"
22661
+ }
22662
+ }
22663
+ ],
22664
+ "returns": {
22665
+ "type": {
22666
+ "collection": {
22667
+ "elementtype": {
22668
+ "primitive": "string"
22669
+ },
22670
+ "kind": "array"
22671
+ }
22672
+ }
22673
+ }
22674
+ },
22675
+ {
22676
+ "docs": {
22677
+ "stability": "experimental"
22678
+ },
22679
+ "locationInModule": {
22680
+ "filename": "src/terraform-ephemeral-resource.ts",
22681
+ "line": 139
22682
+ },
22683
+ "name": "getNumberAttribute",
22684
+ "parameters": [
22685
+ {
22686
+ "name": "terraformAttribute",
22687
+ "type": {
22688
+ "primitive": "string"
22689
+ }
22690
+ }
22691
+ ],
22692
+ "returns": {
22693
+ "type": {
22694
+ "primitive": "number"
22695
+ }
22696
+ }
22697
+ },
22698
+ {
22699
+ "docs": {
22700
+ "stability": "experimental"
22701
+ },
22702
+ "locationInModule": {
22703
+ "filename": "src/terraform-ephemeral-resource.ts",
22704
+ "line": 151
22705
+ },
22706
+ "name": "getNumberListAttribute",
22707
+ "parameters": [
22708
+ {
22709
+ "name": "terraformAttribute",
22710
+ "type": {
22711
+ "primitive": "string"
22712
+ }
22713
+ }
22714
+ ],
22715
+ "returns": {
22716
+ "type": {
22717
+ "collection": {
22718
+ "elementtype": {
22719
+ "primitive": "number"
22720
+ },
22721
+ "kind": "array"
22722
+ }
22723
+ }
22724
+ }
22725
+ },
22726
+ {
22727
+ "docs": {
22728
+ "stability": "experimental"
22729
+ },
22730
+ "locationInModule": {
22731
+ "filename": "src/terraform-ephemeral-resource.ts",
22732
+ "line": 163
22733
+ },
22734
+ "name": "getNumberMapAttribute",
22735
+ "parameters": [
22736
+ {
22737
+ "name": "terraformAttribute",
22738
+ "type": {
22739
+ "primitive": "string"
22740
+ }
22741
+ }
22742
+ ],
22743
+ "returns": {
22744
+ "type": {
22745
+ "collection": {
22746
+ "elementtype": {
22747
+ "primitive": "number"
22748
+ },
22749
+ "kind": "map"
22750
+ }
22751
+ }
22752
+ }
22753
+ },
22754
+ {
22755
+ "docs": {
22756
+ "stability": "experimental"
22757
+ },
22758
+ "locationInModule": {
22759
+ "filename": "src/terraform-ephemeral-resource.ts",
22760
+ "line": 135
22761
+ },
22762
+ "name": "getStringAttribute",
22763
+ "parameters": [
22764
+ {
22765
+ "name": "terraformAttribute",
22766
+ "type": {
22767
+ "primitive": "string"
22768
+ }
22769
+ }
22770
+ ],
22771
+ "returns": {
22772
+ "type": {
22773
+ "primitive": "string"
22774
+ }
22775
+ }
22776
+ },
22777
+ {
22778
+ "docs": {
22779
+ "stability": "experimental"
22780
+ },
22781
+ "locationInModule": {
22782
+ "filename": "src/terraform-ephemeral-resource.ts",
22783
+ "line": 157
22784
+ },
22785
+ "name": "getStringMapAttribute",
22786
+ "parameters": [
22787
+ {
22788
+ "name": "terraformAttribute",
22789
+ "type": {
22790
+ "primitive": "string"
22791
+ }
22792
+ }
22793
+ ],
22794
+ "returns": {
22795
+ "type": {
22796
+ "collection": {
22797
+ "elementtype": {
22798
+ "primitive": "string"
22799
+ },
22800
+ "kind": "map"
22801
+ }
22802
+ }
22803
+ }
22804
+ },
22805
+ {
22806
+ "docs": {
22807
+ "stability": "experimental"
22808
+ },
22809
+ "locationInModule": {
22810
+ "filename": "src/terraform-ephemeral-resource.ts",
22811
+ "line": 259
22812
+ },
22813
+ "name": "interpolationForAttribute",
22814
+ "overrides": "cdktn.ITerraformEphemeralResource",
22815
+ "parameters": [
22816
+ {
22817
+ "name": "terraformAttribute",
22818
+ "type": {
22819
+ "primitive": "string"
22820
+ }
22821
+ }
22822
+ ],
22823
+ "returns": {
22824
+ "type": {
22825
+ "fqn": "cdktn.IResolvable"
22826
+ }
22827
+ }
22828
+ },
22829
+ {
22830
+ "docs": {
22831
+ "stability": "experimental"
22832
+ },
22833
+ "locationInModule": {
22834
+ "filename": "src/terraform-ephemeral-resource.ts",
22835
+ "line": 197
22836
+ },
22837
+ "name": "synthesizeAttributes",
22838
+ "protected": true,
22839
+ "returns": {
22840
+ "type": {
22841
+ "collection": {
22842
+ "elementtype": {
22843
+ "primitive": "any"
22844
+ },
22845
+ "kind": "map"
22846
+ }
22847
+ }
22848
+ }
22849
+ },
22850
+ {
22851
+ "docs": {
22852
+ "stability": "experimental"
22853
+ },
22854
+ "locationInModule": {
22855
+ "filename": "src/terraform-ephemeral-resource.ts",
22856
+ "line": 200
22857
+ },
22858
+ "name": "synthesizeHclAttributes",
22859
+ "protected": true,
22860
+ "returns": {
22861
+ "type": {
22862
+ "collection": {
22863
+ "elementtype": {
22864
+ "primitive": "any"
22865
+ },
22866
+ "kind": "map"
22867
+ }
22868
+ }
22869
+ }
22870
+ },
22871
+ {
22872
+ "docs": {
22873
+ "stability": "experimental"
22874
+ },
22875
+ "locationInModule": {
22876
+ "filename": "src/terraform-ephemeral-resource.ts",
22877
+ "line": 228
22878
+ },
22879
+ "name": "toHclTerraform",
22880
+ "overrides": "cdktn.TerraformElement",
22881
+ "returns": {
22882
+ "type": {
22883
+ "primitive": "any"
22884
+ }
22885
+ }
22886
+ },
22887
+ {
22888
+ "docs": {
22889
+ "stability": "experimental"
22890
+ },
22891
+ "locationInModule": {
22892
+ "filename": "src/terraform-ephemeral-resource.ts",
22893
+ "line": 249
22894
+ },
22895
+ "name": "toMetadata",
22896
+ "overrides": "cdktn.TerraformElement",
22897
+ "returns": {
22898
+ "type": {
22899
+ "primitive": "any"
22900
+ }
22901
+ }
22902
+ },
22903
+ {
22904
+ "docs": {
22905
+ "stability": "experimental",
22906
+ "summary": "Adds this ephemeral resource to the terraform JSON output."
22907
+ },
22908
+ "locationInModule": {
22909
+ "filename": "src/terraform-ephemeral-resource.ts",
22910
+ "line": 207
22911
+ },
22912
+ "name": "toTerraform",
22913
+ "overrides": "cdktn.TerraformElement",
22914
+ "returns": {
22915
+ "type": {
22916
+ "primitive": "any"
22917
+ }
22918
+ }
22919
+ }
22920
+ ],
22921
+ "name": "TerraformEphemeralResource",
22922
+ "properties": [
22923
+ {
22924
+ "docs": {
22925
+ "stability": "experimental"
22926
+ },
22927
+ "immutable": true,
22928
+ "locationInModule": {
22929
+ "filename": "src/terraform-ephemeral-resource.ts",
22930
+ "line": 179
22931
+ },
22932
+ "name": "terraformMetaArguments",
22933
+ "type": {
22934
+ "collection": {
22935
+ "elementtype": {
22936
+ "primitive": "any"
22937
+ },
22938
+ "kind": "map"
22939
+ }
22940
+ }
22941
+ },
22942
+ {
22943
+ "docs": {
22944
+ "stability": "experimental"
22945
+ },
22946
+ "immutable": true,
22947
+ "locationInModule": {
22948
+ "filename": "src/terraform-ephemeral-resource.ts",
22949
+ "line": 83
22950
+ },
22951
+ "name": "terraformResourceType",
22952
+ "overrides": "cdktn.ITerraformEphemeralResource",
22953
+ "type": {
22954
+ "primitive": "string"
22955
+ }
22956
+ },
22957
+ {
22958
+ "docs": {
22959
+ "stability": "experimental"
22960
+ },
22961
+ "immutable": true,
22962
+ "locationInModule": {
22963
+ "filename": "src/terraform-ephemeral-resource.ts",
22964
+ "line": 84
22965
+ },
22966
+ "name": "terraformGeneratorMetadata",
22967
+ "optional": true,
22968
+ "type": {
22969
+ "fqn": "cdktn.TerraformProviderGeneratorMetadata"
22970
+ }
22971
+ },
22972
+ {
22973
+ "docs": {
22974
+ "stability": "experimental"
22975
+ },
22976
+ "locationInModule": {
22977
+ "filename": "src/terraform-ephemeral-resource.ts",
22978
+ "line": 89
22979
+ },
22980
+ "name": "count",
22981
+ "optional": true,
22982
+ "overrides": "cdktn.ITerraformEphemeralResource",
22983
+ "type": {
22984
+ "union": {
22985
+ "types": [
22986
+ {
22987
+ "primitive": "number"
22988
+ },
22989
+ {
22990
+ "fqn": "cdktn.TerraformCount"
22991
+ }
22992
+ ]
22993
+ }
22994
+ }
22995
+ },
22996
+ {
22997
+ "docs": {
22998
+ "stability": "experimental"
22999
+ },
23000
+ "locationInModule": {
23001
+ "filename": "src/terraform-ephemeral-resource.ts",
23002
+ "line": 88
23003
+ },
23004
+ "name": "dependsOn",
23005
+ "optional": true,
23006
+ "overrides": "cdktn.ITerraformEphemeralResource",
23007
+ "type": {
23008
+ "collection": {
23009
+ "elementtype": {
23010
+ "primitive": "string"
23011
+ },
23012
+ "kind": "array"
23013
+ }
23014
+ }
23015
+ },
23016
+ {
23017
+ "docs": {
23018
+ "stability": "experimental"
23019
+ },
23020
+ "locationInModule": {
23021
+ "filename": "src/terraform-ephemeral-resource.ts",
23022
+ "line": 92
23023
+ },
23024
+ "name": "forEach",
23025
+ "optional": true,
23026
+ "overrides": "cdktn.ITerraformEphemeralResource",
23027
+ "type": {
23028
+ "fqn": "cdktn.ITerraformIterator"
23029
+ }
23030
+ },
23031
+ {
23032
+ "docs": {
23033
+ "stability": "experimental"
23034
+ },
23035
+ "locationInModule": {
23036
+ "filename": "src/terraform-ephemeral-resource.ts",
23037
+ "line": 91
23038
+ },
23039
+ "name": "lifecycle",
23040
+ "optional": true,
23041
+ "overrides": "cdktn.ITerraformEphemeralResource",
23042
+ "type": {
23043
+ "fqn": "cdktn.TerraformEphemeralResourceLifecycle"
23044
+ }
23045
+ },
23046
+ {
23047
+ "docs": {
23048
+ "stability": "experimental"
23049
+ },
23050
+ "locationInModule": {
23051
+ "filename": "src/terraform-ephemeral-resource.ts",
23052
+ "line": 90
23053
+ },
23054
+ "name": "provider",
23055
+ "optional": true,
23056
+ "overrides": "cdktn.ITerraformEphemeralResource",
23057
+ "type": {
23058
+ "fqn": "cdktn.TerraformProvider"
23059
+ }
23060
+ }
23061
+ ],
23062
+ "symbolId": "src/terraform-ephemeral-resource:TerraformEphemeralResource"
23063
+ },
23064
+ "cdktn.TerraformEphemeralResourceConfig": {
23065
+ "assembly": "cdktn",
23066
+ "datatype": true,
23067
+ "docs": {
23068
+ "stability": "experimental"
23069
+ },
23070
+ "fqn": "cdktn.TerraformEphemeralResourceConfig",
23071
+ "interfaces": [
23072
+ "cdktn.TerraformEphemeralMetaArguments"
23073
+ ],
23074
+ "kind": "interface",
23075
+ "locationInModule": {
23076
+ "filename": "src/terraform-ephemeral-resource.ts",
23077
+ "line": 70
23078
+ },
23079
+ "name": "TerraformEphemeralResourceConfig",
23080
+ "properties": [
23081
+ {
23082
+ "abstract": true,
23083
+ "docs": {
23084
+ "stability": "experimental"
23085
+ },
23086
+ "immutable": true,
23087
+ "locationInModule": {
23088
+ "filename": "src/terraform-ephemeral-resource.ts",
23089
+ "line": 71
23090
+ },
23091
+ "name": "terraformResourceType",
23092
+ "type": {
23093
+ "primitive": "string"
23094
+ }
23095
+ },
23096
+ {
23097
+ "abstract": true,
23098
+ "docs": {
23099
+ "stability": "experimental"
23100
+ },
23101
+ "immutable": true,
23102
+ "locationInModule": {
23103
+ "filename": "src/terraform-ephemeral-resource.ts",
23104
+ "line": 72
23105
+ },
23106
+ "name": "terraformGeneratorMetadata",
23107
+ "optional": true,
23108
+ "type": {
23109
+ "fqn": "cdktn.TerraformProviderGeneratorMetadata"
23110
+ }
23111
+ }
23112
+ ],
23113
+ "symbolId": "src/terraform-ephemeral-resource:TerraformEphemeralResourceConfig"
23114
+ },
23115
+ "cdktn.TerraformEphemeralResourceLifecycle": {
23116
+ "assembly": "cdktn",
23117
+ "datatype": true,
23118
+ "docs": {
23119
+ "remarks": "Unlike managed\nresources, ephemeral resources have no state, so Terraform only supports\n`precondition`/`postcondition` here - `createBeforeDestroy`,\n`preventDestroy`, `ignoreChanges`, and `replaceTriggeredBy` are all\nstate-oriented concepts that do not apply.",
23120
+ "stability": "experimental",
23121
+ "summary": "Lifecycle options supported by Terraform ephemeral blocks."
23122
+ },
23123
+ "fqn": "cdktn.TerraformEphemeralResourceLifecycle",
23124
+ "kind": "interface",
23125
+ "locationInModule": {
23126
+ "filename": "src/terraform-ephemeral-resource.ts",
23127
+ "line": 39
23128
+ },
23129
+ "name": "TerraformEphemeralResourceLifecycle",
23130
+ "properties": [
23131
+ {
23132
+ "abstract": true,
23133
+ "docs": {
23134
+ "stability": "experimental"
23135
+ },
23136
+ "immutable": true,
23137
+ "locationInModule": {
23138
+ "filename": "src/terraform-ephemeral-resource.ts",
23139
+ "line": 41
22093
23140
  },
22094
- "name": "stackTrace",
23141
+ "name": "postcondition",
23142
+ "optional": true,
22095
23143
  "type": {
22096
23144
  "collection": {
22097
23145
  "elementtype": {
22098
- "primitive": "string"
23146
+ "fqn": "cdktn.Postcondition"
22099
23147
  },
22100
23148
  "kind": "array"
22101
23149
  }
@@ -22108,16 +23156,22 @@
22108
23156
  },
22109
23157
  "immutable": true,
22110
23158
  "locationInModule": {
22111
- "filename": "src/terraform-element.ts",
22112
- "line": 14
23159
+ "filename": "src/terraform-ephemeral-resource.ts",
23160
+ "line": 40
22113
23161
  },
22114
- "name": "uniqueId",
23162
+ "name": "precondition",
23163
+ "optional": true,
22115
23164
  "type": {
22116
- "primitive": "string"
23165
+ "collection": {
23166
+ "elementtype": {
23167
+ "fqn": "cdktn.Precondition"
23168
+ },
23169
+ "kind": "array"
23170
+ }
22117
23171
  }
22118
23172
  }
22119
23173
  ],
22120
- "symbolId": "src/terraform-element:TerraformElementMetadata"
23174
+ "symbolId": "src/terraform-ephemeral-resource:TerraformEphemeralResourceLifecycle"
22121
23175
  },
22122
23176
  "cdktn.TerraformHclModule": {
22123
23177
  "assembly": "cdktn",
@@ -23449,7 +24503,7 @@
23449
24503
  "kind": "interface",
23450
24504
  "locationInModule": {
23451
24505
  "filename": "src/terraform-resource.ts",
23452
- "line": 93
24506
+ "line": 95
23453
24507
  },
23454
24508
  "name": "TerraformMetaArguments",
23455
24509
  "properties": [
@@ -23461,7 +24515,7 @@
23461
24515
  "immutable": true,
23462
24516
  "locationInModule": {
23463
24517
  "filename": "src/terraform-resource.ts",
23464
- "line": 102
24518
+ "line": 104
23465
24519
  },
23466
24520
  "name": "connection",
23467
24521
  "optional": true,
@@ -23486,7 +24540,7 @@
23486
24540
  "immutable": true,
23487
24541
  "locationInModule": {
23488
24542
  "filename": "src/terraform-resource.ts",
23489
- "line": 95
24543
+ "line": 97
23490
24544
  },
23491
24545
  "name": "count",
23492
24546
  "optional": true,
@@ -23511,7 +24565,7 @@
23511
24565
  "immutable": true,
23512
24566
  "locationInModule": {
23513
24567
  "filename": "src/terraform-resource.ts",
23514
- "line": 94
24568
+ "line": 96
23515
24569
  },
23516
24570
  "name": "dependsOn",
23517
24571
  "optional": true,
@@ -23532,7 +24586,7 @@
23532
24586
  "immutable": true,
23533
24587
  "locationInModule": {
23534
24588
  "filename": "src/terraform-resource.ts",
23535
- "line": 98
24589
+ "line": 100
23536
24590
  },
23537
24591
  "name": "forEach",
23538
24592
  "optional": true,
@@ -23548,7 +24602,7 @@
23548
24602
  "immutable": true,
23549
24603
  "locationInModule": {
23550
24604
  "filename": "src/terraform-resource.ts",
23551
- "line": 97
24605
+ "line": 99
23552
24606
  },
23553
24607
  "name": "lifecycle",
23554
24608
  "optional": true,
@@ -23564,7 +24618,7 @@
23564
24618
  "immutable": true,
23565
24619
  "locationInModule": {
23566
24620
  "filename": "src/terraform-resource.ts",
23567
- "line": 96
24621
+ "line": 98
23568
24622
  },
23569
24623
  "name": "provider",
23570
24624
  "optional": true,
@@ -23580,7 +24634,7 @@
23580
24634
  "immutable": true,
23581
24635
  "locationInModule": {
23582
24636
  "filename": "src/terraform-resource.ts",
23583
- "line": 99
24637
+ "line": 101
23584
24638
  },
23585
24639
  "name": "provisioners",
23586
24640
  "optional": true,
@@ -24817,6 +25871,77 @@
24817
25871
  ],
24818
25872
  "symbolId": "src/terraform-provider:TerraformProviderConfig"
24819
25873
  },
25874
+ "cdktn.TerraformProviderFunction": {
25875
+ "assembly": "cdktn",
25876
+ "docs": {
25877
+ "stability": "experimental",
25878
+ "summary": "Runtime entry point invoked by generated provider function bindings (`providers/<provider>/provider-functions/index.ts`). Generated code only imports the public `cdktn` package root, so this is the single chokepoint through which every provider-defined function call flows."
25879
+ },
25880
+ "fqn": "cdktn.TerraformProviderFunction",
25881
+ "kind": "class",
25882
+ "locationInModule": {
25883
+ "filename": "src/functions/provider-function.ts",
25884
+ "line": 12
25885
+ },
25886
+ "methods": [
25887
+ {
25888
+ "docs": {
25889
+ "remarks": "Note: provider-defined functions are evaluated by the provider itself —\ndo not call this inside the configuration of the same provider\n(Terraform reports a self-referential cycle).",
25890
+ "stability": "experimental",
25891
+ "summary": "Invokes a provider-defined function (Terraform's `provider::<providerLocalName>::<functionName>(...)` syntax)."
25892
+ },
25893
+ "locationInModule": {
25894
+ "filename": "src/functions/provider-function.ts",
25895
+ "line": 34
25896
+ },
25897
+ "name": "invoke",
25898
+ "parameters": [
25899
+ {
25900
+ "docs": {
25901
+ "remarks": "callers may\noverride this when the provider is aliased under a different local\nname — aliases do not change the namespace, local names do)",
25902
+ "summary": "the local name of the provider as declared in `required_providers` (defaults to the registry short name;"
25903
+ },
25904
+ "name": "providerLocalName",
25905
+ "type": {
25906
+ "primitive": "string"
25907
+ }
25908
+ },
25909
+ {
25910
+ "docs": {
25911
+ "summary": "the provider-defined function name (snake_case, as published in the provider schema)."
25912
+ },
25913
+ "name": "functionName",
25914
+ "type": {
25915
+ "primitive": "string"
25916
+ }
25917
+ },
25918
+ {
25919
+ "docs": {
25920
+ "remarks": "Each\nentry in `args` maps 1:1 to a positional slot in the rendered call — a\n`null` or `undefined` entry keeps its slot and renders as the Terraform\n`null` keyword, it is not dropped. Callers that flatten a genuinely\nvariadic trailing parameter (`[a, ...values]`) get one positional slot\nper flattened element, which is the desired behavior.",
25921
+ "summary": "the function arguments, positional (in declared order)."
25922
+ },
25923
+ "name": "args",
25924
+ "type": {
25925
+ "collection": {
25926
+ "elementtype": {
25927
+ "primitive": "any"
25928
+ },
25929
+ "kind": "array"
25930
+ }
25931
+ }
25932
+ }
25933
+ ],
25934
+ "returns": {
25935
+ "type": {
25936
+ "fqn": "cdktn.IResolvable"
25937
+ }
25938
+ },
25939
+ "static": true
25940
+ }
25941
+ ],
25942
+ "name": "TerraformProviderFunction",
25943
+ "symbolId": "src/functions/provider-function:TerraformProviderFunction"
25944
+ },
24820
25945
  "cdktn.TerraformProviderGeneratorMetadata": {
24821
25946
  "assembly": "cdktn",
24822
25947
  "datatype": true,
@@ -24827,7 +25952,7 @@
24827
25952
  "kind": "interface",
24828
25953
  "locationInModule": {
24829
25954
  "filename": "src/terraform-resource.ts",
24830
- "line": 105
25955
+ "line": 107
24831
25956
  },
24832
25957
  "name": "TerraformProviderGeneratorMetadata",
24833
25958
  "properties": [
@@ -24839,7 +25964,7 @@
24839
25964
  "immutable": true,
24840
25965
  "locationInModule": {
24841
25966
  "filename": "src/terraform-resource.ts",
24842
- "line": 106
25967
+ "line": 108
24843
25968
  },
24844
25969
  "name": "providerName",
24845
25970
  "type": {
@@ -24854,7 +25979,7 @@
24854
25979
  "immutable": true,
24855
25980
  "locationInModule": {
24856
25981
  "filename": "src/terraform-resource.ts",
24857
- "line": 108
25982
+ "line": 110
24858
25983
  },
24859
25984
  "name": "providerVersion",
24860
25985
  "optional": true,
@@ -24870,7 +25995,7 @@
24870
25995
  "immutable": true,
24871
25996
  "locationInModule": {
24872
25997
  "filename": "src/terraform-resource.ts",
24873
- "line": 107
25998
+ "line": 109
24874
25999
  },
24875
26000
  "name": "providerVersionConstraint",
24876
26001
  "optional": true,
@@ -25138,7 +26263,7 @@
25138
26263
  },
25139
26264
  "locationInModule": {
25140
26265
  "filename": "src/terraform-resource.ts",
25141
- "line": 155
26266
+ "line": 157
25142
26267
  },
25143
26268
  "parameters": [
25144
26269
  {
@@ -25169,7 +26294,7 @@
25169
26294
  "kind": "class",
25170
26295
  "locationInModule": {
25171
26296
  "filename": "src/terraform-resource.ts",
25172
- "line": 132
26297
+ "line": 134
25173
26298
  },
25174
26299
  "methods": [
25175
26300
  {
@@ -25178,7 +26303,7 @@
25178
26303
  },
25179
26304
  "locationInModule": {
25180
26305
  "filename": "src/terraform-resource.ts",
25181
- "line": 174
26306
+ "line": 176
25182
26307
  },
25183
26308
  "name": "isTerraformResource",
25184
26309
  "parameters": [
@@ -25203,7 +26328,7 @@
25203
26328
  },
25204
26329
  "locationInModule": {
25205
26330
  "filename": "src/terraform-resource.ts",
25206
- "line": 490
26331
+ "line": 559
25207
26332
  },
25208
26333
  "name": "addMoveTarget",
25209
26334
  "parameters": [
@@ -25224,7 +26349,7 @@
25224
26349
  },
25225
26350
  "locationInModule": {
25226
26351
  "filename": "src/terraform-resource.ts",
25227
- "line": 224
26352
+ "line": 226
25228
26353
  },
25229
26354
  "name": "getAnyMapAttribute",
25230
26355
  "parameters": [
@@ -25252,7 +26377,7 @@
25252
26377
  },
25253
26378
  "locationInModule": {
25254
26379
  "filename": "src/terraform-resource.ts",
25255
- "line": 196
26380
+ "line": 198
25256
26381
  },
25257
26382
  "name": "getBooleanAttribute",
25258
26383
  "parameters": [
@@ -25275,7 +26400,7 @@
25275
26400
  },
25276
26401
  "locationInModule": {
25277
26402
  "filename": "src/terraform-resource.ts",
25278
- "line": 218
26403
+ "line": 220
25279
26404
  },
25280
26405
  "name": "getBooleanMapAttribute",
25281
26406
  "parameters": [
@@ -25303,7 +26428,7 @@
25303
26428
  },
25304
26429
  "locationInModule": {
25305
26430
  "filename": "src/terraform-resource.ts",
25306
- "line": 192
26431
+ "line": 194
25307
26432
  },
25308
26433
  "name": "getListAttribute",
25309
26434
  "parameters": [
@@ -25331,7 +26456,7 @@
25331
26456
  },
25332
26457
  "locationInModule": {
25333
26458
  "filename": "src/terraform-resource.ts",
25334
- "line": 188
26459
+ "line": 190
25335
26460
  },
25336
26461
  "name": "getNumberAttribute",
25337
26462
  "parameters": [
@@ -25354,7 +26479,7 @@
25354
26479
  },
25355
26480
  "locationInModule": {
25356
26481
  "filename": "src/terraform-resource.ts",
25357
- "line": 200
26482
+ "line": 202
25358
26483
  },
25359
26484
  "name": "getNumberListAttribute",
25360
26485
  "parameters": [
@@ -25382,7 +26507,7 @@
25382
26507
  },
25383
26508
  "locationInModule": {
25384
26509
  "filename": "src/terraform-resource.ts",
25385
- "line": 212
26510
+ "line": 214
25386
26511
  },
25387
26512
  "name": "getNumberMapAttribute",
25388
26513
  "parameters": [
@@ -25410,7 +26535,7 @@
25410
26535
  },
25411
26536
  "locationInModule": {
25412
26537
  "filename": "src/terraform-resource.ts",
25413
- "line": 184
26538
+ "line": 186
25414
26539
  },
25415
26540
  "name": "getStringAttribute",
25416
26541
  "parameters": [
@@ -25433,7 +26558,7 @@
25433
26558
  },
25434
26559
  "locationInModule": {
25435
26560
  "filename": "src/terraform-resource.ts",
25436
- "line": 206
26561
+ "line": 208
25437
26562
  },
25438
26563
  "name": "getStringMapAttribute",
25439
26564
  "parameters": [
@@ -25461,7 +26586,7 @@
25461
26586
  },
25462
26587
  "locationInModule": {
25463
26588
  "filename": "src/terraform-resource.ts",
25464
- "line": 180
26589
+ "line": 182
25465
26590
  },
25466
26591
  "name": "hasResourceMove",
25467
26592
  "returns": {
@@ -25486,7 +26611,7 @@
25486
26611
  },
25487
26612
  "locationInModule": {
25488
26613
  "filename": "src/terraform-resource.ts",
25489
- "line": 408
26614
+ "line": 477
25490
26615
  },
25491
26616
  "name": "importFrom",
25492
26617
  "parameters": [
@@ -25511,7 +26636,7 @@
25511
26636
  },
25512
26637
  "locationInModule": {
25513
26638
  "filename": "src/terraform-resource.ts",
25514
- "line": 399
26639
+ "line": 468
25515
26640
  },
25516
26641
  "name": "interpolationForAttribute",
25517
26642
  "overrides": "cdktn.ITerraformResource",
@@ -25529,6 +26654,32 @@
25529
26654
  }
25530
26655
  }
25531
26656
  },
26657
+ {
26658
+ "docs": {
26659
+ "remarks": "`undefined` passes through completely unchanged, so the existing\nundefined-filtering that omits unset attributes from synthesized\noutput (see `resolve()` in `tokens/private/resolve.ts`, and the\n`value.value !== undefined` filter in generated\n`synthesizeHclAttributes()`) keeps working untouched. `null` is also\npassed through unchanged: it already renders as an explicit\nnull-out and must not arm the validation either.\n\nAny other value - including one that will itself resolve to nothing\n(e.g. a `Lazy`/`IResolvable` producer with no value to contribute) -\nis wrapped in a token whose `resolve()` defers to the real resolver\nfirst and registers usage only if what comes back is not\n`null`/`undefined`; the resolved value is then returned unchanged,\nso what actually renders is untouched by this wrapper. A producer\nthat resolves to `undefined` therefore neither registers usage nor\nleaves anything behind in the synthesized attribute - the omission\nbehaves exactly as if the attribute had never been set.\n\nRegistration goes through `_registerResolveDiscoveredProviderFeatureUsage`\nrather than `registerProviderFeatureUsage`: usage here is only known at\nresolve time, and a given element can be resolved across many\nsynthesis passes over its lifetime (repeated `app.synth()` calls,\ntests reusing a construct tree), so it must represent only the CURRENT\npass rather than accumulate forever. Every validation-enabled entry\npoint (`App.synth`; `Testing.synth`/`synthHcl` with validations;\n`StackSynthesizer.synthesize`) runs a prepare step that deactivates any\nstale registration and then resolves every element's `toTerraform()`\nbefore that same entry point's validations run - see\n`TerraformStack._runPreparingResolve` - so whatever this closure\n(re-)registers during that prepare step is always visible to the\nvalidation that reads it afterwards, and nothing left over from an\nearlier pass leaks into the current one.",
26660
+ "stability": "experimental",
26661
+ "summary": "Wraps a write-only attribute's already-mapped value so that `ProviderFeature.WRITE_ONLY_ATTRIBUTES` usage is registered at *resolve* time instead of at mutation time (setter/constructor). Called by generated bindings from `synthesizeAttributes()` and `synthesizeHclAttributes()`, e.g. `secret_key_wo: this.markWriteOnlyAttribute(cdktn.stringToTerraform(this._secretKeyWo))`; not intended to be called directly."
26662
+ },
26663
+ "locationInModule": {
26664
+ "filename": "src/terraform-resource.ts",
26665
+ "line": 298
26666
+ },
26667
+ "name": "markWriteOnlyAttribute",
26668
+ "parameters": [
26669
+ {
26670
+ "name": "value",
26671
+ "type": {
26672
+ "primitive": "any"
26673
+ }
26674
+ }
26675
+ ],
26676
+ "protected": true,
26677
+ "returns": {
26678
+ "type": {
26679
+ "primitive": "any"
26680
+ }
26681
+ }
26682
+ },
25532
26683
  {
25533
26684
  "docs": {
25534
26685
  "remarks": "Note that the resource being moved from must be marked as moved using it's instance function.",
@@ -25537,7 +26688,7 @@
25537
26688
  },
25538
26689
  "locationInModule": {
25539
26690
  "filename": "src/terraform-resource.ts",
25540
- "line": 521
26691
+ "line": 590
25541
26692
  },
25542
26693
  "name": "moveFromId",
25543
26694
  "parameters": [
@@ -25559,7 +26710,7 @@
25559
26710
  },
25560
26711
  "locationInModule": {
25561
26712
  "filename": "src/terraform-resource.ts",
25562
- "line": 474
26713
+ "line": 543
25563
26714
  },
25564
26715
  "name": "moveTo",
25565
26716
  "parameters": [
@@ -25600,7 +26751,7 @@
25600
26751
  },
25601
26752
  "locationInModule": {
25602
26753
  "filename": "src/terraform-resource.ts",
25603
- "line": 498
26754
+ "line": 567
25604
26755
  },
25605
26756
  "name": "moveToId",
25606
26757
  "parameters": [
@@ -25621,7 +26772,7 @@
25621
26772
  },
25622
26773
  "locationInModule": {
25623
26774
  "filename": "src/terraform-resource.ts",
25624
- "line": 247
26775
+ "line": 249
25625
26776
  },
25626
26777
  "name": "synthesizeAttributes",
25627
26778
  "protected": true,
@@ -25642,7 +26793,7 @@
25642
26793
  },
25643
26794
  "locationInModule": {
25644
26795
  "filename": "src/terraform-resource.ts",
25645
- "line": 250
26796
+ "line": 252
25646
26797
  },
25647
26798
  "name": "synthesizeHclAttributes",
25648
26799
  "protected": true,
@@ -25663,7 +26814,7 @@
25663
26814
  },
25664
26815
  "locationInModule": {
25665
26816
  "filename": "src/terraform-resource.ts",
25666
- "line": 303
26817
+ "line": 372
25667
26818
  },
25668
26819
  "name": "toHclTerraform",
25669
26820
  "overrides": "cdktn.TerraformElement",
@@ -25679,7 +26830,7 @@
25679
26830
  },
25680
26831
  "locationInModule": {
25681
26832
  "filename": "src/terraform-resource.ts",
25682
- "line": 378
26833
+ "line": 447
25683
26834
  },
25684
26835
  "name": "toMetadata",
25685
26836
  "overrides": "cdktn.TerraformElement",
@@ -25696,7 +26847,7 @@
25696
26847
  },
25697
26848
  "locationInModule": {
25698
26849
  "filename": "src/terraform-resource.ts",
25699
- "line": 257
26850
+ "line": 326
25700
26851
  },
25701
26852
  "name": "toTerraform",
25702
26853
  "overrides": "cdktn.TerraformElement",
@@ -25716,7 +26867,7 @@
25716
26867
  "immutable": true,
25717
26868
  "locationInModule": {
25718
26869
  "filename": "src/terraform-resource.ts",
25719
- "line": 228
26870
+ "line": 230
25720
26871
  },
25721
26872
  "name": "terraformMetaArguments",
25722
26873
  "type": {
@@ -25735,7 +26886,7 @@
25735
26886
  "immutable": true,
25736
26887
  "locationInModule": {
25737
26888
  "filename": "src/terraform-resource.ts",
25738
- "line": 136
26889
+ "line": 138
25739
26890
  },
25740
26891
  "name": "terraformResourceType",
25741
26892
  "overrides": "cdktn.ITerraformResource",
@@ -25750,7 +26901,7 @@
25750
26901
  "immutable": true,
25751
26902
  "locationInModule": {
25752
26903
  "filename": "src/terraform-resource.ts",
25753
- "line": 137
26904
+ "line": 139
25754
26905
  },
25755
26906
  "name": "terraformGeneratorMetadata",
25756
26907
  "optional": true,
@@ -25764,7 +26915,7 @@
25764
26915
  },
25765
26916
  "locationInModule": {
25766
26917
  "filename": "src/terraform-resource.ts",
25767
- "line": 146
26918
+ "line": 148
25768
26919
  },
25769
26920
  "name": "connection",
25770
26921
  "optional": true,
@@ -25787,7 +26938,7 @@
25787
26938
  },
25788
26939
  "locationInModule": {
25789
26940
  "filename": "src/terraform-resource.ts",
25790
- "line": 142
26941
+ "line": 144
25791
26942
  },
25792
26943
  "name": "count",
25793
26944
  "optional": true,
@@ -25811,7 +26962,7 @@
25811
26962
  },
25812
26963
  "locationInModule": {
25813
26964
  "filename": "src/terraform-resource.ts",
25814
- "line": 141
26965
+ "line": 143
25815
26966
  },
25816
26967
  "name": "dependsOn",
25817
26968
  "optional": true,
@@ -25831,7 +26982,7 @@
25831
26982
  },
25832
26983
  "locationInModule": {
25833
26984
  "filename": "src/terraform-resource.ts",
25834
- "line": 145
26985
+ "line": 147
25835
26986
  },
25836
26987
  "name": "forEach",
25837
26988
  "optional": true,
@@ -25846,7 +26997,7 @@
25846
26997
  },
25847
26998
  "locationInModule": {
25848
26999
  "filename": "src/terraform-resource.ts",
25849
- "line": 144
27000
+ "line": 146
25850
27001
  },
25851
27002
  "name": "lifecycle",
25852
27003
  "optional": true,
@@ -25861,7 +27012,7 @@
25861
27012
  },
25862
27013
  "locationInModule": {
25863
27014
  "filename": "src/terraform-resource.ts",
25864
- "line": 143
27015
+ "line": 145
25865
27016
  },
25866
27017
  "name": "provider",
25867
27018
  "optional": true,
@@ -25876,7 +27027,7 @@
25876
27027
  },
25877
27028
  "locationInModule": {
25878
27029
  "filename": "src/terraform-resource.ts",
25879
- "line": 147
27030
+ "line": 149
25880
27031
  },
25881
27032
  "name": "provisioners",
25882
27033
  "optional": true,
@@ -25917,7 +27068,7 @@
25917
27068
  "kind": "interface",
25918
27069
  "locationInModule": {
25919
27070
  "filename": "src/terraform-resource.ts",
25920
- "line": 111
27071
+ "line": 113
25921
27072
  },
25922
27073
  "name": "TerraformResourceConfig",
25923
27074
  "properties": [
@@ -25929,7 +27080,7 @@
25929
27080
  "immutable": true,
25930
27081
  "locationInModule": {
25931
27082
  "filename": "src/terraform-resource.ts",
25932
- "line": 112
27083
+ "line": 114
25933
27084
  },
25934
27085
  "name": "terraformResourceType",
25935
27086
  "type": {
@@ -25944,7 +27095,7 @@
25944
27095
  "immutable": true,
25945
27096
  "locationInModule": {
25946
27097
  "filename": "src/terraform-resource.ts",
25947
- "line": 113
27098
+ "line": 115
25948
27099
  },
25949
27100
  "name": "terraformGeneratorMetadata",
25950
27101
  "optional": true,
@@ -25965,7 +27116,7 @@
25965
27116
  "kind": "interface",
25966
27117
  "locationInModule": {
25967
27118
  "filename": "src/terraform-resource.ts",
25968
- "line": 126
27119
+ "line": 128
25969
27120
  },
25970
27121
  "name": "TerraformResourceImport",
25971
27122
  "properties": [
@@ -25977,7 +27128,7 @@
25977
27128
  "immutable": true,
25978
27129
  "locationInModule": {
25979
27130
  "filename": "src/terraform-resource.ts",
25980
- "line": 127
27131
+ "line": 129
25981
27132
  },
25982
27133
  "name": "id",
25983
27134
  "type": {
@@ -25992,7 +27143,7 @@
25992
27143
  "immutable": true,
25993
27144
  "locationInModule": {
25994
27145
  "filename": "src/terraform-resource.ts",
25995
- "line": 128
27146
+ "line": 130
25996
27147
  },
25997
27148
  "name": "provider",
25998
27149
  "optional": true,
@@ -26013,7 +27164,7 @@
26013
27164
  "kind": "interface",
26014
27165
  "locationInModule": {
26015
27166
  "filename": "src/terraform-resource.ts",
26016
- "line": 56
27167
+ "line": 58
26017
27168
  },
26018
27169
  "name": "TerraformResourceLifecycle",
26019
27170
  "properties": [
@@ -26025,7 +27176,7 @@
26025
27176
  "immutable": true,
26026
27177
  "locationInModule": {
26027
27178
  "filename": "src/terraform-resource.ts",
26028
- "line": 57
27179
+ "line": 59
26029
27180
  },
26030
27181
  "name": "createBeforeDestroy",
26031
27182
  "optional": true,
@@ -26041,7 +27192,7 @@
26041
27192
  "immutable": true,
26042
27193
  "locationInModule": {
26043
27194
  "filename": "src/terraform-resource.ts",
26044
- "line": 59
27195
+ "line": 61
26045
27196
  },
26046
27197
  "name": "ignoreChanges",
26047
27198
  "optional": true,
@@ -26071,7 +27222,7 @@
26071
27222
  "immutable": true,
26072
27223
  "locationInModule": {
26073
27224
  "filename": "src/terraform-resource.ts",
26074
- "line": 62
27225
+ "line": 64
26075
27226
  },
26076
27227
  "name": "postcondition",
26077
27228
  "optional": true,
@@ -26092,7 +27243,7 @@
26092
27243
  "immutable": true,
26093
27244
  "locationInModule": {
26094
27245
  "filename": "src/terraform-resource.ts",
26095
- "line": 61
27246
+ "line": 63
26096
27247
  },
26097
27248
  "name": "precondition",
26098
27249
  "optional": true,
@@ -26113,7 +27264,7 @@
26113
27264
  "immutable": true,
26114
27265
  "locationInModule": {
26115
27266
  "filename": "src/terraform-resource.ts",
26116
- "line": 58
27267
+ "line": 60
26117
27268
  },
26118
27269
  "name": "preventDestroy",
26119
27270
  "optional": true,
@@ -26129,7 +27280,7 @@
26129
27280
  "immutable": true,
26130
27281
  "locationInModule": {
26131
27282
  "filename": "src/terraform-resource.ts",
26132
- "line": 60
27283
+ "line": 62
26133
27284
  },
26134
27285
  "name": "replaceTriggeredBy",
26135
27286
  "optional": true,
@@ -26164,7 +27315,7 @@
26164
27315
  "kind": "interface",
26165
27316
  "locationInModule": {
26166
27317
  "filename": "src/terraform-resource.ts",
26167
- "line": 121
27318
+ "line": 123
26168
27319
  },
26169
27320
  "name": "TerraformResourceMoveById",
26170
27321
  "properties": [
@@ -26176,7 +27327,7 @@
26176
27327
  "immutable": true,
26177
27328
  "locationInModule": {
26178
27329
  "filename": "src/terraform-resource.ts",
26179
- "line": 123
27330
+ "line": 125
26180
27331
  },
26181
27332
  "name": "from",
26182
27333
  "type": {
@@ -26191,7 +27342,7 @@
26191
27342
  "immutable": true,
26192
27343
  "locationInModule": {
26193
27344
  "filename": "src/terraform-resource.ts",
26194
- "line": 122
27345
+ "line": 124
26195
27346
  },
26196
27347
  "name": "to",
26197
27348
  "type": {
@@ -26211,7 +27362,7 @@
26211
27362
  "kind": "interface",
26212
27363
  "locationInModule": {
26213
27364
  "filename": "src/terraform-resource.ts",
26214
- "line": 116
27365
+ "line": 118
26215
27366
  },
26216
27367
  "name": "TerraformResourceMoveByTarget",
26217
27368
  "properties": [
@@ -26223,7 +27374,7 @@
26223
27374
  "immutable": true,
26224
27375
  "locationInModule": {
26225
27376
  "filename": "src/terraform-resource.ts",
26226
- "line": 117
27377
+ "line": 119
26227
27378
  },
26228
27379
  "name": "moveTarget",
26229
27380
  "type": {
@@ -26238,7 +27389,7 @@
26238
27389
  "immutable": true,
26239
27390
  "locationInModule": {
26240
27391
  "filename": "src/terraform-resource.ts",
26241
- "line": 118
27392
+ "line": 120
26242
27393
  },
26243
27394
  "name": "index",
26244
27395
  "optional": true,
@@ -26440,7 +27591,7 @@
26440
27591
  },
26441
27592
  "locationInModule": {
26442
27593
  "filename": "src/terraform-stack.ts",
26443
- "line": 87
27594
+ "line": 120
26444
27595
  },
26445
27596
  "parameters": [
26446
27597
  {
@@ -26460,7 +27611,7 @@
26460
27611
  "kind": "class",
26461
27612
  "locationInModule": {
26462
27613
  "filename": "src/terraform-stack.ts",
26463
- "line": 77
27614
+ "line": 79
26464
27615
  },
26465
27616
  "methods": [
26466
27617
  {
@@ -26469,7 +27620,7 @@
26469
27620
  },
26470
27621
  "locationInModule": {
26471
27622
  "filename": "src/terraform-stack.ts",
26472
- "line": 106
27623
+ "line": 140
26473
27624
  },
26474
27625
  "name": "isStack",
26475
27626
  "parameters": [
@@ -26493,7 +27644,7 @@
26493
27644
  },
26494
27645
  "locationInModule": {
26495
27646
  "filename": "src/terraform-stack.ts",
26496
- "line": 110
27647
+ "line": 190
26497
27648
  },
26498
27649
  "name": "of",
26499
27650
  "parameters": [
@@ -26517,7 +27668,7 @@
26517
27668
  },
26518
27669
  "locationInModule": {
26519
27670
  "filename": "src/terraform-stack.ts",
26520
- "line": 446
27671
+ "line": 574
26521
27672
  },
26522
27673
  "name": "addDependency",
26523
27674
  "parameters": [
@@ -26535,7 +27686,7 @@
26535
27686
  },
26536
27687
  "locationInModule": {
26537
27688
  "filename": "src/terraform-stack.ts",
26538
- "line": 166
27689
+ "line": 288
26539
27690
  },
26540
27691
  "name": "addOverride",
26541
27692
  "parameters": [
@@ -26561,7 +27712,7 @@
26561
27712
  },
26562
27713
  "locationInModule": {
26563
27714
  "filename": "src/terraform-stack.ts",
26564
- "line": 202
27715
+ "line": 324
26565
27716
  },
26566
27717
  "name": "allocateLogicalId",
26567
27718
  "parameters": [
@@ -26597,7 +27748,7 @@
26597
27748
  },
26598
27749
  "locationInModule": {
26599
27750
  "filename": "src/terraform-stack.ts",
26600
- "line": 216
27751
+ "line": 338
26601
27752
  },
26602
27753
  "name": "allProviders",
26603
27754
  "returns": {
@@ -26617,7 +27768,7 @@
26617
27768
  },
26618
27769
  "locationInModule": {
26619
27770
  "filename": "src/terraform-stack.ts",
26620
- "line": 439
27771
+ "line": 567
26621
27772
  },
26622
27773
  "name": "dependsOn",
26623
27774
  "parameters": [
@@ -26640,7 +27791,7 @@
26640
27791
  },
26641
27792
  "locationInModule": {
26642
27793
  "filename": "src/terraform-stack.ts",
26643
- "line": 220
27794
+ "line": 342
26644
27795
  },
26645
27796
  "name": "ensureBackendExists",
26646
27797
  "returns": {
@@ -26655,7 +27806,7 @@
26655
27806
  },
26656
27807
  "locationInModule": {
26657
27808
  "filename": "src/terraform-stack.ts",
26658
- "line": 190
27809
+ "line": 312
26659
27810
  },
26660
27811
  "name": "getLogicalId",
26661
27812
  "parameters": [
@@ -26687,7 +27838,7 @@
26687
27838
  },
26688
27839
  "locationInModule": {
26689
27840
  "filename": "src/terraform-stack.ts",
26690
- "line": 476
27841
+ "line": 604
26691
27842
  },
26692
27843
  "name": "hasResourceMove",
26693
27844
  "returns": {
@@ -26702,7 +27853,7 @@
26702
27853
  },
26703
27854
  "locationInModule": {
26704
27855
  "filename": "src/terraform-stack.ts",
26705
- "line": 157
27856
+ "line": 237
26706
27857
  },
26707
27858
  "name": "prepareStack"
26708
27859
  },
@@ -26712,7 +27863,7 @@
26712
27863
  },
26713
27864
  "locationInModule": {
26714
27865
  "filename": "src/terraform-stack.ts",
26715
- "line": 421
27866
+ "line": 549
26716
27867
  },
26717
27868
  "name": "registerIncomingCrossStackReference",
26718
27869
  "parameters": [
@@ -26735,7 +27886,7 @@
26735
27886
  },
26736
27887
  "locationInModule": {
26737
27888
  "filename": "src/terraform-stack.ts",
26738
- "line": 403
27889
+ "line": 531
26739
27890
  },
26740
27891
  "name": "registerOutgoingCrossStackReference",
26741
27892
  "parameters": [
@@ -26759,7 +27910,7 @@
26759
27910
  },
26760
27911
  "locationInModule": {
26761
27912
  "filename": "src/terraform-stack.ts",
26762
- "line": 461
27913
+ "line": 589
26763
27914
  },
26764
27915
  "name": "runAllValidations"
26765
27916
  },
@@ -26769,7 +27920,7 @@
26769
27920
  },
26770
27921
  "locationInModule": {
26771
27922
  "filename": "src/terraform-stack.ts",
26772
- "line": 225
27923
+ "line": 347
26773
27924
  },
26774
27925
  "name": "toHclTerraform",
26775
27926
  "returns": {
@@ -26789,7 +27940,7 @@
26789
27940
  },
26790
27941
  "locationInModule": {
26791
27942
  "filename": "src/terraform-stack.ts",
26792
- "line": 353
27943
+ "line": 481
26793
27944
  },
26794
27945
  "name": "toTerraform",
26795
27946
  "returns": {
@@ -26807,7 +27958,7 @@
26807
27958
  },
26808
27959
  "locationInModule": {
26809
27960
  "filename": "src/terraform-stack.ts",
26810
- "line": 84
27961
+ "line": 86
26811
27962
  },
26812
27963
  "name": "dependencies",
26813
27964
  "type": {
@@ -26825,7 +27976,7 @@
26825
27976
  },
26826
27977
  "locationInModule": {
26827
27978
  "filename": "src/terraform-stack.ts",
26828
- "line": 85
27979
+ "line": 87
26829
27980
  },
26830
27981
  "name": "moveTargets",
26831
27982
  "type": {
@@ -26838,7 +27989,7 @@
26838
27989
  },
26839
27990
  "locationInModule": {
26840
27991
  "filename": "src/terraform-stack.ts",
26841
- "line": 83
27992
+ "line": 85
26842
27993
  },
26843
27994
  "name": "synthesizer",
26844
27995
  "type": {
@@ -26858,7 +28009,7 @@
26858
28009
  "kind": "interface",
26859
28010
  "locationInModule": {
26860
28011
  "filename": "src/terraform-stack.ts",
26861
- "line": 53
28012
+ "line": 55
26862
28013
  },
26863
28014
  "name": "TerraformStackMetadata",
26864
28015
  "properties": [
@@ -26870,7 +28021,7 @@
26870
28021
  "immutable": true,
26871
28022
  "locationInModule": {
26872
28023
  "filename": "src/terraform-stack.ts",
26873
- "line": 56
28024
+ "line": 58
26874
28025
  },
26875
28026
  "name": "backend",
26876
28027
  "type": {
@@ -26885,7 +28036,7 @@
26885
28036
  "immutable": true,
26886
28037
  "locationInModule": {
26887
28038
  "filename": "src/terraform-stack.ts",
26888
- "line": 54
28039
+ "line": 56
26889
28040
  },
26890
28041
  "name": "stackName",
26891
28042
  "type": {
@@ -26900,7 +28051,7 @@
26900
28051
  "immutable": true,
26901
28052
  "locationInModule": {
26902
28053
  "filename": "src/terraform-stack.ts",
26903
- "line": 55
28054
+ "line": 57
26904
28055
  },
26905
28056
  "name": "version",
26906
28057
  "type": {
@@ -26915,7 +28066,7 @@
26915
28066
  "immutable": true,
26916
28067
  "locationInModule": {
26917
28068
  "filename": "src/terraform-stack.ts",
26918
- "line": 57
28069
+ "line": 59
26919
28070
  },
26920
28071
  "name": "cloud",
26921
28072
  "optional": true,
@@ -27493,7 +28644,7 @@
27493
28644
  },
27494
28645
  "locationInModule": {
27495
28646
  "filename": "src/testing/index.ts",
27496
- "line": 161
28647
+ "line": 174
27497
28648
  },
27498
28649
  "name": "fullSynth",
27499
28650
  "parameters": [
@@ -27517,7 +28668,7 @@
27517
28668
  },
27518
28669
  "locationInModule": {
27519
28670
  "filename": "src/testing/index.ts",
27520
- "line": 176
28671
+ "line": 189
27521
28672
  },
27522
28673
  "name": "renderConstructTree",
27523
28674
  "parameters": [
@@ -27541,7 +28692,7 @@
27541
28692
  },
27542
28693
  "locationInModule": {
27543
28694
  "filename": "src/testing/index.ts",
27544
- "line": 276
28695
+ "line": 289
27545
28696
  },
27546
28697
  "name": "setupJest",
27547
28698
  "static": true
@@ -27609,7 +28760,7 @@
27609
28760
  },
27610
28761
  "locationInModule": {
27611
28762
  "filename": "src/testing/index.ts",
27612
- "line": 144
28763
+ "line": 154
27613
28764
  },
27614
28765
  "name": "synthHcl",
27615
28766
  "parameters": [
@@ -27671,7 +28822,7 @@
27671
28822
  },
27672
28823
  "locationInModule": {
27673
28824
  "filename": "src/testing/index.ts",
27674
- "line": 272
28825
+ "line": 285
27675
28826
  },
27676
28827
  "name": "toBeValidTerraform",
27677
28828
  "parameters": [
@@ -27695,7 +28846,7 @@
27695
28846
  },
27696
28847
  "locationInModule": {
27697
28848
  "filename": "src/testing/index.ts",
27698
- "line": 215
28849
+ "line": 228
27699
28850
  },
27700
28851
  "name": "toHaveDataSource",
27701
28852
  "parameters": [
@@ -27725,7 +28876,7 @@
27725
28876
  },
27726
28877
  "locationInModule": {
27727
28878
  "filename": "src/testing/index.ts",
27728
- "line": 203
28879
+ "line": 216
27729
28880
  },
27730
28881
  "name": "toHaveDataSourceWithProperties",
27731
28882
  "parameters": [
@@ -27767,7 +28918,7 @@
27767
28918
  },
27768
28919
  "locationInModule": {
27769
28920
  "filename": "src/testing/index.ts",
27770
- "line": 261
28921
+ "line": 274
27771
28922
  },
27772
28923
  "name": "toHaveProvider",
27773
28924
  "parameters": [
@@ -27797,7 +28948,7 @@
27797
28948
  },
27798
28949
  "locationInModule": {
27799
28950
  "filename": "src/testing/index.ts",
27800
- "line": 249
28951
+ "line": 262
27801
28952
  },
27802
28953
  "name": "toHaveProviderWithProperties",
27803
28954
  "parameters": [
@@ -27839,7 +28990,7 @@
27839
28990
  },
27840
28991
  "locationInModule": {
27841
28992
  "filename": "src/testing/index.ts",
27842
- "line": 238
28993
+ "line": 251
27843
28994
  },
27844
28995
  "name": "toHaveResource",
27845
28996
  "parameters": [
@@ -27869,7 +29020,7 @@
27869
29020
  },
27870
29021
  "locationInModule": {
27871
29022
  "filename": "src/testing/index.ts",
27872
- "line": 226
29023
+ "line": 239
27873
29024
  },
27874
29025
  "name": "toHaveResourceWithProperties",
27875
29026
  "parameters": [
@@ -29809,6 +30960,6 @@
29809
30960
  "symbolId": "src/testing/matchers:TerraformConstructor"
29810
30961
  }
29811
30962
  },
29812
- "version": "0.24.0-pre.87",
29813
- "fingerprint": "sRGCbqqtC+op+WUYY0D+VYMii74f+E3m6xvccjrsLmM="
30963
+ "version": "0.24.0-pre.89",
30964
+ "fingerprint": "iofF9Lp3E/se15JAiZHyHnpyaIKXp4s+uoab/yDItDk="
29814
30965
  }