@go-to-k/cdkd 0.320.0 → 0.321.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.
@@ -2,13 +2,13 @@ import { r as getAwsClients, s as withApiGatewayPacing } from "./aws-clients-DWp
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-DiHodi76.js";
3
3
  import { $ as isTerminalDeleteFailure, A as setBounded, Ar as isThrottlingError, At as stateOrphanRecordRemedy, B as normalizeAwsTagsToCfn, C as AmbiguousCreateLatch, Cr as isExplicitDenyError, Ct as compositeIdFormatMessage, D as isInsideWindow, Dt as packCompositeId, E as createAttemptKey, Er as isTransientServerError, Et as logicalIdShown, F as assertRegionMatch, Fn as ResourceUpdateNotSupportedError, Ft as maskerOrIdentity, Gt as markAuxiliaryFailure, H as refusalTypeShown, I as VALUE_NOT_SHOWN, It as withDerivedNameMasks, J as deleteAfterProtectionFlipWithFinalSnapshot, K as ProtectionFlipRegistry, Kt as markCreatedBeforeFailure, L as isPlainImportJson, M as RESOURCE_NOT_FOUND, Mr as markRedactedCause, Mt as createMaskedRetryLogger, Nn as ProvisioningError, Nr as wrapMaskedAwsError, Nt as isSecretDerivedValue, O as replayFollowedAmbiguousAttempt, Or as THROTTLING_ERROR_NAMES, P as markNotGone, Pt as maskDeep, Q as isTerminalDbWaitStatus, Qn as pasteableCommand, R as isPlainImportValue, S as AMBIGUOUS_LATCH_TTL_MS, Sr as isAmbiguousOutcomeError, St as canonicalizeRoute53QueryName, T as ambiguousAttemptLead, Tr as isRetryableTransientError, Tt as compositeIdSkipResult, U as remedyLogicalId, Ut as isAuxiliaryFailure, V as quotedRemedyLogicalId, W as resolveExplicitPhysicalId, Xn as hasClauseBreak, Y as deleteWithProtectionCompensation, Yn as commandHole, Z as isProceedDbStatus, Zn as isInertUnquoted, b as withRemovalDefaults, bt as isInterruptedWaitError, ct as UNNAMEABLE_ID_CLAUSE, d as onlySecretDerived, dn as withPasteableAwsProfile, dt as pasteableAwsCommand, er as plainOrDescribed, et as logGroupProtectionSite, f as readPrincipalLists, fn as ambientClientDefaults, ft as protectedReplacementAdvice, g as clearOnUpdateRemoval, gn as AccountIdUnavailableError, hn as credentialFingerprint, hr as relayedNameCollision, ht as ElapsedBudgetRegistry, i as reportCreatedResource, ir as withheldTargetClause, j as withoutServerErrorRetries, jr as markNonRetryable, jt as createMaskedLogSinks, k as replayedSendWindow, kr as isMarkedNonRetryable, kt as segmentAfterAnchor, l as SECRET_DERIVED_READ_LIVE, lt as WITHHELD_AWS_COMMAND, m as recordedPrincipalsRepair, mn as clientDefaultsFor, mr as markReplayMayCollide, mt as ElapsedBudget, nt as protectionFlipKey, o as retractCreatedResource, on as injectiveKey, ot as userPoolProtectionSite, pn as ambientCredentialConfig, pr as markNameCollision, pt as renderDisableCommand, qt as markSupersedesEarlierCreate, rr as shellQuote, rt as rdsFamilyProtectionSite, sn as injectiveKeyPrefix, tt as observeThenDisableProtection, u as holdsSecretDerivedEntry, ut as isAwsCliLiteral, vn as CdkdError, w as RecentIdSet, wt as compositeIdSeparatorRefusal, xt as startInterruptWatch, y as removedTemplateKeys, yr as explicitDenyPolicyKind, z as isQuotableImportValue, zt as clearCreatedBeforeFailure } from "./created-resource-sink-CmrPwGge.js";
4
4
  import { c as ambientRegion } from "./aws-client-defaults-BLXFsfMa.js";
