cdktn 0.25.0.dev39__tar.gz → 0.25.0.dev40__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cdktn
3
- Version: 0.25.0.dev39
3
+ Version: 0.25.0.dev40
4
4
  Summary: Cloud Development Kit for Terraform
5
5
  Home-page: https://github.com/open-constructs/cdk-terrain
6
6
  Author: OpenConstructs
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "cdktn",
8
- "version": "0.25.0.dev39",
8
+ "version": "0.25.0.dev40",
9
9
  "description": "Cloud Development Kit for Terraform",
10
10
  "license": "MPL-2.0",
11
11
  "url": "https://github.com/open-constructs/cdk-terrain",
@@ -27,7 +27,7 @@ kwargs = json.loads(
27
27
  ],
28
28
  "package_data": {
29
29
  "cdktn._jsii": [
30
- "cdktn@0.25.0-pre.39.jsii.tgz"
30
+ "cdktn@0.25.0-pre.40.jsii.tgz"
31
31
  ],
32
32
  "cdktn": [
33
33
  "py.typed"
@@ -635,9 +635,8 @@ class AssetHashOptions:
635
635
  class AssetHashType(enum.Enum):
636
636
  '''(experimental) The type of asset hash.
637
637
 
638
- NOTE: the hash is used in order to identify a specific revision of the asset, and
639
- used for optimizing and caching deployment activities related to this asset such as
640
- packaging, uploading to cloud storage, etc.
638
+ The hash identifies a specific revision of the asset and caches deployment
639
+ work such as packaging and uploading.
641
640
 
642
641
  :stability: experimental
643
642
  '''
@@ -645,16 +644,15 @@ class AssetHashType(enum.Enum):
645
644
  SOURCE = "SOURCE"
646
645
  '''(experimental) Based on the content of the source path.
647
646
 
648
- Use ``SOURCE`` when the content of the asset changes frequently or when
649
- you want to track changes to the source files directly.
647
+ Use ``SOURCE`` to track changes to the source files directly.
650
648
 
651
649
  :stability: experimental
652
650
  '''
653
651
  OUTPUT = "OUTPUT"
654
652
  '''(experimental) Based on the content of the bundling output.
655
653
 
656
- Use ``OUTPUT`` when the source of the asset is a top level folder containing
657
- code and/or dependencies that are not directly linked to the asset.
654
+ Use ``OUTPUT`` when the source is a top-level folder holding code and/or
655
+ dependencies not directly linked to the asset.
658
656
 
659
657
  :stability: experimental
660
658
  '''
@@ -677,9 +675,9 @@ class AssetOptions:
677
675
  asset_hash: typing.Optional[builtins.str] = None,
678
676
  asset_hash_type: typing.Optional["AssetHashType"] = None,
679
677
  ) -> None:
680
- '''(experimental) Asset hash options.
678
+ '''(experimental) Options controlling how an asset's hash is derived.
681
679
 
682
- :param asset_hash: (experimental) Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. The value is used verbatim as the asset hash, and because it names the staged asset file it may only contain letters, digits, ``_``, ``.`` and ``-``. NOTE: the hash is used in order to identify a specific revision of the asset, and used for optimizing and caching deployment activities related to this asset such as packaging, uploading to cloud storage, etc. If you chose to customize the hash, you will need to make sure it is updated every time the asset changes, or otherwise it is possible that some deployments will not be invalidated. Default: - based on ``assetHashType``
680
+ :param asset_hash: (experimental) Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. The value is used verbatim as the asset hash, and because it names the staged asset file it may only contain letters, digits, ``_``, ``.`` and ``-``. The hash identifies a specific revision of the asset and caches deployment work (packaging, uploading). A custom hash must be updated whenever the asset changes, or some deployments will not be invalidated. Default: - based on ``assetHashType``
683
681
  :param asset_hash_type: (experimental) Specifies the type of hash to calculate for this asset. If ``assetHash`` is configured, this option must be ``undefined`` or ``AssetHashType.CUSTOM``. Default: - the default is ``AssetHashType.SOURCE``, but if ``assetHash`` is explicitly specified this value defaults to ``AssetHashType.CUSTOM``.
684
682
 
685
683
  :stability: experimental
@@ -703,11 +701,9 @@ class AssetOptions:
703
701
  hash, and because it names the staged asset file it may only contain
704
702
  letters, digits, ``_``, ``.`` and ``-``.
705
703
 
706
- NOTE: the hash is used in order to identify a specific revision of the asset, and
707
- used for optimizing and caching deployment activities related to this asset such as
708
- packaging, uploading to cloud storage, etc. If you chose to customize the hash, you will
709
- need to make sure it is updated every time the asset changes, or otherwise it is
710
- possible that some deployments will not be invalidated.
704
+ The hash identifies a specific revision of the asset and caches deployment
705
+ work (packaging, uploading). A custom hash must be updated whenever the
706
+ asset changes, or some deployments will not be invalidated.
711
707
 
712
708
  :default: - based on ``assetHashType``
713
709
 
@@ -813,11 +809,11 @@ class AssetStagingOptions(AssetOptions):
813
809
  ) -> None:
