@go-to-k/cdkd 0.314.0 → 0.315.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/{asg-provider-_nun2Jda.js → asg-provider-DpNkEibf.js} +2 -2
  2. package/dist/{asg-provider-_nun2Jda.js.map → asg-provider-DpNkEibf.js.map} +1 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/{db-instance-modify-retry-By0_BFNO.js → db-instance-modify-retry-B1NRKBSQ.js} +12 -6
  5. package/dist/db-instance-modify-retry-B1NRKBSQ.js.map +1 -0
  6. package/dist/{deploy-engine-ClIUqDQL.js → deploy-engine--bCIMkkk.js} +41 -52
  7. package/dist/deploy-engine--bCIMkkk.js.map +1 -0
  8. package/dist/{iam-role-provider-DJep3uns.js → iam-role-provider-s5--ZmBZ.js} +2 -2
  9. package/dist/{iam-role-provider-DJep3uns.js.map → iam-role-provider-s5--ZmBZ.js.map} +1 -1
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/{neptune-provider-CGZ_G4Vz.js → neptune-provider-BNxotnbp.js} +374 -19
  14. package/dist/neptune-provider-BNxotnbp.js.map +1 -0
  15. package/dist/{program-Du6jOw1-.js → program-CMtAmRyw.js} +4 -4
  16. package/dist/{program-Du6jOw1-.js.map → program-CMtAmRyw.js.map} +1 -1
  17. package/dist/{provider-classes-ZqxIefLl.js → provider-classes-B8kkAZqJ.js} +375 -29
  18. package/dist/provider-classes-B8kkAZqJ.js.map +1 -0
  19. package/dist/{rds-provider-C2fHUNSE.js → rds-provider-Cm3dsmFW.js} +45 -5
  20. package/dist/rds-provider-Cm3dsmFW.js.map +1 -0
  21. package/dist/{version-B2PvJ12r.js → version-Caty7J3x.js} +2 -2
  22. package/dist/{version-B2PvJ12r.js.map → version-Caty7J3x.js.map} +1 -1
  23. package/package.json +1 -1
  24. package/dist/db-instance-modify-retry-By0_BFNO.js.map +0 -1
  25. package/dist/deploy-engine-ClIUqDQL.js.map +0 -1
  26. package/dist/neptune-provider-CGZ_G4Vz.js.map +0 -1
  27. package/dist/provider-classes-ZqxIefLl.js.map +0 -1
  28. package/dist/rds-provider-C2fHUNSE.js.map +0 -1
@@ -1,14 +1,14 @@
1
1
  import { r as getAwsClients, s as withApiGatewayPacing } from "./aws-clients-Bu9EMILF.js";
2
2
  import { $ as safeMsg, A as isBeforeStateRead, E as generatedNameFor, J as displaySafe, N as recordedGeneratedNameKept, O as getCurrentStackInstanceId, Q as plainIdentOr, T as generateResourceNameWithFallback, V as SECRET_REF_MAX_CODE_POINTS, X as isPasteableIdent, Y as displayStackName, a as safeStringify, i as isAwsAuthoredFailure, n as describeAwsFailure, q as displayIdent, r as describeAwsStatusReason, s as getLogger, t as VERBOSE_POINTER, w as generateResourceName } from "./aws-failure-text-agWtoyga.js";
3
- import { $ as logGroupProtectionSite, $n as plainOrDescribed, A as withoutServerErrorRetries, Ar as markNonRetryable, At as createMaskedLogSinks, B as quotedRemedyLogicalId, C as RecentIdSet, Ct as compositeIdSeparatorRefusal, D as replayFollowedAmbiguousAttempt, Dr as THROTTLING_ERROR_NAMES, E as isInsideWindow, Et as packCompositeId, F as VALUE_NOT_SHOWN, Ft as withDerivedNameMasks, G as ProtectionFlipRegistry, Gt as markCreatedBeforeFailure, H as remedyLogicalId, Ht as isAuxiliaryFailure, I as isPlainImportJson, J as deleteWithProtectionCompensation, Jn as commandHole, Kt as markSupersedesEarlierCreate, L as isPlainImportValue, Mn as ProvisioningError, Mr as wrapMaskedAwsError, Mt as isSecretDerivedValue, N as markNotGone, Nt as maskDeep, O as replayedSendWindow, Or as isMarkedNonRetryable, Ot as segmentAfterAnchor, P as assertRegionMatch, Pn as ResourceUpdateNotSupportedError, Pt as maskerOrIdentity, Q as isTerminalDeleteFailure, R as isQuotableImportValue, Rt as clearCreatedBeforeFailure, S as AmbiguousCreateLatch, Sr as isExplicitDenyError, St as compositeIdFormatMessage, T as createAttemptKey, Tr as isTransientServerError, Tt as logicalIdShown, U as resolveExplicitPhysicalId, V as refusalTypeShown, Wt as markAuxiliaryFailure, Xn as isInertUnquoted, Yn as hasClauseBreak, Z as isTerminalDbWaitStatus, Zn as pasteableCommand, _n as CdkdError, a as retractCreatedResource, an as injectiveKey, at as userPoolProtectionSite, bt as startInterruptWatch, c as SECRET_DERIVED_READ_LIVE, ct as WITHHELD_AWS_COMMAND, d as readPrincipalLists, dn as ambientClientDefaults, dt as protectedReplacementAdvice, et as observeThenDisableProtection, fn as ambientCredentialConfig, fr as markNameCollision, ft as renderDisableCommand, h as clearOnUpdateRemoval, hn as AccountIdUnavailableError, i as reportCreatedResource, j as RESOURCE_NOT_FOUND, jr as markRedactedCause, jt as createMaskedRetryLogger, k as setBounded, kr as isThrottlingError, kt as stateOrphanRecordRemedy, l as holdsSecretDerivedEntry, lt as isAwsCliLiteral, mn as credentialFingerprint, mr as relayedNameCollision, mt as ElapsedBudgetRegistry, nr as shellQuote, nt as rdsFamilyProtectionSite, on as injectiveKeyPrefix, p as recordedPrincipalsRepair, pn as clientDefaultsFor, pr as markReplayMayCollide, pt as ElapsedBudget, q as deleteAfterProtectionFlipWithFinalSnapshot, rr as withheldTargetClause, st as UNNAMEABLE_ID_CLAUSE, tt as protectionFlipKey, u as onlySecretDerived, un as withPasteableAwsProfile, ut as pasteableAwsCommand, v as removedTemplateKeys, vr as explicitDenyPolicyKind, w as ambiguousAttemptLead, wr as isRetryableTransientError, wt as compositeIdSkipResult, x as AMBIGUOUS_LATCH_TTL_MS, xr as isAmbiguousOutcomeError, xt as canonicalizeRoute53QueryName, y as withRemovalDefaults, yt as isInterruptedWaitError, z as normalizeAwsTagsToCfn } from "./created-resource-sink-QECX8C-Z.js";
3
+ import { $ as logGroupProtectionSite, $n as plainOrDescribed, A as withoutServerErrorRetries, Ar as markNonRetryable, At as createMaskedLogSinks, B as quotedRemedyLogicalId, C as RecentIdSet, Ct as compositeIdSeparatorRefusal, D as replayFollowedAmbiguousAttempt, Dr as THROTTLING_ERROR_NAMES, E as isInsideWindow, Et as packCompositeId, F as VALUE_NOT_SHOWN, Ft as withDerivedNameMasks, G as ProtectionFlipRegistry, Gt as markCreatedBeforeFailure, H as remedyLogicalId, Ht as isAuxiliaryFailure, I as isPlainImportJson, J as deleteWithProtectionCompensation, Jn as commandHole, Kt as markSupersedesEarlierCreate, L as isPlainImportValue, Mn as ProvisioningError, Mr as wrapMaskedAwsError, Mt as isSecretDerivedValue, N as markNotGone, Nt as maskDeep, O as replayedSendWindow, Or as isMarkedNonRetryable, Ot as segmentAfterAnchor, P as assertRegionMatch, Pn as ResourceUpdateNotSupportedError, Pt as maskerOrIdentity, Q as isTerminalDeleteFailure, R as isQuotableImportValue, Rt as clearCreatedBeforeFailure, S as AmbiguousCreateLatch, Sr as isExplicitDenyError, St as compositeIdFormatMessage, T as createAttemptKey, Tr as isTransientServerError, Tt as logicalIdShown, U as resolveExplicitPhysicalId, V as refusalTypeShown, Wt as markAuxiliaryFailure, X as isProceedDbStatus, Xn as isInertUnquoted, Yn as hasClauseBreak, Z as isTerminalDbWaitStatus, Zn as pasteableCommand, _n as CdkdError, a as retractCreatedResource, an as injectiveKey, at as userPoolProtectionSite, bt as startInterruptWatch, c as SECRET_DERIVED_READ_LIVE, ct as WITHHELD_AWS_COMMAND, d as readPrincipalLists, dn as ambientClientDefaults, dt as protectedReplacementAdvice, et as observeThenDisableProtection, fn as ambientCredentialConfig, fr as markNameCollision, ft as renderDisableCommand, h as clearOnUpdateRemoval, hn as AccountIdUnavailableError, i as reportCreatedResource, j as RESOURCE_NOT_FOUND, jr as markRedactedCause, jt as createMaskedRetryLogger, k as setBounded, kr as isThrottlingError, kt as stateOrphanRecordRemedy, l as holdsSecretDerivedEntry, lt as isAwsCliLiteral, mn as credentialFingerprint, mr as relayedNameCollision, mt as ElapsedBudgetRegistry, nr as shellQuote, nt as rdsFamilyProtectionSite, on as injectiveKeyPrefix, p as recordedPrincipalsRepair, pn as clientDefaultsFor, pr as markReplayMayCollide, pt as ElapsedBudget, q as deleteAfterProtectionFlipWithFinalSnapshot, rr as withheldTargetClause, st as UNNAMEABLE_ID_CLAUSE, tt as protectionFlipKey, u as onlySecretDerived, un as withPasteableAwsProfile, ut as pasteableAwsCommand, v as removedTemplateKeys, vr as explicitDenyPolicyKind, w as ambiguousAttemptLead, wr as isRetryableTransientError, wt as compositeIdSkipResult, x as AMBIGUOUS_LATCH_TTL_MS, xr as isAmbiguousOutcomeError, xt as canonicalizeRoute53QueryName, y as withRemovalDefaults, yt as isInterruptedWaitError, z as normalizeAwsTagsToCfn } from "./created-resource-sink-QECX8C-Z.js";
4
4
  import { c as ambientRegion } from "./aws-client-defaults-BX9Y_fKp.js";