5
- import { $ as sendTtlWaitingOutRateLimit, A as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, B as deleteTableWithIndexBusyRetry, Ba as s3BucketArn, Bc as passedNoEchoParametersOf, Bi as isRefusedByName, C as planContributorInsightsOp, Cl as recordAttributeIdCopy, Ct as enclosingDeadlineExpired, D as reverseMapTableContributorInsights, Da as reDisableInstanceApiTermination, Dc as lambdaFunctionNameForMask, E as reverseMapIndexContributorInsights, Ea as observeThenDisableInstanceApiTermination, Ec as canonicalLambdaFunctionName, El as carriesSecretMask, Eo as parseWebACLArn, F as resolveDynamoDbDeleteBudgetClock, Fd as displayAssemblyPath, G as readbackVectorIndexes, Gi as readTagList, Gn as isRedactedRecordedValue, H as relayedIndexBusyDelete, Ha as s3BucketDualStackDomainName, Hi as DBPROXY_TAGS_WHAT, Hn as getCurrentProducerRegions, I as resolveDynamoDbDeleteBudgetMs, Id as renderAssemblyPathEscape, Ii as acquireIdempotencyToken, Io as accountArgs, J as vectorIndexesShapeDetail, Jc as recordReferenceProvenanceEntry, Ji as tagPlanWarning, Js as withoutSilentDropProperties, Jt as getCurrentNestedStackContext, K as vectorIndexesForCreate, Kc as markSameGenerationBag, Ki as refuseMalformedDesiredTags, Kn as redactedDeleteAddressFields, Ks as findSilentDropProperties, L as DELETE_INDEX_WAIT_PROCEED_NOTE, Ld as resolveAssemblyPath, M as beginDeleteWait, Mi as earliestDefined, N as compensateRemovedDeletionProtection, O as stripIndexContributorInsights, Oa as reEnableInstanceApiTermination, Oc as sameLambdaFunctionAddress, P as deleteBudgetKey, Pd as describeFileReadFailure, Pi as reserveStackCreateToken, Q as readTtlSpec, Qc as hasMaskableValues, R as INDEX_SETTLE_POLL_INTERVAL_MS, S as indexDeclaresContributorInsights, Sa as markWaitAbandoned, Sc as blockDeviceMappingsDifferOnlyInDeleteOnTermination, Sl as physicalNameCopiesOf, T as readContributorInsightsSpec, Ta as isTerminationProtectionPropagationError, Tc as emrClusterInstancesReplaced, U as waitForIndexesSettled, Ua as s3BucketRegionalDomainName, Ui as DBPROXY_TAG_OPTIONS, Ur as replacedDeleteFailureVerdict, Us as withheldAccountClause, V as maskedLogger, Va as s3BucketDomainName, Vi as markDeleteStarted, Vr as getStackRecords, Vt as getNestedRevertRun, W as planVectorIndexUpdates, Wa as s3BucketWebsiteUrl, Wi as planTagDiff, Wn as REDACTED_DELETE_ADDRESS_SKIP_REASON, Wt as revertNestedChildFromJournal, X as isTtlRateLimited, Xi as stringifyIfAssigned, Y as isTtlAlreadyDisabled, Ya as outputReferenceProvenanceOf, Yc as snapshotPassProvenance, Yi as definedAttributes, Yt as withNestedStackContext, Z as planTimeToLive, _ as streamMemberRefusals, _c as requireConfigString, _d as decodeListingKey, _t as renderNestedTemplateTreeDefect, ac as isWarmThroughputDecrease, an as chunks, at as markRefusedBeforeApplying, b as CONTRIBUTOR_INSIGHTS_KEY, ba as withIndeterminateGuard, bd as canonicalizeRegion, c as DynamoDBGlobalTableProvider, cc as coerceCfnBoolean, cn as withApiLimit, d as declaredStreamPolicyMember, dc as configIntegerRefusal, ds as refuseMalformedNestedChildOutputs, et as ECR_AUTO_DELETE_IMAGES_TAG, f as declaredStreamTagsMember, fa as slowCcOperationTimeoutMs, fc as configStringRefusal, fl as withoutPhysicalNameCopies, g as streamDeclaresTags, gc as requireConfigObject, gt as listNestedTemplateRows, h as streamDeclaresPolicy, hc as requireConfigArray, ho as getAccountInfo, ht as isAbsoluteAssetPath, ic as coerceWarmThroughput$1, it as getPriorAttempts, j as DYNAMODB_DELETE_POLL_COST_MS, ja as isUsableAttemptedName, js as refuseMalformedResourcesForDestroy, k as DYNAMODB_DELETE_DEADLINE_MARGIN_MS, ko as passedParameterClassesOf, l as STREAM_POLICY_KEY, lc as coerceCfnInteger, m as reverseMapStreamPolicy, ma as unchangedBehindSecretReference, mc as replayWarn, ml as dynamicReferenceTokens, mt as findNestedTemplateTreeDefect, na as waitForLambdaFunctionActive, nt as hasCdkAutoDeleteTag, oa as getCurrentResourceSecrets, oc as toCfnInteger, on as isAccessDeniedError, p as planStreamMemberOps, pa as onlySecretReferencesDiffer, pc as readConfigString, pu as stringifyValue, q as vectorIndexesSettled, qc as redactForState, qi as tagMapAsList, qn as redactedDeleteAddressSkip, rc as WARM_THROUGHPUT_MEMBERS, rt as isTruthyCfnBoolean, sc as toFiniteNumber, sn as lookupEachName, t as DeployEngine, tt as S3_AUTO_DELETE_OBJECTS_TAG, u as STREAM_TAGS_KEY, uc as configBooleanRefusal, uu as timePhase, v as streamPolicyMatchesDeclared, vu as rewriteTemplateAssetReferences, w as planIndexContributorInsightsOps, wa as ec2InstanceProtectionSite, wc as ecsServiceLaunchTypeSetOrChanged, wt as enclosingDeadlineRemainingMs, x as contributorInsightsRefusals, xa as isWaitAbandonedError, xc as withRetry, xd as derivePartitionAndUrlSuffix, xl as recoverMaskedOutput, y as streamTagsMatchDeclared, ya as deleteSkipReason, yi as secretNamedAttributeNamesOf, z as TABLE_INDEX_NOUN, za as isSettledInstanceState, zr as awaitInFlightSibling } from "./deploy-engine-BiJyU4j1.js";
6
- import { a as IamCreateClientCache, i as isEntityAlreadyExists, n as collectInlinePolicyNamesManagedBySiblings, r as iamEntityLeftByThisCreate, t as IAMRoleProvider } from "./iam-role-provider-FsEgUieT.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-Dm0hn2Sn.js";
5
+ import { $ as sendTtlWaitingOutRateLimit, A as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, B as deleteTableWithIndexBusyRetry, Ba as s3BucketArn, Bc as passedNoEchoParametersOf, Bi as isRefusedByName, C as planContributorInsightsOp, Cl as recordAttributeIdCopy, Ct as enclosingDeadlineExpired, D as reverseMapTableContributorInsights, Da as reDisableInstanceApiTermination, Dc as lambdaFunctionNameForMask, E as reverseMapIndexContributorInsights, Ea as observeThenDisableInstanceApiTermination, Ec as canonicalLambdaFunctionName, El as carriesSecretMask, Eo as parseWebACLArn, F as resolveDynamoDbDeleteBudgetClock, Fd as displayAssemblyPath, G as readbackVectorIndexes, Gi as readTagList, Gn as isRedactedRecordedValue, H as relayedIndexBusyDelete, Ha as s3BucketDualStackDomainName, Hi as DBPROXY_TAGS_WHAT, Hn as getCurrentProducerRegions, I as resolveDynamoDbDeleteBudgetMs, Id as renderAssemblyPathEscape, Ii as acquireIdempotencyToken, Io as accountArgs, J as vectorIndexesShapeDetail, Jc as recordReferenceProvenanceEntry, Ji as tagPlanWarning, Js as withoutSilentDropProperties, Jt as getCurrentNestedStackContext, K as vectorIndexesForCreate, Kc as markSameGenerationBag, Ki as refuseMalformedDesiredTags, Kn as redactedDeleteAddressFields, Ks as findSilentDropProperties, L as DELETE_INDEX_WAIT_PROCEED_NOTE, Ld as resolveAssemblyPath, M as beginDeleteWait, Mi as earliestDefined, N as compensateRemovedDeletionProtection, O as stripIndexContributorInsights, Oa as reEnableInstanceApiTermination, Oc as sameLambdaFunctionAddress, P as deleteBudgetKey, Pd as describeFileReadFailure, Pi as reserveStackCreateToken, Q as readTtlSpec, Qc as hasMaskableValues, R as INDEX_SETTLE_POLL_INTERVAL_MS, Rr as refuseRestoreFromItself, S as indexDeclaresContributorInsights, Sa as markWaitAbandoned, Sc as blockDeviceMappingsDifferOnlyInDeleteOnTermination, Sl as physicalNameCopiesOf, T as readContributorInsightsSpec, Ta as isTerminationProtectionPropagationError, Tc as emrClusterInstancesReplaced, U as waitForIndexesSettled, Ua as s3BucketRegionalDomainName, Ui as DBPROXY_TAG_OPTIONS, Ur as replacedDeleteFailureVerdict, Us as withheldAccountClause, V as maskedLogger, Va as s3BucketDomainName, Vi as markDeleteStarted, Vr as getStackRecords, Vt as getNestedRevertRun, W as planVectorIndexUpdates, Wa as s3BucketWebsiteUrl, Wi as planTagDiff, Wn as REDACTED_DELETE_ADDRESS_SKIP_REASON, Wt as revertNestedChildFromJournal, X as isTtlRateLimited, Xi as stringifyIfAssigned, Y as isTtlAlreadyDisabled, Ya as outputReferenceProvenanceOf, Yc as snapshotPassProvenance, Yi as definedAttributes, Yt as withNestedStackContext, Z as planTimeToLive, _ as streamMemberRefusals, _c as requireConfigString, _d as decodeListingKey, _t as renderNestedTemplateTreeDefect, ac as isWarmThroughputDecrease, an as chunks, at as markRefusedBeforeApplying, b as CONTRIBUTOR_INSIGHTS_KEY, ba as withIndeterminateGuard, bd as canonicalizeRegion, c as DynamoDBGlobalTableProvider, cc as coerceCfnBoolean, cn as withApiLimit, d as declaredStreamPolicyMember, dc as configIntegerRefusal, ds as refuseMalformedNestedChildOutputs, et as ECR_AUTO_DELETE_IMAGES_TAG, f as declaredStreamTagsMember, fa as slowCcOperationTimeoutMs, fc as configStringRefusal, fl as withoutPhysicalNameCopies, g as streamDeclaresTags, gc as requireConfigObject, gt as listNestedTemplateRows, h as streamDeclaresPolicy, hc as requireConfigArray, ho as getAccountInfo, ht as isAbsoluteAssetPath, ic as coerceWarmThroughput$1, it as getPriorAttempts, j as DYNAMODB_DELETE_POLL_COST_MS, ja as isUsableAttemptedName, js as refuseMalformedResourcesForDestroy, k as DYNAMODB_DELETE_DEADLINE_MARGIN_MS, ko as passedParameterClassesOf, l as STREAM_POLICY_KEY, lc as coerceCfnInteger, m as reverseMapStreamPolicy, ma as unchangedBehindSecretReference, mc as replayWarn, ml as dynamicReferenceTokens, mt as findNestedTemplateTreeDefect, na as waitForLambdaFunctionActive, nt as hasCdkAutoDeleteTag, oa as getCurrentResourceSecrets, oc as toCfnInteger, on as isAccessDeniedError, p as planStreamMemberOps, pa as onlySecretReferencesDiffer, pc as readConfigString, pu as stringifyValue, q as vectorIndexesSettled, qc as redactForState, qi as tagMapAsList, qn as redactedDeleteAddressSkip, rc as WARM_THROUGHPUT_MEMBERS, rt as isTruthyCfnBoolean, sc as toFiniteNumber, sn as lookupEachName, t as DeployEngine, tt as S3_AUTO_DELETE_OBJECTS_TAG, u as STREAM_TAGS_KEY, uc as configBooleanRefusal, uu as timePhase, v as streamPolicyMatchesDeclared, vu as rewriteTemplateAssetReferences, w as planIndexContributorInsightsOps, wa as ec2InstanceProtectionSite, wc as ecsServiceLaunchTypeSetOrChanged, wt as enclosingDeadlineRemainingMs, x as contributorInsightsRefusals, xa as isWaitAbandonedError, xc as withRetry, xd as derivePartitionAndUrlSuffix, xl as recoverMaskedOutput, y as streamTagsMatchDeclared, ya as deleteSkipReason, yi as secretNamedAttributeNamesOf, z as TABLE_INDEX_NOUN, za as isSettledInstanceState, zr as awaitInFlightSibling } from "./deploy-engine-pGWgnV-6.js";
6
+ import { a as IamCreateClientCache, i as isEntityAlreadyExists, n as collectInlinePolicyNamesManagedBySiblings, r as iamEntityLeftByThisCreate, t as IAMRoleProvider } from "./iam-role-provider-z7poP-9w.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-lQLBOfU6.js";
8
8
  import { n as modifyDbInstanceWhenAvailable } from "./db-instance-modify-retry-DCLA_p9I.js";