814
810
  '''(experimental) Options for {@link AssetStaging}.
815
811
 
816
- :param asset_hash: (experimental) Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. The value is used verbatim as the asset hash, and because it names the staged asset file it may only contain letters, digits, ``_``, ``.`` and ``-``. NOTE: the hash is used in order to identify a specific revision of the asset, and used for optimizing and caching deployment activities related to this asset such as packaging, uploading to cloud storage, etc. If you chose to customize the hash, you will need to make sure it is updated every time the asset changes, or otherwise it is possible that some deployments will not be invalidated. Default: - based on ``assetHashType``
812
+ :param asset_hash: (experimental) Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. The value is used verbatim as the asset hash, and because it names the staged asset file it may only contain letters, digits, ``_``, ``.`` and ``-``. The hash identifies a specific revision of the asset and caches deployment work (packaging, uploading). A custom hash must be updated whenever the asset changes, or some deployments will not be invalidated. Default: - based on ``assetHashType``
817
813
  :param asset_hash_type: (experimental) Specifies the type of hash to calculate for this asset. If ``assetHash`` is configured, this option must be ``undefined`` or ``AssetHashType.CUSTOM``. Default: - the default is ``AssetHashType.SOURCE``, but if ``assetHash`` is explicitly specified this value defaults to ``AssetHashType.CUSTOM``.
818
814
  :param packaging: (experimental) How the staged result is produced and shaped. The caller decides this (e.g. from its own ``AssetType``) — ``AssetStaging`` never infers or changes it based on ``exclude``/``extraHash``.
819
815
  :param source_path: (experimental) Absolute path to the source file or directory. Resolving a relative path against ``cdktf.json`` is the caller's responsibility.
820
- :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Under the default ``SOURCE`` hashing the build is deferred to ``stage()`` and stays skippable; ``OUTPUT`` hashing builds eagerly at construction time to hash the artifact, forgoing skippability. A bundler always produces a directory, so single-file packaging (``AssetType.FILE``) is rejected. Default: - the source is staged verbatim, with no build step
816
+ :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Under the default ``SOURCE`` hashing the build is deferred to ``stage()`` and stays skippable; ``OUTPUT`` hashing builds eagerly at construction time to hash the artifact, forgoing skippability. The bundler's declared output shape must match the packaging: a ``BundleResult.directory`` needs a directory-accepting packaging, a ``BundleResult.file`` a single-file one (``AssetType.FILE``). The mismatch is caught once the build runs. Default: - the source is staged verbatim, with no build step
821
817
  :param display_name: (experimental) Identifier used in error messages, so they name the user-facing construct (e.g. the ``TerraformAsset``) rather than this internal staging child. Default: - the staging construct's own id
822
818
  :param exclude: (experimental) Paths to exclude, relative to ``sourcePath``. Cannot be combined with ``ignoreStrategy``, which replaces this matcher rather than layering on top of it. Default: - nothing is excluded
823
819
  :param extra_hash: (experimental) Extra information to fold into the hash (e.g. build instructions and other inputs). Default: - no extra hash
@@ -864,11 +860,9 @@ class AssetStagingOptions(AssetOptions):
864
860
  hash, and because it names the staged asset file it may only contain
865
861
  letters, digits, ``_``, ``.`` and ``-``.
866
862
 
867
- NOTE: the hash is used in order to identify a specific revision of the asset, and
868
- used for optimizing and caching deployment activities related to this asset such as
869
- packaging, uploading to cloud storage, etc. If you chose to customize the hash, you will
870
- need to make sure it is updated every time the asset changes, or otherwise it is
871
- possible that some deployments will not be invalidated.
863
+ The hash identifies a specific revision of the asset and caches deployment
864
+ work (packaging, uploading). A custom hash must be updated whenever the
865
+ asset changes, or some deployments will not be invalidated.
872
866
 
873
867
  :default: - based on ``assetHashType``
874
868
 
@@ -927,8 +921,10 @@ class AssetStagingOptions(AssetOptions):
927
921
 
928
922
  Under the default ``SOURCE`` hashing the build is deferred to ``stage()`` and
929
923
  stays skippable; ``OUTPUT`` hashing builds eagerly at construction time to
930
- hash the artifact, forgoing skippability. A bundler always produces a
931
- directory, so single-file packaging (``AssetType.FILE``) is rejected.
924
+ hash the artifact, forgoing skippability. The bundler's declared output
925
+ shape must match the packaging: a ``BundleResult.directory`` needs a
926
+ directory-accepting packaging, a ``BundleResult.file`` a single-file one
927
+ (``AssetType.FILE``). The mismatch is caught once the build runs.
932
928
 
933
929
  :default: - the source is staged verbatim, with no build step
934
930
 
@@ -1507,7 +1503,7 @@ class BundleOptions:
1507
1503
  adding a method parameter is not, and ``bundle`` is called through JSII where
1508
1504
  that distinction is a breaking-change boundary.
1509
1505
 
1510
- :param output_dir: (experimental) A scratch directory the bundler may write into, owned and created by the caller. The bundler produces its output here (or in a subdirectory) and returns the directory that holds the finished artifact — see {@link IAssetBundler.bundle}.
1506
+ :param output_dir: (experimental) A scratch directory the bundler may write into, owned and created by the caller. The bundler produces its output here (or in a subdirectory) and returns a {@link BundleResult} pointing at the finished artifact — see {@link IAssetBundler.bundle}.
1511
1507
  :param source: (experimental) Absolute path to the asset's source file or directory. The bundler reads from here and must not modify it. Exclusions (``exclude`` / ``ignoreStrategy``) are already applied: when any are configured this points at a filtered copy, not the original tree, so the bundler reads exactly the file set the asset hash was taken over.
1512
1508
 
1513
1509
  :stability: experimental
@@ -1526,7 +1522,7 @@ class BundleOptions:
1526
1522
  '''(experimental) A scratch directory the bundler may write into, owned and created by the caller.
1527
1523
 
1528
1524
  The bundler produces its output here (or in a subdirectory) and
1529
- returns the directory that holds the finished artifact — see
1525
+ returns a {@link BundleResult} pointing at the finished artifact — see
1530
1526
  {@link IAssetBundler.bundle}.
1531
1527
 
1532
1528
  :stability: experimental
@@ -1561,15 +1557,115 @@ class BundleOptions:
1561
1557
  )
1562
1558
 
1563
1559
 