5
- import { $ as ECR_AUTO_DELETE_IMAGES_TAG, A as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Ai as earliestDefined, B as deleteTableWithIndexBusyRetry, Ba as s3BucketDualStackDomainName, Bi as DBPROXY_TAGS_WHAT, Bt as getNestedRevertRun, C as planContributorInsightsOp, Ca as isTerminationProtectionPropagationError, Cc as emrClusterInstancesReplaced, Ct as enclosingDeadlineRemainingMs, D as reverseMapTableContributorInsights, Do as passedParameterClassesOf, E as reverseMapIndexContributorInsights, Ea as reEnableInstanceApiTermination, Ec as sameLambdaFunctionAddress, F as resolveDynamoDbDeleteBudgetClock, Fd as resolveAssemblyPath, G as readbackVectorIndexes, Gc as redactForState, Gi as tagMapAsList, Gn as redactedDeleteAddressFields, H as relayedIndexBusyDelete, Ha as s3BucketWebsiteUrl, Hi as planTagDiff, I as resolveDynamoDbDeleteBudgetMs, J as isTtlAlreadyDisabled, Ji as stringifyIfAssigned, Jt as withNestedStackContext, K as vectorIndexesForCreate, Kc as recordReferenceProvenanceEntry, Ki as tagPlanWarning, Kn as redactedDeleteAddressSkip, Ks as withoutSilentDropProperties, L as DELETE_INDEX_WAIT_PROCEED_NOTE, La as isSettledInstanceState, Lr as awaitInFlightSibling, M as beginDeleteWait, Md as describeFileReadFailure, Mi as reserveStackCreateToken, N as compensateRemovedDeletionProtection, Nd as displayAssemblyPath, O as stripIndexContributorInsights, P as deleteBudgetKey, Pd as renderAssemblyPathEscape, Pi as acquireIdempotencyToken, Po as accountArgs, Q as sendTtlWaitingOutRateLimit, R as INDEX_SETTLE_POLL_INTERVAL_MS, Ra as s3BucketArn, Rc as passedNoEchoParametersOf, Ri as isRefusedByName, S as indexDeclaresContributorInsights, Sa as ec2InstanceProtectionSite, Sc as ecsServiceLaunchTypeSetOrChanged, St as enclosingDeadlineExpired, T as readContributorInsightsSpec, Ta as reDisableInstanceApiTermination, Tc as lambdaFunctionNameForMask, U as waitForIndexesSettled, Ui as readTagList, Un as REDACTED_DELETE_ADDRESS_SKIP_REASON, Ut as revertNestedChildFromJournal, V as maskedLogger, Va as s3BucketRegionalDomainName, Vi as DBPROXY_TAG_OPTIONS, Vn as getCurrentProducerRegions, Vr as replacedDeleteFailureVerdict, Vs as withheldAccountClause, W as planVectorIndexUpdates, Wc as markSameGenerationBag, Wi as refuseMalformedDesiredTags, Wn as isRedactedRecordedValue, Ws as findSilentDropProperties, X as planTimeToLive, Xc as hasMaskableValues, Y as isTtlRateLimited, Z as readTtlSpec, _ as streamMemberRefusals, _a as deleteSkipReason, _i as secretNamedAttributeNamesOf, ac as toFiniteNumber, an as isAccessDeniedError, b as CONTRIBUTOR_INSIGHTS_KEY, ba as markWaitAbandoned, bc as blockDeviceMappingsDifferOnlyInDeleteOnTermination, bl as physicalNameCopiesOf, c as DynamoDBGlobalTableProvider, cc as configBooleanRefusal, cu as timePhase, d as declaredStreamPolicyMember, da as onlySecretReferencesDiffer, dc as readConfigString, du as stringifyValue, ea as waitForLambdaFunctionActive, et as S3_AUTO_DELETE_OBJECTS_TAG, f as declaredStreamTagsMember, fa as unchangedBehindSecretReference, fc as replayWarn, fl as dynamicReferenceTokens, g as streamDeclaresTags, gt as renderNestedTemplateTreeDefect, gu as rewriteTemplateAssetReferences, h as streamDeclaresPolicy, hc as requireConfigString, hd as decodeListingKey, ht as listNestedTemplateRows, ia as getCurrentResourceSecrets, ic as toCfnInteger, in as chunks, it as markRefusedBeforeApplying, j as DYNAMODB_DELETE_POLL_COST_MS, k as DYNAMODB_DELETE_DEADLINE_MARGIN_MS, ka as isUsableAttemptedName, ks as refuseMalformedResourcesForDestroy, l as STREAM_POLICY_KEY, lc as configIntegerRefusal, ls as refuseMalformedNestedChildOutputs, m as reverseMapStreamPolicy, mc as requireConfigObject, mt as isAbsoluteAssetPath, nc as coerceWarmThroughput$1, nt as isTruthyCfnBoolean, oc as coerceCfnBoolean, on as lookupEachName, p as planStreamMemberOps, pc as requireConfigArray, po as getAccountInfo, pt as findNestedTemplateTreeDefect, q as vectorIndexesSettled, qa as outputReferenceProvenanceOf, qc as snapshotPassProvenance, qi as definedAttributes, qt as getCurrentNestedStackContext, rc as isWarmThroughputDecrease, rt as getPriorAttempts, sc as coerceCfnInteger, sn as withApiLimit, t as DeployEngine, tc as WARM_THROUGHPUT_MEMBERS, tt as hasCdkAutoDeleteTag, u as STREAM_TAGS_KEY, ua as slowCcOperationTimeoutMs, uc as configStringRefusal, ul as withoutPhysicalNameCopies, v as streamPolicyMatchesDeclared, va as withIndeterminateGuard, vd as canonicalizeRegion, w as planIndexContributorInsightsOps, wa as observeThenDisableInstanceApiTermination, wc as canonicalLambdaFunctionName, wl as carriesSecretMask, wo as parseWebACLArn, x as contributorInsightsRefusals, xl as recordAttributeIdCopy, y as streamTagsMatchDeclared, ya as isWaitAbandonedError, yc as withRetry, yd as derivePartitionAndUrlSuffix, yl as recoverMaskedOutput, z as TABLE_INDEX_NOUN, za as s3BucketDomainName, zi as markDeleteStarted, zr as getStackRecords } from "./deploy-engine-ClIUqDQL.js";
6
- import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-DJep3uns.js";
7
- import { a as resolveSecretDerivedPrincipals, i as isResolvableSecretPrincipalList, n as runDestroyForStack, o as canonicalizeIpProtocolValue, r as holdsUnprovenSecretPrincipalToken, s as resolvedResourceTimeoutMs, t as canonicalizeIpv4Cidr } from "./program-Du6jOw1-.js";
8
- import { t as modifyDbInstanceWhenAvailable } from "./db-instance-modify-retry-By0_BFNO.js";
9
- import { RDSProvider } from "./rds-provider-C2fHUNSE.js";
10
- import { NeptuneProvider } from "./neptune-provider-CGZ_G4Vz.js";
11
- import { ASGProvider } from "./asg-provider-_nun2Jda.js";
5
+ import { $ as sendTtlWaitingOutRateLimit, A as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Aa as isUsableAttemptedName, As as refuseMalformedResourcesForDestroy, B as deleteTableWithIndexBusyRetry, Ba as s3BucketDomainName, Bi as markDeleteStarted, Br as getStackRecords, C as planContributorInsightsOp, Ca as ec2InstanceProtectionSite, Cc as ecsServiceLaunchTypeSetOrChanged, Ct as enclosingDeadlineExpired, D as reverseMapTableContributorInsights, Da as reEnableInstanceApiTermination, Dc as sameLambdaFunctionAddress, E as reverseMapIndexContributorInsights, Ea as reDisableInstanceApiTermination, Ec as lambdaFunctionNameForMask, F as resolveDynamoDbDeleteBudgetClock, Fd as renderAssemblyPathEscape, Fi as acquireIdempotencyToken, Fo as accountArgs, G as readbackVectorIndexes, Gc as markSameGenerationBag, Gi as refuseMalformedDesiredTags, Gn as isRedactedRecordedValue, Gs as findSilentDropProperties, H as relayedIndexBusyDelete, Ha as s3BucketRegionalDomainName, Hi as DBPROXY_TAG_OPTIONS, Hn as getCurrentProducerRegions, Hr as replacedDeleteFailureVerdict, Hs as withheldAccountClause, I as resolveDynamoDbDeleteBudgetMs, Id as resolveAssemblyPath, J as vectorIndexesShapeDetail, Ja as outputReferenceProvenanceOf, Jc as snapshotPassProvenance, Ji as definedAttributes, Jt as getCurrentNestedStackContext, K as vectorIndexesForCreate, Kc as redactForState, Ki as tagMapAsList, Kn as redactedDeleteAddressFields, L as DELETE_INDEX_WAIT_PROCEED_NOTE, M as beginDeleteWait, N as compensateRemovedDeletionProtection, Nd as describeFileReadFailure, Ni as reserveStackCreateToken, O as stripIndexContributorInsights, Oo as passedParameterClassesOf, P as deleteBudgetKey, Pd as displayAssemblyPath, Q as readTtlSpec, R as INDEX_SETTLE_POLL_INTERVAL_MS, Ra as isSettledInstanceState, Rr as awaitInFlightSibling, S as indexDeclaresContributorInsights, Sl as recordAttributeIdCopy, T as readContributorInsightsSpec, Ta as observeThenDisableInstanceApiTermination, Tc as canonicalLambdaFunctionName, Tl as carriesSecretMask, To as parseWebACLArn, U as waitForIndexesSettled, Ua as s3BucketWebsiteUrl, Ui as planTagDiff, V as maskedLogger, Va as s3BucketDualStackDomainName, Vi as DBPROXY_TAGS_WHAT, Vt as getNestedRevertRun, W as planVectorIndexUpdates, Wi as readTagList, Wn as REDACTED_DELETE_ADDRESS_SKIP_REASON, Wt as revertNestedChildFromJournal, X as isTtlRateLimited, Y as isTtlAlreadyDisabled, Yi as stringifyIfAssigned, Yt as withNestedStackContext, Z as planTimeToLive, Zc as hasMaskableValues, _ as streamMemberRefusals, _t as renderNestedTemplateTreeDefect, _u as rewriteTemplateAssetReferences, aa as getCurrentResourceSecrets, ac as toCfnInteger, an as chunks, at as markRefusedBeforeApplying, b as CONTRIBUTOR_INSIGHTS_KEY, ba as isWaitAbandonedError, bc as withRetry, bd as derivePartitionAndUrlSuffix, bl as recoverMaskedOutput, c as DynamoDBGlobalTableProvider, cc as coerceCfnInteger, cn as withApiLimit, d as declaredStreamPolicyMember, da as slowCcOperationTimeoutMs, dc as configStringRefusal, dl as withoutPhysicalNameCopies, et as ECR_AUTO_DELETE_IMAGES_TAG, f as declaredStreamTagsMember, fa as onlySecretReferencesDiffer, fc as readConfigString, fu as stringifyValue, g as streamDeclaresTags, gc as requireConfigString, gd as decodeListingKey, gt as listNestedTemplateRows, h as streamDeclaresPolicy, hc as requireConfigObject, ht as isAbsoluteAssetPath, ic as isWarmThroughputDecrease, it as getPriorAttempts, j as DYNAMODB_DELETE_POLL_COST_MS, ji as earliestDefined, k as DYNAMODB_DELETE_DEADLINE_MARGIN_MS, l as STREAM_POLICY_KEY, lc as configBooleanRefusal, lu as timePhase, m as reverseMapStreamPolicy, mc as requireConfigArray, mo as getAccountInfo, mt as findNestedTemplateTreeDefect, nc as WARM_THROUGHPUT_MEMBERS, nt as hasCdkAutoDeleteTag, oc as toFiniteNumber, on as isAccessDeniedError, p as planStreamMemberOps, pa as unchangedBehindSecretReference, pc as replayWarn, pl as dynamicReferenceTokens, q as vectorIndexesSettled, qc as recordReferenceProvenanceEntry, qi as tagPlanWarning, qn as redactedDeleteAddressSkip, qs as withoutSilentDropProperties, rc as coerceWarmThroughput$1, rt as isTruthyCfnBoolean, sc as coerceCfnBoolean, sn as lookupEachName, t as DeployEngine, ta as waitForLambdaFunctionActive, tt as S3_AUTO_DELETE_OBJECTS_TAG, u as STREAM_TAGS_KEY, uc as configIntegerRefusal, us as refuseMalformedNestedChildOutputs, v as streamPolicyMatchesDeclared, va as deleteSkipReason, vi as secretNamedAttributeNamesOf, w as planIndexContributorInsightsOps, wa as isTerminationProtectionPropagationError, wc as emrClusterInstancesReplaced, wt as enclosingDeadlineRemainingMs, x as contributorInsightsRefusals, xa as markWaitAbandoned, xc as blockDeviceMappingsDifferOnlyInDeleteOnTermination, xl as physicalNameCopiesOf, y as streamTagsMatchDeclared, ya as withIndeterminateGuard, yd as canonicalizeRegion, z as TABLE_INDEX_NOUN, za as s3BucketArn, zc as passedNoEchoParametersOf, zi as isRefusedByName } from "./deploy-engine--bCIMkkk.js";
6
+ import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-s5--ZmBZ.js";
7
+ import { a as resolveSecretDerivedPrincipals, i as isResolvableSecretPrincipalList, n as runDestroyForStack, o as canonicalizeIpProtocolValue, r as holdsUnprovenSecretPrincipalToken, s as resolvedResourceTimeoutMs, t as canonicalizeIpv4Cidr } from "./program-CMtAmRyw.js";
8
+ import { n as modifyDbInstanceWhenAvailable } from "./db-instance-modify-retry-B1NRKBSQ.js";
9
+ import { RDSProvider } from "./rds-provider-Cm3dsmFW.js";
10
+ import { NeptuneProvider } from "./neptune-provider-BNxotnbp.js";
11
+ import { ASGProvider } from "./asg-provider-DpNkEibf.js";
12
12
  import { createHash, randomUUID } from "node:crypto";