9
- import { RDSProvider } from "./rds-provider-C_r5q9NM.js";
10
- import { NeptuneProvider } from "./neptune-provider-DjjNodrS.js";
11
- import { ASGProvider } from "./asg-provider-B4XVfH0S.js";
9
+ import { RDSProvider } from "./rds-provider-BenOBQ9u.js";
10
+ import { NeptuneProvider } from "./neptune-provider-DzedCIWf.js";
11
+ import { ASGProvider } from "./asg-provider-DIQU27yo.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";
@@ -44,7 +44,7 @@ import * as zlib from "node:zlib";
44
44
  import { ApiGatewayV2Client, CreateApiCommand, CreateAuthorizerCommand as CreateAuthorizerCommand$1, CreateIntegrationCommand, CreateRouteCommand as CreateRouteCommand$1, CreateStageCommand as CreateStageCommand$1, DeleteAccessLogSettingsCommand, DeleteApiCommand, DeleteAuthorizerCommand as DeleteAuthorizerCommand$1, DeleteCorsConfigurationCommand, DeleteIntegrationCommand as DeleteIntegrationCommand$1, DeleteRouteCommand as DeleteRouteCommand$1, DeleteRouteRequestParameterCommand, DeleteRouteSettingsCommand, DeleteStageCommand as DeleteStageCommand$1, GetApiCommand, GetApisCommand, GetAuthorizerCommand as GetAuthorizerCommand$1, GetAuthorizersCommand as GetAuthorizersCommand$1, GetIntegrationCommand, GetIntegrationsCommand, GetRouteCommand, GetStageCommand as GetStageCommand$1, NotFoundException as NotFoundException$3, TagResourceCommand as TagResourceCommand$14, UntagResourceCommand as UntagResourceCommand$14, UpdateApiCommand, UpdateAuthorizerCommand as UpdateAuthorizerCommand$1, UpdateIntegrationCommand, UpdateRouteCommand, UpdateStageCommand as UpdateStageCommand$1 } from "@aws-sdk/client-apigatewayv2";