1560
+ @jsii.enum(jsii_type="cdktn.BundleOutputType")
1561
+ class BundleOutputType(enum.Enum):
1562
+ '''(experimental) The shape of a bundler's output, so staging and packaging can treat a single-file artifact (a tarball, a ``.zip``) differently from a directory tree without inferring it from the path.
1563
+
1564
+ :stability: experimental
1565
+ '''
1566
+
1567
+ DIRECTORY = "DIRECTORY"
1568
+ '''(experimental) The output is a directory tree.
1569
+
1570
+ Packaged like an unbundled source directory. The default, and the only
1571
+ shape that predates archive support.
1572
+
1573
+ :stability: experimental
1574
+ '''
1575
+ FILE = "FILE"
1576
+ '''(experimental) The output is a single file the bundler already produced in its final form.
1577
+
1578
+ A tarball or a deterministic ``.zip``. Staged verbatim rather than
1579
+ re-archived, so ``AssetType.FILE`` no longer has to reject a bundler.
1580
+
1581
+ :stability: experimental
1582
+ '''
1583
+
1584
+
1585
+ class BundleResult(metaclass=jsii.JSIIMeta, jsii_type="cdktn.BundleResult"):
1586
+ '''(experimental) What a bundler produced, returned from {@link IAssetBundler.bundle}.
1587
+
1588
+ Carries the artifact path and its shape, or a declined state signalling the
1589
+ caller should fall back. See {@link declined} for the decline protocol.
1590
+
1591
+ :stability: experimental
1592
+ '''
1593
+
1594
+ @jsii.member(jsii_name="declined")
1595
+ @builtins.classmethod
1596
+ def declined(cls) -> "BundleResult":
1597
+ '''(experimental) The bundler declined to run here; the caller should fall back.
1598
+
1599
+ Distinct from a thrown error, which is a hard failure.
1600
+
1601
+ :stability: experimental
1602
+ '''
1603
+ return typing.cast("BundleResult", jsii.sinvoke(cls, "declined", []))
1604
+
1605
+ @jsii.member(jsii_name="directory")
1606
+ @builtins.classmethod
1607
+ def directory(cls, path: builtins.str) -> "BundleResult":
1608
+ '''(experimental) A directory-tree artifact at ``path``.
1609
+
1610
+ :param path: -
1611
+
1612
+ :stability: experimental
1613
+ '''
1614
+ if __debug__:
1615
+ type_hints = cached_type_hints(_typecheckingstub__cb448e5d937b8e66717fe97ab740ea1924edd313428fa2e65c41a3f2d7c1a24c)
1616
+ check_type(argname="argument path", value=path, expected_type=type_hints["path"])
1617
+ return typing.cast("BundleResult", jsii.sinvoke(cls, "directory", [path]))
1618
+
1619
+ @jsii.member(jsii_name="file")
1620
+ @builtins.classmethod
1621
+ def file(cls, path: builtins.str) -> "BundleResult":
1622
+ '''(experimental) A single-file artifact at ``path`` (a tarball, a ``.zip``), staged verbatim.
1623
+
1624
+ :param path: -
1625
+
1626
+ :stability: experimental
1627
+ '''
1628
+ if __debug__:
1629
+ type_hints = cached_type_hints(_typecheckingstub__e6adf0d1d61dee6269a50f7bde47aef784df796b53286fb04ab6c071a75d6975)
1630
+ check_type(argname="argument path", value=path, expected_type=type_hints["path"])
1631
+ return typing.cast("BundleResult", jsii.sinvoke(cls, "file", [path]))
1632
+
1633
+ @builtins.property
1634
+ @jsii.member(jsii_name="isDeclined")
1635
+ def is_declined(self) -> builtins.bool:
1636
+ '''(experimental) Whether the bundler declined to run, signalling the caller to fall back.
1637
+
1638
+ :stability: experimental
1639
+ '''
1640
+ return typing.cast(builtins.bool, jsii.get(self, "isDeclined"))
1641
+
1642
+ @builtins.property
1643
+ @jsii.member(jsii_name="outputType")
1644
+ def output_type(self) -> typing.Optional["BundleOutputType"]:
1645
+ '''(experimental) The artifact's shape, or undefined when {@link isDeclined}.
1646
+
1647
+ :stability: experimental
1648
+ '''
1649
+ return typing.cast(typing.Optional["BundleOutputType"], jsii.get(self, "outputType"))
1650
+
1651
+ @builtins.property
1652
+ @jsii.member(jsii_name="path")
1653
+ def path(self) -> typing.Optional[builtins.str]:
1654
+ '''(experimental) The artifact path, or undefined when {@link isDeclined}.
1655
+
1656
+ :stability: experimental
1657
+ '''
1658
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "path"))
1659
+
1660
+
1564
1661
  class BundlerKey(metaclass=jsii.JSIIMeta, jsii_type="cdktn.BundlerKey"):
1565
1662
  '''(experimental) Builds an {@link IAssetBundler.bundlerKey} from an ordered set of parts.
1566
1663
 
1567
1664
  A ``bundlerKey`` has to serialize everything that can move a build's output;
1568
1665
  done ad hoc, every bundler invents its own delimiter and forgets an input
1569
1666
  differently. This gives the convention one implementation: parts are joined
1570
- with a separator that is escaped where it appears in a value, so distinct
1571
- inputs can never collide into the same key (``["a:b", "c"]`` and
1572
- ``["a", "b:c"]`` stay different).
1667
+ with a separator that is escaped inside values, so distinct inputs cannot
1668
+ collide into the same key.
1573
1669
 
1574
1670
  :stability: experimental
1575
1671
 
@@ -5514,11 +5610,10 @@ class IAsset(typing_extensions.Protocol):
5514
5610
  @builtins.property
5515
5611
  @jsii.member(jsii_name="assetHash")
5516
5612
  def asset_hash(self) -> builtins.str:
5517
- '''(experimental) A hash of this asset, which is available at construction time.
5613
+ '''(experimental) A hash of this asset, available at construction time.
5518
5614
 
5519
- As this is a plain string, it
5520
- can be used in construct IDs in order to enforce creation of a new resource when the content
5521
- hash has changed.
5615
+ Being a plain string, it can be used in construct IDs to force a new
5616
+ resource when the content hash changes.
5522
5617
 
5523
5618
  :stability: experimental
5524
5619
  '''
@@ -5536,11 +5631,10 @@ class _IAssetProxy:
5536
5631
  @builtins.property
5537
5632
  @jsii.member(jsii_name="assetHash")
5538
5633
  def asset_hash(self) -> builtins.str:
5539
- '''(experimental) A hash of this asset, which is available at construction time.
5634
+ '''(experimental) A hash of this asset, available at construction time.
5540
5635
 
5541
- As this is a plain string, it
5542
- can be used in construct IDs in order to enforce creation of a new resource when the content
5543
- hash has changed.
5636
+ Being a plain string, it can be used in construct IDs to force a new
5637
+ resource when the content hash changes.
5544
5638
 
5545
5639
  :stability: experimental
5546
5640
  '''
@@ -5555,19 +5649,21 @@ class IAssetBundler(typing_extensions.Protocol):
5555
5649
  '''(experimental) Transforms a source tree into a built artifact. Runs at synth, before the output is packaged and staged.
5556
5650
 
5557
5651
  This is the extension point for asset bundling: core ships no bundler.
5558
- Docker, esbuild, pip, ``go build``, and similar are an open-ended set that
5559
- is not cloud-specific, so each lives in its own package and implements this
5652
+ Docker, esbuild, pip, ``go build``, and similar are an open-ended, non
5653
+ cloud-specific set, so each lives in its own package and implements this
5560
5654
  one interface — the same way {@link IIgnoreStrategy} lets richer exclusion
5561
- live outside core without core taking on a glob parser. A third party
5562
- develops a bundler by implementing this interface and publishing it as a
5563
- package; users pass an instance via the consuming construct's ``bundler``
5564
- option.
5655
+ live outside core. Users pass an instance via the consuming construct's
5656
+ ``bundler`` option.
5565
5657
 
5566
5658
  ``bundle`` runs during the owning construct's ``onSynthesize`` hook and may
5567
5659
  touch the filesystem. Deferring it there keeps it skippable when the asset's
