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