45
45
  import { CreateStateMachineCommand, DeleteStateMachineCommand, DescribeStateMachineCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$12, SFNClient, StateMachineDoesNotExist, TagResourceCommand as TagResourceCommand$15, UntagResourceCommand as UntagResourceCommand$15, UpdateStateMachineCommand } from "@aws-sdk/client-sfn";
46
46
  import { CreateClusterCommand, CreateServiceCommand, DeleteClusterCommand, DeleteServiceCommand, DeregisterTaskDefinitionCommand, DescribeClustersCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, ECSClient, ListTaskDefinitionsCommand, PutClusterCapacityProvidersCommand, RegisterTaskDefinitionCommand, TagResourceCommand as TagResourceCommand$16, UntagResourceCommand as UntagResourceCommand$16, UpdateClusterCommand, UpdateServiceCommand, waitUntilServicesStable } from "@aws-sdk/client-ecs";
47
- import { AddTagsToResourceCommand as AddTagsToResourceCommand$3, CreateDBClusterCommand as CreateDBClusterCommand$1, CreateDBInstanceCommand as CreateDBInstanceCommand$1, CreateDBSubnetGroupCommand as CreateDBSubnetGroupCommand$1, DeleteDBClusterCommand as DeleteDBClusterCommand$1, DeleteDBInstanceCommand as DeleteDBInstanceCommand$1, DeleteDBSubnetGroupCommand as DeleteDBSubnetGroupCommand$1, DescribeDBClustersCommand as DescribeDBClustersCommand$1, DescribeDBInstancesCommand as DescribeDBInstancesCommand$1, DescribeDBSubnetGroupsCommand as DescribeDBSubnetGroupsCommand$1, DescribeGlobalClustersCommand as DescribeGlobalClustersCommand$1, DocDBClient, ListTagsForResourceCommand as ListTagsForResourceCommand$13, ModifyDBClusterCommand as ModifyDBClusterCommand$1, ModifyDBInstanceCommand as ModifyDBInstanceCommand$1, ModifyDBSubnetGroupCommand as ModifyDBSubnetGroupCommand$1, RemoveFromGlobalClusterCommand as RemoveFromGlobalClusterCommand$1, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$3 } from "@aws-sdk/client-docdb";
47
+ import { AddTagsToResourceCommand as AddTagsToResourceCommand$3, CreateDBClusterCommand as CreateDBClusterCommand$1, CreateDBInstanceCommand as CreateDBInstanceCommand$1, CreateDBSubnetGroupCommand as CreateDBSubnetGroupCommand$1, DeleteDBClusterCommand as DeleteDBClusterCommand$1, DeleteDBInstanceCommand as DeleteDBInstanceCommand$1, DeleteDBSubnetGroupCommand as DeleteDBSubnetGroupCommand$1, DescribeDBClusterSnapshotsCommand, DescribeDBClustersCommand as DescribeDBClustersCommand$1, DescribeDBInstancesCommand as DescribeDBInstancesCommand$1, DescribeDBSubnetGroupsCommand as DescribeDBSubnetGroupsCommand$1, DescribeGlobalClustersCommand as DescribeGlobalClustersCommand$1, DocDBClient, ListTagsForResourceCommand as ListTagsForResourceCommand$13, ModifyDBClusterCommand as ModifyDBClusterCommand$1, ModifyDBInstanceCommand as ModifyDBInstanceCommand$1, ModifyDBSubnetGroupCommand as ModifyDBSubnetGroupCommand$1, RemoveFromGlobalClusterCommand as RemoveFromGlobalClusterCommand$1, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$3, RestoreDBClusterFromSnapshotCommand, RestoreDBClusterToPointInTimeCommand } from "@aws-sdk/client-docdb";
48
48
  import { CreateWebACLCommand, DeleteWebACLCommand, GetWebACLCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$14, TagResourceCommand as TagResourceCommand$17, UntagResourceCommand as UntagResourceCommand$17, UpdateWebACLCommand, WAFNonexistentItemException, WAFV2Client } from "@aws-sdk/client-wafv2";