5568
5660
  stack is not being synthesized, which holds as long as the hash is taken
5569
5661
  over the source rather than the built output.
5570
5662
 
5663
+ Bundlers compose through {@link ChainBundler} rather than a hierarchy: a
5664
+ bundler declines (see {@link BundleResult.declined}) instead of failing when
5665
+ it cannot run, and the chain falls through to the next.
5666
+
5571
5667
  :stability: experimental
5572
5668
  '''
5573
5669
 
@@ -5577,14 +5673,11 @@ class IAssetBundler(typing_extensions.Protocol):
5577
5673
  '''(experimental) A value identifying the build, folded into the asset hash.
5578
5674
 
5579
5675
  The source tree alone cannot see the build, so swapping a ``node:18`` base
5580
- image for ``node:20`` would otherwise leave identity unchanged. A value
5581
- capturing the build (e.g. ``docker:<image>:<command>``) closes that gap.
5582
-
5583
- Under ``SOURCE`` hashing this is the only channel by which the build reaches
5584
- identity, so it must serialize every input that can move the output —
5585
- base image, command, tool version, environment, arguments. Anything left
5586
- out means a changed build silently reuses a stale artifact. {@link * BundlerKey} builds one from an ordered set of parts so the format is not
5587
- reinvented per bundler.
5676
+ image for ``node:20`` would otherwise leave identity unchanged. Under
5677
+ ``SOURCE`` hashing this is the only channel by which the build reaches
5678
+ identity, so it must serialize every input that can move the output, or a
5679
+ changed build silently reuses a stale artifact. {@link BundlerKey} builds
5680
+ one from an ordered set of parts.
5588
5681
 
5589
5682
  Mirrors {@link IIgnoreStrategy.cacheKey}: omit it when the build cannot be
5590
5683
  summarized as a string, and fall back to ``extraHash``.
@@ -5595,17 +5688,45 @@ class IAssetBundler(typing_extensions.Protocol):
5595
5688
  '''
5596
5689
  ...
5597
5690
 
5691
+ @builtins.property
5692
+ @jsii.member(jsii_name="outputFileName")
5693
+ def output_file_name(self) -> typing.Optional[builtins.str]:
5694
+ '''(experimental) The name a single-file artifact is staged under (e.g. ``archive.zip``).
5695
+
5696
+ A file-producing bundler (``BundleResult.file``) staged with
5697
+ ``AssetType.FILE`` would otherwise take the source path's basename, which is
5698
+ a directory name when the source is a directory. Declaring the name here
5699
+ lets the artifact reflect what the bundler produces. It is static
5700
+ configuration, needed at construction before a deferred ``SOURCE`` build
5701
+ runs, not the file's runtime name.
5702
+
5703
+ Valid only for a file-producing bundler: setting it with a directory
5704
+ packaging (anything but ``AssetType.FILE``) is rejected at construction.
5705
+
5706
+ :default: - the source path's basename
5707
+
5708
+ :stability: experimental
5709
+ '''
5710
+ ...
5711
+
5598
5712
  @jsii.member(jsii_name="bundle")
5599
- def bundle(self, *, output_dir: builtins.str, source: builtins.str) -> builtins.str:
5600
- '''(experimental) Produce the artifact and return the directory holding it.
5713
+ def bundle(
5714
+ self,
5715
+ *,
5716
+ output_dir: builtins.str,
5717
+ source: builtins.str,
5718
+ ) -> "BundleResult":
5719
+ '''(experimental) Produce the artifact and return a {@link BundleResult} describing it.
5601
5720
 
5602
- Implementations write into ``options.outputDir`` and return it or a
5603
- subdirectory, never writing back to ``options.source``. The returned
5604
- directory is then packaged as an unbundled source directory would be.
5605
- Returning a file, or a path that does not exist, is rejected — the
5606
- contract is a directory, and packaging always treats the result as one.
5721
+ Implementations write into ``options.outputDir`` and never write back to
5722
+ ``options.source``. The returned path must exist and match its declared
5723
+ shape, or staging rejects it.
5607
5724
 
5608
- :param output_dir: (experimental) A scratch directory the bundler may write into, owned and created by the caller. The bundler produces its output here (or in a subdirectory) and returns the directory that holds the finished artifact — see {@link IAssetBundler.bundle}.
5725
+ A bundler that cannot run in this environment returns
5726
+ ``BundleResult.declined()`` so a {@link ChainBundler} can fall through to
5727
+ the next; a thrown error is a hard failure, not a decline.
5728
+
5729
+ :param output_dir: (experimental) A scratch directory the bundler may write into, owned and created by the caller. The bundler produces its output here (or in a subdirectory) and returns a {@link BundleResult} pointing at the finished artifact — see {@link IAssetBundler.bundle}.
5609
5730
  :param source: (experimental) Absolute path to the asset's source file or directory. The bundler reads from here and must not modify it. Exclusions (``exclude`` / ``ignoreStrategy``) are already applied: when any are configured this points at a filtered copy, not the original tree, so the bundler reads exactly the file set the asset hash was taken over.
5610
5731
 
5611
5732
  :stability: experimental
@@ -5617,19 +5738,21 @@ class _IAssetBundlerProxy:
5617
5738
  '''(experimental) Transforms a source tree into a built artifact. Runs at synth, before the output is packaged and staged.
5618
5739
 
5619
5740
  This is the extension point for asset bundling: core ships no bundler.
5620
- Docker, esbuild, pip, ``go build``, and similar are an open-ended set that
5621
- is not cloud-specific, so each lives in its own package and implements this
5741
+ Docker, esbuild, pip, ``go build``, and similar are an open-ended, non
5742
+ cloud-specific set, so each lives in its own package and implements this
5622
5743
  one interface — the same way {@link IIgnoreStrategy} lets richer exclusion
5623
- live outside core without core taking on a glob parser. A third party
5624
- develops a bundler by implementing this interface and publishing it as a
5625
- package; users pass an instance via the consuming construct's ``bundler``
5626
- option.
5744
+ live outside core. Users pass an instance via the consuming construct's
5745
+ ``bundler`` option.
5627
5746
 
5628
5747
  ``bundle`` runs during the owning construct's ``onSynthesize`` hook and may
5629
5748
  touch the filesystem. Deferring it there keeps it skippable when the asset's
5630
5749
  stack is not being synthesized, which holds as long as the hash is taken
5631
5750
  over the source rather than the built output.
5632
5751
 
5752
+ Bundlers compose through {@link ChainBundler} rather than a hierarchy: a
5753
+ bundler declines (see {@link BundleResult.declined}) instead of failing when
5754
+ it cannot run, and the chain falls through to the next.
5755
+
5633
5756
  :stability: experimental
