@go-to-k/cdkd 0.313.0 → 0.314.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-_nun2Jda.js} +43 -7
- package/dist/asg-provider-_nun2Jda.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-D7wXWxVo.js → db-instance-modify-retry-By0_BFNO.js} +3 -3
- package/dist/{db-instance-modify-retry-D7wXWxVo.js.map → db-instance-modify-retry-By0_BFNO.js.map} +1 -1
- package/dist/{deploy-engine-CwpnkMCZ.js → deploy-engine-ClIUqDQL.js} +372 -58
- package/dist/deploy-engine-ClIUqDQL.js.map +1 -0
- package/dist/{iam-role-provider-ARR3C50J.js → iam-role-provider-DJep3uns.js} +4 -4
- package/dist/{iam-role-provider-ARR3C50J.js.map → iam-role-provider-DJep3uns.js.map} +1 -1
- package/dist/index.js +4 -4
- package/dist/{neptune-provider-DfPOAG0q.js → neptune-provider-CGZ_G4Vz.js} +5 -5
- package/dist/{neptune-provider-DfPOAG0q.js.map → neptune-provider-CGZ_G4Vz.js.map} +1 -1
- package/dist/{program-CMP_YVVn.js → program-Du6jOw1-.js} +38 -15
- package/dist/program-Du6jOw1-.js.map +1 -0
- package/dist/{provider-classes-DefoNqY7.js → provider-classes-ZqxIefLl.js} +545 -218
- package/dist/provider-classes-ZqxIefLl.js.map +1 -0
- package/dist/{rds-provider-Dn-7U1CR.js → rds-provider-C2fHUNSE.js} +5 -5
- package/dist/{rds-provider-Dn-7U1CR.js.map → rds-provider-C2fHUNSE.js.map} +1 -1
- package/dist/{version-CsWxTnUg.js → version-B2PvJ12r.js} +2 -2
- package/dist/{version-CsWxTnUg.js.map → version-B2PvJ12r.js.map} +1 -1
- package/package.json +1 -1
- package/dist/asg-provider-CqPtIngx.js.map +0 -1
- package/dist/deploy-engine-CwpnkMCZ.js.map +0 -1
- package/dist/program-CMP_YVVn.js.map +0 -1
- package/dist/provider-classes-DefoNqY7.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-B2PvJ12r.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",
|
|
@@ -16711,24 +16720,24 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16711
16720
|
"GlobalSecondaryIndexes",
|
|
16712
16721
|
"KeySchema",
|
|
16713
16722
|
"LocalSecondaryIndexes",
|
|
16723
|
+
"ReadOnDemandThroughputSettings",
|
|
16724
|
+
"ReadProvisionedThroughputSettings",
|
|
16714
16725
|
"Replicas",
|
|
16715
16726
|
"SSESpecification",
|
|
16716
16727
|
"StreamSpecification",
|
|
16717
16728
|
"TableClass",
|
|
16718
16729
|
"TableName",
|
|
16730
|
+
"TableType",
|
|
16719
16731
|
"TimeToLiveSpecification",
|
|
16732
|
+
"VectorIndexes",
|
|
16733
|
+
"WarmThroughput",
|
|
16720
16734
|
"WriteOnDemandThroughputSettings",
|
|
16721
16735
|
"WriteProvisionedThroughputSettings"
|
|
16722
16736
|
]),
|
|
16723
16737
|
silentDrop: /* @__PURE__ */ new Map([
|
|
16724
16738
|
["GlobalTableSourceArn", "not yet implemented by cdkd"],
|
|
16725
16739
|
["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"]
|
|
16740
|
+
["MultiRegionConsistency", "not yet implemented by cdkd"]
|
|
16732
16741
|
]),
|
|
16733
16742
|
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
16734
16743
|
readOnly: /* @__PURE__ */ new Set([
|
|
@@ -18467,15 +18476,19 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18467
18476
|
}],
|
|
18468
18477
|
["AWS::S3::Bucket", {
|
|
18469
18478
|
handled: /* @__PURE__ */ new Set([
|
|
18479
|
+
"AbacStatus",
|
|
18470
18480
|
"AccelerateConfiguration",
|
|
18471
18481
|
"AnalyticsConfigurations",
|
|
18472
18482
|
"BucketEncryption",
|
|
18473
18483
|
"BucketName",
|
|
18484
|
+
"BucketNamePrefix",
|
|
18485
|
+
"BucketNamespace",
|
|
18474
18486
|
"CorsConfiguration",
|
|
18475
18487
|
"IntelligentTieringConfigurations",
|
|
18476
18488
|
"InventoryConfigurations",
|
|
18477
18489
|
"LifecycleConfiguration",
|
|
18478
18490
|
"LoggingConfiguration",
|
|
18491
|
+
"MetadataConfiguration",
|
|
18479
18492
|
"MetricsConfigurations",
|
|
18480
18493
|
"NotificationConfiguration",
|
|
18481
18494
|
"ObjectLockConfiguration",
|
|
@@ -18487,15 +18500,8 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18487
18500
|
"VersioningConfiguration",
|
|
18488
18501
|
"WebsiteConfiguration"
|
|
18489
18502
|
]),
|
|
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"]),
|
|
18503
|
+
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"]]),
|
|
18504
|
+
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
18499
18505
|
readOnly: /* @__PURE__ */ new Set([
|
|
18500
18506
|
"Arn",
|
|
18501
18507
|
"DomainName",
|
|
@@ -28791,7 +28797,7 @@ var CloudControlProvider = class {
|
|
|
28791
28797
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
28792
28798
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
28793
28799
|
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-
|
|
28800
|
+
const { ASGProvider } = await import("./asg-provider-_nun2Jda.js");
|
|
28795
28801
|
const delegateRegion = ambientRegion();
|
|
28796
28802
|
let asgProvider = this.asgDeleteDelegates.get(delegateRegion);
|
|
28797
28803
|
if (asgProvider === void 0) {
|
|
@@ -28900,7 +28906,7 @@ var CloudControlProvider = class {
|
|
|
28900
28906
|
const family = SDK_DELETE_FAMILIES.get(resourceType);
|
|
28901
28907
|
const cached = this.sdkDeleteDelegates.get(family);
|
|
28902
28908
|
if (cached !== void 0 && cached.region === ccRegion) return cached.provider;
|
|
28903
|
-
const provider = family === "rds" ? new (await (import("./rds-provider-
|
|
28909
|
+
const provider = family === "rds" ? new (await (import("./rds-provider-C2fHUNSE.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-CGZ_G4Vz.js"))).NeptuneProvider({ region: ccRegion });
|
|
28904
28910
|
this.sdkDeleteDelegates.set(family, {
|
|
28905
28911
|
region: ccRegion,
|
|
28906
28912
|
provider
|
|
@@ -35259,6 +35265,7 @@ function createOpMasker(logger, secrets, deployBag) {
|
|
|
35259
35265
|
};
|
|
35260
35266
|
}
|
|
35261
35267
|
const OTHER_SPELLED_NAME_KEYS = {
|
|
35268
|
+
"AWS::S3::Bucket": ["BucketNamePrefix"],
|
|
35262
35269
|
"AWS::Cognito::UserPoolDomain": ["Domain"],
|
|
35263
35270
|
"AWS::Cognito::UserPoolUser": ["Username"],
|
|
35264
35271
|
"AWS::ECS::TaskDefinition": ["Family"],
|
|
@@ -43264,6 +43271,7 @@ function keptUnderGeneratedName(resource) {
|
|
|
43264
43271
|
if (typeof resource.physicalId !== "string" || resource.physicalId === "") return false;
|
|
43265
43272
|
const property = explicitNamePropertyFor(resource.resourceType);
|
|
43266
43273
|
const properties = resource.properties;
|
|
43274
|
+
if (alternateNamePropertiesFor(resource.resourceType).some((p) => properties?.[p])) return false;
|
|
43267
43275
|
return property === void 0 || !properties?.[property];
|
|
43268
43276
|
}
|
|
43269
43277
|
function keptForRetainedRecord(resource) {
|
|
@@ -43666,7 +43674,7 @@ function templateStillDeclares(template, record, nameProperties) {
|
|
|
43666
43674
|
if (!declared) return false;
|
|
43667
43675
|
if (declared.Type !== record.state.resourceType) return false;
|
|
43668
43676
|
const properties = declared.Properties ?? {};
|
|
43669
|
-
return !nameProperties.some((p) => properties[p] !== void 0 && properties[p] !== null);
|
|
43677
|
+
return ![...nameProperties, ...alternateNamePropertiesFor(declared.Type)].some((p) => properties[p] !== void 0 && properties[p] !== null);
|
|
43670
43678
|
}
|
|
43671
43679
|
const ADOPTION_REFUSED_TYPES = /* @__PURE__ */ new Set(["AWS::Lambda::LayerVersion", "AWS::ECS::TaskDefinition"]);
|
|
43672
43680
|
async function planOrphanAdoption(params) {
|
|
@@ -47279,6 +47287,125 @@ async function sendTtlWaitingOutRateLimit(send, options) {
|
|
|
47279
47287
|
}
|
|
47280
47288
|
}
|
|
47281
47289
|
|
|
47290
|
+
//#endregion
|
|
47291
|
+
//#region src/provisioning/dynamodb-vector-indexes.ts
|
|
47292
|
+
function vectorIndexesByName(value) {
|
|
47293
|
+
const out = /* @__PURE__ */ new Map();
|
|
47294
|
+
if (!Array.isArray(value)) return out;
|
|
47295
|
+
for (const entry of value) {
|
|
47296
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) continue;
|
|
47297
|
+
const name = entry["IndexName"];
|
|
47298
|
+
if (typeof name === "string") out.set(name, entry);
|
|
47299
|
+
}
|
|
47300
|
+
return out;
|
|
47301
|
+
}
|
|
47302
|
+
function vectorIndexesShapeDetail(value) {
|
|
47303
|
+
if (value === void 0) return void 0;
|
|
47304
|
+
if (!Array.isArray(value)) return `VectorIndexes must be a list, got ${typeof value}`;
|
|
47305
|
+
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`;
|
|
47306
|
+
}
|
|
47307
|
+
function vectorIndexForSend(entry) {
|
|
47308
|
+
const out = {};
|
|
47309
|
+
for (const key of [
|
|
47310
|
+
"IndexName",
|
|
47311
|
+
"VectorAttribute",
|
|
47312
|
+
"Projection",
|
|
47313
|
+
"DistanceFunction"
|
|
47314
|
+
]) if (entry[key] !== void 0) out[key] = entry[key];
|
|
47315
|
+
if (entry["Dimensions"] !== void 0) out["Dimensions"] = coerceCfnInteger(entry["Dimensions"]) ?? entry["Dimensions"];
|
|
47316
|
+
if (entry["SearchSchema"] !== void 0) out["SearchSchema"] = entry["SearchSchema"];
|
|
47317
|
+
return out;
|
|
47318
|
+
}
|
|
47319
|
+
function vectorIndexesForCreate(value) {
|
|
47320
|
+
if (value === void 0 || value === null) return void 0;
|
|
47321
|
+
if (!Array.isArray(value)) return value;
|
|
47322
|
+
return value.map((entry) => typeof entry === "object" && entry !== null && !Array.isArray(entry) ? vectorIndexForSend(entry) : entry);
|
|
47323
|
+
}
|
|
47324
|
+
function sortedByJson(list) {
|
|
47325
|
+
if (!Array.isArray(list)) return list;
|
|
47326
|
+
return [...list].sort((a, b) => {
|
|
47327
|
+
const x = JSON.stringify(a) ?? "";
|
|
47328
|
+
const y = JSON.stringify(b) ?? "";
|
|
47329
|
+
return x < y ? -1 : x > y ? 1 : 0;
|
|
47330
|
+
});
|
|
47331
|
+
}
|
|
47332
|
+
function vectorIndexKey(entry) {
|
|
47333
|
+
const e = entry;
|
|
47334
|
+
const projection = e["Projection"];
|
|
47335
|
+
const normalizedProjection = typeof projection === "object" && projection !== null && !Array.isArray(projection) ? {
|
|
47336
|
+
ProjectionType: projection["ProjectionType"],
|
|
47337
|
+
NonKeyAttributes: sortedByJson(nonEmpty(projection["NonKeyAttributes"]))
|
|
47338
|
+
} : projection;
|
|
47339
|
+
const attribute = e["VectorAttribute"];
|
|
47340
|
+
return JSON.stringify([
|
|
47341
|
+
e["IndexName"],
|
|
47342
|
+
typeof attribute === "object" && attribute !== null ? attribute["AttributeName"] : attribute,
|
|
47343
|
+
coerceCfnInteger(e["Dimensions"]) ?? e["Dimensions"],
|
|
47344
|
+
e["DistanceFunction"],
|
|
47345
|
+
normalizedProjection,
|
|
47346
|
+
sortedByJson(Array.isArray(e["SearchSchema"]) && e["SearchSchema"].length > 0 ? e["SearchSchema"].map((s) => typeof s === "object" && s !== null ? {
|
|
47347
|
+
AttributeName: s["AttributeName"],
|
|
47348
|
+
SearchSchemaElementType: s["SearchSchemaElementType"]
|
|
47349
|
+
} : s) : nonEmpty(e["SearchSchema"]))
|
|
47350
|
+
]);
|
|
47351
|
+
}
|
|
47352
|
+
function nonEmpty(value) {
|
|
47353
|
+
return Array.isArray(value) && value.length === 0 ? void 0 : value;
|
|
47354
|
+
}
|
|
47355
|
+
function planVectorIndexUpdates(previous, desired, live) {
|
|
47356
|
+
const prevByName = vectorIndexesByName(previous);
|
|
47357
|
+
const desiredByName = vectorIndexesByName(desired);
|
|
47358
|
+
const liveByName = live === void 0 ? void 0 : new Map(live.filter((d) => typeof d.IndexName === "string").map((d) => [d.IndexName, d]));
|
|
47359
|
+
const plan = {
|
|
47360
|
+
ops: [],
|
|
47361
|
+
changed: [],
|
|
47362
|
+
adopted: [],
|
|
47363
|
+
alreadyGone: []
|
|
47364
|
+
};
|
|
47365
|
+
const liveHolds = (name, entry) => {
|
|
47366
|
+
const l = liveByName?.get(name);
|
|
47367
|
+
return l !== void 0 && l.IndexStatus !== "DELETING" && vectorIndexKey(l) === vectorIndexKey(entry);
|
|
47368
|
+
};
|
|
47369
|
+
for (const name of prevByName.keys()) {
|
|
47370
|
+
if (desiredByName.has(name)) continue;
|
|
47371
|
+
const l = liveByName?.get(name);
|
|
47372
|
+
if (liveByName !== void 0 && (l === void 0 || l.IndexStatus === "DELETING")) {
|
|
47373
|
+
plan.alreadyGone.push(name);
|
|
47374
|
+
continue;
|
|
47375
|
+
}
|
|
47376
|
+
plan.ops.push({ Delete: { IndexName: name } });
|
|
47377
|
+
}
|
|
47378
|
+
for (const [name, entry] of desiredByName) {
|
|
47379
|
+
const before = prevByName.get(name);
|
|
47380
|
+
if (before === void 0) {
|
|
47381
|
+
const l = liveByName?.get(name);
|
|
47382
|
+
if (l === void 0 || l.IndexStatus === "DELETING") plan.ops.push({ Create: vectorIndexForSend(entry) });
|
|
47383
|
+
else if (liveHolds(name, entry)) plan.adopted.push(name);
|
|
47384
|
+
else plan.changed.push(name);
|
|
47385
|
+
continue;
|
|
47386
|
+
}
|
|
47387
|
+
if (vectorIndexKey(before) === vectorIndexKey(entry)) continue;
|
|
47388
|
+
if (!liveHolds(name, entry)) plan.changed.push(name);
|
|
47389
|
+
}
|
|
47390
|
+
return plan;
|
|
47391
|
+
}
|
|
47392
|
+
function readbackVectorIndexes(live) {
|
|
47393
|
+
if (live === void 0 || live.length === 0) return void 0;
|
|
47394
|
+
return live.map((d) => {
|
|
47395
|
+
const out = {};
|
|
47396
|
+
if (d.IndexName !== void 0) out["IndexName"] = d.IndexName;
|
|
47397
|
+
if (d.VectorAttribute !== void 0) out["VectorAttribute"] = d.VectorAttribute;
|
|
47398
|
+
if (d.Dimensions !== void 0) out["Dimensions"] = d.Dimensions;
|
|
47399
|
+
if (d.DistanceFunction !== void 0) out["DistanceFunction"] = d.DistanceFunction;
|
|
47400
|
+
if (d.Projection !== void 0) out["Projection"] = d.Projection;
|
|
47401
|
+
if (d.SearchSchema !== void 0 && d.SearchSchema.length > 0) out["SearchSchema"] = d.SearchSchema;
|
|
47402
|
+
return out;
|
|
47403
|
+
});
|
|
47404
|
+
}
|
|
47405
|
+
function vectorIndexesSettled(live) {
|
|
47406
|
+
return (live ?? []).every((d) => d.IndexStatus === void 0 || d.IndexStatus === "ACTIVE");
|
|
47407
|
+
}
|
|
47408
|
+
|
|
47282
47409
|
//#endregion
|
|
47283
47410
|
//#region src/provisioning/dynamodb-index-busy-delete.ts
|
|
47284
47411
|
function maskedLogger(logger, maskSecrets, name) {
|
|
@@ -48519,7 +48646,12 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48519
48646
|
"TimeToLiveSpecification",
|
|
48520
48647
|
"WriteProvisionedThroughputSettings",
|
|
48521
48648
|
"WriteOnDemandThroughputSettings",
|
|
48522
|
-
"DeletionProtectionEnabled"
|
|
48649
|
+
"DeletionProtectionEnabled",
|
|
48650
|
+
"ReadOnDemandThroughputSettings",
|
|
48651
|
+
"ReadProvisionedThroughputSettings",
|
|
48652
|
+
"TableType",
|
|
48653
|
+
"VectorIndexes",
|
|
48654
|
+
"WarmThroughput"
|
|
48523
48655
|
])]]);
|
|
48524
48656
|
constructor() {
|
|
48525
48657
|
const awsClients = getAwsClients();
|
|
@@ -48578,12 +48710,12 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48578
48710
|
operationSinks(context, pairs) {
|
|
48579
48711
|
return withDerivedNameMasks(this.logger, createMaskedLogSinks(this.logger, context?.maskSecrets), pairs);
|
|
48580
48712
|
}
|
|
48581
|
-
wrapMaskedError(log, error, build) {
|
|
48713
|
+
wrapMaskedError(log, error, build, indexNoun) {
|
|
48582
48714
|
const failure = describeAwsFailure(error);
|
|
48583
48715
|
if (!failure.redacted) return wrapMaskedAwsError(log.mask, error, build);
|
|
48584
48716
|
log.debug(build(log.mask(failure.detail)).message);
|
|
48585
48717
|
const relay = isAuxiliaryFailure(error) ? "" : relayedNameCollision(failure.detail);
|
|
48586
|
-
const wrapped = build(`${log.mask(failure.summary)}${relay}${relayedIndexBusyDelete(failure.detail)}` + relayedEncryptionChangeLimit(failure.detail));
|
|
48718
|
+
const wrapped = build(`${log.mask(failure.summary)}${relay}${relayedIndexBusyDelete(failure.detail, indexNoun)}` + relayedEncryptionChangeLimit(failure.detail));
|
|
48587
48719
|
return error instanceof Error ? markRedactedCause(wrapped) : wrapped;
|
|
48588
48720
|
}
|
|
48589
48721
|
cleanupFailureText(log, head, error) {
|
|
@@ -48592,8 +48724,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48592
48724
|
log.debug(`${head}${log.mask(failure.detail)}`);
|
|
48593
48725
|
return log.mask(failure.summary);
|
|
48594
48726
|
}
|
|
48595
|
-
wrapDeleteError(log, error, build) {
|
|
48596
|
-
const thrown = this.wrapMaskedError(log, error, build);
|
|
48727
|
+
wrapDeleteError(log, error, build, indexNoun) {
|
|
48728
|
+
const thrown = this.wrapMaskedError(log, error, build, indexNoun);
|
|
48597
48729
|
return error instanceof Error && error.name.includes("NotFound") ? markNotGone(thrown) : thrown;
|
|
48598
48730
|
}
|
|
48599
48731
|
async create(logicalId, resourceType, properties, context) {
|
|
@@ -48719,6 +48851,12 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48719
48851
|
}
|
|
48720
48852
|
if (sdkIndexes.length > 0) createParams.GlobalSecondaryIndexes = sdkIndexes;
|
|
48721
48853
|
if (properties["LocalSecondaryIndexes"]) createParams.LocalSecondaryIndexes = properties["LocalSecondaryIndexes"];
|
|
48854
|
+
const createVectorIndexes = vectorIndexesForCreate(properties["VectorIndexes"]);
|
|
48855
|
+
if (createVectorIndexes !== void 0) createParams.VectorIndexes = createVectorIndexes;
|
|
48856
|
+
const warmCoercion = coerceWarmThroughput(properties["WarmThroughput"]);
|
|
48857
|
+
if (warmCoercion.spec) createParams.WarmThroughput = warmCoercion.spec;
|
|
48858
|
+
const warmDiagnostic = warmThroughputDiagnostic(properties["WarmThroughput"], warmCoercion, void 0);
|
|
48859
|
+
if (warmDiagnostic) diagnostics.push(warmDiagnostic);
|
|
48722
48860
|
const createMode = readReplicationMode(properties);
|
|
48723
48861
|
if (createMode.kind === "usable") createParams.GlobalTableSettingsReplicationMode = createMode.mode;
|
|
48724
48862
|
const sseEnabledRefusal = configBooleanRefusal(properties["SSESpecification"], "SSEEnabled", "AWS::DynamoDB::GlobalTable SSESpecification");
|
|
@@ -48765,6 +48903,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48765
48903
|
}
|
|
48766
48904
|
try {
|
|
48767
48905
|
const tableInfo = await this.waitForTableActive(tableName, logicalId, void 0, maskSecrets);
|
|
48906
|
+
if (createVectorIndexes !== void 0) await this.waitForVectorIndexesSettled(tableName, logicalId, maskSecrets);
|
|
48768
48907
|
for (const replica of wiringReplicas) {
|
|
48769
48908
|
const region = replica["Region"];
|
|
48770
48909
|
if (!region || region === currentRegion) continue;
|
|
@@ -48830,7 +48969,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48830
48969
|
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
48970
|
}
|
|
48832
48971
|
}
|
|
48833
|
-
await this.
|
|
48972
|
+
if (createVectorIndexes !== void 0) await this.rollBackCreatedVectorTable(logicalId, tableName, maskSecrets);
|
|
48973
|
+
else await this.dynamoDBClient.send(new DeleteTableCommand({ TableName: tableName }));
|
|
48834
48974
|
retractCreatedResource(logicalId, resourceType, tableName);
|
|
48835
48975
|
} catch (cleanupErr) {
|
|
48836
48976
|
tableLeftBehind = true;
|
|
@@ -48843,6 +48983,32 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48843
48983
|
throw thrown;
|
|
48844
48984
|
}
|
|
48845
48985
|
}
|
|
48986
|
+
async rollBackCreatedVectorTable(logicalId, tableName, maskSecrets) {
|
|
48987
|
+
const logger = maskedLogger(this.logger, maskSecrets, tableName);
|
|
48988
|
+
const allowanceMs = Math.min(resolveDynamoDbDeleteBudgetMs(), enclosingDeadlineRemainingMs() - DYNAMODB_DELETE_DEADLINE_MARGIN_MS);
|
|
48989
|
+
const budget = allowanceMs > 0 ? new ElapsedBudget(allowanceMs, resolveDynamoDbDeleteBudgetClock()) : void 0;
|
|
48990
|
+
await deleteTableWithIndexBusyRetry({
|
|
48991
|
+
logicalId,
|
|
48992
|
+
physicalId: tableName,
|
|
48993
|
+
typeLabel: "GlobalTable",
|
|
48994
|
+
indexNoun: TABLE_INDEX_NOUN,
|
|
48995
|
+
maxRetries: 8,
|
|
48996
|
+
logger,
|
|
48997
|
+
deleteTable: async () => {
|
|
48998
|
+
await this.dynamoDBClient.send(new DeleteTableCommand({ TableName: tableName }));
|
|
48999
|
+
},
|
|
49000
|
+
reArm: () => this.waitForIndexesActive(tableName, logicalId, {
|
|
49001
|
+
maxAttempts: 900,
|
|
49002
|
+
shortCapUnlessVectorBusy: 60,
|
|
49003
|
+
proceedNote: DELETE_INDEX_WAIT_PROCEED_NOTE,
|
|
49004
|
+
...budget !== void 0 && { budget },
|
|
49005
|
+
maskSecrets
|
|
49006
|
+
}),
|
|
49007
|
+
shouldKeepRetrying: () => budget !== void 0 && !budget.isExhausted(),
|
|
49008
|
+
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).`,
|
|
49009
|
+
sleepSeam: deleteTableRetryDelays
|
|
49010
|
+
});
|
|
49011
|
+
}
|
|
48846
49012
|
reportThroughputDiagnostics(diagnostics, logicalId, physicalId, maskSecrets = (text) => text) {
|
|
48847
49013
|
const warn = (message) => this.logger.warn(maskSecrets(message));
|
|
48848
49014
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -48861,6 +49027,47 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48861
49027
|
const format = (spec) => WARM_THROUGHPUT_MEMBERS.filter((m) => spec?.[m] !== void 0).map((m) => `${m}=${spec?.[m]}`).join(", ");
|
|
48862
49028
|
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
49029
|
}
|
|
49030
|
+
tableWarmThroughputForSend(desired, live, logicalId, physicalId, maskSecrets) {
|
|
49031
|
+
if (!desired) return void 0;
|
|
49032
|
+
const declared = WARM_THROUGHPUT_MEMBERS.filter((m) => desired[m] !== void 0);
|
|
49033
|
+
if (declared.every((m) => desired[m] === live?.[m])) return void 0;
|
|
49034
|
+
if (!isWarmThroughputDecrease(desired, live)) return desired;
|
|
49035
|
+
const format = (spec) => declared.map((m) => `${m}=${spec?.[m]}`).join(", ");
|
|
49036
|
+
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.`));
|
|
49037
|
+
}
|
|
49038
|
+
async applyVectorIndexUpdates(physicalId, logicalId, plan, desiredAttributeDefinitions, maskSecrets) {
|
|
49039
|
+
const scope = (name) => `vector index ${typeof name === "string" ? maskSecrets(name) : "<unnamed>"} on DynamoDB GlobalTable ${maskSecrets(physicalId)}`;
|
|
49040
|
+
for (const name of plan.alreadyGone) this.logger.debug(maskSecrets(`${scope(name)} is recorded but not live; skipping its Delete`));
|
|
49041
|
+
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.`));
|
|
49042
|
+
if (plan.ops.length === 0) return;
|
|
49043
|
+
await this.waitForVectorIndexesSettled(physicalId, logicalId, maskSecrets);
|
|
49044
|
+
markUnsettled("VectorIndexes");
|
|
49045
|
+
for (const op of plan.ops) {
|
|
49046
|
+
const input = {
|
|
49047
|
+
TableName: physicalId,
|
|
49048
|
+
VectorIndexUpdates: [op]
|
|
49049
|
+
};
|
|
49050
|
+
if (op.Create && desiredAttributeDefinitions) input.AttributeDefinitions = desiredAttributeDefinitions;
|
|
49051
|
+
await this.dynamoDBClient.send(new UpdateTableCommand(input));
|
|
49052
|
+
if (op.Create?.IndexName !== void 0) markAttemptedItems("VectorIndexes", [op.Create.IndexName]);
|
|
49053
|
+
await this.waitForVectorIndexesSettled(physicalId, logicalId, maskSecrets);
|
|
49054
|
+
this.logger.debug(maskSecrets(`${op.Create ? "created" : "deleted"} ` + scope(op.Create?.IndexName ?? op.Delete?.IndexName)));
|
|
49055
|
+
}
|
|
49056
|
+
}
|
|
49057
|
+
async waitForVectorIndexesSettled(tableName, logicalId, maskSecrets) {
|
|
49058
|
+
const watch = startInterruptWatch(maskSecrets(`DynamoDB vector indexes on ${maskSecrets(tableName)}`));
|
|
49059
|
+
try {
|
|
49060
|
+
for (let attempt = 1; attempt <= VECTOR_INDEX_SETTLE_ATTEMPTS; attempt++) {
|
|
49061
|
+
if (watch.isInterrupted()) throw watch.onInterrupted();
|
|
49062
|
+
const table = (await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: tableName }))).Table;
|
|
49063
|
+
if (table?.TableStatus === "ACTIVE" && vectorIndexesSettled(table.VectorIndexes)) return;
|
|
49064
|
+
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
49065
|
+
}
|
|
49066
|
+
} finally {
|
|
49067
|
+
watch.dispose();
|
|
49068
|
+
}
|
|
49069
|
+
throw new Error(maskSecrets(`DynamoDB GlobalTable ${logicalId}: table ${maskSecrets(tableName)} and its vector indexes did not settle within ${VECTOR_INDEX_SETTLE_ATTEMPTS} polls`));
|
|
49070
|
+
}
|
|
48864
49071
|
async addReplica(tableName, replica, region, logicalId, billingMode, diagnostics, maskSecrets = (text) => text) {
|
|
48865
49072
|
const create = { RegionName: region };
|
|
48866
49073
|
const kmsMasterKeyId = readReplicaKmsMasterKeyId(replica);
|
|
@@ -49666,6 +49873,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49666
49873
|
if (refusal === void 0 && !deepEqual(properties["StreamSpecification"], previousProperties["StreamSpecification"])) refusal = configStringRefusal(properties["StreamSpecification"], "StreamViewType", "NEW_AND_OLD_IMAGES", "AWS::DynamoDB::GlobalTable StreamSpecification");
|
|
49667
49874
|
if (refusal === void 0 && (changed("SSESpecification") || !deepEqual(replicaKeyBlocks(properties), replicaKeyBlocks(previousProperties)))) refusal = configBooleanRefusal(properties["SSESpecification"], "SSEEnabled", "AWS::DynamoDB::GlobalTable SSESpecification");
|
|
49668
49875
|
if (refusal === void 0 && changed("GlobalSecondaryIndexes")) refusal = globalSecondaryIndexesShapeDetail(properties["GlobalSecondaryIndexes"], maskSecrets);
|
|
49876
|
+
if (refusal === void 0 && changed("VectorIndexes")) refusal = vectorIndexesShapeDetail(properties["VectorIndexes"]);
|
|
49669
49877
|
if (refusal === void 0) refusal = replicaSettingsRefusal(properties, previousProperties);
|
|
49670
49878
|
if (refusal !== void 0) refuse(refusal);
|
|
49671
49879
|
} else {
|
|
@@ -49678,6 +49886,15 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49678
49886
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49679
49887
|
const describeResp = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: physicalId }));
|
|
49680
49888
|
const tableArn = describeResp.Table?.TableArn;
|
|
49889
|
+
const vectorIndexesChanged = !deepEqual(properties["VectorIndexes"], previousProperties["VectorIndexes"]);
|
|
49890
|
+
const vectorIndexShape = vectorIndexesShapeDetail(properties["VectorIndexes"]);
|
|
49891
|
+
if (vectorIndexShape !== void 0 && vectorIndexesChanged) warn(`${vectorIndexShape}; the VectorIndexes change was not applied`);
|
|
49892
|
+
const vectorIndexPlan = vectorIndexShape === void 0 && vectorIndexesChanged ? planVectorIndexUpdates(previousProperties["VectorIndexes"], properties["VectorIndexes"], describeResp.Table === void 0 ? void 0 : describeResp.Table.VectorIndexes ?? []) : void 0;
|
|
49893
|
+
if (vectorIndexPlan !== void 0 && vectorIndexPlan.changed.length > 0) {
|
|
49894
|
+
const vectorMessage = `AWS::DynamoDB::GlobalTable ${logicalId}: VectorIndexes ${vectorIndexPlan.changed.map((name) => maskSecrets(name)).join(", ")} changed definition, which DynamoDB cannot modify in place`;
|
|
49895
|
+
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);
|
|
49896
|
+
warn(`${vectorMessage}; that change was not applied`);
|
|
49897
|
+
}
|
|
49681
49898
|
const extractLocalTags = (props) => {
|
|
49682
49899
|
return localReplicaEntry(props, currentRegion)?.["Tags"];
|
|
49683
49900
|
};
|
|
@@ -49711,6 +49928,10 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49711
49928
|
const newBilling = billingUnusable ? oldBilling : requestedBilling;
|
|
49712
49929
|
const onDemandCeilingLive = oldBilling === "PAY_PER_REQUEST" && newBilling === "PAY_PER_REQUEST";
|
|
49713
49930
|
const diagnostics = [];
|
|
49931
|
+
if (!deepEqual(properties["WarmThroughput"], previousProperties["WarmThroughput"])) {
|
|
49932
|
+
const warmUpdateDiagnostic = warmThroughputDiagnostic(properties["WarmThroughput"], coerceWarmThroughput(properties["WarmThroughput"]), void 0);
|
|
49933
|
+
if (warmUpdateDiagnostic) diagnostics.push(warmUpdateDiagnostic);
|
|
49934
|
+
}
|
|
49714
49935
|
const desiredCeilings = collectTableOnDemandCeilings(properties, currentRegion, diagnostics, maskSecrets);
|
|
49715
49936
|
const flippingToProvisioned = oldBilling !== newBilling && newBilling === "PROVISIONED";
|
|
49716
49937
|
if (flippingToProvisioned) derivePerCallProvisionedThroughput(properties, currentRegion, "seed", diagnostics, maskSecrets);
|
|
@@ -49828,7 +50049,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49828
50049
|
if (flatChanged) {
|
|
49829
50050
|
if (flatUpdate.DeletionProtectionEnabled !== void 0) markUnsettled("Replicas");
|
|
49830
50051
|
if (flatUpdate.StreamSpecification !== void 0) markUnsettled("StreamSpecification");
|
|
49831
|
-
if (flatUpdate.OnDemandThroughput !== void 0) markUnsettled("WriteOnDemandThroughputSettings");
|
|
50052
|
+
if (flatUpdate.OnDemandThroughput !== void 0) markUnsettled("WriteOnDemandThroughputSettings", "ReadOnDemandThroughputSettings");
|
|
49832
50053
|
await this.dynamoDBClient.send(new UpdateTableCommand(flatUpdate));
|
|
49833
50054
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49834
50055
|
}
|
|
@@ -49884,7 +50105,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49884
50105
|
}
|
|
49885
50106
|
if (indexUpdates.length > 0) billingUpdate.GlobalSecondaryIndexUpdates = indexUpdates;
|
|
49886
50107
|
}
|
|
49887
|
-
markUnsettled("BillingMode", "WriteProvisionedThroughputSettings");
|
|
50108
|
+
markUnsettled("BillingMode", "WriteProvisionedThroughputSettings", TABLE_READ_PROVISIONED_KEY);
|
|
49888
50109
|
if (billingUpdate.GlobalSecondaryIndexUpdates !== void 0) {
|
|
49889
50110
|
markUnsettled("GlobalSecondaryIndexes");
|
|
49890
50111
|
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 +50114,29 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49893
50114
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49894
50115
|
}
|
|
49895
50116
|
if (deferCeilingsPastFlip) {
|
|
49896
|
-
markUnsettled("WriteOnDemandThroughputSettings");
|
|
50117
|
+
markUnsettled("WriteOnDemandThroughputSettings", "ReadOnDemandThroughputSettings");
|
|
49897
50118
|
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
49898
50119
|
TableName: physicalId,
|
|
49899
50120
|
OnDemandThroughput: onDemandPayload
|
|
49900
50121
|
}));
|
|
49901
50122
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49902
50123
|
}
|
|
50124
|
+
const readBlockOf = (bag) => localReplicaEntry(bag, currentRegion)?.[TABLE_READ_PROVISIONED_KEY] ?? bag[TABLE_READ_PROVISIONED_KEY];
|
|
50125
|
+
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))) {
|
|
50126
|
+
const wantRead = coerceCfnInteger(asRecord(readBlockOf(properties))?.["ReadCapacityUnits"]);
|
|
50127
|
+
const liveThroughput = describeResp.Table?.ProvisionedThroughput;
|
|
50128
|
+
if (wantRead !== void 0 && liveThroughput?.WriteCapacityUnits !== void 0 && wantRead !== liveThroughput.ReadCapacityUnits) {
|
|
50129
|
+
markUnsettled(TABLE_READ_PROVISIONED_KEY);
|
|
50130
|
+
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
50131
|
+
TableName: physicalId,
|
|
50132
|
+
ProvisionedThroughput: {
|
|
50133
|
+
ReadCapacityUnits: wantRead,
|
|
50134
|
+
WriteCapacityUnits: liveThroughput.WriteCapacityUnits
|
|
50135
|
+
}
|
|
50136
|
+
}));
|
|
50137
|
+
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50138
|
+
}
|
|
50139
|
+
}
|
|
49903
50140
|
const writeAutoScalingOld = (previousProperties["WriteProvisionedThroughputSettings"] ?? {})["WriteCapacityAutoScalingSettings"];
|
|
49904
50141
|
const writeAutoScalingNew = (properties["WriteProvisionedThroughputSettings"] ?? {})["WriteCapacityAutoScalingSettings"];
|
|
49905
50142
|
const effectiveNewAutoScaling = oldBilling === "PROVISIONED" && newBilling === "PAY_PER_REQUEST" ? void 0 : writeAutoScalingNew;
|
|
@@ -50106,6 +50343,19 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50106
50343
|
}));
|
|
50107
50344
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50108
50345
|
}
|
|
50346
|
+
if (vectorIndexPlan !== void 0) await this.applyVectorIndexUpdates(physicalId, logicalId, vectorIndexPlan, properties["AttributeDefinitions"], maskSecrets);
|
|
50347
|
+
if (!deepEqual(properties["WarmThroughput"], previousProperties["WarmThroughput"])) {
|
|
50348
|
+
const warmCoercion = coerceWarmThroughput(properties["WarmThroughput"]);
|
|
50349
|
+
const warmToSend = this.tableWarmThroughputForSend(warmCoercion.spec, describeResp.Table?.WarmThroughput, logicalId, physicalId, maskSecrets);
|
|
50350
|
+
if (warmToSend) {
|
|
50351
|
+
markUnsettled("WarmThroughput");
|
|
50352
|
+
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
50353
|
+
TableName: physicalId,
|
|
50354
|
+
WarmThroughput: warmToSend
|
|
50355
|
+
}));
|
|
50356
|
+
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50357
|
+
}
|
|
50358
|
+
}
|
|
50109
50359
|
const skipAutoScalingForUnusableGsi = desiredGsiUnusable && newBilling !== "PAY_PER_REQUEST";
|
|
50110
50360
|
const autoScalingMeaningfulForIndexes = (newBilling === "PROVISIONED" || oldBilling === "PROVISIONED") && !skipAutoScalingForUnusableGsi;
|
|
50111
50361
|
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 +50766,13 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50516
50766
|
const cause = regionErr instanceof Error ? regionErr : void 0;
|
|
50517
50767
|
throw new ProvisioningError(`Could not resolve client region for DynamoDB GlobalTable ${logicalId} delete — would risk dropping the local replica`, resourceType, logicalId, physicalId, cause);
|
|
50518
50768
|
}
|
|
50519
|
-
let
|
|
50769
|
+
let preDeleteTable;
|
|
50770
|
+
let indexNoun;
|
|
50520
50771
|
try {
|
|
50521
50772
|
const describe = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: physicalId }));
|
|
50522
50773
|
const replicas = describe.Table?.Replicas ?? [];
|
|
50523
|
-
|
|
50774
|
+
preDeleteTable = describe.Table;
|
|
50775
|
+
if ((describe.Table?.VectorIndexes ?? []).length > 0) indexNoun = TABLE_INDEX_NOUN;
|
|
50524
50776
|
const tableIndexNames = (describe.Table?.GlobalSecondaryIndexes ?? []).map((gsi) => gsi.IndexName).filter((name) => typeof name === "string");
|
|
50525
50777
|
for (const replica of replicas) {
|
|
50526
50778
|
const region = replica.RegionName;
|
|
@@ -50556,8 +50808,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50556
50808
|
}
|
|
50557
50809
|
}
|
|
50558
50810
|
try {
|
|
50559
|
-
if (
|
|
50560
|
-
|
|
50811
|
+
if (hasTransitionalTableIndex(preDeleteTable)) {
|
|
50812
|
+
deleteLog.debug(`Waiting for indexes on ${physicalId} to settle before DeleteTable`);
|
|
50561
50813
|
await this.waitForIndexesActive(physicalId, logicalId, {
|
|
50562
50814
|
proceedNote: DELETE_INDEX_WAIT_PROCEED_NOTE,
|
|
50563
50815
|
budget,
|
|
@@ -50568,6 +50820,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50568
50820
|
logicalId,
|
|
50569
50821
|
physicalId,
|
|
50570
50822
|
typeLabel: "GlobalTable",
|
|
50823
|
+
...indexNoun !== void 0 && { indexNoun },
|
|
50571
50824
|
maxRetries: 8,
|
|
50572
50825
|
logger: loopLogger,
|
|
50573
50826
|
deleteTable: async () => {
|
|
@@ -50575,7 +50828,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50575
50828
|
flip.deleteAccepted = true;
|
|
50576
50829
|
},
|
|
50577
50830
|
reArm: () => this.waitForIndexesActive(physicalId, logicalId, {
|
|
50578
|
-
maxAttempts:
|
|
50831
|
+
maxAttempts: 900,
|
|
50832
|
+
shortCapUnlessVectorBusy: 60,
|
|
50579
50833
|
proceedNote: DELETE_INDEX_WAIT_PROCEED_NOTE,
|
|
50580
50834
|
budget,
|
|
50581
50835
|
...context?.maskSecrets && { maskSecrets: context.maskSecrets }
|
|
@@ -50602,7 +50856,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50602
50856
|
return;
|
|
50603
50857
|
}
|
|
50604
50858
|
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));
|
|
50859
|
+
throw this.wrapDeleteError(deleteLog, error, (text) => new ProvisioningError(`Failed to delete DynamoDB GlobalTable ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause), indexNoun);
|
|
50606
50860
|
}
|
|
50607
50861
|
}
|
|
50608
50862
|
async isSameResource(journaledPhysicalId, record, resourceType, context) {
|
|
@@ -50671,7 +50925,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50671
50925
|
out[name] = projectNamed(out[name], recordedProperties?.[name], desiredProperties?.[name], name, unnamed, attemptedItems);
|
|
50672
50926
|
}
|
|
50673
50927
|
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).`);
|
|
50928
|
+
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
50929
|
return out;
|
|
50676
50930
|
}
|
|
50677
50931
|
async unsettledInTransition(physicalId, _logicalId, _resourceType, names) {
|
|
@@ -50688,6 +50942,8 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50688
50942
|
}
|
|
50689
50943
|
if (names.has("Replicas") && (table?.Replicas ?? []).some((replica) => replica.ReplicaStatus !== void 0 && MOVING.has(replica.ReplicaStatus))) moving.add("Replicas");
|
|
50690
50944
|
if (names.has("GlobalSecondaryIndexes") && (table?.GlobalSecondaryIndexes ?? []).some((index) => index.IndexStatus !== void 0 && MOVING.has(index.IndexStatus))) moving.add("GlobalSecondaryIndexes");
|
|
50945
|
+
if (names.has("VectorIndexes") && (table?.VectorIndexes ?? []).some((index) => index.IndexStatus !== void 0 && MOVING.has(index.IndexStatus))) moving.add("VectorIndexes");
|
|
50946
|
+
if (names.has("WarmThroughput") && table?.WarmThroughput?.Status === "UPDATING") moving.add("WarmThroughput");
|
|
50691
50947
|
const sse = table?.SSEDescription?.Status;
|
|
50692
50948
|
if (names.has("SSESpecification") && (sse === "ENABLING" || sse === "DISABLING" || sse === "UPDATING")) moving.add("SSESpecification");
|
|
50693
50949
|
if (names.has("TimeToLiveSpecification")) {
|
|
@@ -50823,6 +51079,21 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50823
51079
|
else result["WriteProvisionedThroughputSettings"] = {};
|
|
50824
51080
|
}
|
|
50825
51081
|
} else result["WriteProvisionedThroughputSettings"] = {};
|
|
51082
|
+
const liveVectorIndexes = readbackVectorIndexes(table.VectorIndexes);
|
|
51083
|
+
if (liveVectorIndexes !== void 0) result["VectorIndexes"] = liveVectorIndexes;
|
|
51084
|
+
const declaredWarm = coerceWarmThroughput(properties?.["WarmThroughput"]).spec;
|
|
51085
|
+
if (declaredWarm && table.WarmThroughput) {
|
|
51086
|
+
const warm = {};
|
|
51087
|
+
for (const member of WARM_THROUGHPUT_MEMBERS) {
|
|
51088
|
+
const value = table.WarmThroughput[member];
|
|
51089
|
+
const declared = declaredWarm[member];
|
|
51090
|
+
if (declared === void 0 || value === void 0) continue;
|
|
51091
|
+
warm[member] = table.WarmThroughput.Status === "UPDATING" ? Math.max(value, declared) : value;
|
|
51092
|
+
}
|
|
51093
|
+
if (Object.keys(warm).length > 0) result["WarmThroughput"] = warm;
|
|
51094
|
+
}
|
|
51095
|
+
if (properties?.[TABLE_READ_ON_DEMAND_KEY] !== void 0 && table.OnDemandThroughput?.MaxReadRequestUnits !== void 0) result[TABLE_READ_ON_DEMAND_KEY] = { MaxReadRequestUnits: table.OnDemandThroughput.MaxReadRequestUnits };
|
|
51096
|
+
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
51097
|
try {
|
|
50827
51098
|
const ttlDesc = (await this.dynamoDBClient.send(new DescribeTimeToLiveCommand({ TableName: tableNameForSubs }))).TimeToLiveDescription;
|
|
50828
51099
|
const ttlStatus = ttlDesc?.TimeToLiveStatus;
|
|
@@ -50959,11 +51230,19 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50959
51230
|
return null;
|
|
50960
51231
|
}
|
|
50961
51232
|
}
|
|
50962
|
-
getDriftUnknownPaths(_resourceType) {
|
|
50963
|
-
|
|
51233
|
+
getDriftUnknownPaths(_resourceType, properties) {
|
|
51234
|
+
const paths = ["TableType"];
|
|
51235
|
+
if (properties === void 0 || Object.keys(properties).length === 0) return paths;
|
|
51236
|
+
if (properties["BillingMode"] !== "PROVISIONED") paths.push(TABLE_READ_PROVISIONED_KEY);
|
|
51237
|
+
if (!coerceWarmThroughput(properties["WarmThroughput"]).spec) paths.push("WarmThroughput");
|
|
51238
|
+
return paths;
|
|
50964
51239
|
}
|
|
50965
51240
|
getDriftUnorderedPaths(_resourceType) {
|
|
50966
|
-
return [
|
|
51241
|
+
return [
|
|
51242
|
+
"AttributeDefinitions",
|
|
51243
|
+
"Replicas[]",
|
|
51244
|
+
"VectorIndexes"
|
|
51245
|
+
];
|
|
50967
51246
|
}
|
|
50968
51247
|
canonicalizeDriftProperties(resourceType, properties) {
|
|
50969
51248
|
if (resourceType !== "AWS::DynamoDB::GlobalTable") return properties;
|
|
@@ -51059,7 +51338,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
51059
51338
|
const response = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: tableName }));
|
|
51060
51339
|
if (response.Table?.TableStatus === "ACTIVE") {
|
|
51061
51340
|
tableReachedActive = true;
|
|
51062
|
-
if (!
|
|
51341
|
+
if (!hasTransitionalTableIndex(response.Table)) return;
|
|
51063
51342
|
}
|
|
51064
51343
|
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
51065
51344
|
}
|
|
@@ -51078,6 +51357,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
51078
51357
|
logger: maskedLogger(this.logger, opts?.maskSecrets, tableName),
|
|
51079
51358
|
describeTable: () => this.dynamoDBClient.send(new DescribeTableCommand({ TableName: tableName })),
|
|
51080
51359
|
maxAttempts: gateWait.grantedPolls,
|
|
51360
|
+
...opts?.shortCapUnlessVectorBusy !== void 0 && { shortCapUnlessVectorBusy: opts.shortCapUnlessVectorBusy },
|
|
51081
51361
|
budgetWait: gateWait,
|
|
51082
51362
|
proceedNote: opts?.proceedNote ?? "auto-scaling registration for a still-building index may have been skipped. The next deploy re-asserts it."
|
|
51083
51363
|
});
|
|
@@ -51295,6 +51575,8 @@ const REPLICA_SETTING_MEMBERS = [
|
|
|
51295
51575
|
"GlobalSecondaryIndexes"
|
|
51296
51576
|
];
|
|
51297
51577
|
const REPLICATION_MODE_KEY = "GlobalTableSettingsReplicationMode";
|
|
51578
|
+
const TABLE_READ_ON_DEMAND_KEY = "ReadOnDemandThroughputSettings";
|
|
51579
|
+
const TABLE_READ_PROVISIONED_KEY = "ReadProvisionedThroughputSettings";
|
|
51298
51580
|
function readReplicationMode(properties) {
|
|
51299
51581
|
const replicas = Array.isArray(properties["Replicas"]) ? properties["Replicas"] : [];
|
|
51300
51582
|
const declared = replicas.map((entry) => asRecord(entry)?.[REPLICATION_MODE_KEY]).filter((value) => value !== void 0 && value !== null);
|
|
@@ -51330,9 +51612,35 @@ function replicationModeCorrection(properties, previousProperties, liveMode) {
|
|
|
51330
51612
|
if (replicationModeUpdate(properties, previousProperties) !== void 0) return void 0;
|
|
51331
51613
|
return (liveMode ?? "DISABLED") === want.mode ? void 0 : want.mode;
|
|
51332
51614
|
}
|
|
51615
|
+
function tableLevelSettingsRefusal(properties) {
|
|
51616
|
+
const replicas = Array.isArray(properties["Replicas"]) ? properties["Replicas"] : [];
|
|
51617
|
+
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";
|
|
51618
|
+
const mode = readReplicationMode(properties);
|
|
51619
|
+
for (const key of [TABLE_READ_ON_DEMAND_KEY, TABLE_READ_PROVISIONED_KEY]) {
|
|
51620
|
+
if (properties[key] === void 0 || properties[key] === null) continue;
|
|
51621
|
+
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`;
|
|
51622
|
+
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`;
|
|
51623
|
+
}
|
|
51624
|
+
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`;
|
|
51625
|
+
}
|
|
51626
|
+
function replicaReadBlockShape(properties) {
|
|
51627
|
+
return (Array.isArray(properties["Replicas"]) ? properties["Replicas"] : []).map((entry) => [asRecord(entry)?.[TABLE_READ_ON_DEMAND_KEY], asRecord(entry)?.[TABLE_READ_PROVISIONED_KEY]]);
|
|
51628
|
+
}
|
|
51629
|
+
const TABLE_LEVEL_SETTING_INPUTS = [
|
|
51630
|
+
"TableType",
|
|
51631
|
+
"BillingMode",
|
|
51632
|
+
TABLE_READ_ON_DEMAND_KEY,
|
|
51633
|
+
TABLE_READ_PROVISIONED_KEY
|
|
51634
|
+
];
|
|
51333
51635
|
function replicaSettingsRefusal(properties, previousProperties, currentRegion) {
|
|
51334
51636
|
const mode = readReplicationMode(properties);
|
|
51335
|
-
|
|
51637
|
+
const modeShapeChanged = previousProperties === void 0 || !deepEqual(replicationModeShape(properties), replicationModeShape(previousProperties));
|
|
51638
|
+
if (mode.kind === "unusable" && modeShapeChanged) return mode.reason;
|
|
51639
|
+
if (modeShapeChanged || previousProperties === void 0 || !deepEqual(replicaReadBlockShape(properties), replicaReadBlockShape(previousProperties)) || TABLE_LEVEL_SETTING_INPUTS.some((key) => !deepEqual(properties[key], previousProperties?.[key]))) {
|
|
51640
|
+
const tableLevelRefusal = tableLevelSettingsRefusal(properties);
|
|
51641
|
+
if (tableLevelRefusal !== void 0) return tableLevelRefusal;
|
|
51642
|
+
}
|
|
51643
|
+
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
51644
|
const desired = Array.isArray(properties["Replicas"]) ? properties["Replicas"] : [];
|
|
51337
51645
|
const crossRegionCreate = previousProperties === void 0 && desired.some((entry) => {
|
|
51338
51646
|
const region = asRecord(entry)?.["Region"];
|
|
@@ -51403,11 +51711,12 @@ function extractLocalTableClass(props, region) {
|
|
|
51403
51711
|
}
|
|
51404
51712
|
function derivePerCallProvisionedThroughput(properties, region, source = "min", diagnostics, maskSecrets = (text) => text) {
|
|
51405
51713
|
const rawReplicas = properties["Replicas"];
|
|
51406
|
-
const
|
|
51714
|
+
const localReplica = (Array.isArray(rawReplicas) ? rawReplicas : []).find((r) => asRecord(r)?.["Region"] === region);
|
|
51715
|
+
const rawRead = localReplica?.["ReadProvisionedThroughputSettings"] ?? properties[TABLE_READ_PROVISIONED_KEY];
|
|
51407
51716
|
const rawWrite = properties["WriteProvisionedThroughputSettings"];
|
|
51408
51717
|
const read = deriveReadCapacityUnits(asRecord(rawRead), source);
|
|
51409
51718
|
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);
|
|
51719
|
+
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
51720
|
if (write === void 0) reportUnresolvedProvisionedCapacity(rawWrite, "Write", source, { appliedUnits: DEFAULT_CAPACITY_UNITS }, diagnostics, { blockName: "WriteProvisionedThroughputSettings" }, maskSecrets);
|
|
51412
51721
|
return {
|
|
51413
51722
|
ReadCapacityUnits: read ?? DEFAULT_CAPACITY_UNITS,
|
|
@@ -51433,6 +51742,7 @@ function autoScalingResourceId(tableName, indexName) {
|
|
|
51433
51742
|
const autoScalingRetryDelays = {};
|
|
51434
51743
|
const REPLICA_GONE_WAIT_ATTEMPTS = 600;
|
|
51435
51744
|
const GLOBAL_TABLE_ACTIVE_WAIT_ATTEMPTS = 600;
|
|
51745
|
+
const VECTOR_INDEX_SETTLE_ATTEMPTS = 1800;
|
|
51436
51746
|
const TABLE_GONE_WAIT_ATTEMPTS = 600;
|
|
51437
51747
|
const deleteTableRetryDelays = {};
|
|
51438
51748
|
const DESCRIBE_SCALABLE_TARGETS_BATCH = 50;
|
|
@@ -51554,6 +51864,8 @@ function collectDesiredKeyAttributeNames(properties, options) {
|
|
|
51554
51864
|
if (!Array.isArray(indexes)) continue;
|
|
51555
51865
|
for (const index of indexes) addKeySchema(asRecord(index)?.["KeySchema"]);
|
|
51556
51866
|
}
|
|
51867
|
+
const vectorIndexes = properties["VectorIndexes"];
|
|
51868
|
+
if (Array.isArray(vectorIndexes)) for (const index of vectorIndexes) addKeySchema(asRecord(index)?.["SearchSchema"]);
|
|
51557
51869
|
return names;
|
|
51558
51870
|
}
|
|
51559
51871
|
function asRecord(value) {
|
|
@@ -51798,6 +52110,7 @@ function toSdkGlobalSecondaryIndexes(properties, region, billingMode, source = "
|
|
|
51798
52110
|
function stripProvisionedCapacityKeys(properties) {
|
|
51799
52111
|
const result = { ...properties };
|
|
51800
52112
|
delete result["WriteProvisionedThroughputSettings"];
|
|
52113
|
+
delete result[TABLE_READ_PROVISIONED_KEY];
|
|
51801
52114
|
const indexes = result["GlobalSecondaryIndexes"];
|
|
51802
52115
|
if (Array.isArray(indexes)) result["GlobalSecondaryIndexes"] = indexes.map((entry) => {
|
|
51803
52116
|
const gsi = asRecord(entry);
|
|
@@ -51837,7 +52150,7 @@ function stripProvisionedCapacityKeys(properties) {
|
|
|
51837
52150
|
return result;
|
|
51838
52151
|
}
|
|
51839
52152
|
const PROVISIONED_ONLY_CAPACITY_KEYS = {
|
|
51840
|
-
table: ["WriteProvisionedThroughputSettings"],
|
|
52153
|
+
table: ["WriteProvisionedThroughputSettings", "ReadProvisionedThroughputSettings"],
|
|
51841
52154
|
index: [
|
|
51842
52155
|
"WriteProvisionedThroughputSettings",
|
|
51843
52156
|
"ReadProvisionedThroughputSettings",
|
|
@@ -51847,7 +52160,7 @@ const PROVISIONED_ONLY_CAPACITY_KEYS = {
|
|
|
51847
52160
|
replicaIndex: ["ReadProvisionedThroughputSettings", "ProvisionedThroughputOverride"]
|
|
51848
52161
|
};
|
|
51849
52162
|
const ON_DEMAND_ONLY_CAPACITY_KEYS = {
|
|
51850
|
-
table: ["WriteOnDemandThroughputSettings"],
|
|
52163
|
+
table: ["WriteOnDemandThroughputSettings", "ReadOnDemandThroughputSettings"],
|
|
51851
52164
|
index: [
|
|
51852
52165
|
"WriteOnDemandThroughputSettings",
|
|
51853
52166
|
"ReadOnDemandThroughputSettings",
|
|
@@ -52074,11 +52387,12 @@ function toSdkReplicaThroughputOverrides(cfn, billingMode, diagnostics, context,
|
|
|
52074
52387
|
function collectTableOnDemandCeilings(properties, region, diagnostics, maskSecrets = (text) => text) {
|
|
52075
52388
|
const writeBlock = properties["WriteOnDemandThroughputSettings"];
|
|
52076
52389
|
const replicas = properties["Replicas"];
|
|
52077
|
-
const
|
|
52390
|
+
const replicaReadBlock = asRecord(Array.isArray(replicas) ? replicas.find((r) => asRecord(r)?.["Region"] === region) : void 0)?.["ReadOnDemandThroughputSettings"];
|
|
52391
|
+
const readBlock = replicaReadBlock ?? properties[TABLE_READ_ON_DEMAND_KEY];
|
|
52078
52392
|
const rawRead = asRecord(readBlock)?.["MaxReadRequestUnits"];
|
|
52079
52393
|
const rawWrite = asRecord(writeBlock)?.["MaxWriteRequestUnits"];
|
|
52080
52394
|
reportUnresolvedRawMember(rawRead, diagnostics, {
|
|
52081
|
-
blockName: "Replicas[local].ReadOnDemandThroughputSettings",
|
|
52395
|
+
blockName: replicaReadBlock !== void 0 ? "Replicas[local].ReadOnDemandThroughputSettings" : TABLE_READ_ON_DEMAND_KEY,
|
|
52082
52396
|
member: "MaxReadRequestUnits"
|
|
52083
52397
|
}, maskSecrets);
|
|
52084
52398
|
reportUnresolvedRawMember(rawWrite, diagnostics, {
|
|
@@ -55592,5 +55906,5 @@ function sameGenerationClaimsOf(record) {
|
|
|
55592
55906
|
}
|
|
55593
55907
|
|
|
55594
55908
|
//#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-
|
|
55909
|
+
export { ECR_AUTO_DELETE_IMAGES_TAG as $, explicitRoleArnOrThrow as $a, printingCorpusOf as $c, wouldReturnToSdkProvider as $i, importableOutputKeys as $l, retiredNameGenerationsAfter as $n, malformedOutputsRefusalMessage as $o, supersededAfterRollback as $r, isStatefulRecreateTargetSync as $s, journaledOrphanLines as $t, resolveApp as $u, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as A, unsettledItemsField as Aa, isMarkedCoordinate as Ac, ownValue as Ad, earliestDefined as Ai, recordProvenPublicExpression as Al, isJournaledOrphan as An, STATE_REGION_DIVERGED as Ao, rollbackOrphanIds as Ar, refuseMalformedResourcesForExport as As, makeSiblingClaimReader as At, describeDockerCapturedOutput as Au, deleteTableWithIndexBusyRetry as B, s3BucketDualStackDomainName as Ba, readsNoEchoSource as Bc, DBPROXY_TAGS_WHAT as Bi, applyCrossPrefixScan as Bl, findNestedStackTypeChanges as Bn, isReadableOrphanRecord as Bo, withStackRecords as Br, unreadableResourceEntries as Bs, getNestedRevertRun as Bt, redactDockerArgvValues as Bu, planContributorInsightsOp as C, isTerminationProtectionPropagationError as Ca, emrClusterInstancesReplaced as Cc, describeJsonParseFailure as Cd, buildFinalSnapshotIdentifier as Ci, splitGetAttStringForm as Cl, settleUnsettledPrevious as Cn, refStateLookupFromResource as Co, maskingRetryLogger as Cr, refuseMalformedResourceEntriesForOrphan as Cs, enclosingDeadlineRemainingMs as Ct, parseBootstrapMarker as Cu, reverseMapTableContributorInsights as D, DiffCalculator as Da, DagBuilder as Dc, hasOwnKey as Dd, isFinalSnapshotError as Di, recordMaskOnlyValuesIn as Dl, equalModuloMask as Dn, passedParameterClassesOf as Do, findRefactorHints as Dr, refuseMalformedResourcePropertiesForOrphan as Ds, keptWholeReasonText as Dt, buildDenyExternalAccessPolicy as Du, reverseMapIndexContributorInsights as E, reEnableInstanceApiTermination as Ea, sameLambdaFunctionAddress as Ec, defineOwnKey as Ed, effectiveDeletionPolicy as Ei, recordMaskOnlyValue as El, equalModuloMarkedMask as En, parameterInputsFor as Eo, formatDestructiveChange as Er, refuseMalformedResourcePropertiesForExport as Es, isSecretBearingReferenceString as Et, validateContainerRepoName as Eu, resolveDynamoDbDeleteBudgetClock as F, IntrinsicFunctionResolver as Fa, noEchoCoordinatesOf as Fc, resolveAssemblyPath as Fd, DeploymentEventsReader as Fi, isLockInfoExpired as Fl, recordUnderIdIsNotOwn as Fn, deployRefusesOrphanRowsReason as Fo, parseMappingFile as Fr, repairMalformedResourceEntriesForReadOnly as Fs, recordRetainedForReadoption as Ft, formatDockerLoginError as Fu, readbackVectorIndexes as G, refuseUnreadableCdkCrossAccountRefs as Ga, redactForState as Gc, tagMapAsList as Gi, withStackInstanceIdWithheld as Gl, redactedDeleteAddressFields as Gn, malformedLocalOutputsWarning as Go, green as Gr, unwrittenCreateOnlyReplacement as Gs, withNestedRevertRun as Gt, warnFinchArgvExposure as Gu, relayedIndexBusyDelete as H, s3BucketWebsiteUrl as Ha, valueAtCoordinate as Hc, planTagDiff as Hi, isAccessDenied$1 as Hl, inheritProducerRegions as Hn, malformedDriftResourcePropertiesWarning as Ho, bold as Hr, findActionableSilentDrops as Hs, recordDisplacedSkips as Ht, redactedDockerCause as Hu, resolveDynamoDbDeleteBudgetMs as I, poisonRenderedSpellingsCollidingIn as Ia, noEchoLeavesOf as Ic, injectAwsRegion as Id, DeploymentEventsStore as Ii, S3StateBackend as Il, replacementNeverSwapped as In, displayLogicalId as Io, proposeRenames as Ir, repairMalformedResourcePropertiesForReadOnly as Is, NESTED_PENDING_PARENT_REASON as It, getDockerCmd as Iu, isTtlAlreadyDisabled as J, recordedOutputReferenceRegions as Ja, carryLogOnlyValues as Jc, stringifyIfAssigned as Ji, describeRegionValueKind as Jl, updatePartialReason as Jn, malformedOrphanRecordsRefusalMessage as Jo, addSuperseded as Jr, hasNoCloudControlHandlers as Js, withNestedStackContext as Jt, Synthesizer as Ju, vectorIndexesForCreate as K, keepHeldTokenProvenance as Ka, recordReferenceProvenanceEntry as Kc, tagPlanWarning as Ki, splitImportedOps as Kl, redactedDeleteAddressSkip as Kn, malformedLocalResourceEntriesWarning as Ko, red as Kr, withoutSilentDropProperties as Ks, collectNestedChildUnaddressed as Kt, AssetManifestLoader as Ku, DELETE_INDEX_WAIT_PROCEED_NOTE as L, isSettledInstanceState as La, noEchoOutputsComparison as Lc, injectedAwsRegionValue as Ld, extractDeploymentEventError as Li, rebuildClientForBucketRegion as Ll, resolveReplacementOldType as Ln, hasReadableOrphans as Lo, awaitInFlightSibling as Lr, repairMalformedResourcesForReadOnly as Ls, displacedOpClause as Lt, isDockerClientEnvKey as Lu, beginDeleteWait as M, unsettledPropertiesOf as Ma, maskReadbackAtCoordinates as Mc, describeFileReadFailure as Md, reserveStackCreateToken as Mi, WHOLE_DYNAMIC_REFERENCE_PATTERN as Ml, planFailedOps as Mn, UNREADABLE_ORPHANS_CONTAINER_ROW as Mo, isPairableType as Mr, repairMalformedOrphanRecordsForReadOnly as Ms, pendingRequestCount as Mt, describeDockerFailure as Mu, compensateRemovedDeletionProtection as N, withUnsettledProperties as Na, maskWholeValue as Nc, displayAssemblyPath as Nd, withCreateTokenLedger as Ni, isSingleDynamicReferenceToken as Nl, planRollback as Nn, UNREADABLE_RESOURCES_MAP_ROW as No, looselyEqual as Nr, repairMalformedOrphansForReadOnly as Ns, resolvePendingCloudControlRequests as Nt, dockerSpawnEnvWithSensitive as Nu, stripIndexContributorInsights as O, INTRINSIC_KEYS as Oa, TemplateParser as Oc, hasPlainPrototype$1 as Od, refusesFinalSnapshot as Oi, recordNoEchoAttributeValues as Ol, undeclaredEmptyObservedKeys as On, declaresNoEcho as Oo, hintSidesOf as Or, refuseMalformedResourcesForDeploy as Os, mergeNoChangeOutputs as Ot, buildDockerImage as Ou, deleteBudgetKey as P, withoutUnsettledProperties as Pa, maskedLeafCoordinatesOf as Pc, renderAssemblyPathEscape as Pd, acquireIdempotencyToken as Pi, LockManager as Pl, recheckFailedPlan as Pn, accountArgs as Po, mappingPairs as Pr, repairMalformedOutputsForReadOnly as Ps, keptForRetainedRecord as Pt, finchSecretArgvRefusal as Pu, sendTtlWaitingOutRateLimit as Q, assertSendableRoleArn as Qa, logOnlyValueCount as Qc, isCustomResource as Qi, hasUnverifiableParameterRefusal as Ql, retiredAfterRollback as Qn, malformedOrphansWarning as Qo, removeSuperseded as Qr, isStatefulRecreateTargetForReplace as Qs, isHandledOrphan as Qt, loadCdkJson as Qu, INDEX_SETTLE_POLL_INTERVAL_MS as R, s3BucketArn as Ra, passedNoEchoParametersOf as Rc, clearBucketRegionCache as Rd, isRefusedByName as Ri, CrossPrefixReadError as Rl, seedsDeleteFirstGuard as Rn, hasReadableOutputs as Ro, destroyStackRecordsView as Rr, unpreviewableOrphanRecords as Rs, displacedPhysicalIdShown as Rt, isMalformedEnvKey as Ru, indexDeclaresContributorInsights as S, ec2InstanceProtectionSite as Sa, ecsServiceLaunchTypeSetOrChanged as Sc, processStackMessages as Sd, PRE_DELETE_SNAPSHOT_TYPES as Si, recordPhysicalNameCopy as Sl, recordAfterRollbackUpdate as Sn, lacksRecordedTableArn as So, DEFAULT_RESOURCE_WARN_AFTER_MS as Sr, refuseMalformedResourceEntriesForImportSave as Ss, enclosingDeadlineExpired as St, isCrossRegionRedirect as Su, readContributorInsightsSpec as T, reDisableInstanceApiTermination as Ta, lambdaFunctionNameForMask as Tc, utf8ByteLength as Td, createPreDeleteFinalSnapshot as Ti, provenPublicValue as Tl, calculateResourceDrift as Tn, withSharedDrainBudget as To, findDestructiveChanges as Tr, refuseMalformedResourcePropertiesForDrift as Ts, diffSecurity as Tt, validateAssetBucketName as Tu, waitForIndexesSettled as U, resolveDynamicReferences as Ua, liveMatchesUnresolvedTokenFrame as Uc, readTagList as Ui, isNotImplemented as Ul, REDACTED_DELETE_ADDRESS_SKIP_REASON as Un, malformedExportNamesWarning as Uo, cyan as Ur, findHandledUnwrittenCreateOnly as Us, revertNestedChildFromJournal as Ut, runDockerForeground as Uu, maskedLogger as V, s3BucketRegionalDomainName as Va, recordedNoEchoValuesOf as Vc, DBPROXY_TAG_OPTIONS as Vi, crossPrefixDeniedWarning as Vl, getCurrentProducerRegions as Vn, isReadableResourceEntry as Vo, replacedDeleteFailureVerdict as Vr, withheldAccountClause as Vs, nestedChildStackName as Vt, redactedCause as Vu, planVectorIndexUpdates as W, producerLookupOver as Wa, markSameGenerationBag as Wc, refuseMalformedDesiredTags as Wi, stackInstanceIdOf as Wl, isRedactedRecordedValue as Wn, malformedExportSourceWarning as Wo, gray as Wr, findSilentDropProperties as Ws, revertedNestedRowIds as Wt, runDockerStreaming as Wu, planTimeToLive as X, applyRoleArnIfSet as Xa, hasMaskableValues as Xc, ProviderRegistry as Xi, hasReadableExportSet as Xl, nameGenerationHighWaterOf as Xn, malformedOrphanRowsKeptWarning as Xo, holdsSupersededResources as Xr, shownType as Xs, dropFailedCommands as Xt, getDefaultStateBucketName as Xu, isTtlRateLimited as Y, recordedReferenceRegions as Ya, createUnionSecretMasker as Yc, CC_BROKEN_REASON as Yi, exportNamesCarriedFrom as Yl, nameGenerationCarriedFrom as Yn, malformedOrphanRecordsWarning as Yo, deleteSupersededEntry as Yr, findReplacedReadersOfRecreateTargets as Ys, deleteJournaledOrphans as Yt, synthesisStatusMessage as Yu, readTtlSpec as Z, assertFlagRoleArn as Za, literalSplitDelimitersOf as Zc, ccBrokenReason as Zi, hasReasonlessBaselineRefusal as Zl, nameScopeOf as Zn, malformedOrphansRefusalMessage as Zo, isSupersededResourceRecord as Zr, MULTI_REGION_RECREATE_BLOCKED_TYPES as Zs, dropFailedHint as Zt, getLegacyStateBucketName as Zu, streamMemberRefusals as _, deleteSkipReason as _a, templateResourceTypes as _c, PARTITION_TABLE as _d, secretNamedAttributeNamesOf as _i, inheritNestedStackParameterAssociations as _l, pendingMovesRefusalMessage as _n, isNamelessDynamicReferenceError as _o, collectDeclaredOutputNames as _r, refuseMalformedResourceAttributesForOrphan as _s, templateIdentity as _t, AssetModeResolver as _u, isProtectionValueActive as a, withPrintingSecrets as aa, toFiniteNumber as ac, resolveUseCdkBootstrapAssets as ad, noEchoComparisonForTemplate as ai, errorCauseChain as al, isAccessDeniedError as an, envCredentialsAreAssumedRole as ao, resourcesNamingDeclaredParameter as ar, malformedScrubResourceEntriesRefusalMessage as as, IMPLICIT_DELETE_DEPENDENCIES as at, stackInstanceIdCarriedFrom as au, CONTRIBUTOR_INSIGHTS_KEY as b, markWaitAbandoned as ba, blockDeviceMappingsDifferOnlyInDeleteOnTermination as bc, AssemblyReader as bd, storedSecretNameNeedles as bi, physicalNameCopiesOf as bl, replayRollback as bn, cfnRefValueFromPhysicalId as bo, bindingSkippedOutputs as br, refuseMalformedResourceEntriesForDestroy as bs, parentSuppliedValues as bt, ensureAssetStorage as bu, DynamoDBGlobalTableProvider as c, customResourceResponseExpirationWarning as ca, configBooleanRefusal as cc, ssmResolvedValueType as cd, withAttemptedItemsMasked as ci, scrubResourceRecord as cl, readRefactorMarker as cn, producerRegionsFromState as co, exportAliasCollisionScrubWarning as cr, refuseDivergentRecordRegionForDestroy as cs, inheritedProvenanceForChildDiff as ct, timePhase as cu, declaredStreamPolicyMember as d, onlySecretReferencesDiffer as da, readConfigString as dc, MIGRATE_TMP_PREFIX as dd, journaledOrphanPrintingBag as di, DYNAMIC_REFERENCE_TOKEN_SCAN as dl, refactorMarkerRefusalMessage as dn, isUnboundTemplateParameter as do, secretSafeKeyDisplay as dr, refuseMalformedOrphanRecordsForDestroy as ds, serviceTokenBlockingReason as dt, stringifyValue as du, waitForLambdaFunctionActive as ea, renderStatefulReason as ec, resolveAutoAssetStorage as ed, supersededHeldByOtherTypeWarning as ei, recordLogOnlyParameterValue as el, loadJournaledOrphans as en, isIamRoleArn as eo, retiredNameGenerationsLeaving as er, malformedOutputsWarning as es, S3_AUTO_DELETE_OBJECTS_TAG as et, importableOutputs as eu, declaredStreamTagsMember as f, unchangedBehindSecretReference as fa, replayWarn as fc, findLargeInlineResources as fd, maskEventTextWithBoundBags as fi, dynamicReferenceTokens as fl, refuseRefactorMarker as fn, parameterTypeMayLoseSecretIdentity as fo, carriedExportAliasExposure as fr, refuseMalformedOrphans as fs, childTemplateLoader as ft, WorkGraph as fu, streamDeclaresTags as g, deleteLeftInPlace as ga, prefetchCreateOnlyPropertyPaths as gc, expectedOwnerParam as gd, secretNamePrintingBags as gi, identityKeyFor as gl, pendingMovesOutOf as gn, carriesFetchableDynamicReference as go, noEchoParameterValueSeed as gr, refuseMalformedOutputsForDestroy as gs, renderNestedTemplateTreeDefect as gt, rewriteTemplateAssetReferences as gu, streamDeclaresPolicy as h, deleteIndeterminateGuards as ha, requireConfigString as hc, decodeListingKey as hd, secretNamePrintingBag as hi, spelledKeysOf as hl, hasPendingMovesOut as hn, carriesDynamicReference as ho, isWholeDynamicReferenceValue as hr, refuseMalformedOutputs as hs, listNestedTemplateRows as ht, loadPublishableAssetManifest as hu, PROTECTION_PROPERTY_BY_TYPE as i, getCurrentResourceSecrets as ia, toCfnInteger as ic, resolveStateBucketWithDefaultAndSource as id, noEchoAttributeNamesOf as ii, createSecretMasker as il, chunks as in, callerEnvCredentials as io, reachableDivergentParameters as ir, malformedResourcesWarning as is, markRefusedBeforeApplying as it, shouldRetainResource as iu, DYNAMODB_DELETE_POLL_COST_MS as j, unsettledItemsOf as ja, maskAtCoordinates as jc, absoluteAssemblyPathEscape as jd, ledgerForStack as ji, wholeStringLeavesOf as jl, isReplacementOrphan as jn, STATE_RESOURCES_MALFORMED as jo, withMovedTo as jr, refuseMalformedState as js, planOrphanAdoption as jt, describeDockerExecFailure as ju, DYNAMODB_DELETE_DEADLINE_MARGIN_MS as k, isUsableAttemptedName as ka, canonicalCoordinates as kc, nullPrototypeRecord as kd, unsupportedFinalSnapshotError as ki, recordNoEchoParameterFreshValue as kl, demoteSupersededOrphans as kn, JSON_LISTING_HOLE_VALUE as ko, movedToHint as kr, refuseMalformedResourcesForDestroy as ks, makeCanonicalizePropertiesFn as kt, resolveDockerContextDirectory as ku, STREAM_POLICY_KEY as l, CloudControlProvider as la, configIntegerRefusal as lc, CFN_TEMPLATE_BODY_LIMIT as ld, createReadOnlyAttributeHealerFactory as li, withPhysicalNameCopies as ll, readRefactorMarkerOnce as ln, regionLessSecretName as lo, secretBearing as lr, refuseMalformedNestedChildOutputs as ls, deferredServiceTokenWarning as lt, AssetPublisher as lu, reverseMapStreamPolicy as m, UNSPECIFIED_SKIP_REASON as ma, requireConfigObject as mc, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as md, orphanRecordsPrintingBag as mi, pathCrossesDottedKey as ml, updateRefactorMarker as mn, isImpossibleEmptyStoredAttribute as mo, exportNameSecretExposure as mr, refuseMalformedOrphansForOrphan as ms, isAbsoluteAssetPath as mt, createAssetRedirectResolver as mu, recordedProtectionEvidence as n, readsNoEchoDeleteValues as na, coerceWarmThroughput as nc, resolveSkipPrefix as nd, supersededResourcesOf as ni, shareLogOnlyValues as nl, sameJournaledOrphans as nn, AWS_CREDENTIAL_ENV_KEYS as no, computeParameterTaint as nr, malformedResourceEntriesWarning as ns, isTruthyCfnBoolean as nt, orphansAfterRollback as nu, perType as o, CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID as oa, coerceCfnBoolean as oc, stateBucketExistenceConfirmed as od, noEchoExactEchoLeavesOf as oi, maskSecretsInError as ol, lookupEachName as on, classifyRecordedSecretRegion as oo, WITHHELD_NAME_DISPLAY as or, malformedStateRefusalMessage as os, computeImplicitDeleteEdges as ot, PhaseClock as ou, planStreamMemberOps as p, RollbackInlinePolicyWriters as pa, requireConfigArray as pc, uploadCfnTemplate as pd, namingSecretsWithRecordedNoEcho as pi, isUncertifiedBaselineMaskPosition as pl, sameMove as pn, getAccountInfo as po, exportNameNoEchoParameters as pr, refuseMalformedOrphansForDestroy as ps, findNestedTemplateTreeDefect as pt, buildAssetRedirectMap as pu, vectorIndexesSettled as q, outputReferenceProvenanceOf as qa, snapshotPassProvenance as qc, definedAttributes as qi, acceptedCreateOnlyDropsOf as ql, updatePartialMessage as qn, malformedLocalResourcesWarning as qo, yellow as qr, NO_CC_HANDLERS_REASON as qs, getCurrentNestedStackContext as qt, getDockerImageBySourceHash as qu, recordedProtectionNote as r, isCustomResourceType as ra, isWarmThroughputDecrease as rc, resolveStateBucketWithDefault as rd, withoutSuperseded as ri, unionOfSecretBags as rl, formatResourceLine as rn, applyCallerIdentityCredentials as ro, namesAnyDeclaredParameter as rr, malformedResourcePropertiesWarning as rs, getPriorAttempts as rt, orphansCarriedFrom as ru, readProtection as s, applyCustomResourceResponseExpiration as sa, coerceCfnInteger as sc, warnDeprecatedNoPrefixCliFlag as sd, noEchoParameterNamesOf as si, maskSecretsInText as sl, withApiLimit as sn, classifyReplaySecretRegion as so, displayTextOrWithheld as sr, previewableOrphanRecords as ss, crossStackOutputProvenanceSource as st, renderPhaseTimings as su, DeployEngine as t, TemplateNoEchoReresolver as ta, WARM_THROUGHPUT_MEMBERS as tc, resolveCaptureObservedState as td, supersededHolderOf as ti, recordLogOnlyValue as tl, makeForeignHolderScan as tn, sendableAssumeRoleCommand as to, withNameGenerationReached as tr, malformedRenderedContainersWarning as ts, hasCdkAutoDeleteTag as tt, isReadableBag as tu, STREAM_TAGS_KEY as u, slowCcOperationTimeoutMs as ua, configStringRefusal as uc, CFN_TEMPLATE_URL_LIMIT as ud, completedReplayEntries as ui, withoutPhysicalNameCopies as ul, refactorMarkerMovesOf as un, coerceParameterTypedValue as uo, secretBearingStateKeyWarning as ur, refuseMalformedOrphanRecords as us, findServiceTokenRefusals as ut, isSensitiveAttributeName as uu, streamPolicyMatchesDeclared as v, withIndeterminateGuard as va, describeTypeWithThrottleRetry as vc, canonicalizeRegion as vd, secretNamedRecordNeedles as vi, recordNestedStackParameterExpressions as vl, refusePendingMovesOut as vn, keepsSecretReferenceToken as vo, collectPublishedOutputNames as vr, refuseMalformedResourceEntries as vs, conditionFingerprint as vt, BOOTSTRAP_MARKER_PREFIX as vu, planIndexContributorInsightsOps as w, observeThenDisableInstanceApiTermination as wa, canonicalLambdaFunctionName as wc, parseFailureDebugDetail as wd, ccRoutedFinalSnapshotError as wi, carriesSecretMask as wl, withUnprovenUnsettled as wn, parseWebACLArn as wo, constructPathOf as wr, refuseMalformedResourcePropertiesForDestroy as ws, withResourceDeadline as wt, readBootstrapMarkerBody as wu, contributorInsightsRefusals as x, disableInstanceApiTermination as xa, dbInstanceEngineChangeIsInPlace as xc, StageLoadError as xd, ATOMIC_FINAL_SNAPSHOT_TYPES as xi, recordAttributeIdCopy as xl, removeProtectionTypeList as xn, isStalePlaceholderArnAttribute as xo, DEFAULT_RESOURCE_TIMEOUT_MS as xr, refuseMalformedResourceEntriesForImport as xs, readRecordedConditionVerdicts as xt, getBootstrapMarkerKey as xu, streamTagsMatchDeclared as y, isWaitAbandonedError as ya, withRetry as yc, derivePartitionAndUrlSuffix as yd, stateSecretNameNeedles as yi, recoverMaskedOutput as yl, replayFailedOperations as yn, AWS_NO_VALUE as yo, isExportAliasCollision as yr, refuseMalformedResourceEntriesForDeploy as ys, conditionInputsFrom as yt, assertAssetBucketRegion as yu, TABLE_INDEX_NOUN as z, s3BucketDomainName as za, readbackPathFor as zc, resolveBucketRegion as zd, markDeleteStarted as zi, CrossPrefixScanCache as zl, orphanNeedsIdentity as zn, hasReadableResources as zo, getStackRecords as zr, unreadableOrphanRecords as zs, dropSettledNestedJournals as zt, partitionSensitiveEnv as zu };
|
|
55910
|
+
//# sourceMappingURL=deploy-engine-ClIUqDQL.js.map
|