49
49
  import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$11, SetUserPoolMfaConfigCommand, UntagResourceCommand as UntagResourceCommand$18, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
50
50
  import { CreateHttpNamespaceCommand, CreatePrivateDnsNamespaceCommand, CreatePublicDnsNamespaceCommand, CreateServiceCommand as CreateServiceCommand$1, DeleteNamespaceCommand, DeleteServiceAttributesCommand, DeleteServiceCommand as DeleteServiceCommand$1, GetNamespaceCommand, GetOperationCommand, GetServiceAttributesCommand, GetServiceCommand, ListNamespacesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$15, NamespaceNotFound, ResourceInUse, ServiceDiscoveryClient, ServiceNotFound, TagResourceCommand as TagResourceCommand$18, UntagResourceCommand as UntagResourceCommand$19, UpdateHttpNamespaceCommand, UpdatePrivateDnsNamespaceCommand, UpdatePublicDnsNamespaceCommand, UpdateServiceAttributesCommand, UpdateServiceCommand as UpdateServiceCommand$1 } from "@aws-sdk/client-servicediscovery";
@@ -31761,6 +31761,82 @@ function instanceAttributes(instance) {
31761
31761
  function isDbIdentifier(id) {
31762
31762
  return id.length <= 63 && /^[A-Za-z](?:-?[A-Za-z0-9])*$/.test(id);
31763
31763
  }
31764
+ const ZONED_TIMESTAMP = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:z|[+-]\d{2}:?\d{2})$/i;
31765
+ function readDocDBClusterRestore(properties, resourceType, logicalId) {
31766
+ const refuse = (reason) => {
31767
+ throw markNonRetryable(new ProvisioningError(safeMsg`DocDB DBCluster ${logicalId}: ${reason}, as CloudFormation requires; nothing was changed.`, resourceType, logicalId));
31768
+ };
31769
+ const identifier = (key) => {
31770
+ const value = properties[key];
31771
+ if (value == null) return void 0;
31772
+ return typeof value === "string" ? value || void 0 : refuse(`${key} must be a string`);
31773
+ };
31774
+ const snapshotIdentifier = identifier("SnapshotIdentifier");
31775
+ const sourceDBClusterIdentifier = identifier("SourceDBClusterIdentifier");
31776
+ if (snapshotIdentifier !== void 0 && sourceDBClusterIdentifier !== void 0) return refuse("SnapshotIdentifier and SourceDBClusterIdentifier cannot both be set");
31777
+ if (sourceDBClusterIdentifier === void 0) return snapshotIdentifier === void 0 ? void 0 : {
31778
+ kind: "snapshot",
31779
+ snapshotIdentifier
31780
+ };
31781
+ const declaredTime = properties["RestoreToTime"];
31782
+ let restoreToTime;
31783
+ if (declaredTime != null && declaredTime !== "") {
31784
+ restoreToTime = typeof declaredTime === "string" && ZONED_TIMESTAMP.test(declaredTime) ? new Date(declaredTime) : void 0;
31785
+ if (restoreToTime === void 0 || Number.isNaN(restoreToTime.getTime())) return refuse("RestoreToTime must be a timestamp with a time zone, such as 2026-01-01T00:00:00Z");
31786
+ }
31787
+ const declaredLatest = properties["UseLatestRestorableTime"];
31788
+ const latest = declaredLatest == null ? false : coerceCfnBoolean(declaredLatest);
31789
+ if (latest === void 0) return refuse("UseLatestRestorableTime must be a boolean");
31790
+ if (restoreToTime !== void 0 && latest) return refuse("RestoreToTime and UseLatestRestorableTime: true cannot both be set");
31791
+ if (restoreToTime === void 0 && !latest) return refuse("a SourceDBClusterIdentifier restore needs RestoreToTime or UseLatestRestorableTime: true");
31792
+ const restoreType = properties["RestoreType"];
31793
+ if (restoreType != null && typeof restoreType !== "string") return refuse("RestoreType must be a string");
31794
+ return {
31795
+ kind: "point-in-time",
31796
+ sourceDBClusterIdentifier,
31797
+ restoreToTime
31798
+ };
31799
+ }
31800
+ function unusedRestoreKeys(properties, restore) {
31801
+ return (restore?.kind === "point-in-time" ? ["GlobalClusterIdentifier", "AvailabilityZones"] : [
31802
+ "RestoreType",
31803
+ "RestoreToTime",
31804
+ "UseLatestRestorableTime",
31805
+ ...restore === void 0 ? [] : ["GlobalClusterIdentifier"]
31806
+ ]).filter((key) => properties[key] != null && properties[key] !== "" && properties[key] !== false);
31807
+ }
31808
+ const CLUSTER_AVAILABLE_MAX_WAIT_MS = 18e5;
31809
+ function restoreWaitMs() {
31810
+ const remaining = enclosingDeadlineRemainingMs() - DEADLINE_MARGIN_MS;
31811
+ return Number.isFinite(remaining) ? Math.max(CLUSTER_AVAILABLE_MAX_WAIT_MS, remaining) : CLUSTER_AVAILABLE_MAX_WAIT_MS;
31812
+ }
31813
+ const RESTORE_VALUE_REFUSALS = /* @__PURE__ */ new Set(["InvalidParameterValue", "InvalidParameterCombination"]);
31814
+ function docdbRestoreFollowUp(properties, restore, password, managedPassword) {
31815
+ const nonEmpty = (members) => Object.values(members).some((value) => value !== void 0) ? members : void 0;
31816
+ const retention = numberOrUndefined(properties["BackupRetentionPeriod"]);
31817
+ const windows = {
31818
+ PreferredBackupWindow: properties["PreferredBackupWindow"],
31819
+ PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"]
31820
+ };
31821
+ const snapshot = restore.kind === "snapshot";
31822
+ return {
31823
+ parity: nonEmpty({
31824
+ DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
31825
+ ...snapshot && {
31826
+ BackupRetentionPeriod: retention,
31827
+ ...windows
31828
+ }
31829
+ }),
31830
+ declared: [
31831
+ ...snapshot ? [] : [nonEmpty({ BackupRetentionPeriod: retention }), nonEmpty(windows)],
31832
+ nonEmpty({ MasterUserPassword: password }),
31833
+ nonEmpty({
31834
+ ManageMasterUserPassword: managedPassword === true ? true : void 0,
31835
+ MasterUserSecretKmsKeyId: managedPassword === true ? properties["MasterUserSecretKmsKeyId"] : void 0
31836
+ })
31837
+ ].filter((group) => group !== void 0)
31838
+ };
31839
+ }
31764
31840
  var DocDBProvider = class {
31765
31841
  docdbClient;
31766
31842
  createClient;
@@ -31780,6 +31856,11 @@ var DocDBProvider = class {
31780
31856
  "MasterUserPassword",
31781
31857
  "RotateMasterUserPassword",
31782
31858
  "GlobalClusterIdentifier",
31859
+ "SnapshotIdentifier",
31860
+ "SourceDBClusterIdentifier",
31861
+ "RestoreToTime",
31862
+ "RestoreType",
31863
+ "UseLatestRestorableTime",
31783
31864
  ...DOCDB_CLUSTER_KEPT_ON_REMOVAL,
31784
31865
  ...DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL
31785
31866
  ])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