5634
5757
  '''
5635
5758
 
@@ -5641,14 +5764,11 @@ class _IAssetBundlerProxy:
5641
5764
  '''(experimental) A value identifying the build, folded into the asset hash.
5642
5765
 
5643
5766
  The source tree alone cannot see the build, so swapping a ``node:18`` base
5644
- image for ``node:20`` would otherwise leave identity unchanged. A value
5645
- capturing the build (e.g. ``docker:<image>:<command>``) closes that gap.
5646
-
5647
- Under ``SOURCE`` hashing this is the only channel by which the build reaches
5648
- identity, so it must serialize every input that can move the output —
5649
- base image, command, tool version, environment, arguments. Anything left
5650
- out means a changed build silently reuses a stale artifact. {@link * BundlerKey} builds one from an ordered set of parts so the format is not
5651
- reinvented per bundler.
5767
+ image for ``node:20`` would otherwise leave identity unchanged. Under
5768
+ ``SOURCE`` hashing this is the only channel by which the build reaches
5769
+ identity, so it must serialize every input that can move the output, or a
5770
+ changed build silently reuses a stale artifact. {@link BundlerKey} builds
5771
+ one from an ordered set of parts.
5652
5772
 
5653
5773
  Mirrors {@link IIgnoreStrategy.cacheKey}: omit it when the build cannot be
5654
5774
  summarized as a string, and fall back to ``extraHash``.
@@ -5659,24 +5779,52 @@ class _IAssetBundlerProxy:
5659
5779
  '''
5660
5780
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "bundlerKey"))
5661
5781
 
5782
+ @builtins.property
5783
+ @jsii.member(jsii_name="outputFileName")
5784
+ def output_file_name(self) -> typing.Optional[builtins.str]:
5785
+ '''(experimental) The name a single-file artifact is staged under (e.g. ``archive.zip``).
5786
+
5787
+ A file-producing bundler (``BundleResult.file``) staged with
5788
+ ``AssetType.FILE`` would otherwise take the source path's basename, which is
5789
+ a directory name when the source is a directory. Declaring the name here
5790
+ lets the artifact reflect what the bundler produces. It is static
5791
+ configuration, needed at construction before a deferred ``SOURCE`` build
5792
+ runs, not the file's runtime name.
5793
+
5794
+ Valid only for a file-producing bundler: setting it with a directory
5795
+ packaging (anything but ``AssetType.FILE``) is rejected at construction.
5796
+
5797
+ :default: - the source path's basename
5798
+
5799
+ :stability: experimental
5800
+ '''
5801
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "outputFileName"))
5802
+
5662
5803
  @jsii.member(jsii_name="bundle")
5663
- def bundle(self, *, output_dir: builtins.str, source: builtins.str) -> builtins.str:
5664
- '''(experimental) Produce the artifact and return the directory holding it.
5804
+ def bundle(
5805
+ self,
5806
+ *,
5807
+ output_dir: builtins.str,
5808
+ source: builtins.str,
5809
+ ) -> "BundleResult":
5810
+ '''(experimental) Produce the artifact and return a {@link BundleResult} describing it.
5811
+
5812
+ Implementations write into ``options.outputDir`` and never write back to
5813
+ ``options.source``. The returned path must exist and match its declared
5814
+ shape, or staging rejects it.
5665
5815
 
5666
- Implementations write into ``options.outputDir`` and return it or a
5667
- subdirectory, never writing back to ``options.source``. The returned
5668
- directory is then packaged as an unbundled source directory would be.
5669
- Returning a file, or a path that does not exist, is rejected — the
5670
- contract is a directory, and packaging always treats the result as one.
5816
+ A bundler that cannot run in this environment returns
5817
+ ``BundleResult.declined()`` so a {@link ChainBundler} can fall through to
5818
+ the next; a thrown error is a hard failure, not a decline.
5671
5819
 
5672
- :param output_dir: (experimental) A scratch directory the bundler may write into, owned and created by the caller. The bundler produces its output here (or in a subdirectory) and returns the directory that holds the finished artifact — see {@link IAssetBundler.bundle}.
5820
+ :param output_dir: (experimental) A scratch directory the bundler may write into, owned and created by the caller. The bundler produces its output here (or in a subdirectory) and returns a {@link BundleResult} pointing at the finished artifact — see {@link IAssetBundler.bundle}.
5673
5821
  :param source: (experimental) Absolute path to the asset's source file or directory. The bundler reads from here and must not modify it. Exclusions (``exclude`` / ``ignoreStrategy``) are already applied: when any are configured this points at a filtered copy, not the original tree, so the bundler reads exactly the file set the asset hash was taken over.
5674
5822
 
5675
5823
  :stability: experimental
5676
5824
  '''
5677
5825
  options = BundleOptions(output_dir=output_dir, source=source)
5678
5826
 
5679
- return typing.cast(builtins.str, jsii.invoke(self, "bundle", [options]))
5827
+ return typing.cast("BundleResult", jsii.invoke(self, "bundle", [options]))
5680
5828
 
5681
5829
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
5682
5830
  typing.cast(typing.Any, IAssetBundler).__jsii_proxy_class__ = lambda : _IAssetBundlerProxy
@@ -12570,7 +12718,7 @@ class StagedAsset:
12570
12718
  asset ends up — a bucket name, an object key, a URL — is resolved at
12571
12719
  apply time and belongs on the publisher's own reference type instead.
12572
12720
 
12573
- :param asset_hash: (experimental) A hash on the content source. This hash is used to uniquely identify this asset throughout the system. If this value doesn't change, the asset will not be rebuilt or republished.
12721
+ :param asset_hash: (experimental) A hash on the content source, uniquely identifying this asset. The asset is not rebuilt or republished while this value is unchanged.
12574
12722
  :param is_directory: (experimental) Whether the staged artifact is a directory rather than a single file. Publishers branch on this to decide whether they upload one object or sync a tree; see ``IAssetPackaging.producesDirectory``.
12575
12723
  :param path: (experimental) The path to the staged artifact, relative to the stack directory.
12576
12724
 
@@ -12589,11 +12737,9 @@ class StagedAsset:
12589
12737
 
12590
12738
  @builtins.property
12591
12739
  def asset_hash(self) -> builtins.str:
12592
- '''(experimental) A hash on the content source.
12740
+ '''(experimental) A hash on the content source, uniquely identifying this asset.
12593
12741
 
