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.
- {cdktn-0.25.0.dev39/src/cdktn.egg-info → cdktn-0.25.0.dev40}/PKG-INFO +1 -1
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/setup.py +2 -2
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn/__init__.py +370 -100
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn/_jsii/__init__.py +1 -1
- cdktn-0.25.0.dev40/src/cdktn/_jsii/cdktn@0.25.0-pre.40.jsii.tgz +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40/src/cdktn.egg-info}/PKG-INFO +1 -1
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn.egg-info/SOURCES.txt +1 -1
- cdktn-0.25.0.dev39/src/cdktn/_jsii/cdktn@0.25.0-pre.39.jsii.tgz +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/LICENSE +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/MANIFEST.in +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/README.md +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/pyproject.toml +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/setup.cfg +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn/py.typed +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn/testing_matchers/__init__.py +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn.egg-info/dependency_links.txt +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn.egg-info/requires.txt +0 -0
- {cdktn-0.25.0.dev39 → cdktn-0.25.0.dev40}/src/cdktn.egg-info/top_level.txt +0 -0
|
@@ -5,7 +5,7 @@ kwargs = json.loads(
|
|
|
5
5
|
"""
|
|
6
6
|
{
|
|
7
7
|
"name": "cdktn",
|
|
8
|
-
"version": "0.25.0.
|
|
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.
|
|
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
|
-
|
|
639
|
-
|
|
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``
|
|
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
|
|
657
|
-
|
|
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)
|
|
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 ``-``.
|
|
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
|
-
|
|
707
|
-
|
|
708
|
-
|
|
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 ``-``.
|
|
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.
|
|
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
|
-
|
|
868
|
-
|
|
869
|
-
|
|
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.
|
|
931
|
-
|
|
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
|
|
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
|
|
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
|
|
1571
|
-
|
|
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,
|
|
5613
|
+
'''(experimental) A hash of this asset, available at construction time.
|
|
5518
5614
|
|
|
5519
|
-
|
|
5520
|
-
|
|
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,
|
|
5634
|
+
'''(experimental) A hash of this asset, available at construction time.
|
|
5540
5635
|
|
|
5541
|
-
|
|
5542
|
-
|
|
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
|
|
5559
|
-
|
|
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
|
|
5562
|
-
|
|
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.
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
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(
|
|
5600
|
-
|
|
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
|
|
5603
|
-
|
|
5604
|
-
|
|
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
|
-
|
|
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
|
|
5621
|
-
|
|
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
|
|
5624
|
-
|
|
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.
|
|
5645
|
-
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
|
|
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(
|
|
5664
|
-
|
|
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
|
-
|
|
5667
|
-
|
|
5668
|
-
|
|
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
|
|
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(
|
|
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
|
|
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
|
-
|
|
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.
|
|
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,
|
|
13673
|
+
'''(experimental) A hash of this asset, available at construction time.
|
|
13528
13674
|
|
|
13529
|
-
|
|
13530
|
-
|
|
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.
|
|
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
|
-
|
|
13675
|
-
|
|
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.
|
|
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 ``-``.
|
|
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,
|
|
20423
|
+
'''(experimental) A hash of this asset, available at construction time.
|
|
20279
20424
|
|
|
20280
|
-
|
|
20281
|
-
|
|
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,
|
|
Binary file
|
|
@@ -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.
|
|
14
|
+
src/cdktn/_jsii/cdktn@0.25.0-pre.40.jsii.tgz
|
|
15
15
|
src/cdktn/testing_matchers/__init__.py
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|