@@ -31817,7 +31898,12 @@ var DocDBProvider = class {
31817
31898
  "NetworkType",
31818
31899
  "RotateMasterUserPassword",
31819
31900
  "ServerlessV2ScalingConfiguration",
31820
- "StorageType"
31901
+ "StorageType",
31902
+ "RestoreToTime",
31903
+ "RestoreType",
31904
+ "SnapshotIdentifier",
31905
+ "SourceDBClusterIdentifier",
31906
+ "UseLatestRestorableTime"
31821
31907
  ])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
31822
31908
  "DBInstanceIdentifier",
31823
31909
  "DBInstanceClass",
@@ -31888,43 +31974,75 @@ var DocDBProvider = class {
31888
31974
  this.logger.warn(safeMsg`${logicalId} (${resourceType}): the recorded GlobalClusterIdentifier is unusable, so it is not sent.`);
31889
31975
  }
31890
31976
  const globalClusterId = docdbGlobalClusterId(properties["GlobalClusterIdentifier"]);
31977
+ const restore = readDocDBClusterRestore(properties, resourceType, logicalId);
31978
+ const unused = unusedRestoreKeys(properties, restore);
31979
+ if (unused.length > 0) {
31980
+ const call = restore === void 0 ? "create" : restore.kind === "snapshot" ? "snapshot restore" : "point-in-time restore";
31981
+ this.logger.warn(safeMsg`${logicalId} (${resourceType}): this ${call} does not use ${unused.join(", ")}, as in CloudFormation.`);
31982
+ }
31891
31983
  const dbClusterIdentifier = properties["DBClusterIdentifier"] || generatedNameFor("AWS::DocDB::DBCluster", logicalId);
31984
+ if (!String(properties["SourceDBClusterIdentifier"]).startsWith("arn:")) refuseRestoreFromItself(resourceType, properties, dbClusterIdentifier, logicalId, { region: this.providerRegion });
31985
+ const port = properties["Port"] != null ? Number(properties["Port"]) : void 0;
31986
+ const kmsKeyId = properties["KmsKeyId"];
31987
+ const sharedInput = {
31988
+ DBClusterIdentifier: dbClusterIdentifier,
31989
+ VpcSecurityGroupIds: properties["VpcSecurityGroupIds"],
31990
+ DBSubnetGroupName: properties["DBSubnetGroupName"],
31991
+ KmsKeyId: kmsKeyId,
31992
+ DeletionProtection: properties["DeletionProtection"],
31993
+ CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
31994
+ NetworkType: properties["NetworkType"],
31995
+ StorageType: properties["StorageType"],
31996
+ ...logTypes !== void 0 && logTypes.length > 0 && { EnableCloudwatchLogsExports: logTypes },
31997
+ ...scaling != null && { ServerlessV2ScalingConfiguration: scaling },
31998
+ ...tags.length > 0 && { Tags: tags }
31999
+ };
32000
+ const restorePort = port ?? DOCDB_DEFAULT_PORT;
32001
+ if (restore !== void 0) await this.refuseUnencryptedRestoreSource(properties, restore, resourceType, logicalId, mask);
31892
32002
  let clusterCreated = false;
31893
32003
  let createdResourceId;