12594
- This hash is used to uniquely identify this
12595
- asset throughout the system. If this value doesn't change, the asset will
12596
- not be rebuilt or republished.
12742
+ The asset is not rebuilt or republished while this value is unchanged.
12597
12743
 
12598
12744
  :stability: experimental
12599
12745
  '''
@@ -13498,7 +13644,7 @@ class TerraformAsset(
13498
13644
  :param path:
13499
13645
  :param asset_hash:
13500
13646
  :param asset_hash_type: (experimental) How the ``assetHash`` is derived. ``SOURCE`` (the default) hashes the source path. ``CUSTOM`` uses the ``assetHash`` value verbatim and requires it to be set. ``OUTPUT`` hashes the source too, unless a ``bundler`` is set — then it hashes the bundler's built output, which forces an eager build (see ``bundler``). If ``assetHash`` is set, this must be ``undefined`` or ``AssetHashType.CUSTOM``. Default: AssetHashType.SOURCE
13501
- :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Core ships no bundler; implement ``IAssetBundler`` or use one from a bundler package. Under the default ``SOURCE`` hashing the build is deferred to synth and stays skippable; ``OUTPUT`` hashing builds eagerly to hash the artifact. ``AssetType.FILE`` is rejected, since bundler output is always a directory. See ``AssetStagingOptions.bundler``. Default: - the source is staged verbatim, with no build step
13647
+ :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Core ships no bundler; implement ``IAssetBundler`` or use one from a bundler package. Under the default ``SOURCE`` hashing the build is deferred to synth and stays skippable; ``OUTPUT`` hashing builds eagerly to hash the artifact. The bundler's output shape must match ``type``. See ``AssetStagingOptions.bundler``. Default: - the source is staged verbatim, with no build step
13502
13648
  :param exclude: (experimental) Paths to exclude from the asset, relative to ``path``. See ``AssetStagingOptions.exclude`` for the accepted forms. Both the computed hash and the staged/packed content honor the exclusion. Default: - nothing is excluded
13503
13649
  :param extra_hash: (experimental) Extra information to fold into the hash (e.g. build instructions and other inputs). Default: - no extra hash
13504
13650
  :param type:
@@ -13524,11 +13670,10 @@ class TerraformAsset(
13524
13670
  @builtins.property
13525
13671
  @jsii.member(jsii_name="assetHash")
13526
13672
  def asset_hash(self) -> builtins.str:
13527
- '''(experimental) A hash of this asset, which is available at construction time.
13673
+ '''(experimental) A hash of this asset, available at construction time.
13528
13674
 
13529
- As this is a plain string, it
13530
- can be used in construct IDs in order to enforce creation of a new resource when the content
13531
- hash has changed.
13675
+ Being a plain string, it can be used in construct IDs to force a new
13676
+ resource when the content hash changes.
13532
13677
 
13533
13678
  :stability: experimental
13534
13679
  '''
@@ -13597,7 +13742,7 @@ class TerraformAssetConfig:
13597
13742
  :param path:
13598
13743
  :param asset_hash:
13599
13744
  :param asset_hash_type: (experimental) How the ``assetHash`` is derived. ``SOURCE`` (the default) hashes the source path. ``CUSTOM`` uses the ``assetHash`` value verbatim and requires it to be set. ``OUTPUT`` hashes the source too, unless a ``bundler`` is set — then it hashes the bundler's built output, which forces an eager build (see ``bundler``). If ``assetHash`` is set, this must be ``undefined`` or ``AssetHashType.CUSTOM``. Default: AssetHashType.SOURCE
13600
- :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Core ships no bundler; implement ``IAssetBundler`` or use one from a bundler package. Under the default ``SOURCE`` hashing the build is deferred to synth and stays skippable; ``OUTPUT`` hashing builds eagerly to hash the artifact. ``AssetType.FILE`` is rejected, since bundler output is always a directory. See ``AssetStagingOptions.bundler``. Default: - the source is staged verbatim, with no build step
13745
+ :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Core ships no bundler; implement ``IAssetBundler`` or use one from a bundler package. Under the default ``SOURCE`` hashing the build is deferred to synth and stays skippable; ``OUTPUT`` hashing builds eagerly to hash the artifact. The bundler's output shape must match ``type``. See ``AssetStagingOptions.bundler``. Default: - the source is staged verbatim, with no build step
13601
13746
  :param exclude: (experimental) Paths to exclude from the asset, relative to ``path``. See ``AssetStagingOptions.exclude`` for the accepted forms. Both the computed hash and the staged/packed content honor the exclusion. Default: - nothing is excluded
13602
13747
  :param extra_hash: (experimental) Extra information to fold into the hash (e.g. build instructions and other inputs). Default: - no extra hash
13603
13748
  :param type:
@@ -13671,8 +13816,8 @@ class TerraformAssetConfig:
13671
13816
  Core ships no bundler; implement ``IAssetBundler`` or use one from a bundler
13672
13817
  package. Under the default ``SOURCE`` hashing the build is deferred to synth
13673
13818
  and stays skippable; ``OUTPUT`` hashing builds eagerly to hash the artifact.
13674
- ``AssetType.FILE`` is rejected, since bundler output is always a directory.
13675
- See ``AssetStagingOptions.bundler``.
13819
+ The bundler's output shape must match ``type``. See
13820
+ ``AssetStagingOptions.bundler``.
13676
13821
 
13677
13822
  :default: - the source is staged verbatim, with no build step
13678
13823
 