13
13
  import { CreateBucketCommand, CreateBucketMetadataConfigurationCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetadataConfigurationCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAbacCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketMetadataConfigurationCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListBucketsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAbacCommand, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, UpdateBucketMetadataAnnotationTableConfigurationCommand, UpdateBucketMetadataInventoryTableConfigurationCommand, UpdateBucketMetadataJournalTableConfigurationCommand } from "@aws-sdk/client-s3";
14
14
  import { AddRoleToInstanceProfileCommand, AddUserToGroupCommand, AttachGroupPolicyCommand, AttachRolePolicyCommand, AttachUserPolicyCommand, CreateAccessKeyCommand, CreateGroupCommand, CreateInstanceProfileCommand, CreateLoginProfileCommand, CreatePolicyCommand, CreatePolicyVersionCommand, CreateUserCommand, DeleteAccessKeyCommand, DeleteGroupCommand, DeleteGroupPolicyCommand, DeleteInstanceProfileCommand, DeleteLoginProfileCommand, DeletePolicyCommand, DeletePolicyVersionCommand, DeleteRolePolicyCommand, DeleteUserCommand, DeleteUserPermissionsBoundaryCommand, DeleteUserPolicyCommand, DetachGroupPolicyCommand, DetachRolePolicyCommand, DetachUserPolicyCommand, GetAccessKeyLastUsedCommand, GetGroupCommand, GetGroupPolicyCommand, GetInstanceProfileCommand, GetPolicyCommand, GetPolicyVersionCommand, GetRolePolicyCommand, GetUserCommand, GetUserPolicyCommand, IAMClient, ListAccessKeysCommand, ListAttachedGroupPoliciesCommand, ListAttachedUserPoliciesCommand, ListEntitiesForPolicyCommand, ListGroupPoliciesCommand, ListGroupsForUserCommand, ListPoliciesCommand, ListPolicyTagsCommand, ListPolicyVersionsCommand, ListUserPoliciesCommand, NoSuchEntityException, PutGroupPolicyCommand, PutRolePolicyCommand, PutUserPermissionsBoundaryCommand, PutUserPolicyCommand, RemoveRoleFromInstanceProfileCommand, RemoveUserFromGroupCommand, TagPolicyCommand, TagUserCommand, UntagPolicyCommand, UntagUserCommand, UpdateAccessKeyCommand, UpdateGroupCommand, UpdateLoginProfileCommand, UpdateUserCommand } from "@aws-sdk/client-iam";