31894
32004
  try {
31895
- const response = await this.getCreateClient().send(new CreateDBClusterCommand$1({
31896
- DBClusterIdentifier: dbClusterIdentifier,
32005
+ const response = await (restore === void 0 ? this.getCreateClient().send(new CreateDBClusterCommand$1({
32006
+ ...sharedInput,
31897
32007
  Engine: "docdb",
31898
32008
  EngineVersion: properties["EngineVersion"],
31899
32009
  MasterUsername: properties["MasterUsername"],
31900
32010
  MasterUserPassword: password,
31901
- Port: properties["Port"] != null ? Number(properties["Port"]) : void 0,
31902
- VpcSecurityGroupIds: properties["VpcSecurityGroupIds"],
31903
- DBSubnetGroupName: properties["DBSubnetGroupName"],
32011
+ Port: port,
31904
32012
  StorageEncrypted: properties["StorageEncrypted"],
31905
- KmsKeyId: properties["KmsKeyId"],
31906
- BackupRetentionPeriod: properties["BackupRetentionPeriod"] != null ? Number(properties["BackupRetentionPeriod"]) : void 0,
32013
+ BackupRetentionPeriod: numberOrUndefined(properties["BackupRetentionPeriod"]),
31907
32014
  PreferredBackupWindow: properties["PreferredBackupWindow"],
31908
32015
  PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
31909
32016
  DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
31910
- DeletionProtection: properties["DeletionProtection"],
31911
32017
  AvailabilityZones: properties["AvailabilityZones"],
31912
- CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
31913
32018
  ManageMasterUserPassword: managedPassword,
31914
32019
  MasterUserSecretKmsKeyId: properties["MasterUserSecretKmsKeyId"],
31915
- NetworkType: properties["NetworkType"],
31916
- StorageType: properties["StorageType"],
31917
- ...globalClusterId !== void 0 && { GlobalClusterIdentifier: globalClusterId },
31918
- ...logTypes !== void 0 && logTypes.length > 0 && { EnableCloudwatchLogsExports: logTypes },
31919
- ...scaling != null && { ServerlessV2ScalingConfiguration: scaling },
31920
- ...tags.length > 0 && { Tags: tags }
31921
- }));
32020
+ ...globalClusterId !== void 0 && { GlobalClusterIdentifier: globalClusterId }
32021
+ })) : restore.kind === "snapshot" ? this.getCreateClient().send(new RestoreDBClusterFromSnapshotCommand({
32022
+ ...sharedInput,
32023
+ SnapshotIdentifier: restore.snapshotIdentifier,
32024
+ Engine: "docdb",
32025
+ EngineVersion: properties["EngineVersion"],
32026
+ Port: restorePort,
32027
+ AvailabilityZones: properties["AvailabilityZones"]
32028
+ })) : this.getCreateClient().send(new RestoreDBClusterToPointInTimeCommand({
32029
+ ...sharedInput,
32030
+ SourceDBClusterIdentifier: restore.sourceDBClusterIdentifier,
32031
+ RestoreType: properties["RestoreType"],
32032
+ ...restore.restoreToTime !== void 0 ? { RestoreToTime: restore.restoreToTime } : { UseLatestRestorableTime: true },
32033
+ Port: restorePort
32034
+ })));
31922
32035
  clusterCreated = true;
31923
32036
  createdResourceId = response.DBCluster?.DbClusterResourceId;
31924
32037
  reportCreatedResource(logicalId, resourceType, dbClusterIdentifier, createdResourceId);
31925
- if (!response.DBCluster) throw new Error("CreateDBCluster did not return DBCluster");
32038
+ const cluster = response.DBCluster;
32039
+ if (!cluster) throw new Error("The create call did not return DBCluster");
31926
32040
  this.logger.debug(`Successfully created DocDB DBCluster ${logicalId}: ${dbClusterIdentifier}`);
31927
- if (process.env["CDKD_NO_WAIT"] !== "true") await this.waitForClusterAvailable(logicalId, dbClusterIdentifier);
32041
+ const followUp = restore === void 0 ? void 0 : docdbRestoreFollowUp(properties, restore, password, managedPassword);
32042
+ const followingUp = followUp !== void 0 && (followUp.parity !== void 0 || followUp.declared.length > 0);
32043
+ if (followingUp || process.env["CDKD_NO_WAIT"] !== "true") await this.waitForClusterAvailable(logicalId, dbClusterIdentifier, restore === void 0 ? void 0 : restoreWaitMs());
32044
+ if (followUp !== void 0 && followingUp) await this.sendRestoreFollowUp(logicalId, resourceType, dbClusterIdentifier, followUp, mask);
32045
+ if (restore !== void 0) this.warnRestoredDifferences(logicalId, resourceType, properties, restore, cluster);
31928
32046
  return {
31929
32047
  physicalId: dbClusterIdentifier,
31930
32048
  attributes: clusterAttributes(await this.describeDBCluster(dbClusterIdentifier))
@@ -31935,6 +32053,74 @@ var DocDBProvider = class {
31935
32053
  throw thrown;
31936
32054
  }
31937
32055
  }
32056
+ async refuseUnencryptedRestoreSource(properties, restore, resourceType, logicalId, mask) {
32057
+ if (coerceCfnBoolean(properties["StorageEncrypted"]) !== true) return;
32058
+ if (properties["KmsKeyId"] != null && properties["KmsKeyId"] !== "") return;
32059
+ let encrypted;
32060
+ try {
32061
+ if (restore.kind === "snapshot") {
32062
+ const snapshot = (await this.getClient().send(new DescribeDBClusterSnapshotsCommand({
32063
+ DBClusterSnapshotIdentifier: restore.snapshotIdentifier,
32064
+ IncludeShared: true,
32065
+ IncludePublic: true
32066
+ }))).DBClusterSnapshots?.[0];
32067
+ if (snapshot === void 0) return;
32068
+ encrypted = snapshot.StorageEncrypted;
32069
+ } else {
32070
+ const source = await this.describeDBCluster(restore.sourceDBClusterIdentifier);
32071
+ if (source === void 0) return;
32072
+ encrypted = source.StorageEncrypted;
32073
+ }
32074
+ } catch (error) {
32075
+ const fault = restore.kind === "snapshot" ? "DBClusterSnapshotNotFoundFault" : "DBClusterNotFoundFault";
32076
+ if (isDocDBNotFoundError(error, fault)) return;
32077
+ throw this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to create DocDB DBCluster ${logicalId}: reading whether the restore source is encrypted failed, so nothing was changed: ${text}`, resourceType, logicalId, void 0, error instanceof Error ? error : void 0));
32078
+ }
32079
+ if (encrypted === true) return;
32080
+ throw markNonRetryable(new ProvisioningError(safeMsg`DocDB DBCluster ${logicalId}: StorageEncrypted is true, but the restore source does not read as encrypted and no KmsKeyId is set. Set KmsKeyId (alias/aws/rds is the default key), as CloudFormation requires; nothing was changed.`, resourceType, logicalId));
32081
+ }
32082
+ async sendRestoreFollowUp(logicalId, resourceType, physicalId, followUp, mask) {
32083
+ const send = (members) => modifyDbInstanceWhenAvailable({
32084
+ send: () => this.getClient().send(new ModifyDBClusterCommand$1({
32085
+ DBClusterIdentifier: physicalId,
32086
+ ...members,
32087
+ ApplyImmediately: true
32088
+ })),
32089
+ readStatus: async () => (await this.describeDBCluster(physicalId))?.Status,
32090
+ sleep: (ms) => this.sleep(ms),
32091
+ logger: this.logger,
32092
+ label: "DocDB DBCluster",
32093
+ subject: "cluster",
32094
+ logicalId,
32095
+ remainingMs: enclosingDeadlineRemainingMs()
32096
+ });
32097
+ if (followUp.parity !== void 0) await send(followUp.parity);
32098
+ const refused = async (members) => {
32099
+ try {
32100
+ await send(members);
32101
+ return false;
32102
+ } catch (error) {
32103
+ if (error instanceof Error && RESTORE_VALUE_REFUSALS.has(error.name)) {
32104
+ this.logger.debug(safeMsg`${error.name} after restoring ${logicalId}: ${maskerOrIdentity(mask)(error.message)}`);
32105
+ return true;
32106
+ }
32107
+ throw error;
32108
+ }
32109
+ };
32110
+ const { declared } = followUp;
32111
+ if (declared.length > 0 && await refused(Object.assign({}, ...declared))) {
32112
+ const keys = [];
32113
+ for (const group of declared) if (declared.length === 1 || await refused(group)) keys.push(...Object.keys(group).filter((key) => group[key] !== void 0));
32114
+ if (keys.length > 0) this.logger.warn(safeMsg`${logicalId} (${resourceType}): AWS refused ${keys.join(", ")} after the restore, so the cluster keeps its restored values. The record holds the declared ones, so drift does not report the difference. An update sends a declared BackupRetentionPeriod or window again; the password settings only once the template changes them.`);
32115
+ }
32116
+ if (process.env["CDKD_NO_WAIT"] !== "true") await this.waitForClusterAvailable(logicalId, physicalId, restoreWaitMs());
32117
+ }
32118
+ warnRestoredDifferences(logicalId, resourceType, properties, restore, cluster) {
32119
+ const differs = (key, live) => properties[key] != null && live !== void 0 && String(properties[key]) !== live;
32120
+ const keys = [...differs("MasterUsername", cluster.MasterUsername) ? ["MasterUsername"] : [], ...restore.kind === "point-in-time" && differs("EngineVersion", cluster.EngineVersion) ? ["EngineVersion"] : []];
32121
+ if (keys.length === 0) return;
32122
+ this.logger.warn(safeMsg`${logicalId} (${resourceType}): the restored cluster keeps its source's ${keys.join(", ")}, not the template's, as in CloudFormation: a restore does not set ${keys.length === 1 ? "it" : "them"}. cdkd drift does not report the difference: its baseline is the readback taken at deploy.`);
32123
+ }
31938
32124
  async updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties, context) {
31939
32125
  this.logger.debug(`Updating DocDB DBCluster ${logicalId}: ${physicalId}`);
31940
32126
  refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
@@ -32592,7 +32778,7 @@ var DocDBProvider = class {
32592
32778
  remainingMs: enclosingDeadlineRemainingMs()
32593
32779
  });
32594
32780
  }
32595
- async waitForClusterAvailable(logicalId, dbClusterIdentifier, maxWaitMs = 18e5) {
32781
+ async waitForClusterAvailable(logicalId, dbClusterIdentifier, maxWaitMs = CLUSTER_AVAILABLE_MAX_WAIT_MS) {
32596
32782
  const startTime = Date.now();
32597
32783
  let delay = 5e3;
32598
32784
  while (Date.now() - startTime < maxWaitMs) {
@@ -32662,7 +32848,12 @@ var DocDBProvider = class {
32662
32848
  "AvailabilityZones",
32663
32849
  "GlobalClusterIdentifier",
32664
32850
  "MasterUserSecretKmsKeyId",
32665
- "RotateMasterUserPassword"
32851
+ "RestoreToTime",
32852
+ "RestoreType",
32853
+ "RotateMasterUserPassword",
32854
+ "SnapshotIdentifier",
32855
+ "SourceDBClusterIdentifier",
32856
+ "UseLatestRestorableTime"
32666
32857
  ];
32667
32858
  if (resourceType === "AWS::DocDB::DBInstance") return ["CertificateRotationRestart"];
32668
32859
  return [];
@@ -48638,6 +48829,7 @@ var FirehoseProvider = class {
48638
48829
  "IcebergDestinationConfiguration",
48639
48830
  "MSKSourceConfiguration"
48640
48831
  ])]]);
48832
+ unhandledByDesign = /* @__PURE__ */ new Map([["AWS::KinesisFirehose::DeliveryStream", /* @__PURE__ */ new Map([["DatabaseSourceConfiguration", "Database as a source was a public preview AWS removed on 2025-09-24 (Firehose document history); CreateDeliveryStream refused DeliveryStreamType DatabaseAsSource in every region probed, so an SDK path could not be verified. Stays on Cloud Control"], ["SnowflakeDestinationConfiguration", "Proving the wire shape live needs a real Snowflake account, and the block carries key material (PrivateKey, KeyPassphrase). Stays on Cloud Control"]])]]);
48641
48833
  getClient() {
48642
48834
  if (!this.client) {
48643
48835
  this.client = new FirehoseClient({
@@ -55158,4 +55350,4 @@ var ACMCertificateProvider = class {
55158
55350
  };
55159
55351
 
55160
55352
  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 };
55161
- //# sourceMappingURL=provider-classes-BTOXS3cs.js.map
55353
+ //# sourceMappingURL=provider-classes-DTgKRk4t.js.map