@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.
- package/dist/{asg-provider-B4XVfH0S.js → asg-provider-DIQU27yo.js} +2 -2
- package/dist/{asg-provider-B4XVfH0S.js.map → asg-provider-DIQU27yo.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-BiJyU4j1.js → deploy-engine-pGWgnV-6.js} +128 -73
- package/dist/deploy-engine-pGWgnV-6.js.map +1 -0
- package/dist/{iam-role-provider-FsEgUieT.js → iam-role-provider-z7poP-9w.js} +2 -2
- package/dist/{iam-role-provider-FsEgUieT.js.map → iam-role-provider-z7poP-9w.js.map} +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-DjjNodrS.js → neptune-provider-DzedCIWf.js} +2 -2
- package/dist/{neptune-provider-DjjNodrS.js.map → neptune-provider-DzedCIWf.js.map} +1 -1
- package/dist/{program-Dm0hn2Sn.js → program-lQLBOfU6.js} +4 -4
- package/dist/{program-Dm0hn2Sn.js.map → program-lQLBOfU6.js.map} +1 -1
- package/dist/{provider-classes-BTOXS3cs.js → provider-classes-DTgKRk4t.js} +221 -29
- package/dist/{provider-classes-BTOXS3cs.js.map → provider-classes-DTgKRk4t.js.map} +1 -1
- package/dist/{rds-provider-C_r5q9NM.js → rds-provider-BenOBQ9u.js} +49 -5
- package/dist/rds-provider-BenOBQ9u.js.map +1 -0
- package/dist/{version-CrtjwYuX.js → version-DWSVZXE5.js} +2 -2
- package/dist/{version-CrtjwYuX.js.map → version-DWSVZXE5.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-BiJyU4j1.js.map +0 -1
- package/dist/rds-provider-C_r5q9NM.js.map +0 -1
|
@@ -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-
|
|
6
|
-
import { a as IamCreateClientCache, i as isEntityAlreadyExists, n as collectInlinePolicyNamesManagedBySiblings, r as iamEntityLeftByThisCreate, t as IAMRoleProvider } from "./iam-role-provider-
|
|
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-
|
|
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-
|
|
10
|
-
import { NeptuneProvider } from "./neptune-provider-
|
|
11
|
-
import { ASGProvider } from "./asg-provider-
|
|
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
|
-
|
|
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:
|
|
31902
|
-
VpcSecurityGroupIds: properties["VpcSecurityGroupIds"],
|
|
31903
|
-
DBSubnetGroupName: properties["DBSubnetGroupName"],
|
|
32011
|
+
Port: port,
|
|
31904
32012
|
StorageEncrypted: properties["StorageEncrypted"],
|
|
31905
|
-
|
|
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
|
-
|
|
31916
|
-
|
|
31917
|
-
...
|
|
31918
|
-
|
|
31919
|
-
|
|
31920
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
"
|
|
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-
|
|
55353
|
+
//# sourceMappingURL=provider-classes-DTgKRk4t.js.map
|