@@ -20227,12 +20372,12 @@ class AssetStaging(
20227
20372
  :param id: -
20228
20373
  :param packaging: (experimental) How the staged result is produced and shaped. The caller decides this (e.g. from its own ``AssetType``) — ``AssetStaging`` never infers or changes it based on ``exclude``/``extraHash``.
20229
20374
  :param source_path: (experimental) Absolute path to the source file or directory. Resolving a relative path against ``cdktf.json`` is the caller's responsibility.
20230
- :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Under the default ``SOURCE`` hashing the build is deferred to ``stage()`` and stays skippable; ``OUTPUT`` hashing builds eagerly at construction time to hash the artifact, forgoing skippability. A bundler always produces a directory, so single-file packaging (``AssetType.FILE``) is rejected. Default: - the source is staged verbatim, with no build step
20375
+ :param bundler: (experimental) A bundler that builds the source into an artifact before staging. Under the default ``SOURCE`` hashing the build is deferred to ``stage()`` and stays skippable; ``OUTPUT`` hashing builds eagerly at construction time to hash the artifact, forgoing skippability. The bundler's declared output shape must match the packaging: a ``BundleResult.directory`` needs a directory-accepting packaging, a ``BundleResult.file`` a single-file one (``AssetType.FILE``). The mismatch is caught once the build runs. Default: - the source is staged verbatim, with no build step
20231
20376
  :param display_name: (experimental) Identifier used in error messages, so they name the user-facing construct (e.g. the ``TerraformAsset``) rather than this internal staging child. Default: - the staging construct's own id
20232
20377
  :param exclude: (experimental) Paths to exclude, relative to ``sourcePath``. Cannot be combined with ``ignoreStrategy``, which replaces this matcher rather than layering on top of it. Default: - nothing is excluded
20233
20378
  :param extra_hash: (experimental) Extra information to fold into the hash (e.g. build instructions and other inputs). Default: - no extra hash
20234
20379
  :param ignore_strategy: (experimental) Exclusion matching, for callers that need ``.gitignore`` / ``.dockerignore`` parity rather than the built-in exact-path / suffix / directory matcher. Default: - ``exclude`` is used with the built-in matcher
20235
- :param asset_hash: (experimental) Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. The value is used verbatim as the asset hash, and because it names the staged asset file it may only contain letters, digits, ``_``, ``.`` and ``-``. NOTE: the hash is used in order to identify a specific revision of the asset, and used for optimizing and caching deployment activities related to this asset such as packaging, uploading to cloud storage, etc. If you chose to customize the hash, you will need to make sure it is updated every time the asset changes, or otherwise it is possible that some deployments will not be invalidated. Default: - based on ``assetHashType``
20380
+ :param asset_hash: (experimental) Specify a custom hash for this asset. If ``assetHashType`` is set it must be set to ``AssetHashType.CUSTOM``. The value is used verbatim as the asset hash, and because it names the staged asset file it may only contain letters, digits, ``_``, ``.`` and ``-``. The hash identifies a specific revision of the asset and caches deployment work (packaging, uploading). A custom hash must be updated whenever the asset changes, or some deployments will not be invalidated. Default: - based on ``assetHashType``
20236
20381
  :param asset_hash_type: (experimental) Specifies the type of hash to calculate for this asset. If ``assetHash`` is configured, this option must be ``undefined`` or ``AssetHashType.CUSTOM``. Default: - the default is ``AssetHashType.SOURCE``, but if ``assetHash`` is explicitly specified this value defaults to ``AssetHashType.CUSTOM``.
20237
20382
 
20238
20383
  :stability: experimental
@@ -20275,11 +20420,10 @@ class AssetStaging(
20275
20420
  @builtins.property
20276
20421
  @jsii.member(jsii_name="assetHash")
20277
20422
  def asset_hash(self) -> builtins.str:
20278
- '''(experimental) A hash of this asset, which is available at construction time.
20423
+ '''(experimental) A hash of this asset, available at construction time.
20279
20424
 
20280
- As this is a plain string, it
20281
- can be used in construct IDs in order to enforce creation of a new resource when the content
20282
- hash has changed.
20425
+ Being a plain string, it can be used in construct IDs to force a new
20426
+ resource when the content hash changes.
20283
20427
 
20284
20428
  :stability: experimental
20285
20429
  '''
@@ -20619,6 +20763,111 @@ class BooleanMapMap(metaclass=jsii.JSIIMeta, jsii_type="cdktn.BooleanMapMap"):
20619
20763
  jsii.set(self, "terraformResource", value) # pyright: ignore[reportArgumentType]
20620
20764
 
20621
20765
 
20766
+ @jsii.implements(IAssetBundler)
20767
+ class ChainBundler(metaclass=jsii.JSIIMeta, jsii_type="cdktn.ChainBundler"):
20768
+ '''(experimental) Composes bundlers into a "try each in order until one runs" chain.
20769
+
20770
+ This is how a local bundler and a Docker bundler compose without being
20771
+ rewritten as one: each leg declines (``BundleResult.declined()``) when it
20772
+ cannot run here, and the chain moves to the next. The first non-declining
20773
+ result wins; if all decline, ``bundle`` throws, since staging has nothing to
20774
+ fall back to. Each leg builds into its own output directory, so a leg that
20775
+ writes before declining cannot leak partial files into the leg that wins.
20776
+
20777
+ The chain's ``bundlerKey`` folds in *every* leg's key, so identity is the same
20778
+ regardless of which leg ends up running — a build that could have gone local
20779
+ or Docker is one asset, not two.
20780
+
20781
+ This makes the legs interchangeable only if they produce equivalent output.
20782
+ Under ``SOURCE`` hashing they must: a machine with a host tool and one without
20783
+ run different legs, and non-equivalent legs would stage different bytes under
20784
+ the same hash. Use ``OUTPUT`` hashing when legs may diverge, so identity tracks
20785
+ the artifact each leg actually produced.
20786
+
20787
+ :stability: experimental
20788
+ '''
20789
+
20790
+ @jsii.member(jsii_name="of")
20791
+ @builtins.classmethod
20792
+ def of(cls, *bundlers: "IAssetBundler") -> "ChainBundler":
20793
+ '''(experimental) Chain bundlers in the order given;
20794
+
20795
+ earlier bundlers are preferred.
20796
+
20797
+ :param bundlers: -
20798
+
20799
+ :stability: experimental
20800
+ '''
20801
+ if __debug__:
20802
+ type_hints = cached_type_hints(_typecheckingstub__f90bbf7276852d6eae454e98f7945b00bbfa6b5451b7f6bda28e77371cec3e96)
20803
+ check_type(argname="argument bundlers", value=bundlers, expected_type=typing.Tuple[type_hints["bundlers"], ...]) # pyright: ignore [reportGeneralTypeIssues]
20804
+ return typing.cast("ChainBundler", jsii.sinvoke(cls, "of", [*bundlers]))
20805
+
20806
+ @jsii.member(jsii_name="bundle")
20807
+ def bundle(
20808
+ self,
20809
+ *,
20810
+ output_dir: builtins.str,
20811
+ source: builtins.str,
20812
+ ) -> "BundleResult":
20813
+ '''(experimental) Produce the artifact and return a {@link BundleResult} describing it.
20814
+
20815
+ Implementations write into ``options.outputDir`` and never write back to
20816
+ ``options.source``. The returned path must exist and match its declared
20817
+ shape, or staging rejects it.
20818
+
20819
+ A bundler that cannot run in this environment returns
20820
+ ``BundleResult.declined()`` so a {@link ChainBundler} can fall through to
20821
+ the next; a thrown error is a hard failure, not a decline.
20822
+
20823
+ :param output_dir: (experimental) A scratch directory the bundler may write into, owned and created by the caller. The bundler produces its output here (or in a subdirectory) and returns a {@link BundleResult} pointing at the finished artifact — see {@link IAssetBundler.bundle}.
20824
+ :param source: (experimental) Absolute path to the asset's source file or directory. The bundler reads from here and must not modify it. Exclusions (``exclude`` / ``ignoreStrategy``) are already applied: when any are configured this points at a filtered copy, not the original tree, so the bundler reads exactly the file set the asset hash was taken over.
20825
+
20826
+ :stability: experimental
20827
+ '''
20828
+ options = BundleOptions(output_dir=output_dir, source=source)
20829
+
20830
+ return typing.cast("BundleResult", jsii.invoke(self, "bundle", [options]))
20831
+
20832
+ @builtins.property
20833
+ @jsii.member(jsii_name="bundlerKey")
20834
+ def bundler_key(self) -> typing.Optional[builtins.str]:
20835
+ '''(experimental) A value identifying the build, folded into the asset hash.
20836
+
20837
+ The source tree alone cannot see the build, so swapping a ``node:18`` base
20838
+ image for ``node:20`` would otherwise leave identity unchanged. Under
20839
+ ``SOURCE`` hashing this is the only channel by which the build reaches
20840
+ identity, so it must serialize every input that can move the output, or a
20841
+ changed build silently reuses a stale artifact. {@link BundlerKey} builds
20842
+ one from an ordered set of parts.
20843
+
20844
+ Mirrors {@link IIgnoreStrategy.cacheKey}: omit it when the build cannot be
20845
+ summarized as a string, and fall back to ``extraHash``.
20846
+
20847
+ :stability: experimental
20848
+ '''
20849
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "bundlerKey"))
20850
+
20851
+ @builtins.property
20852
+ @jsii.member(jsii_name="outputFileName")
20853
+ def output_file_name(self) -> typing.Optional[builtins.str]:
20854
+ '''(experimental) The name a single-file artifact is staged under (e.g. ``archive.zip``).
20855
+
20856
+ A file-producing bundler (``BundleResult.file``) staged with
20857
+ ``AssetType.FILE`` would otherwise take the source path's basename, which is
20858
+ a directory name when the source is a directory. Declaring the name here
20859
+ lets the artifact reflect what the bundler produces. It is static
20860
+ configuration, needed at construction before a deferred ``SOURCE`` build
20861
+ runs, not the file's runtime name.
20862
+
20863
+ Valid only for a file-producing bundler: setting it with a directory
20864
+ packaging (anything but ``AssetType.FILE``) is rejected at construction.
20865
+
20866
+ :stability: experimental
20867
+ '''
20868
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "outputFileName"))
20869
+
20870
+
20622
20871
  @jsii.implements(IInterpolatingParent, IResolvable, ITerraformAddressable)
20623
20872
  class ComplexComputedList(
20624
20873
  metaclass=jsii.JSIIMeta,
@@ -29607,7 +29856,10 @@ __all__ = [
29607
29856
  "BooleanMapList",
29608
29857
  "BooleanMapMap",
29609
29858
  "BundleOptions",
29859
+ "BundleOutputType",
29860
+ "BundleResult",
29610
29861
  "BundlerKey",
29862
+ "ChainBundler",
29611
29863
  "CloudBackend",
29612
29864
  "CloudBackendConfig",
29613
29865
  "CloudWorkspace",
@@ -29968,6 +30220,18 @@ def _typecheckingstub__e4984c7b158b6fd9f304d19bf1be6b525991aa5c57db01aa1dd6d282c
29968
30220
  """Type checking stubs"""
29969
30221
  pass
29970
30222
 
30223
+ def _typecheckingstub__cb448e5d937b8e66717fe97ab740ea1924edd313428fa2e65c41a3f2d7c1a24c(
30224
+ path: builtins.str,
30225
+ ) -> None:
30226
+ """Type checking stubs"""
30227
+ pass
30228
+
30229
+ def _typecheckingstub__e6adf0d1d61dee6269a50f7bde47aef784df796b53286fb04ab6c071a75d6975(
30230
+ path: builtins.str,
30231
+ ) -> None:
30232
+ """Type checking stubs"""
30233
+ pass
30234
+
29971
30235
  def _typecheckingstub__76b2ba8d3e61fcbea83025fd36866ed49e2970a52cbe09f43be16a01cf5a6858(
29972
30236
  *parts: builtins.str,
29973
30237
  ) -> None:
@@ -33446,6 +33710,12 @@ def _typecheckingstub__fc66bb069d4f417396a421b3c709177b54ebf2b757f3965e92709f83a
33446
33710
  """Type checking stubs"""
33447
33711
  pass
33448
33712
 
33713
+ def _typecheckingstub__f90bbf7276852d6eae454e98f7945b00bbfa6b5451b7f6bda28e77371cec3e96(
33714
+ *bundlers: IAssetBundler,
33715
+ ) -> None:
33716
+ """Type checking stubs"""
33717
+ pass
33718
+
33449
33719
  def _typecheckingstub__383f75d3115cefe50368b79b9cef65b6997c768310bb192c74f470cf288d8b78(
33450
33720
  terraform_resource: IInterpolatingParent,
33451
33721
  terraform_attribute: builtins.str,
@@ -21,7 +21,7 @@ _SUBMODULE_FQN_MAP = {
21
21
  }
22
22
 
23
23
  __jsii_assembly__ = jsii.JSIIAssembly.load(
24
- "cdktn", "0.25.0-pre.39", __name__[0:-6], "cdktn@0.25.0-pre.39.jsii.tgz"
24
+ "cdktn", "0.25.0-pre.40", __name__[0:-6], "cdktn@0.25.0-pre.40.jsii.tgz"
25
25
  )
26
26
 
27
27
  __all__ = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cdktn
3
- Version: 0.25.0.dev39
3
+ Version: 0.25.0.dev40
4
4
  Summary: Cloud Development Kit for Terraform
5
5
  Home-page: https://github.com/open-constructs/cdk-terrain
6
6
  Author: OpenConstructs
@@ -11,5 +11,5 @@ src/cdktn.egg-info/dependency_links.txt
11
11
  src/cdktn.egg-info/requires.txt
12
12
  src/cdktn.egg-info/top_level.txt
13
13
  src/cdktn/_jsii/__init__.py
14
- src/cdktn/_jsii/cdktn@0.25.0-pre.39.jsii.tgz
14
+ src/cdktn/_jsii/cdktn@0.25.0-pre.40.jsii.tgz
15
15
  src/cdktn/testing_matchers/__init__.py
File without changes
File without changes
File without changes
File without changes