@go-to-k/cdkd 0.313.0 → 0.315.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{asg-provider-CqPtIngx.js → asg-provider-DpNkEibf.js} +43 -7
- package/dist/asg-provider-DpNkEibf.js.map +1 -0
- package/dist/{aws-failure-text-NSBdKPYK.js → aws-failure-text-agWtoyga.js} +5 -2
- package/dist/{aws-failure-text-NSBdKPYK.js.map → aws-failure-text-agWtoyga.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{created-resource-sink-BT2Dfnpt.js → created-resource-sink-QECX8C-Z.js} +3 -3
- package/dist/{created-resource-sink-BT2Dfnpt.js.map → created-resource-sink-QECX8C-Z.js.map} +1 -1
- package/dist/db-instance-modify-retry-B1NRKBSQ.js +44 -0
- package/dist/db-instance-modify-retry-B1NRKBSQ.js.map +1 -0
- package/dist/{deploy-engine-CwpnkMCZ.js → deploy-engine--bCIMkkk.js} +407 -104
- package/dist/deploy-engine--bCIMkkk.js.map +1 -0
- package/dist/{iam-role-provider-ARR3C50J.js → iam-role-provider-s5--ZmBZ.js} +4 -4
- package/dist/{iam-role-provider-ARR3C50J.js.map → iam-role-provider-s5--ZmBZ.js.map} +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/{neptune-provider-DfPOAG0q.js → neptune-provider-BNxotnbp.js} +375 -20
- package/dist/neptune-provider-BNxotnbp.js.map +1 -0
- package/dist/{program-CMP_YVVn.js → program-CMtAmRyw.js} +38 -15
- package/dist/program-CMtAmRyw.js.map +1 -0
- package/dist/{provider-classes-DefoNqY7.js → provider-classes-B8kkAZqJ.js} +911 -238
- package/dist/provider-classes-B8kkAZqJ.js.map +1 -0
- package/dist/{rds-provider-Dn-7U1CR.js → rds-provider-Cm3dsmFW.js} +47 -7
- package/dist/rds-provider-Cm3dsmFW.js.map +1 -0
- package/dist/{version-CsWxTnUg.js → version-Caty7J3x.js} +2 -2
- package/dist/{version-CsWxTnUg.js.map → version-Caty7J3x.js.map} +1 -1
- package/package.json +1 -1
- package/dist/asg-provider-CqPtIngx.js.map +0 -1
- package/dist/db-instance-modify-retry-D7wXWxVo.js +0 -38
- package/dist/db-instance-modify-retry-D7wXWxVo.js.map +0 -1
- package/dist/deploy-engine-CwpnkMCZ.js.map +0 -1
- package/dist/neptune-provider-DfPOAG0q.js.map +0 -1
- package/dist/program-CMP_YVVn.js.map +0 -1
- package/dist/provider-classes-DefoNqY7.js.map +0 -1
- package/dist/rds-provider-Dn-7U1CR.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { c as __exportAll, r as getAwsClients } from "./aws-clients-Bu9EMILF.js";
|
|
2
|
-
import {
|
|
3
|
-
import { $n as plainOrDescribed, $t as formatLockOperation, A as withoutServerErrorRetries, Ar as markNonRetryable, At as createMaskedLogSinks, B as quotedRemedyLogicalId, Bt as createdResourceIdentityBeforeFailure, Cn as DynamicReferenceRegionAmbiguousError, Cr as isIamPropagationError, Ct as compositeIdSeparatorRefusal, Dn as LockError, Dt as resourceTypeShown, Er as retryClassificationText, Ft as withDerivedNameMasks, G as ProtectionFlipRegistry, Gn as SHELL_ACTIVE, Gt as markCreatedBeforeFailure, Hn as normalizeAwsError, Ht as isAuxiliaryFailure, It as RETRY_AUXILIARY_OWNER, J as deleteWithProtectionCompensation, Jn as commandHole, Jt as UNREPRODUCIBLE_LOCK_CLAUSE, K as compensateProtectionFlip, Kn as SHELL_ACTIVE_WHY, Ln as StateError, Lt as carryCreatedBeforeFailure, M as isMarkedNotGone, Mn as ProvisioningError, Mr as wrapMaskedAwsError, Mt as isSecretDerivedValue, N as markNotGone, Nn as ResourceTimeoutError, Nt as maskDeep, On as MacroExpansionError, Or as isMarkedNonRetryable, Ot as segmentAfterAnchor, P as assertRegionMatch, Pn as ResourceUpdateNotSupportedError, Pt as maskerOrIdentity, Q as isTerminalDeleteFailure, Qn as physicalIdShownBesideCommand, Qt as formatLockExpiry, R as isQuotableImportValue, Rn as SynthesisError, Sn as DeploymentNotApprovedError, Tr as isTransientServerError, Tt as logicalIdShown, U as resolveExplicitPhysicalId, Ut as isAuxiliaryMarkOf, V as refusalTypeShown, Vn as isSoftAbort, Vt as hasCreatedBeforeFailure, Wt as markAuxiliaryFailure, Xn as isInertUnquoted, Yt as buildForceUnlockCommand, Zn as pasteableCommand, _ as removalWarning, _n as CdkdError, a as retractCreatedResource, an as injectiveKey, b as withoutInjectedRemovals, bn as DependencyError, br as isAmbiguousCcHandlerErrorCode, bt as startInterruptWatch, cn as producerRecordKey, cr as isNameCollisionErrorFrom, dn as ambientClientDefaults, dr as isReplayedNameCollisionFrom, dt as protectedReplacementAdvice, en as formatLockOwner, er as quotedOrDescribed, et as observeThenDisableProtection, fn as ambientCredentialConfig, g as prepareRemovalForUpdate, gn as AssetError, gr as stripControlChars, hn as AccountIdUnavailableError, hr as escapeRegExp$3, ht as monotonicNowMs, i as reportCreatedResource, in as DEFAULT_STATE_PREFIX, j as RESOURCE_NOT_FOUND, jr as markRedactedCause, jt as createMaskedRetryLogger, kn as MalformedProducerRecordRefusalError, kr as isThrottlingError, kt as stateOrphanRecordRemedy, l as holdsSecretDerivedEntry, lr as isNameCooldownError, m as withUnchangedSecretPrincipalLists, mn as credentialFingerprint, mr as relayedNameCollision, mt as ElapsedBudgetRegistry, n as clearCreatedReport, nn as sanitizeRecoveryValue, nr as shellQuote, or as isUpdateUnsupportedError, ot as DELETION_PROTECTION_DOC_POINTER, pn as clientDefaultsFor, pr as markReplayMayCollide, qn as UNSHOWABLE_VALUE, qt as replayMadeAnotherResource, r as collectCreatedResources, rn as CUSTOM_RESOURCE_RESPONSE_PREFIX, rr as withheldTargetClause, rt as runDeleteAttempt, sr as hasReplayMayCollide, t as CreatedResourceSink, tn as recoveryCommandFlags, tr as shellBoundedDisplay, tt as protectionFlipKey, un as withPasteableAwsProfile, ur as isRecreateRetryableError, ut as pasteableAwsCommand, wn as IntrinsicResolutionRefusalError, wr as isRetryableTransientError, xr as isAmbiguousOutcomeError, xt as canonicalizeRoute53QueryName, yn as CrossAccountSecretRefusalError, yr as formatRetryClassificationSignals, yt as isInterruptedWaitError, z as normalizeAwsTagsToCfn, zt as createdBeforeFailure } from "./created-resource-sink-
|
|
2
|
+
import { $ as safeMsg, B as SAFE_MSG_ALTERED_CHAR, C as fallbackNamePropertyFor, D as getCurrentSkipPrefix, E as generatedNameFor, F as withNameGeneration, H as STACK_REF_MAX_CODE_POINTS, I as withSkipPrefix, J as displaySafe, K as displayAwsMessage, L as withStackScope, M as looksLikeCdkdGeneratedName, O as getCurrentStackInstanceId, P as stackInstanceNameSuffix, Q as plainIdentOr, R as withStackScopeBeforeStateRead, S as explicitNamePropertyFor, T as generateResourceNameWithFallback, U as UNRENDERABLE, V as SECRET_REF_MAX_CODE_POINTS, W as asIsMessage, X as isPasteableIdent, Y as displayStackName, a as safeStringify$1, b as currentNameGeneration, c as isStdoutReservedForPayload, f as currentLogLineMasker, j as isNameGeneration, k as getCurrentStackName, m as getLiveRenderer, n as describeAwsFailure, nt as truncateCodePoints, p as installLogLineMaskerSource, q as displayIdent, s as getLogger, t as VERBOSE_POINTER, tt as terminalSafe, v as alternateNamePropertiesFor, y as applyDefaultNameForFallback, z as withoutGeneratedFallbackName } from "./aws-failure-text-agWtoyga.js";
|
|
3
|
+
import { $n as plainOrDescribed, $t as formatLockOperation, A as withoutServerErrorRetries, Ar as markNonRetryable, At as createMaskedLogSinks, B as quotedRemedyLogicalId, Bt as createdResourceIdentityBeforeFailure, Cn as DynamicReferenceRegionAmbiguousError, Cr as isIamPropagationError, Ct as compositeIdSeparatorRefusal, Dn as LockError, Dt as resourceTypeShown, Er as retryClassificationText, Ft as withDerivedNameMasks, G as ProtectionFlipRegistry, Gn as SHELL_ACTIVE, Gt as markCreatedBeforeFailure, Hn as normalizeAwsError, Ht as isAuxiliaryFailure, It as RETRY_AUXILIARY_OWNER, J as deleteWithProtectionCompensation, Jn as commandHole, Jt as UNREPRODUCIBLE_LOCK_CLAUSE, K as compensateProtectionFlip, Kn as SHELL_ACTIVE_WHY, Ln as StateError, Lt as carryCreatedBeforeFailure, M as isMarkedNotGone, Mn as ProvisioningError, Mr as wrapMaskedAwsError, Mt as isSecretDerivedValue, N as markNotGone, Nn as ResourceTimeoutError, Nt as maskDeep, On as MacroExpansionError, Or as isMarkedNonRetryable, Ot as segmentAfterAnchor, P as assertRegionMatch, Pn as ResourceUpdateNotSupportedError, Pt as maskerOrIdentity, Q as isTerminalDeleteFailure, Qn as physicalIdShownBesideCommand, Qt as formatLockExpiry, R as isQuotableImportValue, Rn as SynthesisError, Sn as DeploymentNotApprovedError, Tr as isTransientServerError, Tt as logicalIdShown, U as resolveExplicitPhysicalId, Ut as isAuxiliaryMarkOf, V as refusalTypeShown, Vn as isSoftAbort, Vt as hasCreatedBeforeFailure, Wt as markAuxiliaryFailure, Xn as isInertUnquoted, Yt as buildForceUnlockCommand, Zn as pasteableCommand, _ as removalWarning, _n as CdkdError, a as retractCreatedResource, an as injectiveKey, b as withoutInjectedRemovals, bn as DependencyError, br as isAmbiguousCcHandlerErrorCode, bt as startInterruptWatch, cn as producerRecordKey, cr as isNameCollisionErrorFrom, dn as ambientClientDefaults, dr as isReplayedNameCollisionFrom, dt as protectedReplacementAdvice, en as formatLockOwner, er as quotedOrDescribed, et as observeThenDisableProtection, fn as ambientCredentialConfig, g as prepareRemovalForUpdate, gn as AssetError, gr as stripControlChars, hn as AccountIdUnavailableError, hr as escapeRegExp$3, ht as monotonicNowMs, i as reportCreatedResource, in as DEFAULT_STATE_PREFIX, j as RESOURCE_NOT_FOUND, jr as markRedactedCause, jt as createMaskedRetryLogger, kn as MalformedProducerRecordRefusalError, kr as isThrottlingError, kt as stateOrphanRecordRemedy, l as holdsSecretDerivedEntry, lr as isNameCooldownError, m as withUnchangedSecretPrincipalLists, mn as credentialFingerprint, mr as relayedNameCollision, mt as ElapsedBudgetRegistry, n as clearCreatedReport, nn as sanitizeRecoveryValue, nr as shellQuote, or as isUpdateUnsupportedError, ot as DELETION_PROTECTION_DOC_POINTER, pn as clientDefaultsFor, pr as markReplayMayCollide, pt as ElapsedBudget, qn as UNSHOWABLE_VALUE, qt as replayMadeAnotherResource, r as collectCreatedResources, rn as CUSTOM_RESOURCE_RESPONSE_PREFIX, rr as withheldTargetClause, rt as runDeleteAttempt, sr as hasReplayMayCollide, t as CreatedResourceSink, tn as recoveryCommandFlags, tr as shellBoundedDisplay, tt as protectionFlipKey, un as withPasteableAwsProfile, ur as isRecreateRetryableError, ut as pasteableAwsCommand, wn as IntrinsicResolutionRefusalError, wr as isRetryableTransientError, xr as isAmbiguousOutcomeError, xt as canonicalizeRoute53QueryName, yn as CrossAccountSecretRefusalError, yr as formatRetryClassificationSignals, yt as isInterruptedWaitError, z as normalizeAwsTagsToCfn, zt as createdBeforeFailure } from "./created-resource-sink-QECX8C-Z.js";
|
|
4
4
|
import { a as setAssumedRoleCredentials, c as ambientRegion, i as getPreAssumeEnvCredentials, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, s as quietS3Logger, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-BX9Y_fKp.js";
|
|
5
|
-
import { t as getCdkdVersion } from "./version-
|
|
5
|
+
import { t as getCdkdVersion } from "./version-Caty7J3x.js";
|
|
6
6
|
import { createHash, randomUUID } from "node:crypto";
|
|
7
7
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
8
8
|
import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketReplicationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketLifecycleConfigurationCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -12780,8 +12780,14 @@ var ReplacementRulesRegistry = class {
|
|
|
12780
12780
|
}
|
|
12781
12781
|
initializeRules() {
|
|
12782
12782
|
this.rules.set("AWS::S3::Bucket", {
|
|
12783
|
-
replacementProperties: /* @__PURE__ */ new Set([
|
|
12783
|
+
replacementProperties: /* @__PURE__ */ new Set([
|
|
12784
|
+
"BucketName",
|
|
12785
|
+
"BucketNamePrefix",
|
|
12786
|
+
"BucketNamespace"
|
|
12787
|
+
]),
|
|
12784
12788
|
updateableProperties: /* @__PURE__ */ new Set([
|
|
12789
|
+
"AbacStatus",
|
|
12790
|
+
"MetadataConfiguration",
|
|
12785
12791
|
"Tags",
|
|
12786
12792
|
"VersioningConfiguration",
|
|
12787
12793
|
"LifecycleConfiguration",
|
|
@@ -14669,6 +14675,7 @@ function generatedReplacementName(resourceType, createdVia, desired, logicalId)
|
|
|
14669
14675
|
const value = desired?.[property];
|
|
14670
14676
|
return value !== void 0 && value !== null && value !== "";
|
|
14671
14677
|
};
|
|
14678
|
+
if (alternateNamePropertiesFor(resourceType).some(declared)) return void 0;
|
|
14672
14679
|
const fallbackProperty = fallbackNamePropertyFor(resourceType);
|
|
14673
14680
|
if (createdVia === "cc-api" || GENERATED_NAME_VERBATIM.has(resourceType)) {
|
|
14674
14681
|
if (fallbackProperty === void 0 || declared(fallbackProperty)) return void 0;
|
|
@@ -14809,7 +14816,7 @@ function holderVerdict(input, v) {
|
|
|
14809
14816
|
generatedName = wantName !== void 0;
|
|
14810
14817
|
}
|
|
14811
14818
|
const derived = ownEntry$1(DERIVED_GENERATED_NAMES, oldResourceType);
|
|
14812
|
-
const derivedName = namePath === void 0 && v.derivedNames && derived !== void 0 && input.createdVia !== "cc-api" && typeof input.logicalId === "string" && input.logicalId !== "" ? derived.derive(input.logicalId) : "";
|
|
14819
|
+
const derivedName = namePath === void 0 && v.derivedNames && derived !== void 0 && !alternateNamePropertiesFor(oldResourceType).some((p) => input.requested[p] !== void 0) && input.createdVia !== "cc-api" && typeof input.logicalId === "string" && input.logicalId !== "" ? derived.derive(input.logicalId) : "";
|
|
14813
14820
|
if (derivedName !== "") {
|
|
14814
14821
|
namePath = oldKey.name[0];
|
|
14815
14822
|
wantName = derivedName;
|
|
@@ -16221,6 +16228,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16221
16228
|
handled: /* @__PURE__ */ new Set([
|
|
16222
16229
|
"AutoScalingGroupName",
|
|
16223
16230
|
"AvailabilityZoneDistribution",
|
|
16231
|
+
"AvailabilityZoneIds",
|
|
16224
16232
|
"AvailabilityZoneImpairmentPolicy",
|
|
16225
16233
|
"AvailabilityZones",
|
|
16226
16234
|
"CapacityRebalance",
|
|
@@ -16234,6 +16242,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16234
16242
|
"DesiredCapacityType",
|
|
16235
16243
|
"HealthCheckGracePeriod",
|
|
16236
16244
|
"HealthCheckType",
|
|
16245
|
+
"InstanceLifecyclePolicy",
|
|
16237
16246
|
"InstanceMaintenancePolicy",
|
|
16238
16247
|
"LaunchTemplate",
|
|
16239
16248
|
"LifecycleHookSpecificationList",
|
|
@@ -16245,6 +16254,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16245
16254
|
"MixedInstancesPolicy",
|
|
16246
16255
|
"NewInstancesProtectedFromScaleIn",
|
|
16247
16256
|
"NotificationConfigurations",
|
|
16257
|
+
"PlacementGroup",
|
|
16248
16258
|
"ServiceLinkedRoleARN",
|
|
16249
16259
|
"SkipZonalShiftValidation",
|
|
16250
16260
|
"Tags",
|
|
@@ -16254,12 +16264,9 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16254
16264
|
"VPCZoneIdentifier"
|
|
16255
16265
|
]),
|
|
16256
16266
|
silentDrop: /* @__PURE__ */ new Map([
|
|
16257
|
-
["
|
|
16258
|
-
["InstanceId", "not yet implemented by cdkd"],
|
|
16259
|
-
["InstanceLifecyclePolicy", "not yet implemented by cdkd"],
|
|
16267
|
+
["InstanceId", "CreateAutoScalingGroup derives a new launch configuration from the instance, and AWS Launch Configurations are end-of-life 2024-10 like LaunchConfigurationName; use LaunchTemplate instead"],
|
|
16260
16268
|
["LaunchConfigurationName", "AWS Launch Configurations end-of-life 2024-10; use LaunchTemplate instead"],
|
|
16261
|
-
["NotificationConfiguration", "Legacy singular form; use NotificationConfigurations (plural) which cdkd already wires"]
|
|
16262
|
-
["PlacementGroup", "not yet implemented by cdkd"]
|
|
16269
|
+
["NotificationConfiguration", "Legacy singular form; use NotificationConfigurations (plural) which cdkd already wires"]
|
|
16263
16270
|
]),
|
|
16264
16271
|
createOnlyDrops: /* @__PURE__ */ new Set(["InstanceId"]),
|
|
16265
16272
|
readOnly: /* @__PURE__ */ new Set(["AutoScalingGroupARN"]),
|
|
@@ -16570,6 +16577,8 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16570
16577
|
"EmailVerificationMessage",
|
|
16571
16578
|
"EmailVerificationSubject",
|
|
16572
16579
|
"EnabledMfas",
|
|
16580
|
+
"IssuerConfiguration",
|
|
16581
|
+
"KeyConfiguration",
|
|
16573
16582
|
"LambdaConfig",
|
|
16574
16583
|
"MfaConfiguration",
|
|
16575
16584
|
"Policies",
|
|
@@ -16589,7 +16598,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16589
16598
|
"WebAuthnRelyingPartyID",
|
|
16590
16599
|
"WebAuthnUserVerification"
|
|
16591
16600
|
]),
|
|
16592
|
-
silentDrop: /* @__PURE__ */ new Map(
|
|
16601
|
+
silentDrop: /* @__PURE__ */ new Map(),
|
|
16593
16602
|
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
16594
16603
|
readOnly: /* @__PURE__ */ new Set([
|
|
16595
16604
|
"Arn",
|
|
@@ -16621,44 +16630,40 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16621
16630
|
}],
|
|
16622
16631
|
["AWS::DocDB::DBCluster", {
|
|
16623
16632
|
handled: /* @__PURE__ */ new Set([
|
|
16633
|
+
"AvailabilityZones",
|
|
16624
16634
|
"BackupRetentionPeriod",
|
|
16635
|
+
"CopyTagsToSnapshot",
|
|
16625
16636
|
"DBClusterIdentifier",
|
|
16626
16637
|
"DBClusterParameterGroupName",
|
|
16627
16638
|
"DBSubnetGroupName",
|
|
16628
16639
|
"DeletionProtection",
|
|
16640
|
+
"EnableCloudwatchLogsExports",
|
|
16629
16641
|
"EngineVersion",
|
|
16630
16642
|
"KmsKeyId",
|
|
16643
|
+
"ManageMasterUserPassword",
|
|
16631
16644
|
"MasterUsername",
|
|
16632
16645
|
"MasterUserPassword",
|
|
16646
|
+
"MasterUserSecretKmsKeyId",
|
|
16647
|
+
"NetworkType",
|
|
16633
16648
|
"Port",
|
|
16634
16649
|
"PreferredBackupWindow",
|
|
16635
16650
|
"PreferredMaintenanceWindow",
|
|
16651
|
+
"RotateMasterUserPassword",
|
|
16652
|
+
"ServerlessV2ScalingConfiguration",
|
|
16636
16653
|
"StorageEncrypted",
|
|
16654
|
+
"StorageType",
|
|
16637
16655
|
"Tags",
|
|
16638
16656
|
"VpcSecurityGroupIds"
|
|
16639
16657
|
]),
|
|
16640
16658
|
silentDrop: /* @__PURE__ */ new Map([
|
|
16641
|
-
["AvailabilityZones", "not yet implemented by cdkd"],
|
|
16642
|
-
["CopyTagsToSnapshot", "not yet implemented by cdkd"],
|
|
16643
|
-
["EnableCloudwatchLogsExports", "not yet implemented by cdkd"],
|
|
16644
16659
|
["GlobalClusterIdentifier", "not yet implemented by cdkd"],
|
|
16645
|
-
["ManageMasterUserPassword", "not yet implemented by cdkd"],
|
|
16646
|
-
["MasterUserSecretKmsKeyId", "not yet implemented by cdkd"],
|
|
16647
|
-
["NetworkType", "not yet implemented by cdkd"],
|
|
16648
16660
|
["RestoreToTime", "not yet implemented by cdkd"],
|
|
16649
16661
|
["RestoreType", "not yet implemented by cdkd"],
|
|
16650
|
-
["RotateMasterUserPassword", "not yet implemented by cdkd"],
|
|
16651
|
-
["ServerlessV2ScalingConfiguration", "not yet implemented by cdkd"],
|
|
16652
16662
|
["SnapshotIdentifier", "not yet implemented by cdkd"],
|
|
16653
16663
|
["SourceDBClusterIdentifier", "not yet implemented by cdkd"],
|
|
16654
|
-
["StorageType", "not yet implemented by cdkd"],
|
|
16655
16664
|
["UseLatestRestorableTime", "not yet implemented by cdkd"]
|
|
16656
16665
|
]),
|
|
16657
|
-
createOnlyDrops: /* @__PURE__ */ new Set([
|
|
16658
|
-
"AvailabilityZones",
|
|
16659
|
-
"SnapshotIdentifier",
|
|
16660
|
-
"SourceDBClusterIdentifier"
|
|
16661
|
-
]),
|
|
16666
|
+
createOnlyDrops: /* @__PURE__ */ new Set(["SnapshotIdentifier", "SourceDBClusterIdentifier"]),
|
|
16662
16667
|
readOnly: /* @__PURE__ */ new Set([
|
|
16663
16668
|
"ClusterResourceId",
|
|
16664
16669
|
"Endpoint",
|
|
@@ -16672,17 +16677,16 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16672
16677
|
handled: /* @__PURE__ */ new Set([
|
|
16673
16678
|
"AutoMinorVersionUpgrade",
|
|
16674
16679
|
"AvailabilityZone",
|
|
16680
|
+
"CACertificateIdentifier",
|
|
16681
|
+
"CertificateRotationRestart",
|
|
16675
16682
|
"DBClusterIdentifier",
|
|
16676
16683
|
"DBInstanceClass",
|
|
16677
16684
|
"DBInstanceIdentifier",
|
|
16685
|
+
"EnablePerformanceInsights",
|
|
16678
16686
|
"PreferredMaintenanceWindow",
|
|
16679
16687
|
"Tags"
|
|
16680
16688
|
]),
|
|
16681
|
-
silentDrop: /* @__PURE__ */ new Map(
|
|
16682
|
-
["CACertificateIdentifier", "not yet implemented by cdkd"],
|
|
16683
|
-
["CertificateRotationRestart", "not yet implemented by cdkd"],
|
|
16684
|
-
["EnablePerformanceInsights", "not yet implemented by cdkd"]
|
|
16685
|
-
]),
|
|
16689
|
+
silentDrop: /* @__PURE__ */ new Map(),
|
|
16686
16690
|
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
16687
16691
|
readOnly: /* @__PURE__ */ new Set([
|
|
16688
16692
|
"Endpoint",
|
|
@@ -16711,24 +16715,24 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16711
16715
|
"GlobalSecondaryIndexes",
|
|
16712
16716
|
"KeySchema",
|
|
16713
16717
|
"LocalSecondaryIndexes",
|
|
16718
|
+
"ReadOnDemandThroughputSettings",
|
|
16719
|
+
"ReadProvisionedThroughputSettings",
|
|
16714
16720
|
"Replicas",
|
|
16715
16721
|
"SSESpecification",
|
|
16716
16722
|
"StreamSpecification",
|
|
16717
16723
|
"TableClass",
|
|
16718
16724
|
"TableName",
|
|
16725
|
+
"TableType",
|
|
16719
16726
|
"TimeToLiveSpecification",
|
|
16727
|
+
"VectorIndexes",
|
|
16728
|
+
"WarmThroughput",
|
|
16720
16729
|
"WriteOnDemandThroughputSettings",
|
|
16721
16730
|
"WriteProvisionedThroughputSettings"
|
|
16722
16731
|
]),
|
|
16723
16732
|
silentDrop: /* @__PURE__ */ new Map([
|
|
16724
16733
|
["GlobalTableSourceArn", "not yet implemented by cdkd"],
|
|
16725
16734
|
["GlobalTableWitnesses", "not yet implemented by cdkd"],
|
|
16726
|
-
["MultiRegionConsistency", "not yet implemented by cdkd"]
|
|
16727
|
-
["ReadOnDemandThroughputSettings", "not yet implemented by cdkd"],
|
|
16728
|
-
["ReadProvisionedThroughputSettings", "not yet implemented by cdkd"],
|
|
16729
|
-
["TableType", "not yet implemented by cdkd"],
|
|
16730
|
-
["VectorIndexes", "not yet implemented by cdkd"],
|
|
16731
|
-
["WarmThroughput", "not yet implemented by cdkd"]
|
|
16735
|
+
["MultiRegionConsistency", "not yet implemented by cdkd"]
|
|
16732
16736
|
]),
|
|
16733
16737
|
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
16734
16738
|
readOnly: /* @__PURE__ */ new Set([
|
|
@@ -17738,6 +17742,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
17738
17742
|
"DeliveryStreamEncryptionConfigurationInput",
|
|
17739
17743
|
"DeliveryStreamName",
|
|
17740
17744
|
"DeliveryStreamType",
|
|
17745
|
+
"DirectPutSourceConfiguration",
|
|
17741
17746
|
"ElasticsearchDestinationConfiguration",
|
|
17742
17747
|
"ExtendedS3DestinationConfiguration",
|
|
17743
17748
|
"HttpEndpointDestinationConfiguration",
|
|
@@ -17749,16 +17754,11 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
17749
17754
|
]),
|
|
17750
17755
|
silentDrop: /* @__PURE__ */ new Map([
|
|
17751
17756
|
["DatabaseSourceConfiguration", "not yet implemented by cdkd"],
|
|
17752
|
-
["DirectPutSourceConfiguration", "not yet implemented by cdkd"],
|
|
17753
17757
|
["IcebergDestinationConfiguration", "not yet implemented by cdkd"],
|
|
17754
17758
|
["MSKSourceConfiguration", "not yet implemented by cdkd"],
|
|
17755
17759
|
["SnowflakeDestinationConfiguration", "not yet implemented by cdkd"]
|
|
17756
17760
|
]),
|
|
17757
|
-
createOnlyDrops: /* @__PURE__ */ new Set([
|
|
17758
|
-
"DatabaseSourceConfiguration",
|
|
17759
|
-
"DirectPutSourceConfiguration",
|
|
17760
|
-
"MSKSourceConfiguration"
|
|
17761
|
-
]),
|
|
17761
|
+
createOnlyDrops: /* @__PURE__ */ new Set(["DatabaseSourceConfiguration", "MSKSourceConfiguration"]),
|
|
17762
17762
|
readOnly: /* @__PURE__ */ new Set(["Arn"]),
|
|
17763
17763
|
ccRouteUnavailable: false
|
|
17764
17764
|
}],
|
|
@@ -18035,39 +18035,38 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18035
18035
|
}],
|
|
18036
18036
|
["AWS::Neptune::DBCluster", {
|
|
18037
18037
|
handled: /* @__PURE__ */ new Set([
|
|
18038
|
+
"AssociatedRoles",
|
|
18039
|
+
"AvailabilityZones",
|
|
18038
18040
|
"BackupRetentionPeriod",
|
|
18041
|
+
"CopyTagsToSnapshot",
|
|
18039
18042
|
"DBClusterIdentifier",
|
|
18040
18043
|
"DBClusterParameterGroupName",
|
|
18044
|
+
"DBInstanceParameterGroupName",
|
|
18041
18045
|
"DBPort",
|
|
18042
18046
|
"DBSubnetGroupName",
|
|
18043
18047
|
"DeletionProtection",
|
|
18048
|
+
"EnableCloudwatchLogsExports",
|
|
18044
18049
|
"EngineVersion",
|
|
18045
18050
|
"IamAuthEnabled",
|
|
18046
18051
|
"KmsKeyId",
|
|
18052
|
+
"NetworkType",
|
|
18047
18053
|
"Port",
|
|
18048
18054
|
"PreferredBackupWindow",
|
|
18049
18055
|
"PreferredMaintenanceWindow",
|
|
18056
|
+
"ServerlessScalingConfiguration",
|
|
18050
18057
|
"StorageEncrypted",
|
|
18051
18058
|
"Tags",
|
|
18052
18059
|
"VpcSecurityGroupIds"
|
|
18053
18060
|
]),
|
|
18054
18061
|
silentDrop: /* @__PURE__ */ new Map([
|
|
18055
|
-
["
|
|
18056
|
-
["AvailabilityZones", "not yet implemented by cdkd"],
|
|
18057
|
-
["CopyTagsToSnapshot", "not yet implemented by cdkd"],
|
|
18058
|
-
["DBInstanceParameterGroupName", "not yet implemented by cdkd"],
|
|
18059
|
-
["EnableCloudwatchLogsExports", "not yet implemented by cdkd"],
|
|
18060
|
-
["GlobalClusterIdentifier", "not yet implemented by cdkd"],
|
|
18061
|
-
["NetworkType", "not yet implemented by cdkd"],
|
|
18062
|
+
["GlobalClusterIdentifier", "Cloud Control owns a global-cluster member: NeptuneProvider has no detach, and a member cannot be deleted while attached (deletesThroughSdkProvider keeps its delete there too)"],
|
|
18062
18063
|
["RestoreToTime", "not yet implemented by cdkd"],
|
|
18063
18064
|
["RestoreType", "not yet implemented by cdkd"],
|
|
18064
|
-
["ServerlessScalingConfiguration", "not yet implemented by cdkd"],
|
|
18065
18065
|
["SnapshotIdentifier", "not yet implemented by cdkd"],
|
|
18066
18066
|
["SourceDBClusterIdentifier", "not yet implemented by cdkd"],
|
|
18067
18067
|
["UseLatestRestorableTime", "not yet implemented by cdkd"]
|
|
18068
18068
|
]),
|
|
18069
18069
|
createOnlyDrops: /* @__PURE__ */ new Set([
|
|
18070
|
-
"AvailabilityZones",
|
|
18071
18070
|
"GlobalClusterIdentifier",
|
|
18072
18071
|
"RestoreToTime",
|
|
18073
18072
|
"RestoreType",
|
|
@@ -18085,6 +18084,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18085
18084
|
}],
|
|
18086
18085
|
["AWS::Neptune::DBInstance", {
|
|
18087
18086
|
handled: /* @__PURE__ */ new Set([
|
|
18087
|
+
"AllowMajorVersionUpgrade",
|
|
18088
18088
|
"AutoMinorVersionUpgrade",
|
|
18089
18089
|
"AvailabilityZone",
|
|
18090
18090
|
"DBClusterIdentifier",
|
|
@@ -18094,13 +18094,10 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18094
18094
|
"DBSubnetGroupName",
|
|
18095
18095
|
"DeletionProtection",
|
|
18096
18096
|
"PreferredMaintenanceWindow",
|
|
18097
|
+
"PubliclyAccessible",
|
|
18097
18098
|
"Tags"
|
|
18098
18099
|
]),
|
|
18099
|
-
silentDrop: /* @__PURE__ */ new Map([
|
|
18100
|
-
["AllowMajorVersionUpgrade", "not yet implemented by cdkd"],
|
|
18101
|
-
["DBSnapshotIdentifier", "not yet implemented by cdkd"],
|
|
18102
|
-
["PubliclyAccessible", "not yet implemented by cdkd"]
|
|
18103
|
-
]),
|
|
18100
|
+
silentDrop: /* @__PURE__ */ new Map([["DBSnapshotIdentifier", "The CloudFormation schema documents it as not supported, and CreateDBInstance has no such member: a Neptune instance is not restored from a snapshot, its cluster is"]]),
|
|
18104
18101
|
createOnlyDrops: /* @__PURE__ */ new Set(["DBSnapshotIdentifier"]),
|
|
18105
18102
|
readOnly: /* @__PURE__ */ new Set(["Endpoint", "Port"]),
|
|
18106
18103
|
ccRouteUnavailable: false
|
|
@@ -18147,8 +18144,10 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18147
18144
|
["AWS::RDS::DBCluster", {
|
|
18148
18145
|
handled: /* @__PURE__ */ new Set([
|
|
18149
18146
|
"BackupRetentionPeriod",
|
|
18147
|
+
"CopyTagsToSnapshot",
|
|
18150
18148
|
"DatabaseName",
|
|
18151
18149
|
"DBClusterIdentifier",
|
|
18150
|
+
"DBClusterParameterGroupName",
|
|
18152
18151
|
"DBSubnetGroupName",
|
|
18153
18152
|
"DeletionProtection",
|
|
18154
18153
|
"EnableIAMDatabaseAuthentication",
|
|
@@ -18162,9 +18161,12 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18162
18161
|
"MonitoringInterval",
|
|
18163
18162
|
"MonitoringRoleArn",
|
|
18164
18163
|
"Port",
|
|
18164
|
+
"PreferredBackupWindow",
|
|
18165
|
+
"PreferredMaintenanceWindow",
|
|
18165
18166
|
"PubliclyAccessible",
|
|
18166
18167
|
"ServerlessV2ScalingConfiguration",
|
|
18167
18168
|
"StorageEncrypted",
|
|
18169
|
+
"StorageType",
|
|
18168
18170
|
"Tags",
|
|
18169
18171
|
"VpcSecurityGroupIds"
|
|
18170
18172
|
]),
|
|
@@ -18175,10 +18177,8 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18175
18177
|
["AvailabilityZones", "not yet implemented by cdkd"],
|
|
18176
18178
|
["BacktrackWindow", "not yet implemented by cdkd"],
|
|
18177
18179
|
["ClusterScalabilityType", "not yet implemented by cdkd"],
|
|
18178
|
-
["CopyTagsToSnapshot", "not yet implemented by cdkd"],
|
|
18179
18180
|
["DatabaseInsightsMode", "not yet implemented by cdkd"],
|
|
18180
18181
|
["DBClusterInstanceClass", "not yet implemented by cdkd"],
|
|
18181
|
-
["DBClusterParameterGroupName", "not yet implemented by cdkd"],
|
|
18182
18182
|
["DBInstanceParameterGroupName", "not yet implemented by cdkd"],
|
|
18183
18183
|
["DBSystemId", "not yet implemented by cdkd"],
|
|
18184
18184
|
["DeleteAutomatedBackups", "delete-time flag, sent on the delete when the record carries it; kept unhandled so a template declaring it keeps its Cloud Control route. Final snapshots are governed by DeletionPolicy: Snapshot, which this flag does not control"],
|
|
@@ -18197,8 +18197,6 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18197
18197
|
["PerformanceInsightsEnabled", "not yet implemented by cdkd"],
|
|
18198
18198
|
["PerformanceInsightsKmsKeyId", "not yet implemented by cdkd"],
|
|
18199
18199
|
["PerformanceInsightsRetentionPeriod", "not yet implemented by cdkd"],
|
|
18200
|
-
["PreferredBackupWindow", "not yet implemented by cdkd"],
|
|
18201
|
-
["PreferredMaintenanceWindow", "not yet implemented by cdkd"],
|
|
18202
18200
|
["ReplicationSourceIdentifier", "not yet implemented by cdkd"],
|
|
18203
18201
|
["RestoreToTime", "not yet implemented by cdkd"],
|
|
18204
18202
|
["RestoreType", "not yet implemented by cdkd"],
|
|
@@ -18207,7 +18205,6 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18207
18205
|
["SourceDBClusterIdentifier", "not yet implemented by cdkd"],
|
|
18208
18206
|
["SourceDbClusterResourceId", "not yet implemented by cdkd"],
|
|
18209
18207
|
["SourceRegion", "not yet implemented by cdkd"],
|
|
18210
|
-
["StorageType", "not yet implemented by cdkd"],
|
|
18211
18208
|
["UseLatestRestorableTime", "not yet implemented by cdkd"],
|
|
18212
18209
|
["WithExpressConfiguration", "not yet implemented by cdkd"]
|
|
18213
18210
|
]),
|
|
@@ -18467,15 +18464,19 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18467
18464
|
}],
|
|
18468
18465
|
["AWS::S3::Bucket", {
|
|
18469
18466
|
handled: /* @__PURE__ */ new Set([
|
|
18467
|
+
"AbacStatus",
|
|
18470
18468
|
"AccelerateConfiguration",
|
|
18471
18469
|
"AnalyticsConfigurations",
|
|
18472
18470
|
"BucketEncryption",
|
|
18473
18471
|
"BucketName",
|
|
18472
|
+
"BucketNamePrefix",
|
|
18473
|
+
"BucketNamespace",
|
|
18474
18474
|
"CorsConfiguration",
|
|
18475
18475
|
"IntelligentTieringConfigurations",
|
|
18476
18476
|
"InventoryConfigurations",
|
|
18477
18477
|
"LifecycleConfiguration",
|
|
18478
18478
|
"LoggingConfiguration",
|
|
18479
|
+
"MetadataConfiguration",
|
|
18479
18480
|
"MetricsConfigurations",
|
|
18480
18481
|
"NotificationConfiguration",
|
|
18481
18482
|
"ObjectLockConfiguration",
|
|
@@ -18487,15 +18488,8 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18487
18488
|
"VersioningConfiguration",
|
|
18488
18489
|
"WebsiteConfiguration"
|
|
18489
18490
|
]),
|
|
18490
|
-
silentDrop: /* @__PURE__ */ new Map([
|
|
18491
|
-
|
|
18492
|
-
["AccessControl", "Legacy canned ACL; AWS disables ACLs by default since 2023-04 — use BucketOwnershipControls + BucketPolicy / PublicAccessBlockConfiguration instead"],
|
|
18493
|
-
["BucketNamePrefix", "not yet implemented by cdkd"],
|
|
18494
|
-
["BucketNamespace", "not yet implemented by cdkd"],
|
|
18495
|
-
["MetadataConfiguration", "not yet implemented by cdkd"],
|
|
18496
|
-
["MetadataTableConfiguration", "not yet implemented by cdkd"]
|
|
18497
|
-
]),
|
|
18498
|
-
createOnlyDrops: /* @__PURE__ */ new Set(["BucketNamePrefix", "BucketNamespace"]),
|
|
18491
|
+
silentDrop: /* @__PURE__ */ new Map([["AccessControl", "Legacy canned ACL; AWS disables ACLs by default since 2023-04 — use BucketOwnershipControls + BucketPolicy / PublicAccessBlockConfiguration instead"], ["MetadataTableConfiguration", "V1 S3 Metadata, which the schema says to replace with MetadataConfiguration; S3 answered V1APIsNotAllowed where it was probed, so an SDK path could not be verified. Stays on Cloud Control"]]),
|
|
18492
|
+
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
18499
18493
|
readOnly: /* @__PURE__ */ new Set([
|
|
18500
18494
|
"Arn",
|
|
18501
18495
|
"DomainName",
|
|
@@ -28791,7 +28785,7 @@ var CloudControlProvider = class {
|
|
|
28791
28785
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
28792
28786
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
28793
28787
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
28794
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
28788
|
+
const { ASGProvider } = await import("./asg-provider-DpNkEibf.js");
|
|
28795
28789
|
const delegateRegion = ambientRegion();
|
|
28796
28790
|
let asgProvider = this.asgDeleteDelegates.get(delegateRegion);
|
|
28797
28791
|
if (asgProvider === void 0) {
|
|
@@ -28900,7 +28894,7 @@ var CloudControlProvider = class {
|
|
|
28900
28894
|
const family = SDK_DELETE_FAMILIES.get(resourceType);
|
|
28901
28895
|
const cached = this.sdkDeleteDelegates.get(family);
|
|
28902
28896
|
if (cached !== void 0 && cached.region === ccRegion) return cached.provider;
|
|
28903
|
-
const provider = family === "rds" ? new (await (import("./rds-provider-
|
|
28897
|
+
const provider = family === "rds" ? new (await (import("./rds-provider-Cm3dsmFW.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-BNxotnbp.js"))).NeptuneProvider({ region: ccRegion });
|
|
28904
28898
|
this.sdkDeleteDelegates.set(family, {
|
|
28905
28899
|
region: ccRegion,
|
|
28906
28900
|
provider
|
|
@@ -35259,6 +35253,7 @@ function createOpMasker(logger, secrets, deployBag) {
|
|
|
35259
35253
|
};
|
|
35260
35254
|
}
|
|
35261
35255
|
const OTHER_SPELLED_NAME_KEYS = {
|
|
35256
|
+
"AWS::S3::Bucket": ["BucketNamePrefix"],
|
|
35262
35257
|
"AWS::Cognito::UserPoolDomain": ["Domain"],
|
|
35263
35258
|
"AWS::Cognito::UserPoolUser": ["Username"],
|
|
35264
35259
|
"AWS::ECS::TaskDefinition": ["Family"],
|
|
@@ -39797,12 +39792,13 @@ async function unsettledAfterUpdate(args) {
|
|
|
39797
39792
|
const { names, desired, provider } = args;
|
|
39798
39793
|
if (names.size === 0) return [];
|
|
39799
39794
|
try {
|
|
39800
|
-
const moving = provider.unsettledInTransition === void 0 ? /* @__PURE__ */ new Set() : await provider.unsettledInTransition(args.physicalId, args.logicalId, args.resourceType, names, args.recordedProperties);
|
|
39795
|
+
const moving = provider.unsettledInTransition === void 0 ? /* @__PURE__ */ new Set() : await provider.unsettledInTransition(args.physicalId, args.logicalId, args.resourceType, names, args.recordedProperties, desired);
|
|
39801
39796
|
const live = await readLive(args, names);
|
|
39802
39797
|
if (live === void 0) return [...moving].sort();
|
|
39803
39798
|
if (live === "unreadable") return [...names].sort();
|
|
39804
39799
|
const ignorePaths = provider.getDriftUnknownPaths?.(args.resourceType) ?? [];
|
|
39805
39800
|
const unorderedPaths = provider.getDriftUnorderedPaths?.(args.resourceType) ?? [];
|
|
39801
|
+
const canonical = (bag) => provider.canonicalizeUnsettledProperties?.(args.resourceType, bag) ?? bag;
|
|
39806
39802
|
const kept = [];
|
|
39807
39803
|
for (const name of names) {
|
|
39808
39804
|
if (moving.has(name)) {
|
|
@@ -39814,7 +39810,7 @@ async function unsettledAfterUpdate(args) {
|
|
|
39814
39810
|
continue;
|
|
39815
39811
|
}
|
|
39816
39812
|
if (!Object.hasOwn(live, name) || desired[name] === void 0) continue;
|
|
39817
|
-
if (calculateResourceDrift({ [name]: desired[name] }, { [name]: live[name] }, {
|
|
39813
|
+
if (calculateResourceDrift(canonical({ [name]: desired[name] }), canonical({ [name]: live[name] }), {
|
|
39818
39814
|
ignorePaths,
|
|
39819
39815
|
unorderedPaths
|
|
39820
39816
|
}).length > 0) kept.push(name);
|
|
@@ -43264,6 +43260,7 @@ function keptUnderGeneratedName(resource) {
|
|
|
43264
43260
|
if (typeof resource.physicalId !== "string" || resource.physicalId === "") return false;
|
|
43265
43261
|
const property = explicitNamePropertyFor(resource.resourceType);
|
|
43266
43262
|
const properties = resource.properties;
|
|
43263
|
+
if (alternateNamePropertiesFor(resource.resourceType).some((p) => properties?.[p])) return false;
|
|
43267
43264
|
return property === void 0 || !properties?.[property];
|
|
43268
43265
|
}
|
|
43269
43266
|
function keptForRetainedRecord(resource) {
|
|
@@ -43666,7 +43663,7 @@ function templateStillDeclares(template, record, nameProperties) {
|
|
|
43666
43663
|
if (!declared) return false;
|
|
43667
43664
|
if (declared.Type !== record.state.resourceType) return false;
|
|
43668
43665
|
const properties = declared.Properties ?? {};
|
|
43669
|
-
return !nameProperties.some((p) => properties[p] !== void 0 && properties[p] !== null);
|
|
43666
|
+
return ![...nameProperties, ...alternateNamePropertiesFor(declared.Type)].some((p) => properties[p] !== void 0 && properties[p] !== null);
|
|
43670
43667
|
}
|
|
43671
43668
|
const ADOPTION_REFUSED_TYPES = /* @__PURE__ */ new Set(["AWS::Lambda::LayerVersion", "AWS::ECS::TaskDefinition"]);
|
|
43672
43669
|
async function planOrphanAdoption(params) {
|
|
@@ -47279,6 +47276,125 @@ async function sendTtlWaitingOutRateLimit(send, options) {
|
|
|
47279
47276
|
}
|
|
47280
47277
|
}
|
|
47281
47278
|
|
|
47279
|
+
//#endregion
|
|
47280
|
+
//#region src/provisioning/dynamodb-vector-indexes.ts
|
|
47281
|
+
function vectorIndexesByName(value) {
|
|
47282
|
+
const out = /* @__PURE__ */ new Map();
|
|
47283
|
+
if (!Array.isArray(value)) return out;
|
|
47284
|
+
for (const entry of value) {
|
|
47285
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) continue;
|
|
47286
|
+
const name = entry["IndexName"];
|
|
47287
|
+
if (typeof name === "string") out.set(name, entry);
|
|
47288
|
+
}
|
|
47289
|
+
return out;
|
|
47290
|
+
}
|
|
47291
|
+
function vectorIndexesShapeDetail(value) {
|
|
47292
|
+
if (value === void 0) return void 0;
|
|
47293
|
+
if (!Array.isArray(value)) return `VectorIndexes must be a list, got ${value === null ? "null" : typeof value}`;
|
|
47294
|
+
return value.every((entry) => typeof entry === "object" && entry !== null && !Array.isArray(entry) && typeof entry["IndexName"] === "string") ? void 0 : `every VectorIndexes entry must carry a string IndexName`;
|
|
47295
|
+
}
|
|
47296
|
+
function vectorIndexForSend(entry) {
|
|
47297
|
+
const out = {};
|
|
47298
|
+
for (const key of [
|
|
47299
|
+
"IndexName",
|
|
47300
|
+
"VectorAttribute",
|
|
47301
|
+
"Projection",
|
|
47302
|
+
"DistanceFunction"
|
|
47303
|
+
]) if (entry[key] !== void 0) out[key] = entry[key];
|
|
47304
|
+
if (entry["Dimensions"] !== void 0) out["Dimensions"] = coerceCfnInteger(entry["Dimensions"]) ?? entry["Dimensions"];
|
|
47305
|
+
if (entry["SearchSchema"] !== void 0) out["SearchSchema"] = entry["SearchSchema"];
|
|
47306
|
+
return out;
|
|
47307
|
+
}
|
|
47308
|
+
function vectorIndexesForCreate(value) {
|
|
47309
|
+
if (value === void 0 || value === null) return void 0;
|
|
47310
|
+
if (!Array.isArray(value)) return value;
|
|
47311
|
+
return value.map((entry) => typeof entry === "object" && entry !== null && !Array.isArray(entry) ? vectorIndexForSend(entry) : entry);
|
|
47312
|
+
}
|
|
47313
|
+
function sortedByJson(list) {
|
|
47314
|
+
if (!Array.isArray(list)) return list;
|
|
47315
|
+
return [...list].sort((a, b) => {
|
|
47316
|
+
const x = JSON.stringify(a) ?? "";
|
|
47317
|
+
const y = JSON.stringify(b) ?? "";
|
|
47318
|
+
return x < y ? -1 : x > y ? 1 : 0;
|
|
47319
|
+
});
|
|
47320
|
+
}
|
|
47321
|
+
function vectorIndexKey(entry) {
|
|
47322
|
+
const e = entry;
|
|
47323
|
+
const projection = e["Projection"];
|
|
47324
|
+
const normalizedProjection = typeof projection === "object" && projection !== null && !Array.isArray(projection) ? {
|
|
47325
|
+
ProjectionType: projection["ProjectionType"],
|
|
47326
|
+
NonKeyAttributes: sortedByJson(nonEmpty(projection["NonKeyAttributes"]))
|
|
47327
|
+
} : projection;
|
|
47328
|
+
const attribute = e["VectorAttribute"];
|
|
47329
|
+
return JSON.stringify([
|
|
47330
|
+
e["IndexName"],
|
|
47331
|
+
typeof attribute === "object" && attribute !== null ? attribute["AttributeName"] : attribute,
|
|
47332
|
+
coerceCfnInteger(e["Dimensions"]) ?? e["Dimensions"],
|
|
47333
|
+
e["DistanceFunction"],
|
|
47334
|
+
normalizedProjection,
|
|
47335
|
+
sortedByJson(Array.isArray(e["SearchSchema"]) && e["SearchSchema"].length > 0 ? e["SearchSchema"].map((s) => typeof s === "object" && s !== null ? {
|
|
47336
|
+
AttributeName: s["AttributeName"],
|
|
47337
|
+
SearchSchemaElementType: s["SearchSchemaElementType"]
|
|
47338
|
+
} : s) : nonEmpty(e["SearchSchema"]))
|
|
47339
|
+
]);
|
|
47340
|
+
}
|
|
47341
|
+
function nonEmpty(value) {
|
|
47342
|
+
return Array.isArray(value) && value.length === 0 ? void 0 : value;
|
|
47343
|
+
}
|
|
47344
|
+
function planVectorIndexUpdates(previous, desired, live) {
|
|
47345
|
+
const prevByName = vectorIndexesByName(previous);
|
|
47346
|
+
const desiredByName = vectorIndexesByName(desired);
|
|
47347
|
+
const liveByName = live === void 0 ? void 0 : new Map(live.filter((d) => typeof d.IndexName === "string").map((d) => [d.IndexName, d]));
|
|
47348
|
+
const plan = {
|
|
47349
|
+
ops: [],
|
|
47350
|
+
changed: [],
|
|
47351
|
+
adopted: [],
|
|
47352
|
+
alreadyGone: []
|
|
47353
|
+
};
|
|
47354
|
+
const liveHolds = (name, entry) => {
|
|
47355
|
+
const l = liveByName?.get(name);
|
|
47356
|
+
return l !== void 0 && l.IndexStatus !== "DELETING" && vectorIndexKey(l) === vectorIndexKey(entry);
|
|
47357
|
+
};
|
|
47358
|
+
for (const name of prevByName.keys()) {
|
|
47359
|
+
if (desiredByName.has(name)) continue;
|
|
47360
|
+
const l = liveByName?.get(name);
|
|
47361
|
+
if (liveByName !== void 0 && (l === void 0 || l.IndexStatus === "DELETING")) {
|
|
47362
|
+
plan.alreadyGone.push(name);
|
|
47363
|
+
continue;
|
|
47364
|
+
}
|
|
47365
|
+
plan.ops.push({ Delete: { IndexName: name } });
|
|
47366
|
+
}
|
|
47367
|
+
for (const [name, entry] of desiredByName) {
|
|
47368
|
+
const before = prevByName.get(name);
|
|
47369
|
+
if (before === void 0) {
|
|
47370
|
+
const l = liveByName?.get(name);
|
|
47371
|
+
if (l === void 0 || l.IndexStatus === "DELETING") plan.ops.push({ Create: vectorIndexForSend(entry) });
|
|
47372
|
+
else if (liveHolds(name, entry)) plan.adopted.push(name);
|
|
47373
|
+
else plan.changed.push(name);
|
|
47374
|
+
continue;
|
|
47375
|
+
}
|
|
47376
|
+
if (vectorIndexKey(before) === vectorIndexKey(entry)) continue;
|
|
47377
|
+
if (!liveHolds(name, entry)) plan.changed.push(name);
|
|
47378
|
+
}
|
|
47379
|
+
return plan;
|
|
47380
|
+
}
|
|
47381
|
+
function readbackVectorIndexes(live) {
|
|
47382
|
+
if (live === void 0 || live.length === 0) return void 0;
|
|
47383
|
+
return live.map((d) => {
|
|
47384
|
+
const out = {};
|
|
47385
|
+
if (d.IndexName !== void 0) out["IndexName"] = d.IndexName;
|
|
47386
|
+
if (d.VectorAttribute !== void 0) out["VectorAttribute"] = d.VectorAttribute;
|
|
47387
|
+
if (d.Dimensions !== void 0) out["Dimensions"] = d.Dimensions;
|
|
47388
|
+
if (d.DistanceFunction !== void 0) out["DistanceFunction"] = d.DistanceFunction;
|
|
47389
|
+
if (d.Projection !== void 0) out["Projection"] = d.Projection;
|
|
47390
|
+
if (d.SearchSchema !== void 0 && d.SearchSchema.length > 0) out["SearchSchema"] = d.SearchSchema;
|
|
47391
|
+
return out;
|
|
47392
|
+
});
|
|
47393
|
+
}
|
|
47394
|
+
function vectorIndexesSettled(live) {
|
|
47395
|
+
return (live ?? []).every((d) => d.IndexStatus === void 0 || d.IndexStatus === "ACTIVE");
|
|
47396
|
+
}
|
|
47397
|
+
|
|
47282
47398
|
//#endregion
|
|
47283
47399
|
//#region src/provisioning/dynamodb-index-busy-delete.ts
|
|
47284
47400
|
function maskedLogger(logger, maskSecrets, name) {
|
|
@@ -48519,7 +48635,12 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48519
48635
|
"TimeToLiveSpecification",
|
|
48520
48636
|
"WriteProvisionedThroughputSettings",
|
|
48521
48637
|
"WriteOnDemandThroughputSettings",
|
|
48522
|
-
"DeletionProtectionEnabled"
|
|
48638
|
+
"DeletionProtectionEnabled",
|
|
48639
|
+
"ReadOnDemandThroughputSettings",
|
|
48640
|
+
"ReadProvisionedThroughputSettings",
|
|
48641
|
+
"TableType",
|
|
48642
|
+
"VectorIndexes",
|
|
48643
|
+
"WarmThroughput"
|
|
48523
48644
|
])]]);
|
|
48524
48645
|
constructor() {
|
|
48525
48646
|
const awsClients = getAwsClients();
|
|
@@ -48578,12 +48699,12 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48578
48699
|
operationSinks(context, pairs) {
|
|
48579
48700
|
return withDerivedNameMasks(this.logger, createMaskedLogSinks(this.logger, context?.maskSecrets), pairs);
|
|
48580
48701
|
}
|
|
48581
|
-
wrapMaskedError(log, error, build) {
|
|
48702
|
+
wrapMaskedError(log, error, build, indexNoun) {
|
|
48582
48703
|
const failure = describeAwsFailure(error);
|
|
48583
48704
|
if (!failure.redacted) return wrapMaskedAwsError(log.mask, error, build);
|
|
48584
48705
|
log.debug(build(log.mask(failure.detail)).message);
|
|
48585
48706
|
const relay = isAuxiliaryFailure(error) ? "" : relayedNameCollision(failure.detail);
|
|
48586
|
-
const wrapped = build(`${log.mask(failure.summary)}${relay}${relayedIndexBusyDelete(failure.detail)}` + relayedEncryptionChangeLimit(failure.detail));
|
|
48707
|
+
const wrapped = build(`${log.mask(failure.summary)}${relay}${relayedIndexBusyDelete(failure.detail, indexNoun)}` + relayedEncryptionChangeLimit(failure.detail));
|
|
48587
48708
|
return error instanceof Error ? markRedactedCause(wrapped) : wrapped;
|
|
48588
48709
|
}
|
|
48589
48710
|
cleanupFailureText(log, head, error) {
|
|
@@ -48592,8 +48713,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48592
48713
|
log.debug(`${head}${log.mask(failure.detail)}`);
|
|
48593
48714
|
return log.mask(failure.summary);
|
|
48594
48715
|
}
|
|
48595
|
-
wrapDeleteError(log, error, build) {
|
|
48596
|
-
const thrown = this.wrapMaskedError(log, error, build);
|
|
48716
|
+
wrapDeleteError(log, error, build, indexNoun) {
|
|
48717
|
+
const thrown = this.wrapMaskedError(log, error, build, indexNoun);
|
|
48597
48718
|
return error instanceof Error && error.name.includes("NotFound") ? markNotGone(thrown) : thrown;
|
|
48598
48719
|
}
|
|
48599
48720
|
async create(logicalId, resourceType, properties, context) {
|
|
@@ -48719,6 +48840,12 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48719
48840
|
}
|
|
48720
48841
|
if (sdkIndexes.length > 0) createParams.GlobalSecondaryIndexes = sdkIndexes;
|
|
48721
48842
|
if (properties["LocalSecondaryIndexes"]) createParams.LocalSecondaryIndexes = properties["LocalSecondaryIndexes"];
|
|
48843
|
+
const createVectorIndexes = vectorIndexesForCreate(properties["VectorIndexes"]);
|
|
48844
|
+
if (createVectorIndexes !== void 0) createParams.VectorIndexes = createVectorIndexes;
|
|
48845
|
+
const warmCoercion = coerceWarmThroughput(properties["WarmThroughput"]);
|
|
48846
|
+
if (warmCoercion.spec) createParams.WarmThroughput = warmCoercion.spec;
|
|
48847
|
+
const warmDiagnostic = warmThroughputDiagnostic(properties["WarmThroughput"], warmCoercion, void 0);
|
|
48848
|
+
if (warmDiagnostic) diagnostics.push(warmDiagnostic);
|
|
48722
48849
|
const createMode = readReplicationMode(properties);
|
|
48723
48850
|
if (createMode.kind === "usable") createParams.GlobalTableSettingsReplicationMode = createMode.mode;
|
|
48724
48851
|
const sseEnabledRefusal = configBooleanRefusal(properties["SSESpecification"], "SSEEnabled", "AWS::DynamoDB::GlobalTable SSESpecification");
|
|
@@ -48765,6 +48892,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48765
48892
|
}
|
|
48766
48893
|
try {
|
|
48767
48894
|
const tableInfo = await this.waitForTableActive(tableName, logicalId, void 0, maskSecrets);
|
|
48895
|
+
if (createVectorIndexes !== void 0) await this.waitForVectorIndexesSettled(tableName, logicalId, maskSecrets);
|
|
48768
48896
|
for (const replica of wiringReplicas) {
|
|
48769
48897
|
const region = replica["Region"];
|
|
48770
48898
|
if (!region || region === currentRegion) continue;
|
|
@@ -48830,7 +48958,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48830
48958
|
warn(`Partial-create cleanup: failed to drop replica ${region} on ${tableName}: ${this.cleanupFailureText(log, `Partial-create cleanup: failed to drop replica ${region} on ${tableName}: `, replicaCleanupErr)} Run: ${pasteableAwsCommand(maskSecrets)`aws dynamodb update-table --table-name ${tableName} --replica-updates 'Delete={RegionName='${region}'}' --region ${currentRegion}`.render()}`);
|
|
48831
48959
|
}
|
|
48832
48960
|
}
|
|
48833
|
-
await this.
|
|
48961
|
+
if (createVectorIndexes !== void 0) await this.rollBackCreatedVectorTable(logicalId, tableName, maskSecrets);
|
|
48962
|
+
else await this.dynamoDBClient.send(new DeleteTableCommand({ TableName: tableName }));
|
|
48834
48963
|
retractCreatedResource(logicalId, resourceType, tableName);
|
|
48835
48964
|
} catch (cleanupErr) {
|
|
48836
48965
|
tableLeftBehind = true;
|
|
@@ -48843,6 +48972,32 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48843
48972
|
throw thrown;
|
|
48844
48973
|
}
|
|
48845
48974
|
}
|
|
48975
|
+
async rollBackCreatedVectorTable(logicalId, tableName, maskSecrets) {
|
|
48976
|
+
const logger = maskedLogger(this.logger, maskSecrets, tableName);
|
|
48977
|
+
const allowanceMs = Math.min(resolveDynamoDbDeleteBudgetMs(), enclosingDeadlineRemainingMs() - DYNAMODB_DELETE_DEADLINE_MARGIN_MS);
|
|
48978
|
+
const budget = allowanceMs > 0 ? new ElapsedBudget(allowanceMs, resolveDynamoDbDeleteBudgetClock()) : void 0;
|
|
48979
|
+
await deleteTableWithIndexBusyRetry({
|
|
48980
|
+
logicalId,
|
|
48981
|
+
physicalId: tableName,
|
|
48982
|
+
typeLabel: "GlobalTable",
|
|
48983
|
+
indexNoun: TABLE_INDEX_NOUN,
|
|
48984
|
+
maxRetries: 8,
|
|
48985
|
+
logger,
|
|
48986
|
+
deleteTable: async () => {
|
|
48987
|
+
await this.dynamoDBClient.send(new DeleteTableCommand({ TableName: tableName }));
|
|
48988
|
+
},
|
|
48989
|
+
reArm: () => this.waitForIndexesActive(tableName, logicalId, {
|
|
48990
|
+
maxAttempts: 900,
|
|
48991
|
+
shortCapUnlessVectorBusy: 60,
|
|
48992
|
+
proceedNote: DELETE_INDEX_WAIT_PROCEED_NOTE,
|
|
48993
|
+
...budget !== void 0 && { budget },
|
|
48994
|
+
maskSecrets
|
|
48995
|
+
}),
|
|
48996
|
+
shouldKeepRetrying: () => budget !== void 0 && !budget.isExhausted(),
|
|
48997
|
+
retryWarning: () => `DynamoDB GlobalTable ${logicalId}: AWS refused the DeleteTable rolling back the partially-created table ${tableName} because ${TABLE_INDEX_NOUN} is still being created, updated or deleted. Waiting for the indexes to settle and retrying (up to ${8} retries in all, within ~${Math.max(1, Math.round((budget?.totalMs ?? 0) / 6e4))} minutes).`,
|
|
48998
|
+
sleepSeam: deleteTableRetryDelays
|
|
48999
|
+
});
|
|
49000
|
+
}
|
|
48846
49001
|
reportThroughputDiagnostics(diagnostics, logicalId, physicalId, maskSecrets = (text) => text) {
|
|
48847
49002
|
const warn = (message) => this.logger.warn(maskSecrets(message));
|
|
48848
49003
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -48861,6 +49016,47 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48861
49016
|
const format = (spec) => WARM_THROUGHPUT_MEMBERS.filter((m) => spec?.[m] !== void 0).map((m) => `${m}=${spec?.[m]}`).join(", ");
|
|
48862
49017
|
warn(`DynamoDB GlobalTable ${logicalId}: GSI '${maskSecrets(indexName)}' on ${physicalId}: WarmThroughput was NOT sent — the template asks for ${format(desired)} while AWS reports ${format(live)}, and DynamoDB rejects a decrease ("decreasing WarmThroughput is not supported"). Warm throughput only rises with a table's traffic, so a template below the live value can never be applied; raise it to at least the live value, or remove it. Every other change to this index is applied normally.`);
|
|
48863
49018
|
}
|
|
49019
|
+
tableWarmThroughputForSend(desired, live, logicalId, physicalId, maskSecrets) {
|
|
49020
|
+
if (!desired) return void 0;
|
|
49021
|
+
const declared = WARM_THROUGHPUT_MEMBERS.filter((m) => desired[m] !== void 0);
|
|
49022
|
+
if (declared.every((m) => desired[m] === live?.[m])) return void 0;
|
|
49023
|
+
if (!isWarmThroughputDecrease(desired, live)) return desired;
|
|
49024
|
+
const format = (spec) => declared.map((m) => `${m}=${spec?.[m]}`).join(", ");
|
|
49025
|
+
this.logger.warn(maskSecrets(`DynamoDB GlobalTable ${logicalId}: table ${maskSecrets(physicalId)}: WarmThroughput was NOT sent — the template asks for ${format(desired)} while AWS reports ${format(live)}, and DynamoDB rejects a decrease. Raise it to at least the live value, or remove it. Every other change to this table is applied normally.`));
|
|
49026
|
+
}
|
|
49027
|
+
async applyVectorIndexUpdates(physicalId, logicalId, plan, desiredAttributeDefinitions, maskSecrets) {
|
|
49028
|
+
const scope = (name) => `vector index ${typeof name === "string" ? maskSecrets(name) : "<unnamed>"} on DynamoDB GlobalTable ${maskSecrets(physicalId)}`;
|
|
49029
|
+
for (const name of plan.alreadyGone) this.logger.debug(maskSecrets(`${scope(name)} is recorded but not live; skipping its Delete`));
|
|
49030
|
+
for (const name of plan.adopted) this.logger.warn(maskSecrets(`${scope(name)} already exists in AWS with the declared definition but is absent from cdkd's recorded previous state, so its Create is being skipped. This usually means an earlier deploy created the index and then failed before state was written.`));
|
|
49031
|
+
if (plan.ops.length === 0) return;
|
|
49032
|
+
await this.waitForVectorIndexesSettled(physicalId, logicalId, maskSecrets);
|
|
49033
|
+
markUnsettled("VectorIndexes");
|
|
49034
|
+
for (const op of plan.ops) {
|
|
49035
|
+
const input = {
|
|
49036
|
+
TableName: physicalId,
|
|
49037
|
+
VectorIndexUpdates: [op]
|
|
49038
|
+
};
|
|
49039
|
+
if (op.Create && desiredAttributeDefinitions) input.AttributeDefinitions = desiredAttributeDefinitions;
|
|
49040
|
+
await this.dynamoDBClient.send(new UpdateTableCommand(input));
|
|
49041
|
+
if (op.Create?.IndexName !== void 0) markAttemptedItems("VectorIndexes", [op.Create.IndexName]);
|
|
49042
|
+
await this.waitForVectorIndexesSettled(physicalId, logicalId, maskSecrets);
|
|
49043
|
+
this.logger.debug(maskSecrets(`${op.Create ? "created" : "deleted"} ` + scope(op.Create?.IndexName ?? op.Delete?.IndexName)));
|
|
49044
|
+
}
|
|
49045
|
+
}
|
|
49046
|
+
async waitForVectorIndexesSettled(tableName, logicalId, maskSecrets) {
|
|
49047
|
+
const watch = startInterruptWatch(maskSecrets(`DynamoDB vector indexes on ${maskSecrets(tableName)}`));
|
|
49048
|
+
try {
|
|
49049
|
+
for (let attempt = 1; attempt <= VECTOR_INDEX_SETTLE_ATTEMPTS; attempt++) {
|
|
49050
|
+
if (watch.isInterrupted()) throw watch.onInterrupted();
|
|
49051
|
+
const table = (await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: tableName }))).Table;
|
|
49052
|
+
if (table?.TableStatus === "ACTIVE" && vectorIndexesSettled(table.VectorIndexes)) return;
|
|
49053
|
+
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
49054
|
+
}
|
|
49055
|
+
} finally {
|
|
49056
|
+
watch.dispose();
|
|
49057
|
+
}
|
|
49058
|
+
throw new Error(maskSecrets(`DynamoDB GlobalTable ${logicalId}: table ${maskSecrets(tableName)} and its vector indexes did not settle within ${VECTOR_INDEX_SETTLE_ATTEMPTS} polls`));
|
|
49059
|
+
}
|
|
48864
49060
|
async addReplica(tableName, replica, region, logicalId, billingMode, diagnostics, maskSecrets = (text) => text) {
|
|
48865
49061
|
const create = { RegionName: region };
|
|
48866
49062
|
const kmsMasterKeyId = readReplicaKmsMasterKeyId(replica);
|
|
@@ -49666,6 +49862,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49666
49862
|
if (refusal === void 0 && !deepEqual(properties["StreamSpecification"], previousProperties["StreamSpecification"])) refusal = configStringRefusal(properties["StreamSpecification"], "StreamViewType", "NEW_AND_OLD_IMAGES", "AWS::DynamoDB::GlobalTable StreamSpecification");
|
|
49667
49863
|
if (refusal === void 0 && (changed("SSESpecification") || !deepEqual(replicaKeyBlocks(properties), replicaKeyBlocks(previousProperties)))) refusal = configBooleanRefusal(properties["SSESpecification"], "SSEEnabled", "AWS::DynamoDB::GlobalTable SSESpecification");
|
|
49668
49864
|
if (refusal === void 0 && changed("GlobalSecondaryIndexes")) refusal = globalSecondaryIndexesShapeDetail(properties["GlobalSecondaryIndexes"], maskSecrets);
|
|
49865
|
+
if (refusal === void 0 && changed("VectorIndexes")) refusal = vectorIndexesShapeDetail(properties["VectorIndexes"]);
|
|
49669
49866
|
if (refusal === void 0) refusal = replicaSettingsRefusal(properties, previousProperties);
|
|
49670
49867
|
if (refusal !== void 0) refuse(refusal);
|
|
49671
49868
|
} else {
|
|
@@ -49678,6 +49875,15 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49678
49875
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49679
49876
|
const describeResp = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: physicalId }));
|
|
49680
49877
|
const tableArn = describeResp.Table?.TableArn;
|
|
49878
|
+
const vectorIndexesChanged = !deepEqual(properties["VectorIndexes"], previousProperties["VectorIndexes"]);
|
|
49879
|
+
const vectorIndexShape = vectorIndexesShapeDetail(properties["VectorIndexes"]);
|
|
49880
|
+
if (vectorIndexShape !== void 0 && vectorIndexesChanged) warn(`${vectorIndexShape}; the VectorIndexes change was not applied`);
|
|
49881
|
+
const vectorIndexPlan = vectorIndexShape === void 0 && vectorIndexesChanged ? planVectorIndexUpdates(previousProperties["VectorIndexes"], properties["VectorIndexes"], describeResp.Table === void 0 ? void 0 : describeResp.Table.VectorIndexes ?? []) : void 0;
|
|
49882
|
+
if (vectorIndexPlan !== void 0 && vectorIndexPlan.changed.length > 0) {
|
|
49883
|
+
const vectorMessage = `AWS::DynamoDB::GlobalTable ${logicalId}: VectorIndexes ${vectorIndexPlan.changed.map((name) => maskSecrets(name)).join(", ")} changed definition, which DynamoDB cannot modify in place`;
|
|
49884
|
+
if (context?.replayingState !== true && context?.desiredFromAwsReadback !== true) throw new ProvisioningError(`${maskSecrets(vectorMessage)}. Nothing was applied to the table; rename the index (so it is dropped and re-created) or revert the change`, resourceType, logicalId, physicalId);
|
|
49885
|
+
warn(`${vectorMessage}; that change was not applied`);
|
|
49886
|
+
}
|
|
49681
49887
|
const extractLocalTags = (props) => {
|
|
49682
49888
|
return localReplicaEntry(props, currentRegion)?.["Tags"];
|
|
49683
49889
|
};
|
|
@@ -49711,6 +49917,10 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49711
49917
|
const newBilling = billingUnusable ? oldBilling : requestedBilling;
|
|
49712
49918
|
const onDemandCeilingLive = oldBilling === "PAY_PER_REQUEST" && newBilling === "PAY_PER_REQUEST";
|
|
49713
49919
|
const diagnostics = [];
|
|
49920
|
+
if (!deepEqual(properties["WarmThroughput"], previousProperties["WarmThroughput"])) {
|
|
49921
|
+
const warmUpdateDiagnostic = warmThroughputDiagnostic(properties["WarmThroughput"], coerceWarmThroughput(properties["WarmThroughput"]), void 0);
|
|
49922
|
+
if (warmUpdateDiagnostic) diagnostics.push(warmUpdateDiagnostic);
|
|
49923
|
+
}
|
|
49714
49924
|
const desiredCeilings = collectTableOnDemandCeilings(properties, currentRegion, diagnostics, maskSecrets);
|
|
49715
49925
|
const flippingToProvisioned = oldBilling !== newBilling && newBilling === "PROVISIONED";
|
|
49716
49926
|
if (flippingToProvisioned) derivePerCallProvisionedThroughput(properties, currentRegion, "seed", diagnostics, maskSecrets);
|
|
@@ -49828,7 +50038,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49828
50038
|
if (flatChanged) {
|
|
49829
50039
|
if (flatUpdate.DeletionProtectionEnabled !== void 0) markUnsettled("Replicas");
|
|
49830
50040
|
if (flatUpdate.StreamSpecification !== void 0) markUnsettled("StreamSpecification");
|
|
49831
|
-
if (flatUpdate.OnDemandThroughput !== void 0) markUnsettled("WriteOnDemandThroughputSettings");
|
|
50041
|
+
if (flatUpdate.OnDemandThroughput !== void 0) markUnsettled("WriteOnDemandThroughputSettings", "ReadOnDemandThroughputSettings");
|
|
49832
50042
|
await this.dynamoDBClient.send(new UpdateTableCommand(flatUpdate));
|
|
49833
50043
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49834
50044
|
}
|
|
@@ -49884,7 +50094,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49884
50094
|
}
|
|
49885
50095
|
if (indexUpdates.length > 0) billingUpdate.GlobalSecondaryIndexUpdates = indexUpdates;
|
|
49886
50096
|
}
|
|
49887
|
-
markUnsettled("BillingMode", "WriteProvisionedThroughputSettings");
|
|
50097
|
+
markUnsettled("BillingMode", "WriteProvisionedThroughputSettings", TABLE_READ_PROVISIONED_KEY);
|
|
49888
50098
|
if (billingUpdate.GlobalSecondaryIndexUpdates !== void 0) {
|
|
49889
50099
|
markUnsettled("GlobalSecondaryIndexes");
|
|
49890
50100
|
for (const indexUpdate of billingUpdate.GlobalSecondaryIndexUpdates) debug(`Sending UpdateTable GlobalSecondaryIndexUpdates Update for index ${maskSecrets(indexUpdate.Update?.IndexName ?? "")} on ${physicalId} (with the billing mode change)`);
|
|
@@ -49893,13 +50103,29 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49893
50103
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49894
50104
|
}
|
|
49895
50105
|
if (deferCeilingsPastFlip) {
|
|
49896
|
-
markUnsettled("WriteOnDemandThroughputSettings");
|
|
50106
|
+
markUnsettled("WriteOnDemandThroughputSettings", "ReadOnDemandThroughputSettings");
|
|
49897
50107
|
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
49898
50108
|
TableName: physicalId,
|
|
49899
50109
|
OnDemandThroughput: onDemandPayload
|
|
49900
50110
|
}));
|
|
49901
50111
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49902
50112
|
}
|
|
50113
|
+
const readBlockOf = (bag) => localReplicaEntry(bag, currentRegion)?.[TABLE_READ_PROVISIONED_KEY] ?? bag[TABLE_READ_PROVISIONED_KEY];
|
|
50114
|
+
if (oldBilling === "PROVISIONED" && newBilling === "PROVISIONED" && liveBillingMode === "PROVISIONED" && (properties[TABLE_READ_PROVISIONED_KEY] !== void 0 || previousProperties[TABLE_READ_PROVISIONED_KEY] !== void 0) && !deepEqual(readBlockOf(properties), readBlockOf(previousProperties))) {
|
|
50115
|
+
const wantRead = coerceCfnInteger(asRecord(readBlockOf(properties))?.["ReadCapacityUnits"]);
|
|
50116
|
+
const liveThroughput = describeResp.Table?.ProvisionedThroughput;
|
|
50117
|
+
if (wantRead !== void 0 && liveThroughput?.WriteCapacityUnits !== void 0 && wantRead !== liveThroughput.ReadCapacityUnits) {
|
|
50118
|
+
markUnsettled(TABLE_READ_PROVISIONED_KEY);
|
|
50119
|
+
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
50120
|
+
TableName: physicalId,
|
|
50121
|
+
ProvisionedThroughput: {
|
|
50122
|
+
ReadCapacityUnits: wantRead,
|
|
50123
|
+
WriteCapacityUnits: liveThroughput.WriteCapacityUnits
|
|
50124
|
+
}
|
|
50125
|
+
}));
|
|
50126
|
+
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50127
|
+
}
|
|
50128
|
+
}
|
|
49903
50129
|
const writeAutoScalingOld = (previousProperties["WriteProvisionedThroughputSettings"] ?? {})["WriteCapacityAutoScalingSettings"];
|
|
49904
50130
|
const writeAutoScalingNew = (properties["WriteProvisionedThroughputSettings"] ?? {})["WriteCapacityAutoScalingSettings"];
|
|
49905
50131
|
const effectiveNewAutoScaling = oldBilling === "PROVISIONED" && newBilling === "PAY_PER_REQUEST" ? void 0 : writeAutoScalingNew;
|
|
@@ -50106,6 +50332,19 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50106
50332
|
}));
|
|
50107
50333
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50108
50334
|
}
|
|
50335
|
+
if (vectorIndexPlan !== void 0) await this.applyVectorIndexUpdates(physicalId, logicalId, vectorIndexPlan, properties["AttributeDefinitions"], maskSecrets);
|
|
50336
|
+
if (!deepEqual(properties["WarmThroughput"], previousProperties["WarmThroughput"])) {
|
|
50337
|
+
const warmCoercion = coerceWarmThroughput(properties["WarmThroughput"]);
|
|
50338
|
+
const warmToSend = this.tableWarmThroughputForSend(warmCoercion.spec, describeResp.Table?.WarmThroughput, logicalId, physicalId, maskSecrets);
|
|
50339
|
+
if (warmToSend) {
|
|
50340
|
+
markUnsettled("WarmThroughput");
|
|
50341
|
+
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
50342
|
+
TableName: physicalId,
|
|
50343
|
+
WarmThroughput: warmToSend
|
|
50344
|
+
}));
|
|
50345
|
+
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50346
|
+
}
|
|
50347
|
+
}
|
|
50109
50348
|
const skipAutoScalingForUnusableGsi = desiredGsiUnusable && newBilling !== "PAY_PER_REQUEST";
|
|
50110
50349
|
const autoScalingMeaningfulForIndexes = (newBilling === "PROVISIONED" || oldBilling === "PROVISIONED") && !skipAutoScalingForUnusableGsi;
|
|
50111
50350
|
if (skipAutoScalingForUnusableGsi && oldBilling === "PROVISIONED") warn(`AWS::DynamoDB::GlobalTable ${logicalId}: skipping the auto-scaling target reconcile because the GlobalSecondaryIndexes block is unusable — the per-index targets are derived from it, so reconciling would deregister the live indexes' scalable targets. Existing targets are left untouched.`);
|
|
@@ -50516,11 +50755,13 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50516
50755
|
const cause = regionErr instanceof Error ? regionErr : void 0;
|
|
50517
50756
|
throw new ProvisioningError(`Could not resolve client region for DynamoDB GlobalTable ${logicalId} delete — would risk dropping the local replica`, resourceType, logicalId, physicalId, cause);
|
|
50518
50757
|
}
|
|
50519
|
-
let
|
|
50758
|
+
let preDeleteTable;
|
|
50759
|
+
let indexNoun;
|
|
50520
50760
|
try {
|
|
50521
50761
|
const describe = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: physicalId }));
|
|
50522
50762
|
const replicas = describe.Table?.Replicas ?? [];
|
|
50523
|
-
|
|
50763
|
+
preDeleteTable = describe.Table;
|
|
50764
|
+
if ((describe.Table?.VectorIndexes ?? []).length > 0) indexNoun = TABLE_INDEX_NOUN;
|
|
50524
50765
|
const tableIndexNames = (describe.Table?.GlobalSecondaryIndexes ?? []).map((gsi) => gsi.IndexName).filter((name) => typeof name === "string");
|
|
50525
50766
|
for (const replica of replicas) {
|
|
50526
50767
|
const region = replica.RegionName;
|
|
@@ -50556,8 +50797,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50556
50797
|
}
|
|
50557
50798
|
}
|
|
50558
50799
|
try {
|
|
50559
|
-
if (
|
|
50560
|
-
|
|
50800
|
+
if (hasTransitionalTableIndex(preDeleteTable)) {
|
|
50801
|
+
deleteLog.debug(`Waiting for indexes on ${physicalId} to settle before DeleteTable`);
|
|
50561
50802
|
await this.waitForIndexesActive(physicalId, logicalId, {
|
|
50562
50803
|
proceedNote: DELETE_INDEX_WAIT_PROCEED_NOTE,
|
|
50563
50804
|
budget,
|
|
@@ -50568,6 +50809,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50568
50809
|
logicalId,
|
|
50569
50810
|
physicalId,
|
|
50570
50811
|
typeLabel: "GlobalTable",
|
|
50812
|
+
...indexNoun !== void 0 && { indexNoun },
|
|
50571
50813
|
maxRetries: 8,
|
|
50572
50814
|
logger: loopLogger,
|
|
50573
50815
|
deleteTable: async () => {
|
|
@@ -50575,7 +50817,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50575
50817
|
flip.deleteAccepted = true;
|
|
50576
50818
|
},
|
|
50577
50819
|
reArm: () => this.waitForIndexesActive(physicalId, logicalId, {
|
|
50578
|
-
maxAttempts:
|
|
50820
|
+
maxAttempts: 900,
|
|
50821
|
+
shortCapUnlessVectorBusy: 60,
|
|
50579
50822
|
proceedNote: DELETE_INDEX_WAIT_PROCEED_NOTE,
|
|
50580
50823
|
budget,
|
|
50581
50824
|
...context?.maskSecrets && { maskSecrets: context.maskSecrets }
|
|
@@ -50602,7 +50845,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50602
50845
|
return;
|
|
50603
50846
|
}
|
|
50604
50847
|
const cause = error instanceof Error ? error : void 0;
|
|
50605
|
-
throw this.wrapDeleteError(deleteLog, error, (text) => new ProvisioningError(`Failed to delete DynamoDB GlobalTable ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
50848
|
+
throw this.wrapDeleteError(deleteLog, error, (text) => new ProvisioningError(`Failed to delete DynamoDB GlobalTable ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause), indexNoun);
|
|
50606
50849
|
}
|
|
50607
50850
|
}
|
|
50608
50851
|
async isSameResource(journaledPhysicalId, record, resourceType, context) {
|
|
@@ -50671,7 +50914,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50671
50914
|
out[name] = projectNamed(out[name], recordedProperties?.[name], desiredProperties?.[name], name, unnamed, attemptedItems);
|
|
50672
50915
|
}
|
|
50673
50916
|
for (const entry of unnamed.filter((e) => e.ambiguous === true)) this.logger.warn(safeMsg`${logicalId} (${resourceType}): ${entry.path} on AWS has entries cdkd cannot key by an identity, so convergence keeps the recorded ${entry.path} rather than risk removing an entry neither the record nor the template declares. Check it with 'cdkd drift'.`);
|
|
50674
|
-
for (const entry of unnamed.filter((e) => e.ambiguous !== true)) this.logger.warn(safeMsg`${logicalId} (${resourceType}): ${entry.path} on AWS holds ${entry.identity} ${entry.value}, which neither the record nor the template declares, so cdkd leaves it in place. If the failed update added it and it should not be there, remove it by hand (for a replica: aws dynamodb update-table --replica-updates Delete; for an index: --global-secondary-index-updates Delete).`);
|
|
50917
|
+
for (const entry of unnamed.filter((e) => e.ambiguous !== true)) this.logger.warn(safeMsg`${logicalId} (${resourceType}): ${entry.path} on AWS holds ${entry.identity} ${entry.value}, which neither the record nor the template declares, so cdkd leaves it in place. If the failed update added it and it should not be there, remove it by hand (for a replica: aws dynamodb update-table --replica-updates Delete; for an index: --global-secondary-index-updates Delete; for a vector index: --vector-index-updates Delete).`);
|
|
50675
50918
|
return out;
|
|
50676
50919
|
}
|
|
50677
50920
|
async unsettledInTransition(physicalId, _logicalId, _resourceType, names) {
|
|
@@ -50688,6 +50931,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50688
50931
|
}
|
|
50689
50932
|
if (names.has("Replicas") && (table?.Replicas ?? []).some((replica) => replica.ReplicaStatus !== void 0 && MOVING.has(replica.ReplicaStatus))) moving.add("Replicas");
|
|
50690
50933
|
if (names.has("GlobalSecondaryIndexes") && (table?.GlobalSecondaryIndexes ?? []).some((index) => index.IndexStatus !== void 0 && MOVING.has(index.IndexStatus))) moving.add("GlobalSecondaryIndexes");
|
|
50934
|
+
if (names.has("VectorIndexes") && (table?.VectorIndexes ?? []).some((index) => index.IndexStatus !== void 0 && MOVING.has(index.IndexStatus))) moving.add("VectorIndexes");
|
|
50935
|
+
if (names.has("WarmThroughput") && table?.WarmThroughput?.Status === "UPDATING") moving.add("WarmThroughput");
|
|
50691
50936
|
const sse = table?.SSEDescription?.Status;
|
|
50692
50937
|
if (names.has("SSESpecification") && (sse === "ENABLING" || sse === "DISABLING" || sse === "UPDATING")) moving.add("SSESpecification");
|
|
50693
50938
|
if (names.has("TimeToLiveSpecification")) {
|
|
@@ -50823,6 +51068,21 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50823
51068
|
else result["WriteProvisionedThroughputSettings"] = {};
|
|
50824
51069
|
}
|
|
50825
51070
|
} else result["WriteProvisionedThroughputSettings"] = {};
|
|
51071
|
+
const liveVectorIndexes = readbackVectorIndexes(table.VectorIndexes);
|
|
51072
|
+
if (liveVectorIndexes !== void 0) result["VectorIndexes"] = liveVectorIndexes;
|
|
51073
|
+
const declaredWarm = coerceWarmThroughput(properties?.["WarmThroughput"]).spec;
|
|
51074
|
+
if (declaredWarm && table.WarmThroughput) {
|
|
51075
|
+
const warm = {};
|
|
51076
|
+
for (const member of WARM_THROUGHPUT_MEMBERS) {
|
|
51077
|
+
const value = table.WarmThroughput[member];
|
|
51078
|
+
const declared = declaredWarm[member];
|
|
51079
|
+
if (declared === void 0 || value === void 0) continue;
|
|
51080
|
+
warm[member] = table.WarmThroughput.Status === "UPDATING" ? Math.max(value, declared) : value;
|
|
51081
|
+
}
|
|
51082
|
+
if (Object.keys(warm).length > 0) result["WarmThroughput"] = warm;
|
|
51083
|
+
}
|
|
51084
|
+
if (properties?.[TABLE_READ_ON_DEMAND_KEY] !== void 0 && table.OnDemandThroughput?.MaxReadRequestUnits !== void 0) result[TABLE_READ_ON_DEMAND_KEY] = { MaxReadRequestUnits: table.OnDemandThroughput.MaxReadRequestUnits };
|
|
51085
|
+
if (properties?.[TABLE_READ_PROVISIONED_KEY] !== void 0 && billingMode !== "PAY_PER_REQUEST" && table.ProvisionedThroughput?.ReadCapacityUnits !== void 0) result[TABLE_READ_PROVISIONED_KEY] = { ReadCapacityUnits: table.ProvisionedThroughput.ReadCapacityUnits };
|
|
50826
51086
|
try {
|
|
50827
51087
|
const ttlDesc = (await this.dynamoDBClient.send(new DescribeTimeToLiveCommand({ TableName: tableNameForSubs }))).TimeToLiveDescription;
|
|
50828
51088
|
const ttlStatus = ttlDesc?.TimeToLiveStatus;
|
|
@@ -50959,11 +51219,19 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50959
51219
|
return null;
|
|
50960
51220
|
}
|
|
50961
51221
|
}
|
|
50962
|
-
getDriftUnknownPaths(_resourceType) {
|
|
50963
|
-
|
|
51222
|
+
getDriftUnknownPaths(_resourceType, properties) {
|
|
51223
|
+
const paths = ["TableType"];
|
|
51224
|
+
if (properties === void 0 || Object.keys(properties).length === 0) return paths;
|
|
51225
|
+
if (properties["BillingMode"] !== "PROVISIONED") paths.push(TABLE_READ_PROVISIONED_KEY);
|
|
51226
|
+
if (!coerceWarmThroughput(properties["WarmThroughput"]).spec) paths.push("WarmThroughput");
|
|
51227
|
+
return paths;
|
|
50964
51228
|
}
|
|
50965
51229
|
getDriftUnorderedPaths(_resourceType) {
|
|
50966
|
-
return [
|
|
51230
|
+
return [
|
|
51231
|
+
"AttributeDefinitions",
|
|
51232
|
+
"Replicas[]",
|
|
51233
|
+
"VectorIndexes"
|
|
51234
|
+
];
|
|
50967
51235
|
}
|
|
50968
51236
|
canonicalizeDriftProperties(resourceType, properties) {
|
|
50969
51237
|
if (resourceType !== "AWS::DynamoDB::GlobalTable") return properties;
|
|
@@ -51059,7 +51327,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
51059
51327
|
const response = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: tableName }));
|
|
51060
51328
|
if (response.Table?.TableStatus === "ACTIVE") {
|
|
51061
51329
|
tableReachedActive = true;
|
|
51062
|
-
if (!
|
|
51330
|
+
if (!hasTransitionalTableIndex(response.Table)) return;
|
|
51063
51331
|
}
|
|
51064
51332
|
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
51065
51333
|
}
|
|
@@ -51078,6 +51346,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
51078
51346
|
logger: maskedLogger(this.logger, opts?.maskSecrets, tableName),
|
|
51079
51347
|
describeTable: () => this.dynamoDBClient.send(new DescribeTableCommand({ TableName: tableName })),
|
|
51080
51348
|
maxAttempts: gateWait.grantedPolls,
|
|
51349
|
+
...opts?.shortCapUnlessVectorBusy !== void 0 && { shortCapUnlessVectorBusy: opts.shortCapUnlessVectorBusy },
|
|
51081
51350
|
budgetWait: gateWait,
|
|
51082
51351
|
proceedNote: opts?.proceedNote ?? "auto-scaling registration for a still-building index may have been skipped. The next deploy re-asserts it."
|
|
51083
51352
|
});
|
|
@@ -51295,6 +51564,8 @@ const REPLICA_SETTING_MEMBERS = [
|
|
|
51295
51564
|
"GlobalSecondaryIndexes"
|
|
51296
51565
|
];
|
|
51297
51566
|
const REPLICATION_MODE_KEY = "GlobalTableSettingsReplicationMode";
|
|
51567
|
+
const TABLE_READ_ON_DEMAND_KEY = "ReadOnDemandThroughputSettings";
|
|
51568
|
+
const TABLE_READ_PROVISIONED_KEY = "ReadProvisionedThroughputSettings";
|
|
51298
51569
|
function readReplicationMode(properties) {
|
|
51299
51570
|
const replicas = Array.isArray(properties["Replicas"]) ? properties["Replicas"] : [];
|
|
51300
51571
|
const declared = replicas.map((entry) => asRecord(entry)?.[REPLICATION_MODE_KEY]).filter((value) => value !== void 0 && value !== null);
|
|
@@ -51330,9 +51601,35 @@ function replicationModeCorrection(properties, previousProperties, liveMode) {
|
|
|
51330
51601
|
if (replicationModeUpdate(properties, previousProperties) !== void 0) return void 0;
|
|
51331
51602
|
return (liveMode ?? "DISABLED") === want.mode ? void 0 : want.mode;
|
|
51332
51603
|
}
|
|
51604
|
+
function tableLevelSettingsRefusal(properties) {
|
|
51605
|
+
const replicas = Array.isArray(properties["Replicas"]) ? properties["Replicas"] : [];
|
|
51606
|
+
if (properties["TableType"] === "Regional" && replicas.length > 1) return "TableType Regional cannot be declared with more than one replica, as CloudFormation refuses it; declare TableType GlobalTableReplica or omit TableType";
|
|
51607
|
+
const mode = readReplicationMode(properties);
|
|
51608
|
+
for (const key of [TABLE_READ_ON_DEMAND_KEY, TABLE_READ_PROVISIONED_KEY]) {
|
|
51609
|
+
if (properties[key] === void 0 || properties[key] === null) continue;
|
|
51610
|
+
if (mode.kind !== "usable" || mode.mode !== "ENABLED") return `${key} at the table level needs Replicas[].${REPLICATION_MODE_KEY} ENABLED, as CloudFormation refuses it otherwise; enable it on the replica, or move the block to the replica`;
|
|
51611
|
+
if (replicas.some((entry) => asRecord(entry)?.[key] !== void 0)) return `${key} cannot be declared at both the table level and a replica, as CloudFormation refuses it; keep one`;
|
|
51612
|
+
}
|
|
51613
|
+
if (properties[TABLE_READ_ON_DEMAND_KEY] !== void 0 && properties[TABLE_READ_ON_DEMAND_KEY] !== null && properties["BillingMode"] === "PROVISIONED") return `${TABLE_READ_ON_DEMAND_KEY} cannot be declared on a PROVISIONED table, as CloudFormation refuses it; remove it, or set BillingMode to PAY_PER_REQUEST`;
|
|
51614
|
+
}
|
|
51615
|
+
function replicaReadBlockShape(properties) {
|
|
51616
|
+
return (Array.isArray(properties["Replicas"]) ? properties["Replicas"] : []).map((entry) => [asRecord(entry)?.[TABLE_READ_ON_DEMAND_KEY], asRecord(entry)?.[TABLE_READ_PROVISIONED_KEY]]);
|
|
51617
|
+
}
|
|
51618
|
+
const TABLE_LEVEL_SETTING_INPUTS = [
|
|
51619
|
+
"TableType",
|
|
51620
|
+
"BillingMode",
|
|
51621
|
+
TABLE_READ_ON_DEMAND_KEY,
|
|
51622
|
+
TABLE_READ_PROVISIONED_KEY
|
|
51623
|
+
];
|
|
51333
51624
|
function replicaSettingsRefusal(properties, previousProperties, currentRegion) {
|
|
51334
51625
|
const mode = readReplicationMode(properties);
|
|
51335
|
-
|
|
51626
|
+
const modeShapeChanged = previousProperties === void 0 || !deepEqual(replicationModeShape(properties), replicationModeShape(previousProperties));
|
|
51627
|
+
if (mode.kind === "unusable" && modeShapeChanged) return mode.reason;
|
|
51628
|
+
if (modeShapeChanged || previousProperties === void 0 || !deepEqual(replicaReadBlockShape(properties), replicaReadBlockShape(previousProperties)) || TABLE_LEVEL_SETTING_INPUTS.some((key) => !deepEqual(properties[key], previousProperties?.[key]))) {
|
|
51629
|
+
const tableLevelRefusal = tableLevelSettingsRefusal(properties);
|
|
51630
|
+
if (tableLevelRefusal !== void 0) return tableLevelRefusal;
|
|
51631
|
+
}
|
|
51632
|
+
if (previousProperties?.[TABLE_READ_PROVISIONED_KEY] != null && properties[TABLE_READ_PROVISIONED_KEY] == null && properties["BillingMode"] === "PROVISIONED" && !(Array.isArray(properties["Replicas"]) ? properties["Replicas"] : []).some((entry) => asRecord(entry)?.[TABLE_READ_PROVISIONED_KEY] != null)) return `${TABLE_READ_PROVISIONED_KEY} cannot be removed from a PROVISIONED table with no replica declaring its own, as CloudFormation refuses it; keep it, declare it on the replica, or set BillingMode to PAY_PER_REQUEST`;
|
|
51336
51633
|
const desired = Array.isArray(properties["Replicas"]) ? properties["Replicas"] : [];
|
|
51337
51634
|
const crossRegionCreate = previousProperties === void 0 && desired.some((entry) => {
|
|
51338
51635
|
const region = asRecord(entry)?.["Region"];
|
|
@@ -51403,11 +51700,12 @@ function extractLocalTableClass(props, region) {
|
|
|
51403
51700
|
}
|
|
51404
51701
|
function derivePerCallProvisionedThroughput(properties, region, source = "min", diagnostics, maskSecrets = (text) => text) {
|
|
51405
51702
|
const rawReplicas = properties["Replicas"];
|
|
51406
|
-
const
|
|
51703
|
+
const localReplica = (Array.isArray(rawReplicas) ? rawReplicas : []).find((r) => asRecord(r)?.["Region"] === region);
|
|
51704
|
+
const rawRead = localReplica?.["ReadProvisionedThroughputSettings"] ?? properties[TABLE_READ_PROVISIONED_KEY];
|
|
51407
51705
|
const rawWrite = properties["WriteProvisionedThroughputSettings"];
|
|
51408
51706
|
const read = deriveReadCapacityUnits(asRecord(rawRead), source);
|
|
51409
51707
|
const write = deriveWriteCapacityUnits(asRecord(rawWrite), source);
|
|
51410
|
-
if (read === void 0) reportUnresolvedProvisionedCapacity(rawRead, "Read", source, { appliedUnits: DEFAULT_CAPACITY_UNITS }, diagnostics, { blockName: "Replicas[local].ReadProvisionedThroughputSettings" }, maskSecrets);
|
|
51708
|
+
if (read === void 0) reportUnresolvedProvisionedCapacity(rawRead, "Read", source, { appliedUnits: DEFAULT_CAPACITY_UNITS }, diagnostics, { blockName: localReplica?.["ReadProvisionedThroughputSettings"] !== void 0 ? "Replicas[local].ReadProvisionedThroughputSettings" : TABLE_READ_PROVISIONED_KEY }, maskSecrets);
|
|
51411
51709
|
if (write === void 0) reportUnresolvedProvisionedCapacity(rawWrite, "Write", source, { appliedUnits: DEFAULT_CAPACITY_UNITS }, diagnostics, { blockName: "WriteProvisionedThroughputSettings" }, maskSecrets);
|
|
51412
51710
|
return {
|
|
51413
51711
|
ReadCapacityUnits: read ?? DEFAULT_CAPACITY_UNITS,
|
|
@@ -51433,6 +51731,7 @@ function autoScalingResourceId(tableName, indexName) {
|
|
|
51433
51731
|
const autoScalingRetryDelays = {};
|
|
51434
51732
|
const REPLICA_GONE_WAIT_ATTEMPTS = 600;
|
|
51435
51733
|
const GLOBAL_TABLE_ACTIVE_WAIT_ATTEMPTS = 600;
|
|
51734
|
+
const VECTOR_INDEX_SETTLE_ATTEMPTS = 1800;
|
|
51436
51735
|
const TABLE_GONE_WAIT_ATTEMPTS = 600;
|
|
51437
51736
|
const deleteTableRetryDelays = {};
|
|
51438
51737
|
const DESCRIBE_SCALABLE_TARGETS_BATCH = 50;
|
|
@@ -51554,6 +51853,8 @@ function collectDesiredKeyAttributeNames(properties, options) {
|
|
|
51554
51853
|
if (!Array.isArray(indexes)) continue;
|
|
51555
51854
|
for (const index of indexes) addKeySchema(asRecord(index)?.["KeySchema"]);
|
|
51556
51855
|
}
|
|
51856
|
+
const vectorIndexes = properties["VectorIndexes"];
|
|
51857
|
+
if (Array.isArray(vectorIndexes)) for (const index of vectorIndexes) addKeySchema(asRecord(index)?.["SearchSchema"]);
|
|
51557
51858
|
return names;
|
|
51558
51859
|
}
|
|
51559
51860
|
function asRecord(value) {
|
|
@@ -51798,6 +52099,7 @@ function toSdkGlobalSecondaryIndexes(properties, region, billingMode, source = "
|
|
|
51798
52099
|
function stripProvisionedCapacityKeys(properties) {
|
|
51799
52100
|
const result = { ...properties };
|
|
51800
52101
|
delete result["WriteProvisionedThroughputSettings"];
|
|
52102
|
+
delete result[TABLE_READ_PROVISIONED_KEY];
|
|
51801
52103
|
const indexes = result["GlobalSecondaryIndexes"];
|
|
51802
52104
|
if (Array.isArray(indexes)) result["GlobalSecondaryIndexes"] = indexes.map((entry) => {
|
|
51803
52105
|
const gsi = asRecord(entry);
|
|
@@ -51837,7 +52139,7 @@ function stripProvisionedCapacityKeys(properties) {
|
|
|
51837
52139
|
return result;
|
|
51838
52140
|
}
|
|
51839
52141
|
const PROVISIONED_ONLY_CAPACITY_KEYS = {
|
|
51840
|
-
table: ["WriteProvisionedThroughputSettings"],
|
|
52142
|
+
table: ["WriteProvisionedThroughputSettings", "ReadProvisionedThroughputSettings"],
|
|
51841
52143
|
index: [
|
|
51842
52144
|
"WriteProvisionedThroughputSettings",
|
|
51843
52145
|
"ReadProvisionedThroughputSettings",
|
|
@@ -51847,7 +52149,7 @@ const PROVISIONED_ONLY_CAPACITY_KEYS = {
|
|
|
51847
52149
|
replicaIndex: ["ReadProvisionedThroughputSettings", "ProvisionedThroughputOverride"]
|
|
51848
52150
|
};
|
|
51849
52151
|
const ON_DEMAND_ONLY_CAPACITY_KEYS = {
|
|
51850
|
-
table: ["WriteOnDemandThroughputSettings"],
|
|
52152
|
+
table: ["WriteOnDemandThroughputSettings", "ReadOnDemandThroughputSettings"],
|
|
51851
52153
|
index: [
|
|
51852
52154
|
"WriteOnDemandThroughputSettings",
|
|
51853
52155
|
"ReadOnDemandThroughputSettings",
|
|
@@ -52074,11 +52376,12 @@ function toSdkReplicaThroughputOverrides(cfn, billingMode, diagnostics, context,
|
|
|
52074
52376
|
function collectTableOnDemandCeilings(properties, region, diagnostics, maskSecrets = (text) => text) {
|
|
52075
52377
|
const writeBlock = properties["WriteOnDemandThroughputSettings"];
|
|
52076
52378
|
const replicas = properties["Replicas"];
|
|
52077
|
-
const
|
|
52379
|
+
const replicaReadBlock = asRecord(Array.isArray(replicas) ? replicas.find((r) => asRecord(r)?.["Region"] === region) : void 0)?.["ReadOnDemandThroughputSettings"];
|
|
52380
|
+
const readBlock = replicaReadBlock ?? properties[TABLE_READ_ON_DEMAND_KEY];
|
|
52078
52381
|
const rawRead = asRecord(readBlock)?.["MaxReadRequestUnits"];
|
|
52079
52382
|
const rawWrite = asRecord(writeBlock)?.["MaxWriteRequestUnits"];
|
|
52080
52383
|
reportUnresolvedRawMember(rawRead, diagnostics, {
|
|
52081
|
-
blockName: "Replicas[local].ReadOnDemandThroughputSettings",
|
|
52384
|
+
blockName: replicaReadBlock !== void 0 ? "Replicas[local].ReadOnDemandThroughputSettings" : TABLE_READ_ON_DEMAND_KEY,
|
|
52082
52385
|
member: "MaxReadRequestUnits"
|
|
52083
52386
|
}, maskSecrets);
|
|
52084
52387
|
reportUnresolvedRawMember(rawWrite, diagnostics, {
|
|
@@ -55592,5 +55895,5 @@ function sameGenerationClaimsOf(record) {
|
|
|
55592
55895
|
}
|
|
55593
55896
|
|
|
55594
55897
|
//#endregion
|
|
55595
|
-
export { getPriorAttempts as $, applyCallerIdentityCredentials as $a, unionOfSecretBags as $c, isCustomResourceType as $i, orphansCarriedFrom as $l, namesAnyDeclaredParameter as $n, malformedResourcePropertiesWarning as $o, withoutSuperseded as $r, isWarmThroughputDecrease as $s, formatResourceLine as $t, resolveStateBucketWithDefault as $u, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as A, withoutUnsettledProperties as Aa, maskedLeafCoordinatesOf as Ac, renderAssemblyPathEscape as Ad, acquireIdempotencyToken as Ai, LockManager as Al, recheckFailedPlan as An, accountArgs as Ao, mappingPairs as Ar, repairMalformedOutputsForReadOnly as As, keptForRetainedRecord as At, finchSecretArgvRefusal as Au, deleteTableWithIndexBusyRetry as B, producerLookupOver as Ba, markSameGenerationBag as Bc, refuseMalformedDesiredTags as Bi, stackInstanceIdOf as Bl, isRedactedRecordedValue as Bn, malformedExportSourceWarning as Bo, gray as Br, findSilentDropProperties as Bs, revertedNestedRowIds as Bt, runDockerStreaming as Bu, planContributorInsightsOp as C, DiffCalculator as Ca, DagBuilder as Cc, hasOwnKey as Cd, isFinalSnapshotError as Ci, recordMaskOnlyValuesIn as Cl, equalModuloMask as Cn, passedParameterClassesOf as Co, findRefactorHints as Cr, refuseMalformedResourcePropertiesForOrphan as Cs, keptWholeReasonText as Ct, buildDenyExternalAccessPolicy as Cu, reverseMapTableContributorInsights as D, unsettledItemsOf as Da, maskAtCoordinates as Dc, absoluteAssemblyPathEscape as Dd, ledgerForStack as Di, wholeStringLeavesOf as Dl, isReplacementOrphan as Dn, STATE_RESOURCES_MALFORMED as Do, withMovedTo as Dr, refuseMalformedState as Ds, planOrphanAdoption as Dt, describeDockerExecFailure as Du, reverseMapIndexContributorInsights as E, unsettledItemsField as Ea, isMarkedCoordinate as Ec, ownValue as Ed, earliestDefined as Ei, recordProvenPublicExpression as El, isJournaledOrphan as En, STATE_REGION_DIVERGED as Eo, rollbackOrphanIds as Er, refuseMalformedResourcesForExport as Es, makeSiblingClaimReader as Et, describeDockerCapturedOutput as Eu, resolveDynamoDbDeleteBudgetClock as F, s3BucketDomainName as Fa, readbackPathFor as Fc, resolveBucketRegion as Fd, markDeleteStarted as Fi, CrossPrefixScanCache as Fl, orphanNeedsIdentity as Fn, hasReadableResources as Fo, getStackRecords as Fr, unreadableOrphanRecords as Fs, dropSettledNestedJournals as Ft, partitionSensitiveEnv as Fu, isTtlRateLimited as G, recordedReferenceRegions as Ga, createUnionSecretMasker as Gc, CC_BROKEN_REASON as Gi, exportNamesCarriedFrom as Gl, nameGenerationCarriedFrom as Gn, malformedOrphanRecordsWarning as Go, deleteSupersededEntry as Gr, findReplacedReadersOfRecreateTargets as Gs, deleteJournaledOrphans as Gt, synthesisStatusMessage as Gu, relayedIndexBusyDelete as H, keepHeldTokenProvenance as Ha, recordReferenceProvenanceEntry as Hc, tagPlanWarning as Hi, splitImportedOps as Hl, redactedDeleteAddressSkip as Hn, malformedLocalResourceEntriesWarning as Ho, red as Hr, withoutSilentDropProperties as Hs, collectNestedChildUnaddressed as Ht, AssetManifestLoader as Hu, resolveDynamoDbDeleteBudgetMs as I, s3BucketDualStackDomainName as Ia, readsNoEchoSource as Ic, DBPROXY_TAGS_WHAT as Ii, applyCrossPrefixScan as Il, findNestedStackTypeChanges as In, isReadableOrphanRecord as Io, withStackRecords as Ir, unreadableResourceEntries as Is, getNestedRevertRun as It, redactDockerArgvValues as Iu, sendTtlWaitingOutRateLimit as J, assertSendableRoleArn as Ja, logOnlyValueCount as Jc, isCustomResource as Ji, hasUnverifiableParameterRefusal as Jl, retiredAfterRollback as Jn, malformedOrphansWarning as Jo, removeSuperseded as Jr, isStatefulRecreateTargetForReplace as Js, isHandledOrphan as Jt, loadCdkJson as Ju, planTimeToLive as K, applyRoleArnIfSet as Ka, hasMaskableValues as Kc, ProviderRegistry as Ki, hasReadableExportSet as Kl, nameGenerationHighWaterOf as Kn, malformedOrphanRowsKeptWarning as Ko, holdsSupersededResources as Kr, shownType as Ks, dropFailedCommands as Kt, getDefaultStateBucketName as Ku, DELETE_INDEX_WAIT_PROCEED_NOTE as L, s3BucketRegionalDomainName as La, recordedNoEchoValuesOf as Lc, DBPROXY_TAG_OPTIONS as Li, crossPrefixDeniedWarning as Ll, getCurrentProducerRegions as Ln, isReadableResourceEntry as Lo, replacedDeleteFailureVerdict as Lr, withheldAccountClause as Ls, nestedChildStackName as Lt, redactedCause as Lu, beginDeleteWait as M, poisonRenderedSpellingsCollidingIn as Ma, noEchoLeavesOf as Mc, injectAwsRegion as Md, DeploymentEventsStore as Mi, S3StateBackend as Ml, replacementNeverSwapped as Mn, displayLogicalId as Mo, proposeRenames as Mr, repairMalformedResourcePropertiesForReadOnly as Ms, NESTED_PENDING_PARENT_REASON as Mt, getDockerCmd as Mu, compensateRemovedDeletionProtection as N, isSettledInstanceState as Na, noEchoOutputsComparison as Nc, injectedAwsRegionValue as Nd, extractDeploymentEventError as Ni, rebuildClientForBucketRegion as Nl, resolveReplacementOldType as Nn, hasReadableOrphans as No, awaitInFlightSibling as Nr, repairMalformedResourcesForReadOnly as Ns, displacedOpClause as Nt, isDockerClientEnvKey as Nu, stripIndexContributorInsights as O, unsettledPropertiesOf as Oa, maskReadbackAtCoordinates as Oc, describeFileReadFailure as Od, reserveStackCreateToken as Oi, WHOLE_DYNAMIC_REFERENCE_PATTERN as Ol, planFailedOps as On, UNREADABLE_ORPHANS_CONTAINER_ROW as Oo, isPairableType as Or, repairMalformedOrphanRecordsForReadOnly as Os, pendingRequestCount as Ot, describeDockerFailure as Ou, deleteBudgetKey as P, s3BucketArn as Pa, passedNoEchoParametersOf as Pc, clearBucketRegionCache as Pd, isRefusedByName as Pi, CrossPrefixReadError as Pl, seedsDeleteFirstGuard as Pn, hasReadableOutputs as Po, destroyStackRecordsView as Pr, unpreviewableOrphanRecords as Ps, displacedPhysicalIdShown as Pt, isMalformedEnvKey as Pu, isTruthyCfnBoolean as Q, AWS_CREDENTIAL_ENV_KEYS as Qa, shareLogOnlyValues as Qc, readsNoEchoDeleteValues as Qi, orphansAfterRollback as Ql, computeParameterTaint as Qn, malformedResourceEntriesWarning as Qo, supersededResourcesOf as Qr, coerceWarmThroughput as Qs, sameJournaledOrphans as Qt, resolveSkipPrefix as Qu, INDEX_SETTLE_POLL_INTERVAL_MS as R, s3BucketWebsiteUrl as Ra, valueAtCoordinate as Rc, planTagDiff as Ri, isAccessDenied$1 as Rl, inheritProducerRegions as Rn, malformedDriftResourcePropertiesWarning as Ro, bold as Rr, findActionableSilentDrops as Rs, recordDisplacedSkips as Rt, redactedDockerCause as Ru, indexDeclaresContributorInsights as S, reEnableInstanceApiTermination as Sa, sameLambdaFunctionAddress as Sc, defineOwnKey as Sd, effectiveDeletionPolicy as Si, recordMaskOnlyValue as Sl, equalModuloMarkedMask as Sn, parameterInputsFor as So, formatDestructiveChange as Sr, refuseMalformedResourcePropertiesForExport as Ss, isSecretBearingReferenceString as St, validateContainerRepoName as Su, readContributorInsightsSpec as T, isUsableAttemptedName as Ta, canonicalCoordinates as Tc, nullPrototypeRecord as Td, unsupportedFinalSnapshotError as Ti, recordNoEchoParameterFreshValue as Tl, demoteSupersededOrphans as Tn, JSON_LISTING_HOLE_VALUE as To, movedToHint as Tr, refuseMalformedResourcesForDestroy as Ts, makeCanonicalizePropertiesFn as Tt, resolveDockerContextDirectory as Tu, waitForIndexesSettled as U, outputReferenceProvenanceOf as Ua, snapshotPassProvenance as Uc, definedAttributes as Ui, acceptedCreateOnlyDropsOf as Ul, updatePartialMessage as Un, malformedLocalResourcesWarning as Uo, yellow as Ur, NO_CC_HANDLERS_REASON as Us, getCurrentNestedStackContext as Ut, getDockerImageBySourceHash as Uu, maskedLogger as V, refuseUnreadableCdkCrossAccountRefs as Va, redactForState as Vc, tagMapAsList as Vi, withStackInstanceIdWithheld as Vl, redactedDeleteAddressFields as Vn, malformedLocalOutputsWarning as Vo, green as Vr, unwrittenCreateOnlyReplacement as Vs, withNestedRevertRun as Vt, warnFinchArgvExposure as Vu, isTtlAlreadyDisabled as W, recordedOutputReferenceRegions as Wa, carryLogOnlyValues as Wc, stringifyIfAssigned as Wi, describeRegionValueKind as Wl, updatePartialReason as Wn, malformedOrphanRecordsRefusalMessage as Wo, addSuperseded as Wr, hasNoCloudControlHandlers as Ws, withNestedStackContext as Wt, Synthesizer as Wu, S3_AUTO_DELETE_OBJECTS_TAG as X, isIamRoleArn as Xa, recordLogOnlyParameterValue as Xc, waitForLambdaFunctionActive as Xi, importableOutputs as Xl, retiredNameGenerationsLeaving as Xn, malformedOutputsWarning as Xo, supersededHeldByOtherTypeWarning as Xr, renderStatefulReason as Xs, loadJournaledOrphans as Xt, resolveAutoAssetStorage as Xu, ECR_AUTO_DELETE_IMAGES_TAG as Y, explicitRoleArnOrThrow as Ya, printingCorpusOf as Yc, wouldReturnToSdkProvider as Yi, importableOutputKeys as Yl, retiredNameGenerationsAfter as Yn, malformedOutputsRefusalMessage as Yo, supersededAfterRollback as Yr, isStatefulRecreateTargetSync as Ys, journaledOrphanLines as Yt, resolveApp as Yu, hasCdkAutoDeleteTag as Z, sendableAssumeRoleCommand as Za, recordLogOnlyValue as Zc, TemplateNoEchoReresolver as Zi, isReadableBag as Zl, withNameGenerationReached as Zn, malformedRenderedContainersWarning as Zo, supersededHolderOf as Zr, WARM_THROUGHPUT_MEMBERS as Zs, makeForeignHolderScan as Zt, resolveCaptureObservedState as Zu, streamMemberRefusals as _, disableInstanceApiTermination as _a, dbInstanceEngineChangeIsInPlace as _c, StageLoadError as _d, ATOMIC_FINAL_SNAPSHOT_TYPES as _i, recordAttributeIdCopy as _l, removeProtectionTypeList as _n, isStalePlaceholderArnAttribute as _o, DEFAULT_RESOURCE_TIMEOUT_MS as _r, refuseMalformedResourceEntriesForImport as _s, readRecordedConditionVerdicts as _t, getBootstrapMarkerKey as _u, isProtectionValueActive as a, CloudControlProvider as aa, configIntegerRefusal as ac, CFN_TEMPLATE_BODY_LIMIT as ad, createReadOnlyAttributeHealerFactory as ai, withPhysicalNameCopies as al, readRefactorMarkerOnce as an, regionLessSecretName as ao, secretBearing as ar, refuseMalformedNestedChildOutputs as as, deferredServiceTokenWarning as at, AssetPublisher as au, CONTRIBUTOR_INSIGHTS_KEY as b, observeThenDisableInstanceApiTermination as ba, canonicalLambdaFunctionName as bc, parseFailureDebugDetail as bd, ccRoutedFinalSnapshotError as bi, carriesSecretMask as bl, withUnprovenUnsettled as bn, parseWebACLArn as bo, constructPathOf as br, refuseMalformedResourcePropertiesForDestroy as bs, withResourceDeadline as bt, readBootstrapMarkerBody as bu, DynamoDBGlobalTableProvider as c, unchangedBehindSecretReference as ca, replayWarn as cc, findLargeInlineResources as cd, maskEventTextWithBoundBags as ci, dynamicReferenceTokens as cl, refuseRefactorMarker as cn, parameterTypeMayLoseSecretIdentity as co, carriedExportAliasExposure as cr, refuseMalformedOrphans as cs, childTemplateLoader as ct, WorkGraph as cu, declaredStreamPolicyMember as d, deleteIndeterminateGuards as da, requireConfigString as dc, decodeListingKey as dd, secretNamePrintingBag as di, spelledKeysOf as dl, hasPendingMovesOut as dn, carriesDynamicReference as do, isWholeDynamicReferenceValue as dr, refuseMalformedOutputs as ds, listNestedTemplateRows as dt, loadPublishableAssetManifest as du, getCurrentResourceSecrets as ea, toCfnInteger as ec, resolveStateBucketWithDefaultAndSource as ed, noEchoAttributeNamesOf as ei, createSecretMasker as el, chunks as en, callerEnvCredentials as eo, reachableDivergentParameters as er, malformedResourcesWarning as es, markRefusedBeforeApplying as et, shouldRetainResource as eu, declaredStreamTagsMember as f, deleteLeftInPlace as fa, prefetchCreateOnlyPropertyPaths as fc, expectedOwnerParam as fd, secretNamePrintingBags as fi, identityKeyFor as fl, pendingMovesOutOf as fn, carriesFetchableDynamicReference as fo, noEchoParameterValueSeed as fr, refuseMalformedOutputsForDestroy as fs, renderNestedTemplateTreeDefect as ft, rewriteTemplateAssetReferences as fu, streamDeclaresTags as g, markWaitAbandoned as ga, blockDeviceMappingsDifferOnlyInDeleteOnTermination as gc, AssemblyReader as gd, storedSecretNameNeedles as gi, physicalNameCopiesOf as gl, replayRollback as gn, cfnRefValueFromPhysicalId as go, bindingSkippedOutputs as gr, refuseMalformedResourceEntriesForDestroy as gs, parentSuppliedValues as gt, ensureAssetStorage as gu, streamDeclaresPolicy as h, isWaitAbandonedError as ha, withRetry as hc, derivePartitionAndUrlSuffix as hd, stateSecretNameNeedles as hi, recoverMaskedOutput as hl, replayFailedOperations as hn, AWS_NO_VALUE as ho, isExportAliasCollision as hr, refuseMalformedResourceEntriesForDeploy as hs, conditionInputsFrom as ht, assertAssetBucketRegion as hu, PROTECTION_PROPERTY_BY_TYPE as i, customResourceResponseExpirationWarning as ia, configBooleanRefusal as ic, ssmResolvedValueType as id, withAttemptedItemsMasked as ii, scrubResourceRecord as il, readRefactorMarker as in, producerRegionsFromState as io, exportAliasCollisionScrubWarning as ir, refuseDivergentRecordRegionForDestroy as is, inheritedProvenanceForChildDiff as it, timePhase as iu, DYNAMODB_DELETE_POLL_COST_MS as j, IntrinsicFunctionResolver as ja, noEchoCoordinatesOf as jc, resolveAssemblyPath as jd, DeploymentEventsReader as ji, isLockInfoExpired as jl, recordUnderIdIsNotOwn as jn, deployRefusesOrphanRowsReason as jo, parseMappingFile as jr, repairMalformedResourceEntriesForReadOnly as js, recordRetainedForReadoption as jt, formatDockerLoginError as ju, DYNAMODB_DELETE_DEADLINE_MARGIN_MS as k, withUnsettledProperties as ka, maskWholeValue as kc, displayAssemblyPath as kd, withCreateTokenLedger as ki, isSingleDynamicReferenceToken as kl, planRollback as kn, UNREADABLE_RESOURCES_MAP_ROW as ko, looselyEqual as kr, repairMalformedOrphansForReadOnly as ks, resolvePendingCloudControlRequests as kt, dockerSpawnEnvWithSensitive as ku, STREAM_POLICY_KEY as l, RollbackInlinePolicyWriters as la, requireConfigArray as lc, uploadCfnTemplate as ld, namingSecretsWithRecordedNoEcho as li, isUncertifiedBaselineMaskPosition as ll, sameMove as ln, getAccountInfo as lo, exportNameNoEchoParameters as lr, refuseMalformedOrphansForDestroy as ls, findNestedTemplateTreeDefect as lt, buildAssetRedirectMap as lu, reverseMapStreamPolicy as m, withIndeterminateGuard as ma, describeTypeWithThrottleRetry as mc, canonicalizeRegion as md, secretNamedRecordNeedles as mi, recordNestedStackParameterExpressions as ml, refusePendingMovesOut as mn, keepsSecretReferenceToken as mo, collectPublishedOutputNames as mr, refuseMalformedResourceEntries as ms, conditionFingerprint as mt, BOOTSTRAP_MARKER_PREFIX as mu, recordedProtectionEvidence as n, CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID as na, coerceCfnBoolean as nc, stateBucketExistenceConfirmed as nd, noEchoExactEchoLeavesOf as ni, maskSecretsInError as nl, lookupEachName as nn, classifyRecordedSecretRegion as no, WITHHELD_NAME_DISPLAY as nr, malformedStateRefusalMessage as ns, computeImplicitDeleteEdges as nt, PhaseClock as nu, perType as o, slowCcOperationTimeoutMs as oa, configStringRefusal as oc, CFN_TEMPLATE_URL_LIMIT as od, completedReplayEntries as oi, withoutPhysicalNameCopies as ol, refactorMarkerMovesOf as on, coerceParameterTypedValue as oo, secretBearingStateKeyWarning as or, refuseMalformedOrphanRecords as os, findServiceTokenRefusals as ot, isSensitiveAttributeName as ou, planStreamMemberOps as p, deleteSkipReason as pa, templateResourceTypes as pc, PARTITION_TABLE as pd, secretNamedAttributeNamesOf as pi, inheritNestedStackParameterAssociations as pl, pendingMovesRefusalMessage as pn, isNamelessDynamicReferenceError as po, collectDeclaredOutputNames as pr, refuseMalformedResourceAttributesForOrphan as ps, templateIdentity as pt, AssetModeResolver as pu, readTtlSpec as q, assertFlagRoleArn as qa, literalSplitDelimitersOf as qc, ccBrokenReason as qi, hasReasonlessBaselineRefusal as ql, nameScopeOf as qn, malformedOrphansRefusalMessage as qo, isSupersededResourceRecord as qr, MULTI_REGION_RECREATE_BLOCKED_TYPES as qs, dropFailedHint as qt, getLegacyStateBucketName as qu, recordedProtectionNote as r, applyCustomResourceResponseExpiration as ra, coerceCfnInteger as rc, warnDeprecatedNoPrefixCliFlag as rd, noEchoParameterNamesOf as ri, maskSecretsInText as rl, withApiLimit as rn, classifyReplaySecretRegion as ro, displayTextOrWithheld as rr, previewableOrphanRecords as rs, crossStackOutputProvenanceSource as rt, renderPhaseTimings as ru, readProtection as s, onlySecretReferencesDiffer as sa, readConfigString as sc, MIGRATE_TMP_PREFIX as sd, journaledOrphanPrintingBag as si, DYNAMIC_REFERENCE_TOKEN_SCAN as sl, refactorMarkerRefusalMessage as sn, isUnboundTemplateParameter as so, secretSafeKeyDisplay as sr, refuseMalformedOrphanRecordsForDestroy as ss, serviceTokenBlockingReason as st, stringifyValue as su, DeployEngine as t, withPrintingSecrets as ta, toFiniteNumber as tc, resolveUseCdkBootstrapAssets as td, noEchoComparisonForTemplate as ti, errorCauseChain as tl, isAccessDeniedError as tn, envCredentialsAreAssumedRole as to, resourcesNamingDeclaredParameter as tr, malformedScrubResourceEntriesRefusalMessage as ts, IMPLICIT_DELETE_DEPENDENCIES as tt, stackInstanceIdCarriedFrom as tu, STREAM_TAGS_KEY as u, UNSPECIFIED_SKIP_REASON as ua, requireConfigObject as uc, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as ud, orphanRecordsPrintingBag as ui, pathCrossesDottedKey as ul, updateRefactorMarker as un, isImpossibleEmptyStoredAttribute as uo, exportNameSecretExposure as ur, refuseMalformedOrphansForOrphan as us, isAbsoluteAssetPath as ut, createAssetRedirectResolver as uu, streamPolicyMatchesDeclared as v, ec2InstanceProtectionSite as va, ecsServiceLaunchTypeSetOrChanged as vc, processStackMessages as vd, PRE_DELETE_SNAPSHOT_TYPES as vi, recordPhysicalNameCopy as vl, recordAfterRollbackUpdate as vn, lacksRecordedTableArn as vo, DEFAULT_RESOURCE_WARN_AFTER_MS as vr, refuseMalformedResourceEntriesForImportSave as vs, enclosingDeadlineExpired as vt, isCrossRegionRedirect as vu, planIndexContributorInsightsOps as w, INTRINSIC_KEYS as wa, TemplateParser as wc, hasPlainPrototype$1 as wd, refusesFinalSnapshot as wi, recordNoEchoAttributeValues as wl, undeclaredEmptyObservedKeys as wn, declaresNoEcho as wo, hintSidesOf as wr, refuseMalformedResourcesForDeploy as ws, mergeNoChangeOutputs as wt, buildDockerImage as wu, contributorInsightsRefusals as x, reDisableInstanceApiTermination as xa, lambdaFunctionNameForMask as xc, utf8ByteLength as xd, createPreDeleteFinalSnapshot as xi, provenPublicValue as xl, calculateResourceDrift as xn, withSharedDrainBudget as xo, findDestructiveChanges as xr, refuseMalformedResourcePropertiesForDrift as xs, diffSecurity as xt, validateAssetBucketName as xu, streamTagsMatchDeclared as y, isTerminationProtectionPropagationError as ya, emrClusterInstancesReplaced as yc, describeJsonParseFailure as yd, buildFinalSnapshotIdentifier as yi, splitGetAttStringForm as yl, settleUnsettledPrevious as yn, refStateLookupFromResource as yo, maskingRetryLogger as yr, refuseMalformedResourceEntriesForOrphan as ys, enclosingDeadlineRemainingMs as yt, parseBootstrapMarker as yu, TABLE_INDEX_NOUN as z, resolveDynamicReferences as za, liveMatchesUnresolvedTokenFrame as zc, readTagList as zi, isNotImplemented as zl, REDACTED_DELETE_ADDRESS_SKIP_REASON as zn, malformedExportNamesWarning as zo, cyan as zr, findHandledUnwrittenCreateOnly as zs, revertNestedChildFromJournal as zt, runDockerForeground as zu };
|
|
55596
|
-
//# sourceMappingURL=deploy-engine
|
|
55898
|
+
export { sendTtlWaitingOutRateLimit as $, assertSendableRoleArn as $a, logOnlyValueCount as $c, isCustomResource as $i, hasUnverifiableParameterRefusal as $l, retiredAfterRollback as $n, malformedOrphansWarning as $o, removeSuperseded as $r, isStatefulRecreateTargetForReplace as $s, isHandledOrphan as $t, loadCdkJson as $u, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as A, isUsableAttemptedName as Aa, canonicalCoordinates as Ac, nullPrototypeRecord as Ad, unsupportedFinalSnapshotError as Ai, recordNoEchoParameterFreshValue as Al, demoteSupersededOrphans as An, JSON_LISTING_HOLE_VALUE as Ao, movedToHint as Ar, refuseMalformedResourcesForDestroy as As, makeCanonicalizePropertiesFn as At, resolveDockerContextDirectory as Au, deleteTableWithIndexBusyRetry as B, s3BucketDomainName as Ba, readbackPathFor as Bc, resolveBucketRegion as Bd, markDeleteStarted as Bi, CrossPrefixScanCache as Bl, orphanNeedsIdentity as Bn, hasReadableResources as Bo, getStackRecords as Br, unreadableOrphanRecords as Bs, dropSettledNestedJournals as Bt, partitionSensitiveEnv as Bu, planContributorInsightsOp as C, ec2InstanceProtectionSite as Ca, ecsServiceLaunchTypeSetOrChanged as Cc, processStackMessages as Cd, PRE_DELETE_SNAPSHOT_TYPES as Ci, recordPhysicalNameCopy as Cl, recordAfterRollbackUpdate as Cn, lacksRecordedTableArn as Co, DEFAULT_RESOURCE_WARN_AFTER_MS as Cr, refuseMalformedResourceEntriesForImportSave as Cs, enclosingDeadlineExpired as Ct, isCrossRegionRedirect as Cu, reverseMapTableContributorInsights as D, reEnableInstanceApiTermination as Da, sameLambdaFunctionAddress as Dc, defineOwnKey as Dd, effectiveDeletionPolicy as Di, recordMaskOnlyValue as Dl, equalModuloMarkedMask as Dn, parameterInputsFor as Do, formatDestructiveChange as Dr, refuseMalformedResourcePropertiesForExport as Ds, isSecretBearingReferenceString as Dt, validateContainerRepoName as Du, reverseMapIndexContributorInsights as E, reDisableInstanceApiTermination as Ea, lambdaFunctionNameForMask as Ec, utf8ByteLength as Ed, createPreDeleteFinalSnapshot as Ei, provenPublicValue as El, calculateResourceDrift as En, withSharedDrainBudget as Eo, findDestructiveChanges as Er, refuseMalformedResourcePropertiesForDrift as Es, diffSecurity as Et, validateAssetBucketName as Eu, resolveDynamoDbDeleteBudgetClock as F, withoutUnsettledProperties as Fa, maskedLeafCoordinatesOf as Fc, renderAssemblyPathEscape as Fd, acquireIdempotencyToken as Fi, LockManager as Fl, recheckFailedPlan as Fn, accountArgs as Fo, mappingPairs as Fr, repairMalformedOutputsForReadOnly as Fs, keptForRetainedRecord as Ft, finchSecretArgvRefusal as Fu, readbackVectorIndexes as G, producerLookupOver as Ga, markSameGenerationBag as Gc, refuseMalformedDesiredTags as Gi, stackInstanceIdOf as Gl, isRedactedRecordedValue as Gn, malformedExportSourceWarning as Go, gray as Gr, findSilentDropProperties as Gs, revertedNestedRowIds as Gt, runDockerStreaming as Gu, relayedIndexBusyDelete as H, s3BucketRegionalDomainName as Ha, recordedNoEchoValuesOf as Hc, DBPROXY_TAG_OPTIONS as Hi, crossPrefixDeniedWarning as Hl, getCurrentProducerRegions as Hn, isReadableResourceEntry as Ho, replacedDeleteFailureVerdict as Hr, withheldAccountClause as Hs, nestedChildStackName as Ht, redactedCause as Hu, resolveDynamoDbDeleteBudgetMs as I, IntrinsicFunctionResolver as Ia, noEchoCoordinatesOf as Ic, resolveAssemblyPath as Id, DeploymentEventsReader as Ii, isLockInfoExpired as Il, recordUnderIdIsNotOwn as In, deployRefusesOrphanRowsReason as Io, parseMappingFile as Ir, repairMalformedResourceEntriesForReadOnly as Is, recordRetainedForReadoption as It, formatDockerLoginError as Iu, vectorIndexesShapeDetail as J, outputReferenceProvenanceOf as Ja, snapshotPassProvenance as Jc, definedAttributes as Ji, acceptedCreateOnlyDropsOf as Jl, updatePartialMessage as Jn, malformedLocalResourcesWarning as Jo, yellow as Jr, NO_CC_HANDLERS_REASON as Js, getCurrentNestedStackContext as Jt, getDockerImageBySourceHash as Ju, vectorIndexesForCreate as K, refuseUnreadableCdkCrossAccountRefs as Ka, redactForState as Kc, tagMapAsList as Ki, withStackInstanceIdWithheld as Kl, redactedDeleteAddressFields as Kn, malformedLocalOutputsWarning as Ko, green as Kr, unwrittenCreateOnlyReplacement as Ks, withNestedRevertRun as Kt, warnFinchArgvExposure as Ku, DELETE_INDEX_WAIT_PROCEED_NOTE as L, poisonRenderedSpellingsCollidingIn as La, noEchoLeavesOf as Lc, injectAwsRegion as Ld, DeploymentEventsStore as Li, S3StateBackend as Ll, replacementNeverSwapped as Ln, displayLogicalId as Lo, proposeRenames as Lr, repairMalformedResourcePropertiesForReadOnly as Ls, NESTED_PENDING_PARENT_REASON as Lt, getDockerCmd as Lu, beginDeleteWait as M, unsettledItemsOf as Ma, maskAtCoordinates as Mc, absoluteAssemblyPathEscape as Md, ledgerForStack as Mi, wholeStringLeavesOf as Ml, isReplacementOrphan as Mn, STATE_RESOURCES_MALFORMED as Mo, withMovedTo as Mr, refuseMalformedState as Ms, planOrphanAdoption as Mt, describeDockerExecFailure as Mu, compensateRemovedDeletionProtection as N, unsettledPropertiesOf as Na, maskReadbackAtCoordinates as Nc, describeFileReadFailure as Nd, reserveStackCreateToken as Ni, WHOLE_DYNAMIC_REFERENCE_PATTERN as Nl, planFailedOps as Nn, UNREADABLE_ORPHANS_CONTAINER_ROW as No, isPairableType as Nr, repairMalformedOrphanRecordsForReadOnly as Ns, pendingRequestCount as Nt, describeDockerFailure as Nu, stripIndexContributorInsights as O, DiffCalculator as Oa, DagBuilder as Oc, hasOwnKey as Od, isFinalSnapshotError as Oi, recordMaskOnlyValuesIn as Ol, equalModuloMask as On, passedParameterClassesOf as Oo, findRefactorHints as Or, refuseMalformedResourcePropertiesForOrphan as Os, keptWholeReasonText as Ot, buildDenyExternalAccessPolicy as Ou, deleteBudgetKey as P, withUnsettledProperties as Pa, maskWholeValue as Pc, displayAssemblyPath as Pd, withCreateTokenLedger as Pi, isSingleDynamicReferenceToken as Pl, planRollback as Pn, UNREADABLE_RESOURCES_MAP_ROW as Po, looselyEqual as Pr, repairMalformedOrphansForReadOnly as Ps, resolvePendingCloudControlRequests as Pt, dockerSpawnEnvWithSensitive as Pu, readTtlSpec as Q, assertFlagRoleArn as Qa, literalSplitDelimitersOf as Qc, ccBrokenReason as Qi, hasReasonlessBaselineRefusal as Ql, nameScopeOf as Qn, malformedOrphansRefusalMessage as Qo, isSupersededResourceRecord as Qr, MULTI_REGION_RECREATE_BLOCKED_TYPES as Qs, dropFailedHint as Qt, getLegacyStateBucketName as Qu, INDEX_SETTLE_POLL_INTERVAL_MS as R, isSettledInstanceState as Ra, noEchoOutputsComparison as Rc, injectedAwsRegionValue as Rd, extractDeploymentEventError as Ri, rebuildClientForBucketRegion as Rl, resolveReplacementOldType as Rn, hasReadableOrphans as Ro, awaitInFlightSibling as Rr, repairMalformedResourcesForReadOnly as Rs, displacedOpClause as Rt, isDockerClientEnvKey as Ru, indexDeclaresContributorInsights as S, disableInstanceApiTermination as Sa, dbInstanceEngineChangeIsInPlace as Sc, StageLoadError as Sd, ATOMIC_FINAL_SNAPSHOT_TYPES as Si, recordAttributeIdCopy as Sl, removeProtectionTypeList as Sn, isStalePlaceholderArnAttribute as So, DEFAULT_RESOURCE_TIMEOUT_MS as Sr, refuseMalformedResourceEntriesForImport as Ss, readRecordedConditionVerdicts as St, getBootstrapMarkerKey as Su, readContributorInsightsSpec as T, observeThenDisableInstanceApiTermination as Ta, canonicalLambdaFunctionName as Tc, parseFailureDebugDetail as Td, ccRoutedFinalSnapshotError as Ti, carriesSecretMask as Tl, withUnprovenUnsettled as Tn, parseWebACLArn as To, constructPathOf as Tr, refuseMalformedResourcePropertiesForDestroy as Ts, withResourceDeadline as Tt, readBootstrapMarkerBody as Tu, waitForIndexesSettled as U, s3BucketWebsiteUrl as Ua, valueAtCoordinate as Uc, planTagDiff as Ui, isAccessDenied$1 as Ul, inheritProducerRegions as Un, malformedDriftResourcePropertiesWarning as Uo, bold as Ur, findActionableSilentDrops as Us, recordDisplacedSkips as Ut, redactedDockerCause as Uu, maskedLogger as V, s3BucketDualStackDomainName as Va, readsNoEchoSource as Vc, DBPROXY_TAGS_WHAT as Vi, applyCrossPrefixScan as Vl, findNestedStackTypeChanges as Vn, isReadableOrphanRecord as Vo, withStackRecords as Vr, unreadableResourceEntries as Vs, getNestedRevertRun as Vt, redactDockerArgvValues as Vu, planVectorIndexUpdates as W, resolveDynamicReferences as Wa, liveMatchesUnresolvedTokenFrame as Wc, readTagList as Wi, isNotImplemented as Wl, REDACTED_DELETE_ADDRESS_SKIP_REASON as Wn, malformedExportNamesWarning as Wo, cyan as Wr, findHandledUnwrittenCreateOnly as Ws, revertNestedChildFromJournal as Wt, runDockerForeground as Wu, isTtlRateLimited as X, recordedReferenceRegions as Xa, createUnionSecretMasker as Xc, CC_BROKEN_REASON as Xi, exportNamesCarriedFrom as Xl, nameGenerationCarriedFrom as Xn, malformedOrphanRecordsWarning as Xo, deleteSupersededEntry as Xr, findReplacedReadersOfRecreateTargets as Xs, deleteJournaledOrphans as Xt, synthesisStatusMessage as Xu, isTtlAlreadyDisabled as Y, recordedOutputReferenceRegions as Ya, carryLogOnlyValues as Yc, stringifyIfAssigned as Yi, describeRegionValueKind as Yl, updatePartialReason as Yn, malformedOrphanRecordsRefusalMessage as Yo, addSuperseded as Yr, hasNoCloudControlHandlers as Ys, withNestedStackContext as Yt, Synthesizer as Yu, planTimeToLive as Z, applyRoleArnIfSet as Za, hasMaskableValues as Zc, ProviderRegistry as Zi, hasReadableExportSet as Zl, nameGenerationHighWaterOf as Zn, malformedOrphanRowsKeptWarning as Zo, holdsSupersededResources as Zr, shownType as Zs, dropFailedCommands as Zt, getDefaultStateBucketName as Zu, streamMemberRefusals as _, deleteLeftInPlace as _a, prefetchCreateOnlyPropertyPaths as _c, expectedOwnerParam as _d, secretNamePrintingBags as _i, identityKeyFor as _l, pendingMovesOutOf as _n, carriesFetchableDynamicReference as _o, noEchoParameterValueSeed as _r, refuseMalformedOutputsForDestroy as _s, renderNestedTemplateTreeDefect as _t, rewriteTemplateAssetReferences as _u, isProtectionValueActive as a, getCurrentResourceSecrets as aa, toCfnInteger as ac, resolveStateBucketWithDefaultAndSource as ad, noEchoAttributeNamesOf as ai, createSecretMasker as al, chunks as an, callerEnvCredentials as ao, reachableDivergentParameters as ar, malformedResourcesWarning as as, markRefusedBeforeApplying as at, shouldRetainResource as au, CONTRIBUTOR_INSIGHTS_KEY as b, isWaitAbandonedError as ba, withRetry as bc, derivePartitionAndUrlSuffix as bd, stateSecretNameNeedles as bi, recoverMaskedOutput as bl, replayFailedOperations as bn, AWS_NO_VALUE as bo, isExportAliasCollision as br, refuseMalformedResourceEntriesForDeploy as bs, conditionInputsFrom as bt, assertAssetBucketRegion as bu, DynamoDBGlobalTableProvider as c, applyCustomResourceResponseExpiration as ca, coerceCfnInteger as cc, warnDeprecatedNoPrefixCliFlag as cd, noEchoParameterNamesOf as ci, maskSecretsInText as cl, withApiLimit as cn, classifyReplaySecretRegion as co, displayTextOrWithheld as cr, previewableOrphanRecords as cs, crossStackOutputProvenanceSource as ct, renderPhaseTimings as cu, declaredStreamPolicyMember as d, slowCcOperationTimeoutMs as da, configStringRefusal as dc, CFN_TEMPLATE_URL_LIMIT as dd, completedReplayEntries as di, withoutPhysicalNameCopies as dl, refactorMarkerMovesOf as dn, coerceParameterTypedValue as do, secretBearingStateKeyWarning as dr, refuseMalformedOrphanRecords as ds, findServiceTokenRefusals as dt, isSensitiveAttributeName as du, wouldReturnToSdkProvider as ea, isStatefulRecreateTargetSync as ec, resolveApp as ed, supersededAfterRollback as ei, printingCorpusOf as el, journaledOrphanLines as en, explicitRoleArnOrThrow as eo, retiredNameGenerationsAfter as er, malformedOutputsRefusalMessage as es, ECR_AUTO_DELETE_IMAGES_TAG as et, importableOutputKeys as eu, declaredStreamTagsMember as f, onlySecretReferencesDiffer as fa, readConfigString as fc, MIGRATE_TMP_PREFIX as fd, journaledOrphanPrintingBag as fi, DYNAMIC_REFERENCE_TOKEN_SCAN as fl, refactorMarkerRefusalMessage as fn, isUnboundTemplateParameter as fo, secretSafeKeyDisplay as fr, refuseMalformedOrphanRecordsForDestroy as fs, serviceTokenBlockingReason as ft, stringifyValue as fu, streamDeclaresTags as g, deleteIndeterminateGuards as ga, requireConfigString as gc, decodeListingKey as gd, secretNamePrintingBag as gi, spelledKeysOf as gl, hasPendingMovesOut as gn, carriesDynamicReference as go, isWholeDynamicReferenceValue as gr, refuseMalformedOutputs as gs, listNestedTemplateRows as gt, loadPublishableAssetManifest as gu, streamDeclaresPolicy as h, UNSPECIFIED_SKIP_REASON as ha, requireConfigObject as hc, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as hd, orphanRecordsPrintingBag as hi, pathCrossesDottedKey as hl, updateRefactorMarker as hn, isImpossibleEmptyStoredAttribute as ho, exportNameSecretExposure as hr, refuseMalformedOrphansForOrphan as hs, isAbsoluteAssetPath as ht, createAssetRedirectResolver as hu, PROTECTION_PROPERTY_BY_TYPE as i, isCustomResourceType as ia, isWarmThroughputDecrease as ic, resolveStateBucketWithDefault as id, withoutSuperseded as ii, unionOfSecretBags as il, formatResourceLine as in, applyCallerIdentityCredentials as io, namesAnyDeclaredParameter as ir, malformedResourcePropertiesWarning as is, getPriorAttempts as it, orphansCarriedFrom as iu, DYNAMODB_DELETE_POLL_COST_MS as j, unsettledItemsField as ja, isMarkedCoordinate as jc, ownValue as jd, earliestDefined as ji, recordProvenPublicExpression as jl, isJournaledOrphan as jn, STATE_REGION_DIVERGED as jo, rollbackOrphanIds as jr, refuseMalformedResourcesForExport as js, makeSiblingClaimReader as jt, describeDockerCapturedOutput as ju, DYNAMODB_DELETE_DEADLINE_MARGIN_MS as k, INTRINSIC_KEYS as ka, TemplateParser as kc, hasPlainPrototype$1 as kd, refusesFinalSnapshot as ki, recordNoEchoAttributeValues as kl, undeclaredEmptyObservedKeys as kn, declaresNoEcho as ko, hintSidesOf as kr, refuseMalformedResourcesForDeploy as ks, mergeNoChangeOutputs as kt, buildDockerImage as ku, STREAM_POLICY_KEY as l, customResourceResponseExpirationWarning as la, configBooleanRefusal as lc, ssmResolvedValueType as ld, withAttemptedItemsMasked as li, scrubResourceRecord as ll, readRefactorMarker as ln, producerRegionsFromState as lo, exportAliasCollisionScrubWarning as lr, refuseDivergentRecordRegionForDestroy as ls, inheritedProvenanceForChildDiff as lt, timePhase as lu, reverseMapStreamPolicy as m, RollbackInlinePolicyWriters as ma, requireConfigArray as mc, uploadCfnTemplate as md, namingSecretsWithRecordedNoEcho as mi, isUncertifiedBaselineMaskPosition as ml, sameMove as mn, getAccountInfo as mo, exportNameNoEchoParameters as mr, refuseMalformedOrphansForDestroy as ms, findNestedTemplateTreeDefect as mt, buildAssetRedirectMap as mu, recordedProtectionEvidence as n, TemplateNoEchoReresolver as na, WARM_THROUGHPUT_MEMBERS as nc, resolveCaptureObservedState as nd, supersededHolderOf as ni, recordLogOnlyValue as nl, makeForeignHolderScan as nn, sendableAssumeRoleCommand as no, withNameGenerationReached as nr, malformedRenderedContainersWarning as ns, hasCdkAutoDeleteTag as nt, isReadableBag as nu, perType as o, withPrintingSecrets as oa, toFiniteNumber as oc, resolveUseCdkBootstrapAssets as od, noEchoComparisonForTemplate as oi, errorCauseChain as ol, isAccessDeniedError as on, envCredentialsAreAssumedRole as oo, resourcesNamingDeclaredParameter as or, malformedScrubResourceEntriesRefusalMessage as os, IMPLICIT_DELETE_DEPENDENCIES as ot, stackInstanceIdCarriedFrom as ou, planStreamMemberOps as p, unchangedBehindSecretReference as pa, replayWarn as pc, findLargeInlineResources as pd, maskEventTextWithBoundBags as pi, dynamicReferenceTokens as pl, refuseRefactorMarker as pn, parameterTypeMayLoseSecretIdentity as po, carriedExportAliasExposure as pr, refuseMalformedOrphans as ps, childTemplateLoader as pt, WorkGraph as pu, vectorIndexesSettled as q, keepHeldTokenProvenance as qa, recordReferenceProvenanceEntry as qc, tagPlanWarning as qi, splitImportedOps as ql, redactedDeleteAddressSkip as qn, malformedLocalResourceEntriesWarning as qo, red as qr, withoutSilentDropProperties as qs, collectNestedChildUnaddressed as qt, AssetManifestLoader as qu, recordedProtectionNote as r, readsNoEchoDeleteValues as ra, coerceWarmThroughput as rc, resolveSkipPrefix as rd, supersededResourcesOf as ri, shareLogOnlyValues as rl, sameJournaledOrphans as rn, AWS_CREDENTIAL_ENV_KEYS as ro, computeParameterTaint as rr, malformedResourceEntriesWarning as rs, isTruthyCfnBoolean as rt, orphansAfterRollback as ru, readProtection as s, CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID as sa, coerceCfnBoolean as sc, stateBucketExistenceConfirmed as sd, noEchoExactEchoLeavesOf as si, maskSecretsInError as sl, lookupEachName as sn, classifyRecordedSecretRegion as so, WITHHELD_NAME_DISPLAY as sr, malformedStateRefusalMessage as ss, computeImplicitDeleteEdges as st, PhaseClock as su, DeployEngine as t, waitForLambdaFunctionActive as ta, renderStatefulReason as tc, resolveAutoAssetStorage as td, supersededHeldByOtherTypeWarning as ti, recordLogOnlyParameterValue as tl, loadJournaledOrphans as tn, isIamRoleArn as to, retiredNameGenerationsLeaving as tr, malformedOutputsWarning as ts, S3_AUTO_DELETE_OBJECTS_TAG as tt, importableOutputs as tu, STREAM_TAGS_KEY as u, CloudControlProvider as ua, configIntegerRefusal as uc, CFN_TEMPLATE_BODY_LIMIT as ud, createReadOnlyAttributeHealerFactory as ui, withPhysicalNameCopies as ul, readRefactorMarkerOnce as un, regionLessSecretName as uo, secretBearing as ur, refuseMalformedNestedChildOutputs as us, deferredServiceTokenWarning as ut, AssetPublisher as uu, streamPolicyMatchesDeclared as v, deleteSkipReason as va, templateResourceTypes as vc, PARTITION_TABLE as vd, secretNamedAttributeNamesOf as vi, inheritNestedStackParameterAssociations as vl, pendingMovesRefusalMessage as vn, isNamelessDynamicReferenceError as vo, collectDeclaredOutputNames as vr, refuseMalformedResourceAttributesForOrphan as vs, templateIdentity as vt, AssetModeResolver as vu, planIndexContributorInsightsOps as w, isTerminationProtectionPropagationError as wa, emrClusterInstancesReplaced as wc, describeJsonParseFailure as wd, buildFinalSnapshotIdentifier as wi, splitGetAttStringForm as wl, settleUnsettledPrevious as wn, refStateLookupFromResource as wo, maskingRetryLogger as wr, refuseMalformedResourceEntriesForOrphan as ws, enclosingDeadlineRemainingMs as wt, parseBootstrapMarker as wu, contributorInsightsRefusals as x, markWaitAbandoned as xa, blockDeviceMappingsDifferOnlyInDeleteOnTermination as xc, AssemblyReader as xd, storedSecretNameNeedles as xi, physicalNameCopiesOf as xl, replayRollback as xn, cfnRefValueFromPhysicalId as xo, bindingSkippedOutputs as xr, refuseMalformedResourceEntriesForDestroy as xs, parentSuppliedValues as xt, ensureAssetStorage as xu, streamTagsMatchDeclared as y, withIndeterminateGuard as ya, describeTypeWithThrottleRetry as yc, canonicalizeRegion as yd, secretNamedRecordNeedles as yi, recordNestedStackParameterExpressions as yl, refusePendingMovesOut as yn, keepsSecretReferenceToken as yo, collectPublishedOutputNames as yr, refuseMalformedResourceEntries as ys, conditionFingerprint as yt, BOOTSTRAP_MARKER_PREFIX as yu, TABLE_INDEX_NOUN as z, s3BucketArn as za, passedNoEchoParametersOf as zc, clearBucketRegionCache as zd, isRefusedByName as zi, CrossPrefixReadError as zl, seedsDeleteFirstGuard as zn, hasReadableOutputs as zo, destroyStackRecordsView as zr, unpreviewableOrphanRecords as zs, displacedPhysicalIdShown as zt, isMalformedEnvKey as zu };
|
|
55899
|
+
//# sourceMappingURL=deploy-engine--bCIMkkk.js.map
|