@go-to-k/cdkd 0.320.0 → 0.322.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-BymHNHgo.js} +2 -2
- package/dist/{asg-provider-B4XVfH0S.js.map → asg-provider-BymHNHgo.js.map} +1 -1
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-BiJyU4j1.js → deploy-engine-BC5pwkqY.js} +217 -74
- package/dist/deploy-engine-BC5pwkqY.js.map +1 -0
- package/dist/{iam-role-provider-FsEgUieT.js → iam-role-provider-CHwvGLRj.js} +2 -2
- package/dist/{iam-role-provider-FsEgUieT.js.map → iam-role-provider-CHwvGLRj.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-BQ92M2BH.js} +2 -2
- package/dist/{neptune-provider-DjjNodrS.js.map → neptune-provider-BQ92M2BH.js.map} +1 -1
- package/dist/{program-Dm0hn2Sn.js → program-DdncAAar.js} +5 -15
- package/dist/program-DdncAAar.js.map +1 -0
- package/dist/{provider-classes-BTOXS3cs.js → provider-classes-HcyJmeJE.js} +221 -80
- package/dist/provider-classes-HcyJmeJE.js.map +1 -0
- package/dist/{rds-provider-C_r5q9NM.js → rds-provider-CFm779-M.js} +49 -5
- package/dist/rds-provider-CFm779-M.js.map +1 -0
- package/dist/version-BWH_L6He.js +19 -0
- package/dist/version-BWH_L6He.js.map +1 -0
- package/package.json +1 -1
- package/dist/deploy-engine-BiJyU4j1.js.map +0 -1
- package/dist/program-Dm0hn2Sn.js.map +0 -1
- package/dist/provider-classes-BTOXS3cs.js.map +0 -1
- package/dist/rds-provider-C_r5q9NM.js.map +0 -1
- package/dist/version-CrtjwYuX.js +0 -11
- package/dist/version-CrtjwYuX.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
|
|
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,
|
|
5
|
+
import { $ as isTtlRateLimited, $i as stringifyIfAssigned, A as resolvedResourceTimeoutMs, Aa as reEnableInstanceApiTermination, Ac as sameLambdaFunctionAddress, B as DELETE_INDEX_WAIT_PROCEED_NOTE, C as planContributorInsightsOp, Ca as withIndeterminateGuard, Cc as withRetry, Cd as derivePartitionAndUrlSuffix, Cl as recoverMaskedOutput, D as reverseMapTableContributorInsights, Da as isTerminationProtectionPropagationError, Dc as emrClusterInstancesReplaced, Dt as enclosingDeadlineRemainingMs, E as reverseMapIndexContributorInsights, Ea as ec2InstanceProtectionSite, Ec as ecsServiceLaunchTypeSetOrChanged, Et as enclosingDeadlineExpired, F as beginDeleteWait, Fi as earliestDefined, G as relayedIndexBusyDelete, Ga as s3BucketRegionalDomainName, Gi as DBPROXY_TAGS_WHAT, Gn as getCurrentProducerRegions, Gs as withheldAccountClause, H as TABLE_INDEX_NOUN, Ha as s3BucketArn, Hc as passedNoEchoParametersOf, Hr as awaitInFlightSibling, I as compensateRemovedDeletionProtection, Id as describeFileReadFailure, J as readbackVectorIndexes, Jc as markSameGenerationBag, Ji as readTagList, Jn as isRedactedRecordedValue, Js as findSilentDropProperties, K as waitForIndexesSettled, Ka as s3BucketWebsiteUrl, Ki as DBPROXY_TAG_OPTIONS, Kr as replacedDeleteFailureVerdict, L as deleteBudgetKey, Ld as displayAssemblyPath, Li as reserveStackCreateToken, M as DYNAMODB_DELETE_DEADLINE_MARGIN_MS, N as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Na as isUsableAttemptedName, Ns as refuseMalformedResourcesForDestroy, O as stripIndexContributorInsights, Oa as observeThenDisableInstanceApiTermination, Oc as canonicalLambdaFunctionName, Ol as carriesSecretMask, Oo as parseWebACLArn, P as DYNAMODB_DELETE_POLL_COST_MS, Q as isTtlAlreadyDisabled, Qi as definedAttributes, Qt as withNestedStackContext, R as resolveDynamoDbDeleteBudgetClock, Rd as renderAssemblyPathEscape, Ro as accountArgs, S as indexDeclaresContributorInsights, Sa as deleteSkipReason, Sd as canonicalizeRegion, Si as secretNamedAttributeNamesOf, T as readContributorInsightsSpec, Tl as recordAttributeIdCopy, U as deleteTableWithIndexBusyRetry, Ua as s3BucketDomainName, Ui as isRefusedByName, V as INDEX_SETTLE_POLL_INTERVAL_MS, Va as isSettledInstanceState, Vr as refuseRestoreFromItself, W as maskedLogger, Wa as s3BucketDualStackDomainName, Wi as markDeleteStarted, Wr as getStackRecords, Wt as getNestedRevertRun, X as vectorIndexesSettled, Xc as recordReferenceProvenanceEntry, Xi as tagMapAsList, Xn as redactedDeleteAddressSkip, Xs as withoutSilentDropProperties, Y as vectorIndexesForCreate, Yc as redactForState, Yi as refuseMalformedDesiredTags, Yn as redactedDeleteAddressFields, Z as vectorIndexesShapeDetail, Za as outputReferenceProvenanceOf, Zc as snapshotPassProvenance, Zi as tagPlanWarning, Zt as getCurrentNestedStackContext, _ as streamMemberRefusals, _a as unchangedBehindSecretReference, _c as requireConfigArray, _o as getAccountInfo, _t as findNestedTemplateTreeDefect, aa as waitForLambdaFunctionActive, ac as WARM_THROUGHPUT_MEMBERS, at as hasCdkAutoDeleteTag, b as CONTRIBUTOR_INSIGHTS_KEY, bt as renderNestedTemplateTreeDefect, bu as rewriteTemplateAssetReferences, c as DynamoDBGlobalTableProvider, cc as toCfnInteger, cn as chunks, ct as markRefusedBeforeApplying, d as declaredStreamPolicyMember, dc as coerceCfnInteger, dn as withApiLimit, el as hasMaskableValues, et as planTimeToLive, f as declaredStreamTagsMember, fc as configBooleanRefusal, fu as timePhase, g as streamDeclaresTags, ga as onlySecretReferencesDiffer, gc as replayWarn, gl as dynamicReferenceTokens, h as streamDeclaresPolicy, ha as slowCcOperationTimeoutMs, hc as readConfigString, hu as stringifyValue, it as S3_AUTO_DELETE_OBJECTS_TAG, jo as passedParameterClassesOf, k as waitForGoneAfterDelete, ka as reDisableInstanceApiTermination, kc as lambdaFunctionNameForMask, l as STREAM_POLICY_KEY, la as getCurrentResourceSecrets, lc as toFiniteNumber, ln as isAccessDeniedError, m as reverseMapStreamPolicy, mc as configStringRefusal, ml as withoutPhysicalNameCopies, nt as sendTtlWaitingOutRateLimit, oc as coerceWarmThroughput$1, ot as isTruthyCfnBoolean, p as planStreamMemberOps, pc as configIntegerRefusal, ps as refuseMalformedNestedChildOutputs, q as planVectorIndexUpdates, qi as planTagDiff, qn as REDACTED_DELETE_ADDRESS_SKIP_REASON, qt as revertNestedChildFromJournal, rt as ECR_AUTO_DELETE_IMAGES_TAG, sc as isWarmThroughputDecrease, st as getPriorAttempts, t as DeployEngine, tt as readTtlSpec, u as STREAM_TAGS_KEY, uc as coerceCfnBoolean, un as lookupEachName, v as streamPolicyMatchesDeclared, vc as requireConfigObject, vt as isAbsoluteAssetPath, w as planIndexContributorInsightsOps, wc as blockDeviceMappingsDifferOnlyInDeleteOnTermination, wl as physicalNameCopiesOf, x as contributorInsightsRefusals, y as streamTagsMatchDeclared, yc as requireConfigString, yd as decodeListingKey, yt as listNestedTemplateRows, z as resolveDynamoDbDeleteBudgetMs, zd as resolveAssemblyPath, zi as acquireIdempotencyToken } from "./deploy-engine-BC5pwkqY.js";
|
|
6
|
+
import { a as IamCreateClientCache, i as isEntityAlreadyExists, n as collectInlinePolicyNamesManagedBySiblings, r as iamEntityLeftByThisCreate, t as IAMRoleProvider } from "./iam-role-provider-CHwvGLRj.js";
|
|
7
|
+
import { a as resolveSecretDerivedPrincipals, i as isResolvableSecretPrincipalList, n as runDestroyForStack, o as canonicalizeIpProtocolValue, r as holdsUnprovenSecretPrincipalToken, t as canonicalizeIpv4Cidr } from "./program-DdncAAar.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-CFm779-M.js";
|
|
10
|
+
import { NeptuneProvider } from "./neptune-provider-BQ92M2BH.js";
|
|
11
|
+
import { ASGProvider } from "./asg-provider-BymHNHgo.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";
|
|
@@ -12497,57 +12497,6 @@ function versionOfArn(arn) {
|
|
|
12497
12497
|
return match ? Number(match[1]) : void 0;
|
|
12498
12498
|
}
|
|
12499
12499
|
|
|
12500
|
-
// src/provisioning/delete-gone-wait.ts
|
|
12501
|
-
async function waitForGoneAfterDelete(opts) {
|
|
12502
|
-
const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
12503
|
-
const now = opts.now ?? Date.now;
|
|
12504
|
-
const userTimeoutMs = resolvedResourceTimeoutMs(opts.resourceType);
|
|
12505
|
-
const maxWaitMs = userTimeoutMs === void 0 ? opts.maxWaitMs : Math.min(opts.maxWaitMs, userTimeoutMs / 2);
|
|
12506
|
-
const startedAt = now();
|
|
12507
|
-
const stopped = `${opts.what}: the delete was ACCEPTED by AWS, but cdkd stopped waiting for it to disappear`;
|
|
12508
|
-
const consequence = "AWS finishes the delete on its side; until it does, a create of the same name is refused with \"already exists\".";
|
|
12509
|
-
const watch = startInterruptWatch(`${opts.what} deletion wait`);
|
|
12510
|
-
try {
|
|
12511
|
-
let lastStatus;
|
|
12512
|
-
let sawNonFailedStatus = false;
|
|
12513
|
-
for (;;) {
|
|
12514
|
-
if (watch.isInterrupted()) {
|
|
12515
|
-
opts.logger.warn(safeMsg`${stopped} (interrupted). ${consequence}`);
|
|
12516
|
-
return;
|
|
12517
|
-
}
|
|
12518
|
-
try {
|
|
12519
|
-
const status = await opts.describe();
|
|
12520
|
-
if (status === void 0) {
|
|
12521
|
-
opts.logger.debug(safeMsg`${opts.what} is gone`);
|
|
12522
|
-
return;
|
|
12523
|
-
}
|
|
12524
|
-
const failure = opts.failedStatus?.(status);
|
|
12525
|
-
if (failure !== void 0) {
|
|
12526
|
-
if (sawNonFailedStatus || now() - startedAt >= opts.pollIntervalMs) throw markWaitAbandoned(failure);
|
|
12527
|
-
} else sawNonFailedStatus = true;
|
|
12528
|
-
lastStatus = status;
|
|
12529
|
-
opts.logger.debug(safeMsg`${opts.what} status: ${status}, waiting for it to disappear`);
|
|
12530
|
-
} catch (error) {
|
|
12531
|
-
if (isWaitAbandonedError(error)) throw error;
|
|
12532
|
-
if (!isThrottlingError(error) && !isTransientServerError(error)) {
|
|
12533
|
-
opts.logger.debug(safeMsg`${opts.what}: status read failed: ${describeAwsFailure(error).detail}`);
|
|
12534
|
-
opts.logger.warn(safeMsg`${stopped}: its status could not be read (${describeAwsFailure(error).summary}). ${consequence}`);
|
|
12535
|
-
return;
|
|
12536
|
-
}
|
|
12537
|
-
opts.logger.debug(safeMsg`${opts.what}: status read throttled or failed transiently, re-polling`);
|
|
12538
|
-
}
|
|
12539
|
-
const remainingMs = maxWaitMs - (now() - startedAt);
|
|
12540
|
-
if (remainingMs <= 0) {
|
|
12541
|
-
opts.logger.warn(safeMsg`${stopped} after ${Math.round(maxWaitMs / 1e3)}s` + safeMsg`${lastStatus !== void 0 ? ` (last status: ${lastStatus})` : ""}. ${consequence}`);
|
|
12542
|
-
return;
|
|
12543
|
-
}
|
|
12544
|
-
await sleep(Math.min(opts.pollIntervalMs, remainingMs));
|
|
12545
|
-
}
|
|
12546
|
-
} finally {
|
|
12547
|
-
watch.dispose();
|
|
12548
|
-
}
|
|
12549
|
-
}
|
|
12550
|
-
|
|
12551
12500
|
// src/provisioning/providers/dynamodb-table-provider.ts
|
|
12552
12501
|
function isTableName(id) {
|
|
12553
12502
|
return /^[A-Za-z0-9_.-]{3,255}$/.test(id);
|
|
@@ -31761,6 +31710,82 @@ function instanceAttributes(instance) {
|
|
|
31761
31710
|
function isDbIdentifier(id) {
|
|
31762
31711
|
return id.length <= 63 && /^[A-Za-z](?:-?[A-Za-z0-9])*$/.test(id);
|
|
31763
31712
|
}
|
|
31713
|
+
const ZONED_TIMESTAMP = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:z|[+-]\d{2}:?\d{2})$/i;
|
|
31714
|
+
function readDocDBClusterRestore(properties, resourceType, logicalId) {
|
|
31715
|
+
const refuse = (reason) => {
|
|
31716
|
+
throw markNonRetryable(new ProvisioningError(safeMsg`DocDB DBCluster ${logicalId}: ${reason}, as CloudFormation requires; nothing was changed.`, resourceType, logicalId));
|
|
31717
|
+
};
|
|
31718
|
+
const identifier = (key) => {
|
|
31719
|
+
const value = properties[key];
|
|
31720
|
+
if (value == null) return void 0;
|
|
31721
|
+
return typeof value === "string" ? value || void 0 : refuse(`${key} must be a string`);
|
|
31722
|
+
};
|
|
31723
|
+
const snapshotIdentifier = identifier("SnapshotIdentifier");
|
|
31724
|
+
const sourceDBClusterIdentifier = identifier("SourceDBClusterIdentifier");
|
|
31725
|
+
if (snapshotIdentifier !== void 0 && sourceDBClusterIdentifier !== void 0) return refuse("SnapshotIdentifier and SourceDBClusterIdentifier cannot both be set");
|
|
31726
|
+
if (sourceDBClusterIdentifier === void 0) return snapshotIdentifier === void 0 ? void 0 : {
|
|
31727
|
+
kind: "snapshot",
|
|
31728
|
+
snapshotIdentifier
|
|
31729
|
+
};
|
|
31730
|
+
const declaredTime = properties["RestoreToTime"];
|
|
31731
|
+
let restoreToTime;
|
|
31732
|
+
if (declaredTime != null && declaredTime !== "") {
|
|
31733
|
+
restoreToTime = typeof declaredTime === "string" && ZONED_TIMESTAMP.test(declaredTime) ? new Date(declaredTime) : void 0;
|
|
31734
|
+
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");
|
|
31735
|
+
}
|
|
31736
|
+
const declaredLatest = properties["UseLatestRestorableTime"];
|
|
31737
|
+
const latest = declaredLatest == null ? false : coerceCfnBoolean(declaredLatest);
|
|
31738
|
+
if (latest === void 0) return refuse("UseLatestRestorableTime must be a boolean");
|
|
31739
|
+
if (restoreToTime !== void 0 && latest) return refuse("RestoreToTime and UseLatestRestorableTime: true cannot both be set");
|
|
31740
|
+
if (restoreToTime === void 0 && !latest) return refuse("a SourceDBClusterIdentifier restore needs RestoreToTime or UseLatestRestorableTime: true");
|
|
31741
|
+
const restoreType = properties["RestoreType"];
|
|
31742
|
+
if (restoreType != null && typeof restoreType !== "string") return refuse("RestoreType must be a string");
|
|
31743
|
+
return {
|
|
31744
|
+
kind: "point-in-time",
|
|
31745
|
+
sourceDBClusterIdentifier,
|
|
31746
|
+
restoreToTime
|
|
31747
|
+
};
|
|
31748
|
+
}
|
|
31749
|
+
function unusedRestoreKeys(properties, restore) {
|
|
31750
|
+
return (restore?.kind === "point-in-time" ? ["GlobalClusterIdentifier", "AvailabilityZones"] : [
|
|
31751
|
+
"RestoreType",
|
|
31752
|
+
"RestoreToTime",
|
|
31753
|
+
"UseLatestRestorableTime",
|
|
31754
|
+
...restore === void 0 ? [] : ["GlobalClusterIdentifier"]
|
|
31755
|
+
]).filter((key) => properties[key] != null && properties[key] !== "" && properties[key] !== false);
|
|
31756
|
+
}
|
|
31757
|
+
const CLUSTER_AVAILABLE_MAX_WAIT_MS = 18e5;
|
|
31758
|
+
function restoreWaitMs() {
|
|
31759
|
+
const remaining = enclosingDeadlineRemainingMs() - DEADLINE_MARGIN_MS;
|
|
31760
|
+
return Number.isFinite(remaining) ? Math.max(CLUSTER_AVAILABLE_MAX_WAIT_MS, remaining) : CLUSTER_AVAILABLE_MAX_WAIT_MS;
|
|
31761
|
+
}
|
|
31762
|
+
const RESTORE_VALUE_REFUSALS = /* @__PURE__ */ new Set(["InvalidParameterValue", "InvalidParameterCombination"]);
|
|
31763
|
+
function docdbRestoreFollowUp(properties, restore, password, managedPassword) {
|
|
31764
|
+
const nonEmpty = (members) => Object.values(members).some((value) => value !== void 0) ? members : void 0;
|
|
31765
|
+
const retention = numberOrUndefined(properties["BackupRetentionPeriod"]);
|
|
31766
|
+
const windows = {
|
|
31767
|
+
PreferredBackupWindow: properties["PreferredBackupWindow"],
|
|
31768
|
+
PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"]
|
|
31769
|
+
};
|
|
31770
|
+
const snapshot = restore.kind === "snapshot";
|
|
31771
|
+
return {
|
|
31772
|
+
parity: nonEmpty({
|
|
31773
|
+
DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
|
|
31774
|
+
...snapshot && {
|
|
31775
|
+
BackupRetentionPeriod: retention,
|
|
31776
|
+
...windows
|
|
31777
|
+
}
|
|
31778
|
+
}),
|
|
31779
|
+
declared: [
|
|
31780
|
+
...snapshot ? [] : [nonEmpty({ BackupRetentionPeriod: retention }), nonEmpty(windows)],
|
|
31781
|
+
nonEmpty({ MasterUserPassword: password }),
|
|
31782
|
+
nonEmpty({
|
|
31783
|
+
ManageMasterUserPassword: managedPassword === true ? true : void 0,
|
|
31784
|
+
MasterUserSecretKmsKeyId: managedPassword === true ? properties["MasterUserSecretKmsKeyId"] : void 0
|
|
31785
|
+
})
|
|
31786
|
+
].filter((group) => group !== void 0)
|
|
31787
|
+
};
|
|
31788
|
+
}
|
|
31764
31789
|
var DocDBProvider = class {
|
|
31765
31790
|
docdbClient;
|
|
31766
31791
|
createClient;
|
|
@@ -31780,6 +31805,11 @@ var DocDBProvider = class {
|
|
|
31780
31805
|
"MasterUserPassword",
|
|
31781
31806
|
"RotateMasterUserPassword",
|
|
31782
31807
|
"GlobalClusterIdentifier",
|
|
31808
|
+
"SnapshotIdentifier",
|
|
31809
|
+
"SourceDBClusterIdentifier",
|
|
31810
|
+
"RestoreToTime",
|
|
31811
|
+
"RestoreType",
|
|
31812
|
+
"UseLatestRestorableTime",
|
|
31783
31813
|
...DOCDB_CLUSTER_KEPT_ON_REMOVAL,
|
|
31784
31814
|
...DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL
|
|
31785
31815
|
])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
|
|
@@ -31817,7 +31847,12 @@ var DocDBProvider = class {
|
|
|
31817
31847
|
"NetworkType",
|
|
31818
31848
|
"RotateMasterUserPassword",
|
|
31819
31849
|
"ServerlessV2ScalingConfiguration",
|
|
31820
|
-
"StorageType"
|
|
31850
|
+
"StorageType",
|
|
31851
|
+
"RestoreToTime",
|
|
31852
|
+
"RestoreType",
|
|
31853
|
+
"SnapshotIdentifier",
|
|
31854
|
+
"SourceDBClusterIdentifier",
|
|
31855
|
+
"UseLatestRestorableTime"
|
|
31821
31856
|
])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
|
|
31822
31857
|
"DBInstanceIdentifier",
|
|
31823
31858
|
"DBInstanceClass",
|
|
@@ -31888,43 +31923,75 @@ var DocDBProvider = class {
|
|
|
31888
31923
|
this.logger.warn(safeMsg`${logicalId} (${resourceType}): the recorded GlobalClusterIdentifier is unusable, so it is not sent.`);
|
|
31889
31924
|
}
|
|
31890
31925
|
const globalClusterId = docdbGlobalClusterId(properties["GlobalClusterIdentifier"]);
|
|
31926
|
+
const restore = readDocDBClusterRestore(properties, resourceType, logicalId);
|
|
31927
|
+
const unused = unusedRestoreKeys(properties, restore);
|
|
31928
|
+
if (unused.length > 0) {
|
|
31929
|
+
const call = restore === void 0 ? "create" : restore.kind === "snapshot" ? "snapshot restore" : "point-in-time restore";
|
|
31930
|
+
this.logger.warn(safeMsg`${logicalId} (${resourceType}): this ${call} does not use ${unused.join(", ")}, as in CloudFormation.`);
|
|
31931
|
+
}
|
|
31891
31932
|
const dbClusterIdentifier = properties["DBClusterIdentifier"] || generatedNameFor("AWS::DocDB::DBCluster", logicalId);
|
|
31933
|
+
if (!String(properties["SourceDBClusterIdentifier"]).startsWith("arn:")) refuseRestoreFromItself(resourceType, properties, dbClusterIdentifier, logicalId, { region: this.providerRegion });
|
|
31934
|
+
const port = properties["Port"] != null ? Number(properties["Port"]) : void 0;
|
|
31935
|
+
const kmsKeyId = properties["KmsKeyId"];
|
|
31936
|
+
const sharedInput = {
|
|
31937
|
+
DBClusterIdentifier: dbClusterIdentifier,
|
|
31938
|
+
VpcSecurityGroupIds: properties["VpcSecurityGroupIds"],
|
|
31939
|
+
DBSubnetGroupName: properties["DBSubnetGroupName"],
|
|
31940
|
+
KmsKeyId: kmsKeyId,
|
|
31941
|
+
DeletionProtection: properties["DeletionProtection"],
|
|
31942
|
+
CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
|
|
31943
|
+
NetworkType: properties["NetworkType"],
|
|
31944
|
+
StorageType: properties["StorageType"],
|
|
31945
|
+
...logTypes !== void 0 && logTypes.length > 0 && { EnableCloudwatchLogsExports: logTypes },
|
|
31946
|
+
...scaling != null && { ServerlessV2ScalingConfiguration: scaling },
|
|
31947
|
+
...tags.length > 0 && { Tags: tags }
|
|
31948
|
+
};
|
|
31949
|
+
const restorePort = port ?? DOCDB_DEFAULT_PORT;
|
|
31950
|
+
if (restore !== void 0) await this.refuseUnencryptedRestoreSource(properties, restore, resourceType, logicalId, mask);
|
|
31892
31951
|
let clusterCreated = false;
|
|
31893
31952
|
let createdResourceId;
|
|
31894
31953
|
try {
|
|
31895
|
-
const response = await this.getCreateClient().send(new CreateDBClusterCommand$1({
|
|
31896
|
-
|
|
31954
|
+
const response = await (restore === void 0 ? this.getCreateClient().send(new CreateDBClusterCommand$1({
|
|
31955
|
+
...sharedInput,
|
|
31897
31956
|
Engine: "docdb",
|
|
31898
31957
|
EngineVersion: properties["EngineVersion"],
|
|
31899
31958
|
MasterUsername: properties["MasterUsername"],
|
|
31900
31959
|
MasterUserPassword: password,
|
|
31901
|
-
Port:
|
|
31902
|
-
VpcSecurityGroupIds: properties["VpcSecurityGroupIds"],
|
|
31903
|
-
DBSubnetGroupName: properties["DBSubnetGroupName"],
|
|
31960
|
+
Port: port,
|
|
31904
31961
|
StorageEncrypted: properties["StorageEncrypted"],
|
|
31905
|
-
|
|
31906
|
-
BackupRetentionPeriod: properties["BackupRetentionPeriod"] != null ? Number(properties["BackupRetentionPeriod"]) : void 0,
|
|
31962
|
+
BackupRetentionPeriod: numberOrUndefined(properties["BackupRetentionPeriod"]),
|
|
31907
31963
|
PreferredBackupWindow: properties["PreferredBackupWindow"],
|
|
31908
31964
|
PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
|
|
31909
31965
|
DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
|
|
31910
|
-
DeletionProtection: properties["DeletionProtection"],
|
|
31911
31966
|
AvailabilityZones: properties["AvailabilityZones"],
|
|
31912
|
-
CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
|
|
31913
31967
|
ManageMasterUserPassword: managedPassword,
|
|
31914
31968
|
MasterUserSecretKmsKeyId: properties["MasterUserSecretKmsKeyId"],
|
|
31915
|
-
|
|
31916
|
-
|
|
31917
|
-
...
|
|
31918
|
-
|
|
31919
|
-
|
|
31920
|
-
|
|
31921
|
-
|
|
31969
|
+
...globalClusterId !== void 0 && { GlobalClusterIdentifier: globalClusterId }
|
|
31970
|
+
})) : restore.kind === "snapshot" ? this.getCreateClient().send(new RestoreDBClusterFromSnapshotCommand({
|
|
31971
|
+
...sharedInput,
|
|
31972
|
+
SnapshotIdentifier: restore.snapshotIdentifier,
|
|
31973
|
+
Engine: "docdb",
|
|
31974
|
+
EngineVersion: properties["EngineVersion"],
|
|
31975
|
+
Port: restorePort,
|
|
31976
|
+
AvailabilityZones: properties["AvailabilityZones"]
|
|
31977
|
+
})) : this.getCreateClient().send(new RestoreDBClusterToPointInTimeCommand({
|
|
31978
|
+
...sharedInput,
|
|
31979
|
+
SourceDBClusterIdentifier: restore.sourceDBClusterIdentifier,
|
|
31980
|
+
RestoreType: properties["RestoreType"],
|
|
31981
|
+
...restore.restoreToTime !== void 0 ? { RestoreToTime: restore.restoreToTime } : { UseLatestRestorableTime: true },
|
|
31982
|
+
Port: restorePort
|
|
31983
|
+
})));
|
|
31922
31984
|
clusterCreated = true;
|
|
31923
31985
|
createdResourceId = response.DBCluster?.DbClusterResourceId;
|
|
31924
31986
|
reportCreatedResource(logicalId, resourceType, dbClusterIdentifier, createdResourceId);
|
|
31925
|
-
|
|
31987
|
+
const cluster = response.DBCluster;
|
|
31988
|
+
if (!cluster) throw new Error("The create call did not return DBCluster");
|
|
31926
31989
|
this.logger.debug(`Successfully created DocDB DBCluster ${logicalId}: ${dbClusterIdentifier}`);
|
|
31927
|
-
|
|
31990
|
+
const followUp = restore === void 0 ? void 0 : docdbRestoreFollowUp(properties, restore, password, managedPassword);
|
|
31991
|
+
const followingUp = followUp !== void 0 && (followUp.parity !== void 0 || followUp.declared.length > 0);
|
|
31992
|
+
if (followingUp || process.env["CDKD_NO_WAIT"] !== "true") await this.waitForClusterAvailable(logicalId, dbClusterIdentifier, restore === void 0 ? void 0 : restoreWaitMs());
|
|
31993
|
+
if (followUp !== void 0 && followingUp) await this.sendRestoreFollowUp(logicalId, resourceType, dbClusterIdentifier, followUp, mask);
|
|
31994
|
+
if (restore !== void 0) this.warnRestoredDifferences(logicalId, resourceType, properties, restore, cluster);
|
|
31928
31995
|
return {
|
|
31929
31996
|
physicalId: dbClusterIdentifier,
|
|
31930
31997
|
attributes: clusterAttributes(await this.describeDBCluster(dbClusterIdentifier))
|
|
@@ -31935,6 +32002,74 @@ var DocDBProvider = class {
|
|
|
31935
32002
|
throw thrown;
|
|
31936
32003
|
}
|
|
31937
32004
|
}
|
|
32005
|
+
async refuseUnencryptedRestoreSource(properties, restore, resourceType, logicalId, mask) {
|
|
32006
|
+
if (coerceCfnBoolean(properties["StorageEncrypted"]) !== true) return;
|
|
32007
|
+
if (properties["KmsKeyId"] != null && properties["KmsKeyId"] !== "") return;
|
|
32008
|
+
let encrypted;
|
|
32009
|
+
try {
|
|
32010
|
+
if (restore.kind === "snapshot") {
|
|
32011
|
+
const snapshot = (await this.getClient().send(new DescribeDBClusterSnapshotsCommand({
|
|
32012
|
+
DBClusterSnapshotIdentifier: restore.snapshotIdentifier,
|
|
32013
|
+
IncludeShared: true,
|
|
32014
|
+
IncludePublic: true
|
|
32015
|
+
}))).DBClusterSnapshots?.[0];
|
|
32016
|
+
if (snapshot === void 0) return;
|
|
32017
|
+
encrypted = snapshot.StorageEncrypted;
|
|
32018
|
+
} else {
|
|
32019
|
+
const source = await this.describeDBCluster(restore.sourceDBClusterIdentifier);
|
|
32020
|
+
if (source === void 0) return;
|
|
32021
|
+
encrypted = source.StorageEncrypted;
|
|
32022
|
+
}
|
|
32023
|
+
} catch (error) {
|
|
32024
|
+
const fault = restore.kind === "snapshot" ? "DBClusterSnapshotNotFoundFault" : "DBClusterNotFoundFault";
|
|
32025
|
+
if (isDocDBNotFoundError(error, fault)) return;
|
|
32026
|
+
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));
|
|
32027
|
+
}
|
|
32028
|
+
if (encrypted === true) return;
|
|
32029
|
+
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));
|
|
32030
|
+
}
|
|
32031
|
+
async sendRestoreFollowUp(logicalId, resourceType, physicalId, followUp, mask) {
|
|
32032
|
+
const send = (members) => modifyDbInstanceWhenAvailable({
|
|
32033
|
+
send: () => this.getClient().send(new ModifyDBClusterCommand$1({
|
|
32034
|
+
DBClusterIdentifier: physicalId,
|
|
32035
|
+
...members,
|
|
32036
|
+
ApplyImmediately: true
|
|
32037
|
+
})),
|
|
32038
|
+
readStatus: async () => (await this.describeDBCluster(physicalId))?.Status,
|
|
32039
|
+
sleep: (ms) => this.sleep(ms),
|
|
32040
|
+
logger: this.logger,
|
|
32041
|
+
label: "DocDB DBCluster",
|
|
32042
|
+
subject: "cluster",
|
|
32043
|
+
logicalId,
|
|
32044
|
+
remainingMs: enclosingDeadlineRemainingMs()
|
|
32045
|
+
});
|
|
32046
|
+
if (followUp.parity !== void 0) await send(followUp.parity);
|
|
32047
|
+
const refused = async (members) => {
|
|
32048
|
+
try {
|
|
32049
|
+
await send(members);
|
|
32050
|
+
return false;
|
|
32051
|
+
} catch (error) {
|
|
32052
|
+
if (error instanceof Error && RESTORE_VALUE_REFUSALS.has(error.name)) {
|
|
32053
|
+
this.logger.debug(safeMsg`${error.name} after restoring ${logicalId}: ${maskerOrIdentity(mask)(error.message)}`);
|
|
32054
|
+
return true;
|
|
32055
|
+
}
|
|
32056
|
+
throw error;
|
|
32057
|
+
}
|
|
32058
|
+
};
|
|
32059
|
+
const { declared } = followUp;
|
|
32060
|
+
if (declared.length > 0 && await refused(Object.assign({}, ...declared))) {
|
|
32061
|
+
const keys = [];
|
|
32062
|
+
for (const group of declared) if (declared.length === 1 || await refused(group)) keys.push(...Object.keys(group).filter((key) => group[key] !== void 0));
|
|
32063
|
+
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.`);
|
|
32064
|
+
}
|
|
32065
|
+
if (process.env["CDKD_NO_WAIT"] !== "true") await this.waitForClusterAvailable(logicalId, physicalId, restoreWaitMs());
|
|
32066
|
+
}
|
|
32067
|
+
warnRestoredDifferences(logicalId, resourceType, properties, restore, cluster) {
|
|
32068
|
+
const differs = (key, live) => properties[key] != null && live !== void 0 && String(properties[key]) !== live;
|
|
32069
|
+
const keys = [...differs("MasterUsername", cluster.MasterUsername) ? ["MasterUsername"] : [], ...restore.kind === "point-in-time" && differs("EngineVersion", cluster.EngineVersion) ? ["EngineVersion"] : []];
|
|
32070
|
+
if (keys.length === 0) return;
|
|
32071
|
+
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.`);
|
|
32072
|
+
}
|
|
31938
32073
|
async updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
31939
32074
|
this.logger.debug(`Updating DocDB DBCluster ${logicalId}: ${physicalId}`);
|
|
31940
32075
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
@@ -32592,7 +32727,7 @@ var DocDBProvider = class {
|
|
|
32592
32727
|
remainingMs: enclosingDeadlineRemainingMs()
|
|
32593
32728
|
});
|
|
32594
32729
|
}
|
|
32595
|
-
async waitForClusterAvailable(logicalId, dbClusterIdentifier, maxWaitMs =
|
|
32730
|
+
async waitForClusterAvailable(logicalId, dbClusterIdentifier, maxWaitMs = CLUSTER_AVAILABLE_MAX_WAIT_MS) {
|
|
32596
32731
|
const startTime = Date.now();
|
|
32597
32732
|
let delay = 5e3;
|
|
32598
32733
|
while (Date.now() - startTime < maxWaitMs) {
|
|
@@ -32662,7 +32797,12 @@ var DocDBProvider = class {
|
|
|
32662
32797
|
"AvailabilityZones",
|
|
32663
32798
|
"GlobalClusterIdentifier",
|
|
32664
32799
|
"MasterUserSecretKmsKeyId",
|
|
32665
|
-
"
|
|
32800
|
+
"RestoreToTime",
|
|
32801
|
+
"RestoreType",
|
|
32802
|
+
"RotateMasterUserPassword",
|
|
32803
|
+
"SnapshotIdentifier",
|
|
32804
|
+
"SourceDBClusterIdentifier",
|
|
32805
|
+
"UseLatestRestorableTime"
|
|
32666
32806
|
];
|
|
32667
32807
|
if (resourceType === "AWS::DocDB::DBInstance") return ["CertificateRotationRestart"];
|
|
32668
32808
|
return [];
|
|
@@ -48638,6 +48778,7 @@ var FirehoseProvider = class {
|
|
|
48638
48778
|
"IcebergDestinationConfiguration",
|
|
48639
48779
|
"MSKSourceConfiguration"
|
|
48640
48780
|
])]]);
|
|
48781
|
+
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
48782
|
getClient() {
|
|
48642
48783
|
if (!this.client) {
|
|
48643
48784
|
this.client = new FirehoseClient({
|
|
@@ -55158,4 +55299,4 @@ var ACMCertificateProvider = class {
|
|
|
55158
55299
|
};
|
|
55159
55300
|
|
|
55160
55301
|
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-
|
|
55302
|
+
//# sourceMappingURL=provider-classes-HcyJmeJE.js.map
|