@@ -12528,12 +12528,15 @@ function sentWarmThroughputMembers(value) {
12528
12528
  function wasSentWarmThroughput(value) {
12529
12529
  return sentWarmThroughputMembers(value).size > 0;
12530
12530
  }
12531
- function readbackWarmThroughput(live, members) {
12531
+ function readbackWarmThroughput(live, members, declared) {
12532
+ const moving = live.Status === "UPDATING" ? coerceWarmThroughput(declared)?.spec : void 0;
12532
12533
  const out = {};
12533
12534
  for (const member of WARM_THROUGHPUT_MEMBERS) {
12534
- if (live[member] === void 0) continue;
12535
+ const value = live[member];
12536
+ if (value === void 0) continue;
12535
12537
  if (members !== void 0 && !members.has(member)) continue;
12536
- out[member] = live[member];
12538
+ const target = moving?.[member];
12539
+ out[member] = target === void 0 ? value : Math.max(value, target);
12537
12540
  }
12538
12541
  return Object.keys(out).length > 0 ? out : void 0;
12539
12542
  }
@@ -12595,7 +12598,7 @@ function reverseMapSecondaryIndex(live, desired, bagInformative) {
12595
12598
  if (Object.keys(odt).length > 0) out["OnDemandThroughput"] = odt;
12596
12599
  }
12597
12600
  if ("WarmThroughput" in live && indexDeclares(desired, "WarmThroughput", bagInformative) && live.WarmThroughput) {
12598
- const wt = readbackWarmThroughput(live.WarmThroughput, bagInformative ? sentWarmThroughputMembers(desired?.["WarmThroughput"]) : void 0);
12601
+ const wt = readbackWarmThroughput(live.WarmThroughput, bagInformative ? sentWarmThroughputMembers(desired?.["WarmThroughput"]) : void 0, bagInformative ? desired?.["WarmThroughput"] : void 0);
12599
12602
  if (wt !== void 0) out["WarmThroughput"] = wt;
12600
12603
  }
12601
12604
  return out;
@@ -12953,7 +12956,14 @@ var DynamoDBTableProvider = class {
12953
12956
  if (context?.replayingState !== true && context?.desiredFromAwsReadback !== true) throw new ProvisioningError(`${lsiMessage}. Nothing was applied to the table; revert the LocalSecondaryIndexes change, or create a new table under a new logical ID (a new table starts empty)`, resourceType, logicalId, physicalId);
12954
12957
  warn(`${lsiMessage}; the LocalSecondaryIndexes change was not applied`);
12955
12958
  }
12956
- const vectorIndexPlan = JSON.stringify(properties["VectorIndexes"]) !== JSON.stringify(previousProperties["VectorIndexes"]) ? planVectorIndexUpdates(previousProperties["VectorIndexes"], properties["VectorIndexes"], table?.VectorIndexes ?? (table === void 0 ? void 0 : [])) : void 0;
12959
+ const vectorIndexesChanged = JSON.stringify(properties["VectorIndexes"]) !== JSON.stringify(previousProperties["VectorIndexes"]);
12960
+ const vectorIndexShape = vectorIndexesChanged ? vectorIndexesShapeDetail(properties["VectorIndexes"]) : void 0;
12961
+ if (vectorIndexShape !== void 0) {
12962
+ const shapeMessage = `AWS::DynamoDB::Table ${logicalId}: ${vectorIndexShape}`;
12963
+ if (context?.replayingState !== true && context?.desiredFromAwsReadback !== true) throw new ProvisioningError(`${maskSecrets(shapeMessage)}. Nothing was applied to the table; fix the template value`, resourceType, logicalId, physicalId);
12964
+ warn(`${shapeMessage}; the VectorIndexes change was not applied`);
12965
+ }
12966
+ const vectorIndexPlan = vectorIndexesChanged && vectorIndexShape === void 0 ? planVectorIndexUpdates(previousProperties["VectorIndexes"], properties["VectorIndexes"], table?.VectorIndexes ?? (table === void 0 ? void 0 : [])) : void 0;
12957
12967
  if (vectorIndexPlan !== void 0 && vectorIndexPlan.changed.length > 0) {
12958
12968
  const vectorMessage = `AWS::DynamoDB::Table ${logicalId}: VectorIndexes ${vectorIndexPlan.changed.map((n) => maskSecrets(n)).join(", ")} changed definition, which DynamoDB cannot modify in place`;
12959
12969
  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);
@@ -14274,7 +14284,8 @@ var DynamoDBTableProvider = class {
14274
14284
  if (Object.keys(odt).length > 0) result["OnDemandThroughput"] = odt;
14275
14285
  }
14276
14286
  if (table.WarmThroughput && declaresWarmThroughput(properties)) {
14277
- const wt = readbackWarmThroughput(table.WarmThroughput, properties !== void 0 && desiredBagIsInformative(properties) ? sentWarmThroughputMembers(properties["WarmThroughput"]) : void 0);
14287
+ const informative = properties !== void 0 && desiredBagIsInformative(properties);
14288
+ const wt = readbackWarmThroughput(table.WarmThroughput, informative ? sentWarmThroughputMembers(properties["WarmThroughput"]) : void 0, informative ? properties["WarmThroughput"] : void 0);
14278
14289
  if (wt !== void 0) result["WarmThroughput"] = wt;
14279
14290
  }
14280
14291
  let streamMembersRead = Promise.resolve();
@@ -31230,6 +31241,41 @@ function wrapDocDBFailure(logger, mask, error, build) {
31230
31241
  const wrapped = build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`);
31231
31242
  return error instanceof Error ? markRedactedCause(wrapped) : wrapped;
31232
31243
  }
31244
+ function docdbStringList(value) {
31245
+ if (value == null) return [];
31246
+ if (!Array.isArray(value)) return void 0;
31247
+ return value.every((item) => typeof item === "string") ? value : void 0;
31248
+ }
31249
+ function docdbLogExportChange(desired, previous) {
31250
+ const enable = [...new Set(desired)].filter((type) => !previous.includes(type));
31251
+ const disable = [...new Set(previous)].filter((type) => !desired.includes(type));
31252
+ if (enable.length === 0 && disable.length === 0) return void 0;
31253
+ return {
31254
+ ...enable.length > 0 && { EnableLogTypes: enable },
31255
+ ...disable.length > 0 && { DisableLogTypes: disable }
31256
+ };
31257
+ }
31258
+ function cfnCapacity(value) {
31259
+ const capacity = typeof value === "number" || typeof value === "string" && value.trim() !== "" ? Number(value) : NaN;
31260
+ return Number.isFinite(capacity) ? capacity : void 0;
31261
+ }
31262
+ function docdbServerlessScaling(value) {
31263
+ if (value == null) return void 0;
31264
+ if (typeof value !== "object" || Array.isArray(value)) return null;
31265
+ const { MinCapacity, MaxCapacity } = value;
31266
+ const min = cfnCapacity(MinCapacity);
31267
+ const max = cfnCapacity(MaxCapacity);
31268
+ if (min === void 0 || max === void 0) return null;
31269
+ return {
31270
+ MinCapacity: min,
31271
+ MaxCapacity: max
31272
+ };
31273
+ }
31274
+ function holdsDocDBPendingValue(value) {
31275
+ if (value === void 0 || value === null) return false;
31276
+ if (typeof value === "object") return Object.values(value).some(holdsDocDBPendingValue);
31277
+ return true;
31278
+ }
31233
31279
  function isDocDBNotFoundError(error, faultName) {
31234
31280
  if (!(error instanceof Error)) return false;
31235
31281
  const name = error.name ?? "";
@@ -31280,6 +31326,20 @@ function masterUserPasswordToSend(properties, previousProperties, context) {
31280
31326
  return typeof desired === "string" && typeof recorded === "string" && recorded === desired && dynamicReferenceTokens(recorded).length === 0 && recorded !== "***" ? void 0 : desired;
31281
31327
  }
31282
31328
  const DOCDB_DEFAULT_PORT = 27017;
31329
+ const DOCDB_DEFAULT_STORAGE_TYPE = "standard";
31330
+ function rotateMasterUserPassword(properties, previousProperties, context) {
31331
+ if (context?.replayingState === true || context?.desiredFromAwsReadback === true) return false;
31332
+ return coerceCfnBoolean(properties["RotateMasterUserPassword"]) === true && coerceCfnBoolean(previousProperties["RotateMasterUserPassword"]) !== true;
31333
+ }
31334
+ function kmsKeyText(key) {
31335
+ return key.replace(/^arn:[^:]*:kms:[^:]*:[^:]*:/, "").replace(/^key\//, "");
31336
+ }
31337
+ function sameKmsKey(a, b) {
31338
+ return b !== void 0 && kmsKeyText(a) === kmsKeyText(b);
31339
+ }
31340
+ function declaredChange(desired, recorded, live) {
31341
+ return desired != null && String(desired) !== String(recorded ?? live);
31342
+ }
31283
31343
  const DOCDB_CLUSTER_KEPT_ON_REMOVAL = [
31284
31344
  "DeletionProtection",
31285
31345
  "BackupRetentionPeriod",
@@ -31287,17 +31347,38 @@ const DOCDB_CLUSTER_KEPT_ON_REMOVAL = [
31287
31347
  "EngineVersion",
31288
31348
  "PreferredBackupWindow",
31289
31349
  "PreferredMaintenanceWindow",
31290
- "DBClusterParameterGroupName"
31350
+ "DBClusterParameterGroupName",
31351
+ "CopyTagsToSnapshot",
31352
+ "EnableCloudwatchLogsExports",
31353
+ "StorageType",
31354
+ "ServerlessV2ScalingConfiguration",
31355
+ "MasterUserSecretKmsKeyId"
31356
+ ];
31357
+ const DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL = ["NetworkType", "ManageMasterUserPassword"];
31358
+ const DOCDB_INSTANCE_KEPT_ON_REMOVAL = [
31359
+ "PreferredMaintenanceWindow",
31360
+ "CACertificateIdentifier",
31361
+ "EnablePerformanceInsights"
31362
+ ];
31363
+ const CLUSTER_MODIFY_UNSETTLED_KEYS = [
31364
+ "CopyTagsToSnapshot",
31365
+ "EnableCloudwatchLogsExports",
31366
+ "NetworkType",
31367
+ "ServerlessV2ScalingConfiguration",
31368
+ "StorageType"
31291
31369
  ];
31292
- const DOCDB_INSTANCE_KEPT_ON_REMOVAL = ["PreferredMaintenanceWindow"];
31293
- function keptOnRemovalWarning$1(keys, properties, previousProperties, context, logicalId, resourceType) {
31370
+ const INSTANCE_MODIFY_UNSETTLED_KEYS = ["CACertificateIdentifier", "EnablePerformanceInsights"];
31371
+ const SETTLE_MAX_WAIT_MS = 3e5;
31372
+ const STORAGE_SETTLE_MAX_WAIT_MS = 18e5;
31373
+ const DEADLINE_MARGIN_MS = 3e4;
31374
+ function keptOnRemovalWarning$1(keys, properties, previousProperties, context, logicalId, resourceType, measured = true) {
31294
31375
  const removedSet = context?.removedProperties ?? new Set(removedTemplateKeys(previousProperties, properties));
31295
31376
  const removed = keys.filter((key) => removedSet.has(key));
31296
31377
  if (removed.length === 0) return void 0;
31297
31378
  const one = removed.length === 1;
31298
31379
  const names = `${one ? "property" : "properties"} ${removed.join(", ")}`;
31299
31380
  const modify = resourceType === "AWS::DocDB::DBInstance" ? "ModifyDBInstance" : "ModifyDBCluster";
31300
- return context?.replayingState ? safeMsg`${logicalId} (${resourceType}): ${names} ${one ? "is" : "are"} absent from the state being restored; ${modify} keeps a setting it is not sent, so the rollback leaves any value the failed deploy applied in place.` : safeMsg`${logicalId} (${resourceType}): ${names} ${one ? "was" : "were"} removed from the template; cdkd leaves the current AWS ${one ? "value" : "values"} in place, as CloudFormation does. Declare ${one ? "it" : "them"} to change ${one ? "it" : "them"}.`;
31381
+ return context?.replayingState ? safeMsg`${logicalId} (${resourceType}): ${names} ${one ? "is" : "are"} absent from the state being restored; ${modify} keeps a setting it is not sent, so the rollback leaves any value the failed deploy applied in place.` : safeMsg`${logicalId} (${resourceType}): ${names} ${one ? "was" : "were"} removed from the template; cdkd leaves the current AWS ${one ? "value" : "values"} in place${measured ? ", as CloudFormation does" : ""}. Declare ${one ? "it" : "them"} to change ${one ? "it" : "them"}.`;
31301
31382
  }
31302
31383
  const SECURITY_GROUP_CHANGE_MEMBER_STATUSES = /* @__PURE__ */ new Set(["modifying"]);
31303
31384
  const PORT_CHANGE_MEMBER_STATUSES = /* @__PURE__ */ new Set(["modifying", "rebooting"]);
@@ -31341,6 +31422,7 @@ var DocDBProvider = class {
31341
31422
  protectionFlips = new ProtectionFlipRegistry();
31342
31423
  disableCcApiFallback = true;
31343
31424
  removalHandledInUpdate = /* @__PURE__ */ new Map([["AWS::DocDB::DBCluster", /* @__PURE__ */ new Set([
31425
+ "AvailabilityZones",
31344
31426
  "DBClusterIdentifier",
31345
31427
  "DBSubnetGroupName",
31346
31428
  "KmsKeyId",
@@ -31349,7 +31431,9 @@ var DocDBProvider = class {
31349
31431
  "Port",
31350
31432
  "Tags",
31351
31433
  "MasterUserPassword",
31352
- ...DOCDB_CLUSTER_KEPT_ON_REMOVAL
31434
+ "RotateMasterUserPassword",
31435
+ ...DOCDB_CLUSTER_KEPT_ON_REMOVAL,
31436
+ ...DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL
31353
31437
  ])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
31354
31438
  "DBInstanceIdentifier",
31355
31439
  "DBClusterIdentifier",
@@ -31357,6 +31441,7 @@ var DocDBProvider = class {
31357
31441
  "DBInstanceClass",
31358
31442
  "Tags",
31359
31443
  "AutoMinorVersionUpgrade",
31444
+ "CertificateRotationRestart",
31360
31445
  ...DOCDB_INSTANCE_KEPT_ON_REMOVAL
31361
31446
  ])]]);
31362
31447
  handledProperties = /* @__PURE__ */ new Map([["AWS::DocDB::DBCluster", /* @__PURE__ */ new Set([
@@ -31374,7 +31459,16 @@ var DocDBProvider = class {
31374
31459
  "PreferredMaintenanceWindow",
31375
31460
  "DBClusterParameterGroupName",
31376
31461
  "DeletionProtection",
31377
- "Tags"
31462
+ "Tags",
31463
+ "AvailabilityZones",
31464
+ "CopyTagsToSnapshot",
31465
+ "EnableCloudwatchLogsExports",
31466
+ "ManageMasterUserPassword",
31467
+ "MasterUserSecretKmsKeyId",
31468
+ "NetworkType",
31469
+ "RotateMasterUserPassword",
31470
+ "ServerlessV2ScalingConfiguration",
31471
+ "StorageType"
31378
31472
  ])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
31379
31473
  "DBInstanceIdentifier",
31380
31474
  "DBInstanceClass",
@@ -31382,7 +31476,10 @@ var DocDBProvider = class {
31382
31476
  "AvailabilityZone",
31383
31477
  "PreferredMaintenanceWindow",
31384
31478
  "AutoMinorVersionUpgrade",
31385
- "Tags"
31479
+ "Tags",
31480
+ "CACertificateIdentifier",
31481
+ "CertificateRotationRestart",
31482
+ "EnablePerformanceInsights"
31386
31483
  ])]]);
31387
31484
  getClient() {
31388
31485
  if (!this.docdbClient) {
@@ -31404,8 +31501,8 @@ var DocDBProvider = class {
31404
31501
  async create(logicalId, resourceType, properties, context) {
31405
31502
  const mask = context?.maskSecrets;
31406
31503
  switch (resourceType) {
31407
- case "AWS::DocDB::DBCluster": return this.createDBCluster(logicalId, resourceType, properties, mask);
31408
- case "AWS::DocDB::DBInstance": return this.createDBInstance(logicalId, resourceType, properties, mask);
31504
+ case "AWS::DocDB::DBCluster": return this.createDBCluster(logicalId, resourceType, properties, mask, context?.replayingState === true);
31505
+ case "AWS::DocDB::DBInstance": return this.createDBInstance(logicalId, resourceType, properties, mask, context?.replayingState === true);
31409
31506
  default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId);
31410
31507
  }
31411
31508
  }
@@ -31430,9 +31527,13 @@ var DocDBProvider = class {
31430
31527
  const thrown = this.wrapCaughtError(mask, error, build);
31431
31528
  return error instanceof Error && error.name.includes("NotFound") ? markNotGone(thrown) : thrown;
31432
31529
  }
31433
- async createDBCluster(logicalId, resourceType, properties, mask) {
31530
+ async createDBCluster(logicalId, resourceType, properties, mask, replayingState) {
31434
31531
  this.logger.debug(`Creating DocDB DBCluster ${logicalId}`);
31435
31532
  const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
31533
+ const origin = { stateBorne: replayingState };
31534
+ const { logTypes, scaling } = this.readClusterBlocks(properties, resourceType, logicalId, origin, true);
31535
+ const managedPassword = this.readBooleanProperty("ManageMasterUserPassword", properties, resourceType, logicalId, origin);
31536
+ const password = this.passwordBesideManaged(managedPassword, false, properties["MasterUserPassword"], resourceType, logicalId, origin);
31436
31537
  const dbClusterIdentifier = properties["DBClusterIdentifier"] || generatedNameFor("AWS::DocDB::DBCluster", logicalId);
31437
31538
  let clusterCreated = false;
31438
31539
  let createdResourceId;
@@ -31442,7 +31543,7 @@ var DocDBProvider = class {
31442
31543
  Engine: "docdb",
31443
31544
  EngineVersion: properties["EngineVersion"],
31444
31545
  MasterUsername: properties["MasterUsername"],
31445
- MasterUserPassword: properties["MasterUserPassword"],
31546
+ MasterUserPassword: password,
31446
31547
  Port: properties["Port"] != null ? Number(properties["Port"]) : void 0,
31447
31548
  VpcSecurityGroupIds: properties["VpcSecurityGroupIds"],
31448
31549
  DBSubnetGroupName: properties["DBSubnetGroupName"],
@@ -31453,6 +31554,14 @@ var DocDBProvider = class {
31453
31554
  PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
31454
31555
  DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
31455
31556
  DeletionProtection: properties["DeletionProtection"],
31557
+ AvailabilityZones: properties["AvailabilityZones"],
31558
+ CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
31559
+ ManageMasterUserPassword: managedPassword,
31560
+ MasterUserSecretKmsKeyId: properties["MasterUserSecretKmsKeyId"],
31561
+ NetworkType: properties["NetworkType"],
31562
+ StorageType: properties["StorageType"],
31563
+ ...logTypes !== void 0 && logTypes.length > 0 && { EnableCloudwatchLogsExports: logTypes },
31564
+ ...scaling != null && { ServerlessV2ScalingConfiguration: scaling },
31456
31565
  ...tags.length > 0 && { Tags: tags }
31457
31566
  }));
31458
31567
  clusterCreated = true;
@@ -31474,10 +31583,26 @@ var DocDBProvider = class {
31474
31583
  async updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties, context) {
31475
31584
  this.logger.debug(`Updating DocDB DBCluster ${logicalId}: ${physicalId}`);
31476
31585
  refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
31586
+ const origin = {
31587
+ stateBorne: context?.replayingState === true || context?.desiredFromAwsReadback === true,
31588
+ physicalId
31589
+ };
31590
+ const { logTypes, scaling } = this.readClusterBlocks(properties, resourceType, logicalId, origin, false);
31591
+ const logExportConfig = logTypes === void 0 ? void 0 : docdbLogExportChange(logTypes, docdbStringList(previousProperties["EnableCloudwatchLogsExports"]) ?? []);
31477
31592
  try {
31593
+ const credentials = await this.planMasterCredentials(physicalId, properties, previousProperties, resourceType, logicalId, context, origin);
31478
31594
  const vpcSgIds = properties["VpcSecurityGroupIds"];
31479
31595
  const sendVpcSgIds = vpcSgIds !== void 0 && vpcSgIds.length > 0;
31480
31596
  const portToSend = clusterPortToSend(properties, previousProperties);
31597
+ const unrecorded = (key) => properties[key] != null && previousProperties[key] == null;
31598
+ const live = unrecorded("NetworkType") || unrecorded("StorageType") || logExportConfig?.EnableLogTypes !== void 0 ? await this.describeDBCluster(physicalId) : void 0;
31599
+ const networkType = properties["NetworkType"];
31600
+ const networkChange = declaredChange(networkType, previousProperties["NetworkType"], live?.NetworkType);
31601
+ const storageType = properties["StorageType"];
31602
+ const storageChange = declaredChange(storageType, previousProperties["StorageType"], live?.StorageType ?? DOCDB_DEFAULT_STORAGE_TYPE);
31603
+ const previousScaling = docdbServerlessScaling(previousProperties["ServerlessV2ScalingConfiguration"]);
31604
+ const scalingChange = scaling != null && (scaling.MinCapacity !== previousScaling?.MinCapacity || scaling.MaxCapacity !== previousScaling?.MaxCapacity);
31605
+ this.markChangedUnsettled(CLUSTER_MODIFY_UNSETTLED_KEYS, properties, previousProperties, context);
31481
31606
  await this.getClient().send(new ModifyDBClusterCommand$1({
31482
31607
  DBClusterIdentifier: physicalId,
31483
31608
  EngineVersion: properties["EngineVersion"],
@@ -31487,15 +31612,40 @@ var DocDBProvider = class {
31487
31612
  PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
31488
31613
  DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
31489
31614
  ...sendVpcSgIds && { VpcSecurityGroupIds: vpcSgIds },
31490
- MasterUserPassword: masterUserPasswordToSend(properties, previousProperties, context),
31615
+ MasterUserPassword: credentials.password,
31491
31616
  Port: portToSend,
31617
+ CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
31618
+ ...rotateMasterUserPassword(properties, previousProperties, context) && { RotateMasterUserPassword: true },
31619
+ ...credentials.managed !== void 0 && { ManageMasterUserPassword: credentials.managed },
31620
+ ...credentials.secretKmsKey !== void 0 && { MasterUserSecretKmsKeyId: credentials.secretKmsKey },
31621
+ ...networkChange && { NetworkType: networkType },
31622
+ ...storageChange && { StorageType: storageType },
31623
+ ...scalingChange && { ServerlessV2ScalingConfiguration: scaling },
31624
+ ...logExportConfig !== void 0 && { CloudwatchLogsExportConfiguration: logExportConfig },
31492
31625
  ApplyImmediately: true
31493
31626
  }));
31627
+ const addedLogTypes = (logExportConfig?.EnableLogTypes ?? []).filter((type) => !live?.EnabledCloudwatchLogsExports?.includes(type));
31628
+ if (addedLogTypes.length > 0) context?.markAttempted?.("EnableCloudwatchLogsExports", addedLogTypes);
31494
31629
  this.logger.debug(`Successfully updated DocDB DBCluster ${logicalId}`);
31495
31630
  const noWait = process.env["CDKD_NO_WAIT"] === "true";
31496
31631
  const portChanged = portToSend !== void 0 && portToSend !== numberOrUndefined(previousProperties["Port"]);
31497
31632
  if (!noWait && portChanged) await this.waitForClusterPortApplied(physicalId, logicalId, portToSend);
31498
31633
  const described = await this.describeDBCluster(physicalId);
31634
+ if (!noWait) {
31635
+ const { EnableLogTypes: enabled = [], DisableLogTypes: disabled = [] } = logExportConfig ?? {};
31636
+ const applied = /* @__PURE__ */ new Map();
31637
+ if (logExportConfig !== void 0) applied.set("EnableCloudwatchLogsExports", (cluster) => {
31638
+ const logs = cluster?.EnabledCloudwatchLogsExports;
31639
+ return enabled.every((type) => logs?.includes(type)) && !disabled.some((type) => logs?.includes(type));
31640
+ });
31641
+ if (networkChange) applied.set("NetworkType", (cluster) => cluster?.NetworkType === networkType);
31642
+ if (storageChange) applied.set("StorageType", (cluster) => (cluster?.StorageType ?? DOCDB_DEFAULT_STORAGE_TYPE) === storageType);
31643
+ if (scalingChange) applied.set("ServerlessV2ScalingConfiguration", (cluster) => {
31644
+ const live = cluster?.ServerlessV2ScalingConfiguration;
31645
+ return live?.MinCapacity === scaling?.MinCapacity && live?.MaxCapacity === scaling?.MaxCapacity;
31646
+ });
31647
+ await this.waitForApplied(logicalId, applied, () => this.describeDBCluster(physicalId), storageChange ? STORAGE_SETTLE_MAX_WAIT_MS : SETTLE_MAX_WAIT_MS);
31648
+ }
31499
31649
  if (!noWait && portChanged) {
31500
31650
  for (const member of described?.DBClusterMembers ?? []) if (member.DBInstanceIdentifier) await this.waitForMemberAfterClusterChange(member.DBInstanceIdentifier, logicalId, PORT_CHANGE_MEMBER_STATUSES, "port");
31501
31651
  }
@@ -31506,15 +31656,20 @@ var DocDBProvider = class {
31506
31656
  if (described?.DBClusterArn) await applyDocDBTagDiff(this.getClient(), this.logger, described.DBClusterArn, resourceType, logicalId, previousProperties["Tags"], properties["Tags"]);
31507
31657
  const keptWarning = keptOnRemovalWarning$1(DOCDB_CLUSTER_KEPT_ON_REMOVAL, properties, previousProperties, context, logicalId, resourceType);
31508
31658
  if (keptWarning !== void 0) this.logger.warn(keptWarning);
31659
+ const unmeasuredWarning = keptOnRemovalWarning$1(DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL, properties, previousProperties, context, logicalId, resourceType, false);
31660
+ if (unmeasuredWarning !== void 0) this.logger.warn(unmeasuredWarning);
31661
+ if (credentials.heldWarning !== void 0) this.logger.warn(credentials.heldWarning);
31509
31662
  return {
31510
31663
  physicalId,
31511
31664
  wasReplaced: false,
31512
31665
  attributes: clusterAttributes(noWait && portChanged && described !== void 0 ? {
31513
31666
  ...described,
31514
31667
  Port: portToSend
31515
- } : described)
31668
+ } : described),
31669
+ ...credentials.effectiveProperties !== void 0 && { effectiveProperties: credentials.effectiveProperties }
31516
31670
  };
31517
31671
  } catch (error) {
31672
+ if (error instanceof ProvisioningError) throw error;
31518
31673
  const cause = error instanceof Error ? error : void 0;
31519
31674
  throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update DocDB DBCluster ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
31520
31675
  }
@@ -31596,9 +31751,10 @@ var DocDBProvider = class {
31596
31751
  throw this.wrapDeleteError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete DocDB DBCluster ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
31597
31752
  }
31598
31753
  }
31599
- async createDBInstance(logicalId, resourceType, properties, mask) {
31754
+ async createDBInstance(logicalId, resourceType, properties, mask, replayingState) {
31600
31755
  this.logger.debug(`Creating DocDB DBInstance ${logicalId}`);
31601
31756
  const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
31757
+ const insights = this.readBooleanProperty("EnablePerformanceInsights", properties, resourceType, logicalId, { stateBorne: replayingState });
31602
31758
  const dbInstanceIdentifier = properties["DBInstanceIdentifier"] || generatedNameFor("AWS::DocDB::DBInstance", logicalId);
31603
31759
  let instanceCreated = false;
31604
31760
  let createdResourceId;
@@ -31611,6 +31767,8 @@ var DocDBProvider = class {
31611
31767
  AvailabilityZone: properties["AvailabilityZone"],
31612
31768
  PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
31613
31769
  AutoMinorVersionUpgrade: properties["AutoMinorVersionUpgrade"],
31770
+ CACertificateIdentifier: properties["CACertificateIdentifier"],
31771
+ EnablePerformanceInsights: insights,
31614
31772
  ...tags.length > 0 && { Tags: tags }
31615
31773
  }));
31616
31774
  instanceCreated = true;
@@ -31633,13 +31791,25 @@ var DocDBProvider = class {
31633
31791
  this.logger.debug(`Updating DocDB DBInstance ${logicalId}: ${physicalId}`);
31634
31792
  const mask = context?.maskSecrets;
31635
31793
  refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
31794
+ const insights = this.readBooleanProperty("EnablePerformanceInsights", properties, resourceType, logicalId, {
31795
+ stateBorne: context?.replayingState === true || context?.desiredFromAwsReadback === true,
31796
+ physicalId
31797
+ });
31636
31798
  try {
31799
+ const certificate = properties["CACertificateIdentifier"];
31800
+ const live = certificate != null && previousProperties["CACertificateIdentifier"] == null || insights !== void 0 && previousProperties["EnablePerformanceInsights"] == null ? await this.describeDBInstance(physicalId) : void 0;
31801
+ const certificateChange = declaredChange(certificate, previousProperties["CACertificateIdentifier"], live?.CACertificateIdentifier);
31802
+ const insightsChange = declaredChange(insights, previousProperties["EnablePerformanceInsights"], live?.PerformanceInsightsEnabled ?? false);
31803
+ this.markChangedUnsettled(INSTANCE_MODIFY_UNSETTLED_KEYS, properties, previousProperties, context);
31637
31804
  await modifyDbInstanceWhenAvailable({
31638
31805
  send: () => this.getClient().send(new ModifyDBInstanceCommand$1({
31639
31806
  DBInstanceIdentifier: physicalId,
31640
31807
  DBInstanceClass: properties["DBInstanceClass"],
31641
31808
  PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
31642
31809
  AutoMinorVersionUpgrade: properties["AutoMinorVersionUpgrade"],
31810
+ ...certificateChange && { CACertificateIdentifier: certificate },
31811
+ ...certificateChange && properties["CertificateRotationRestart"] != null && { CertificateRotationRestart: properties["CertificateRotationRestart"] },
31812
+ ...insightsChange && { EnablePerformanceInsights: insights },
31643
31813
  ApplyImmediately: true
31644
31814
  })),
31645
31815
  readStatus: async () => (await this.describeDBInstance(physicalId))?.DBInstanceStatus,
@@ -31650,6 +31820,12 @@ var DocDBProvider = class {
31650
31820
  remainingMs: enclosingDeadlineRemainingMs()
31651
31821
  });
31652
31822
  this.logger.debug(`Successfully updated DocDB DBInstance ${logicalId}`);
31823
+ if (process.env["CDKD_NO_WAIT"] !== "true") {
31824
+ const applied = /* @__PURE__ */ new Map();
31825
+ if (certificateChange) applied.set("CACertificateIdentifier", (instance) => instance?.CACertificateIdentifier === certificate);
31826
+ if (insightsChange) applied.set("EnablePerformanceInsights", (instance) => instance?.PerformanceInsightsEnabled === insights);
31827
+ await this.waitForApplied(logicalId, applied, () => this.describeDBInstance(physicalId));
31828
+ }
31653
31829
  const described = await this.describeDBInstance(physicalId);
31654
31830
  if (described?.DBInstanceArn) await applyDocDBTagDiff(this.getClient(), this.logger, described.DBInstanceArn, resourceType, logicalId, previousProperties["Tags"], properties["Tags"]);
31655
31831
  const keptWarning = keptOnRemovalWarning$1(DOCDB_INSTANCE_KEPT_ON_REMOVAL, properties, previousProperties, context, logicalId, resourceType);
@@ -31682,6 +31858,106 @@ var DocDBProvider = class {
31682
31858
  throw this.wrapDeleteError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete DocDB DBInstance ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
31683
31859
  }
31684
31860
  }
31861
+ markChangedUnsettled(keys, properties, previousProperties, context) {
31862
+ for (const key of keys) if (properties[key] != null && !isDeepStrictEqual(properties[key], previousProperties[key])) context?.markUnsettled?.(key);
31863
+ }
31864
+ refuseBlock(logicalId, resourceType, physicalId, text) {
31865
+ throw markNonRetryable(new ProvisioningError(safeMsg`${resourceType === "AWS::DocDB::DBInstance" ? "DocDB DBInstance" : "DocDB DBCluster"} ${logicalId}: ${text}; nothing was changed.`, resourceType, logicalId, physicalId));
31866
+ }
31867
+ readClusterBlocks(properties, resourceType, logicalId, origin, creating) {
31868
+ const leaveOut = (key) => {
31869
+ this.logger.warn(safeMsg`${logicalId} (${resourceType}): the recorded ${key} is unusable, so it is not sent.`);
31870
+ };
31871
+ const rawLogs = properties["EnableCloudwatchLogsExports"];
31872
+ let logTypes = rawLogs == null ? void 0 : docdbStringList(rawLogs);
31873
+ if (rawLogs != null && logTypes === void 0) {
31874
+ if (!(creating && origin.stateBorne)) this.refuseBlock(logicalId, resourceType, origin.physicalId, "EnableCloudwatchLogsExports must be a list of strings");
31875
+ leaveOut("EnableCloudwatchLogsExports");
31876
+ logTypes = void 0;
31877
+ }
31878
+ const scaling = docdbServerlessScaling(properties["ServerlessV2ScalingConfiguration"]);
31879
+ if (scaling === null) {
31880
+ if (!origin.stateBorne) this.refuseBlock(logicalId, resourceType, origin.physicalId, "ServerlessV2ScalingConfiguration must be an object with both a numeric MinCapacity and a numeric MaxCapacity");
31881
+ leaveOut("ServerlessV2ScalingConfiguration");
31882
+ }
31883
+ return {
31884
+ logTypes,
31885
+ scaling
31886
+ };
31887
+ }
31888
+ async planMasterCredentials(physicalId, properties, previousProperties, resourceType, logicalId, context, origin) {
31889
+ const managed = this.readBooleanProperty("ManageMasterUserPassword", properties, resourceType, logicalId, origin);
31890
+ const changedPassword = masterUserPasswordToSend(properties, previousProperties, context);
31891
+ const recordedFlag = coerceCfnBoolean(previousProperties["ManageMasterUserPassword"]);
31892
+ const key = properties["MasterUserSecretKmsKeyId"];
31893
+ const recordedKey = previousProperties["MasterUserSecretKmsKeyId"];
31894
+ let managedSide = recordedFlag ?? false;
31895
+ let keyChange = key != null && !sameKmsKey(key, recordedKey);
31896
+ if (recordedFlag === void 0 && (changedPassword !== void 0 || managed !== void 0 || keyChange)) {
31897
+ const secret = (await this.describeDBCluster(physicalId))?.MasterUserSecret;
31898
+ managedSide = secret !== void 0;
31899
+ if (recordedKey === void 0 && secret?.KmsKeyId !== void 0 && key != null) keyChange = !sameKmsKey(key, secret.KmsKeyId) && !kmsKeyText(key).startsWith("alias/");
31900
+ }
31901
+ const leaving = managed === false && managedSide;
31902
+ const declared = properties["MasterUserPassword"];
31903
+ const declaredUsable = typeof declared === "string" && declared !== "***" && dynamicReferenceTokens(declared).length === 0;
31904
+ const password = leaving ? declaredUsable ? declared : void 0 : changedPassword;
31905
+ const modeChange = managed !== void 0 && managed !== managedSide;
31906
+ if (context?.desiredFromAwsReadback === true && modeChange) return {
31907
+ managed: void 0,
31908
+ secretKmsKey: void 0,
31909
+ password: void 0,
31910
+ heldWarning: safeMsg`${logicalId} (${resourceType}): cdkd drift --revert does not change ManageMasterUserPassword, so it is left as it is. Declare it in the template and deploy to change it.`
31911
+ };
31912
+ if (origin.stateBorne && leaving && password === void 0) return {
31913
+ managed: void 0,
31914
+ secretKmsKey: void 0,
31915
+ password: void 0,
31916
+ heldWarning: safeMsg`${logicalId} (${resourceType}): ManageMasterUserPassword stays true: turning it off needs a MasterUserPassword, which the restored state does not hold. Declare both in the template and deploy.`,
31917
+ effectiveProperties: {
31918
+ ...properties,
31919
+ ManageMasterUserPassword: true
31920
+ }
31921
+ };
31922
+ const sendKey = key != null && (modeChange && managed === true || keyChange && (managed ?? managedSide));
31923
+ return {
31924
+ managed: modeChange || sendKey ? managed : void 0,
31925
+ secretKmsKey: sendKey ? key : void 0,
31926
+ password: this.passwordBesideManaged(managed, managed === void 0 && managedSide, password, resourceType, logicalId, origin),
31927
+ heldWarning: void 0
31928
+ };
31929
+ }
31930
+ readBooleanProperty(key, properties, resourceType, logicalId, origin) {
31931
+ const value = properties[key];
31932
+ if (value == null) return void 0;
31933
+ const flag = coerceCfnBoolean(value);
31934
+ if (flag !== void 0) return flag;
31935
+ if (!origin.stateBorne) this.refuseBlock(logicalId, resourceType, origin.physicalId, `${key} must be a boolean`);
31936
+ this.logger.warn(safeMsg`${logicalId} (${resourceType}): the recorded ${key} is unusable, so it is not sent.`);
31937
+ }
31938
+ passwordBesideManaged(managed, removedFromManaged, password, resourceType, logicalId, origin) {
31939
+ if (managed !== true && !removedFromManaged || password == null) return password;
31940
+ if (!origin.stateBorne) this.refuseBlock(logicalId, resourceType, origin.physicalId, removedFromManaged ? "MasterUserPassword cannot change while AWS manages the password; declare ManageMasterUserPassword: false beside it to leave managed mode" : "MasterUserPassword cannot be set while ManageMasterUserPassword is true, because AWS manages that password");
31941
+ this.logger.warn(removedFromManaged ? safeMsg`${logicalId} (${resourceType}): the recorded MasterUserPassword is not sent: the cluster stays managed, because the recorded ManageMasterUserPassword is absent.` : safeMsg`${logicalId} (${resourceType}): the recorded MasterUserPassword is not sent, because ManageMasterUserPassword is true.`);
31942
+ }
31943
+ async waitForApplied(logicalId, applied, read, maxWaitMs = SETTLE_MAX_WAIT_MS) {
31944
+ if (applied.size === 0) return;
31945
+ const capMs = Math.min(maxWaitMs, enclosingDeadlineRemainingMs() - DEADLINE_MARGIN_MS);
31946
+ const startTime = Date.now();
31947
+ let delay = 2e3;
31948
+ for (;;) {
31949
+ const live = await read();
31950
+ const pending = [...applied].filter(([, isApplied]) => !isApplied(live));
31951
+ if (pending.length === 0) return;
31952
+ if (Date.now() - startTime + delay >= capMs) {
31953
+ const keys = pending.map(([key]) => key).join(", ");
31954
+ this.logger.warn(safeMsg`${logicalId}: the new ${keys} did not read back when cdkd stopped waiting; AWS accepted the change, so cdkd drift may report the old value as the baseline. Once it applies, run cdkd drift --accept.`);
31955
+ return;
31956
+ }
31957
+ await this.sleep(delay);
31958
+ delay = Math.min(delay * 2, 1e4);
31959
+ }
31960
+ }
31685
31961
  async describeDBCluster(dbClusterIdentifier) {
31686
31962
  return (await this.getClient().send(new DescribeDBClustersCommand$1({ DBClusterIdentifier: dbClusterIdentifier }))).DBClusters?.[0];
31687
31963
  }
@@ -31870,6 +32146,60 @@ var DocDBProvider = class {
31870
32146
  sleep(ms) {
31871
32147
  return new Promise((resolve) => setTimeout(resolve, ms));
31872
32148
  }
32149
+ getDriftUnknownPaths(resourceType) {
32150
+ if (resourceType === "AWS::DocDB::DBCluster") return [
32151
+ "AvailabilityZones",
32152
+ "MasterUserSecretKmsKeyId",
32153
+ "RotateMasterUserPassword"
32154
+ ];
32155
+ if (resourceType === "AWS::DocDB::DBInstance") return ["CertificateRotationRestart"];
32156
+ return [];
32157
+ }
32158
+ getDriftUnorderedPaths(resourceType) {
32159
+ return resourceType === "AWS::DocDB::DBCluster" ? ["EnableCloudwatchLogsExports"] : [];
32160
+ }
32161
+ canonicalizeDriftProperties(resourceType, properties) {
32162
+ if (resourceType !== "AWS::DocDB::DBCluster") return properties;
32163
+ const out = { ...properties };
32164
+ const logs = out["EnableCloudwatchLogsExports"];
32165
+ if (Array.isArray(logs) && docdbStringList(logs) !== void 0) out["EnableCloudwatchLogsExports"] = [...new Set(logs)];
32166
+ const scaling = docdbServerlessScaling(out["ServerlessV2ScalingConfiguration"]);
32167
+ if (scaling != null) out["ServerlessV2ScalingConfiguration"] = scaling;
32168
+ return out;
32169
+ }
32170
+ canonicalizeUnsettledProperties(resourceType, properties) {
32171
+ return this.canonicalizeDriftProperties(resourceType, properties);
32172
+ }
32173
+ async readUnsettled(physicalId, logicalId, resourceType, names, recordedProperties, desiredProperties, attemptedItems) {
32174
+ const live = await this.readCurrentState(physicalId, logicalId, resourceType);
32175
+ if (resourceType !== "AWS::DocDB::DBCluster") return live;
32176
+ if (live === void 0 || live === RESOURCE_NOT_FOUND) return live;
32177
+ if (!names.has("EnableCloudwatchLogsExports")) return live;
32178
+ const key = "EnableCloudwatchLogsExports";
32179
+ const named = /* @__PURE__ */ new Set([
32180
+ ...docdbStringList(recordedProperties?.[key]) ?? [],
32181
+ ...docdbStringList(desiredProperties?.[key]) ?? [],
32182
+ ...[...attemptedItems?.get(key) ?? []].filter(isUsableAttemptedName)
32183
+ ]);
32184
+ return {
32185
+ ...live,
32186
+ [key]: (live[key] ?? []).filter((type) => named.has(type))
32187
+ };
32188
+ }
32189
+ async unsettledInTransition(physicalId, _logicalId, resourceType, names, _recordedProperties, desiredProperties) {
32190
+ if (desiredProperties !== void 0) return /* @__PURE__ */ new Set();
32191
+ const unmoving = (status) => isProceedDbStatus(status) || status === "backing-up";
32192
+ try {
32193
+ if (resourceType === "AWS::DocDB::DBCluster") return unmoving((await this.describeDBCluster(physicalId))?.Status) ? /* @__PURE__ */ new Set() : names;
32194
+ if (resourceType === "AWS::DocDB::DBInstance") {
32195
+ const instance = await this.describeDBInstance(physicalId);
32196
+ return unmoving(instance?.DBInstanceStatus) && !holdsDocDBPendingValue(instance?.PendingModifiedValues) ? /* @__PURE__ */ new Set() : names;
32197
+ }
32198
+ return /* @__PURE__ */ new Set();
32199
+ } catch {
32200
+ return names;
32201
+ }
32202
+ }
31873
32203
  async import(input) {
31874
32204
  switch (input.resourceType) {
31875
32205
  case "AWS::DocDB::DBInstance": return this.importDBInstance(input);
@@ -31901,6 +32231,8 @@ var DocDBProvider = class {
31901
32231
  if (inst.AvailabilityZone !== void 0) result["AvailabilityZone"] = inst.AvailabilityZone;
31902
32232
  if (inst.PreferredMaintenanceWindow !== void 0) result["PreferredMaintenanceWindow"] = inst.PreferredMaintenanceWindow;
31903
32233
  if (inst.AutoMinorVersionUpgrade !== void 0) result["AutoMinorVersionUpgrade"] = inst.AutoMinorVersionUpgrade;
32234
+ if (inst.CACertificateIdentifier !== void 0) result["CACertificateIdentifier"] = inst.CACertificateIdentifier;
32235
+ result["EnablePerformanceInsights"] = inst.PerformanceInsightsEnabled ?? false;
31904
32236
  if (inst.DBInstanceArn) await attachDocDBTags(this.getClient(), this.logger, result, inst.DBInstanceArn);
31905
32237
  return result;
31906
32238
  }
@@ -31928,6 +32260,16 @@ var DocDBProvider = class {
31928
32260
  if (cluster.PreferredMaintenanceWindow !== void 0) result["PreferredMaintenanceWindow"] = cluster.PreferredMaintenanceWindow;
31929
32261
  if (cluster.DBClusterParameterGroup !== void 0) result["DBClusterParameterGroupName"] = cluster.DBClusterParameterGroup;
31930
32262
  if (cluster.DeletionProtection !== void 0) result["DeletionProtection"] = cluster.DeletionProtection;
32263
+ result["CopyTagsToSnapshot"] = cluster.CopyTagsToSnapshot ?? false;
32264
+ result["ManageMasterUserPassword"] = cluster.MasterUserSecret !== void 0;
32265
+ result["StorageType"] = cluster.StorageType ?? DOCDB_DEFAULT_STORAGE_TYPE;
32266
+ result["EnableCloudwatchLogsExports"] = cluster.EnabledCloudwatchLogsExports ?? [];
32267
+ if (cluster.NetworkType !== void 0) result["NetworkType"] = cluster.NetworkType;
32268
+ const { MinCapacity: min, MaxCapacity: max } = cluster.ServerlessV2ScalingConfiguration ?? {};
32269
+ if (min !== void 0 && max !== void 0) result["ServerlessV2ScalingConfiguration"] = {
32270
+ MinCapacity: min,
32271
+ MaxCapacity: max
32272
+ };
31931
32273
  if (cluster.DBClusterArn) await attachDocDBTags(this.getClient(), this.logger, result, cluster.DBClusterArn);
31932
32274
  return result;
31933
32275
  }
@@ -47756,6 +48098,7 @@ var FirehoseProvider = class {
47756
48098
  "S3DestinationConfiguration",
47757
48099
  "ExtendedS3DestinationConfiguration",
47758
48100
  "KinesisStreamSourceConfiguration",
48101
+ "DirectPutSourceConfiguration",
47759
48102
  "Tags",
47760
48103
  "HttpEndpointDestinationConfiguration",
47761
48104
  "RedshiftDestinationConfiguration",
@@ -47808,6 +48151,7 @@ var FirehoseProvider = class {
47808
48151
  RoleARN: kinesisConfig["RoleArn"] || kinesisConfig["RoleARN"]
47809
48152
  };
47810
48153
  }
48154
+ if (properties["DirectPutSourceConfiguration"] !== void 0) input.DirectPutSourceConfiguration = { ThroughputHintInMBs: properties["DirectPutSourceConfiguration"]["ThroughputHintInMBs"] };
47811
48155
  if (properties["HttpEndpointDestinationConfiguration"]) {
47812
48156
  const httpConfig = properties["HttpEndpointDestinationConfiguration"];
47813
48157
  const endpointConfig = httpConfig["EndpointConfiguration"];
@@ -48594,6 +48938,8 @@ var FirehoseProvider = class {
48594
48938
  if (src.RoleARN !== void 0) srcOut["RoleARN"] = src.RoleARN;
48595
48939
  if (Object.keys(srcOut).length > 0) result["KinesisStreamSourceConfiguration"] = srcOut;
48596
48940
  }
48941
+ const directPut = desc.Source?.DirectPutSourceDescription;
48942
+ if (directPut?.ThroughputHintInMBs !== void 0) result["DirectPutSourceConfiguration"] = { ThroughputHintInMBs: directPut.ThroughputHintInMBs };
48597
48943
  const dest = desc.Destinations?.[0];
48598
48944
  if (dest?.ExtendedS3DestinationDescription) result["ExtendedS3DestinationConfiguration"] = mapExtendedS3DescriptionToCfn(dest.ExtendedS3DestinationDescription);
48599
48945
  else if (dest?.S3DestinationDescription) result["S3DestinationConfiguration"] = mapS3DescriptionToCfn(dest.S3DestinationDescription);
@@ -54061,4 +54407,4 @@ var ACMCertificateProvider = class {
54061
54407
 
54062
54408
  //#endregion
54063
54409
  export { ACMCertificateProvider, ASGProvider, AgentCoreBrowserProvider, AgentCoreCodeInterpreterProvider, AgentCoreEvaluatorProvider, AgentCoreRuntimeProvider, ApiGatewayProvider, ApiGatewayV2Provider, AppSyncProvider, BudgetsBudgetProvider, CloudFrontDistributionProvider, CloudFrontOACProvider, CloudFrontOAIProvider, CloudTrailProvider, CloudWatchAlarmProvider, CloudWatchAnomalyDetectorProvider, CodeBuildProvider, CodeCommitRepositoryProvider, CognitoUserPoolProvider, DLMLifecyclePolicyProvider, DocDBProvider, DocDBSubnetGroupProvider, DynamoDBGlobalTableProvider, DynamoDBTableProvider, EC2Provider, ECRProvider, ECSProvider, EFSProvider, ELBv2Provider, EMRClusterProvider, EMRInstanceFleetConfigProvider, EMRInstanceGroupConfigProvider, ElastiCacheProvider, EventBridgeBusProvider, EventBridgeRuleProvider, FSxFileSystemProvider, FirehoseProvider, GlueConnectionProvider, GlueCrawlerProvider, GlueJobProvider, GlueProvider, GlueSecurityConfigurationProvider, GlueTriggerProvider, GlueWorkflowProvider, IAMAccessKeyProvider, IAMInstanceProfileProvider, IAMManagedPolicyProvider, IAMPolicyProvider, IAMRoleProvider, IAMUserGroupProvider, KMSProvider, KinesisStreamConsumerProvider, KinesisStreamProvider, LambdaEventInvokeConfigProvider, LambdaEventSourceMappingProvider, LambdaFunctionProvider, LambdaLayerVersionProvider, LambdaMicrovmImageProvider, LambdaNetworkConnectorProvider, LambdaPermissionProvider, LambdaUrlProvider, LambdaWebFunctionEndpointProvider, LambdaWebFunctionRevisionProvider, LogsLogGroupProvider, NeptuneProvider, NestedStackProvider, PipesPipeProvider, RDSDBProxyEndpointProvider, RDSDBProxyProvider, RDSDBProxyTargetGroupProvider, RDSProvider, Route53Provider, S3BucketPolicyProvider, S3BucketProvider, S3DirectoryBucketProvider, S3TablesProvider, S3VectorsProvider, SNSSubscriptionProvider, SNSTopicPolicyProvider, SNSTopicProvider, SQSQueuePolicyProvider, SQSQueueProvider, SSMParameterProvider, SchedulerScheduleProvider, SecretsManagerSecretProvider, ServiceDiscoveryProvider, StepFunctionsProvider, WAFv2WebACLProvider, WaitConditionHandleProvider };
54064
- //# sourceMappingURL=provider-classes-ZqxIefLl.js.map
54410
+ //# sourceMappingURL=provider-classes-B8kkAZqJ.js.map