@go-to-k/cdkd 0.314.0 → 0.316.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-DOLuhiky.js} +6 -7
- package/dist/{asg-provider-_nun2Jda.js.map → asg-provider-DOLuhiky.js.map} +1 -1
- package/dist/{aws-client-defaults-BX9Y_fKp.js → aws-client-defaults-BLXFsfMa.js} +6 -11
- package/dist/aws-client-defaults-BLXFsfMa.js.map +1 -0
- package/dist/{aws-clients-Bu9EMILF.js → aws-clients-CGZAQ1gS.js} +5 -8
- package/dist/aws-clients-CGZAQ1gS.js.map +1 -0
- package/dist/{aws-failure-text-agWtoyga.js → aws-failure-text-DiHodi76.js} +8 -15
- package/dist/aws-failure-text-DiHodi76.js.map +1 -0
- package/dist/cli.js +6 -10
- package/dist/cli.js.map +1 -1
- package/dist/{created-resource-sink-QECX8C-Z.js → created-resource-sink-B9OCHRr_.js} +35 -66
- package/dist/created-resource-sink-B9OCHRr_.js.map +1 -0
- package/dist/db-instance-modify-retry-DQTozL4b.js +43 -0
- package/dist/db-instance-modify-retry-DQTozL4b.js.map +1 -0
- package/dist/{deploy-engine-ClIUqDQL.js → deploy-engine-NYjdxQWe.js} +445 -673
- package/dist/deploy-engine-NYjdxQWe.js.map +1 -0
- package/dist/{iam-role-provider-DJep3uns.js → iam-role-provider-Ddo7WwEs.js} +7 -9
- package/dist/iam-role-provider-Ddo7WwEs.js.map +1 -0
- package/dist/index.d.ts +2 -103
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/{neptune-provider-CGZ_G4Vz.js → neptune-provider-CuZbMn9R.js} +377 -23
- package/dist/neptune-provider-CuZbMn9R.js.map +1 -0
- package/dist/{program-Du6jOw1-.js → program-DSq5150i.js} +118 -228
- package/dist/program-DSq5150i.js.map +1 -0
- package/dist/{provider-classes-ZqxIefLl.js → provider-classes-ushrO6ri.js} +468 -212
- package/dist/provider-classes-ushrO6ri.js.map +1 -0
- package/dist/{rds-provider-C2fHUNSE.js → rds-provider-VigGKsxO.js} +77 -20
- package/dist/rds-provider-VigGKsxO.js.map +1 -0
- package/dist/{version-B2PvJ12r.js → version-9_dvIw-h.js} +3 -4
- package/dist/{version-B2PvJ12r.js.map → version-9_dvIw-h.js.map} +1 -1
- package/package.json +8 -8
- package/dist/aws-client-defaults-BX9Y_fKp.js.map +0 -1
- package/dist/aws-clients-Bu9EMILF.js.map +0 -1
- package/dist/aws-failure-text-agWtoyga.js.map +0 -1
- package/dist/created-resource-sink-QECX8C-Z.js.map +0 -1
- package/dist/db-instance-modify-retry-By0_BFNO.js +0 -38
- package/dist/db-instance-modify-retry-By0_BFNO.js.map +0 -1
- package/dist/deploy-engine-ClIUqDQL.js.map +0 -1
- package/dist/iam-role-provider-DJep3uns.js.map +0 -1
- package/dist/neptune-provider-CGZ_G4Vz.js.map +0 -1
- package/dist/program-Du6jOw1-.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
|
-
import { r as getAwsClients, s as withApiGatewayPacing } from "./aws-clients-
|
|
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-
|
|
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-
|
|
4
|
-
import { c as ambientRegion } from "./aws-client-defaults-
|
|
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-
|
|
1
|
+
import { r as getAwsClients, s as withApiGatewayPacing } from "./aws-clients-CGZAQ1gS.js";
|
|
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
|
+
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-B9OCHRr_.js";
|
|
4
|
+
import { c as ambientRegion } from "./aws-client-defaults-BLXFsfMa.js";
|
|
5
|
+
import { $ as sendTtlWaitingOutRateLimit, A as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Aa as isUsableAttemptedName, As as refuseMalformedResourcesForDestroy, B as deleteTableWithIndexBusyRetry, Ba as s3BucketDomainName, Bi as markDeleteStarted, Br as getStackRecords, C as planContributorInsightsOp, Ca as ec2InstanceProtectionSite, Cc as ecsServiceLaunchTypeSetOrChanged, Ct as enclosingDeadlineExpired, D as reverseMapTableContributorInsights, Da as reEnableInstanceApiTermination, Dc as sameLambdaFunctionAddress, E as reverseMapIndexContributorInsights, Ea as reDisableInstanceApiTermination, Ec as lambdaFunctionNameForMask, F as resolveDynamoDbDeleteBudgetClock, Fd as renderAssemblyPathEscape, Fi as acquireIdempotencyToken, Fo as accountArgs, G as readbackVectorIndexes, Gc as markSameGenerationBag, Gi as refuseMalformedDesiredTags, Gn as isRedactedRecordedValue, Gs as findSilentDropProperties, H as relayedIndexBusyDelete, Ha as s3BucketRegionalDomainName, Hi as DBPROXY_TAG_OPTIONS, Hn as getCurrentProducerRegions, Hr as replacedDeleteFailureVerdict, Hs as withheldAccountClause, I as resolveDynamoDbDeleteBudgetMs, Id as resolveAssemblyPath, J as vectorIndexesShapeDetail, Ja as outputReferenceProvenanceOf, Jc as snapshotPassProvenance, Ji as definedAttributes, Jt as getCurrentNestedStackContext, K as vectorIndexesForCreate, Kc as redactForState, Ki as tagMapAsList, Kn as redactedDeleteAddressFields, L as DELETE_INDEX_WAIT_PROCEED_NOTE, M as beginDeleteWait, N as compensateRemovedDeletionProtection, Nd as describeFileReadFailure, Ni as reserveStackCreateToken, O as stripIndexContributorInsights, Oo as passedParameterClassesOf, P as deleteBudgetKey, Pd as displayAssemblyPath, Q as readTtlSpec, R as INDEX_SETTLE_POLL_INTERVAL_MS, Ra as isSettledInstanceState, Rr as awaitInFlightSibling, S as indexDeclaresContributorInsights, Sl as recordAttributeIdCopy, T as readContributorInsightsSpec, Ta as observeThenDisableInstanceApiTermination, Tc as canonicalLambdaFunctionName, Tl as carriesSecretMask, To as parseWebACLArn, U as waitForIndexesSettled, Ua as s3BucketWebsiteUrl, Ui as planTagDiff, V as maskedLogger, Va as s3BucketDualStackDomainName, Vi as DBPROXY_TAGS_WHAT, Vt as getNestedRevertRun, W as planVectorIndexUpdates, Wi as readTagList, Wn as REDACTED_DELETE_ADDRESS_SKIP_REASON, Wt as revertNestedChildFromJournal, X as isTtlRateLimited, Y as isTtlAlreadyDisabled, Yi as stringifyIfAssigned, Yt as withNestedStackContext, Z as planTimeToLive, Zc as hasMaskableValues, _ as streamMemberRefusals, _t as renderNestedTemplateTreeDefect, _u as rewriteTemplateAssetReferences, aa as getCurrentResourceSecrets, ac as toCfnInteger, an as chunks, at as markRefusedBeforeApplying, b as CONTRIBUTOR_INSIGHTS_KEY, ba as isWaitAbandonedError, bc as withRetry, bd as derivePartitionAndUrlSuffix, bl as recoverMaskedOutput, c as DynamoDBGlobalTableProvider, cc as coerceCfnInteger, cn as withApiLimit, d as declaredStreamPolicyMember, da as slowCcOperationTimeoutMs, dc as configStringRefusal, dl as withoutPhysicalNameCopies, et as ECR_AUTO_DELETE_IMAGES_TAG, f as declaredStreamTagsMember, fa as onlySecretReferencesDiffer, fc as readConfigString, fu as stringifyValue, g as streamDeclaresTags, gc as requireConfigString, gd as decodeListingKey, gt as listNestedTemplateRows, h as streamDeclaresPolicy, hc as requireConfigObject, ht as isAbsoluteAssetPath, ic as isWarmThroughputDecrease, it as getPriorAttempts, j as DYNAMODB_DELETE_POLL_COST_MS, ji as earliestDefined, k as DYNAMODB_DELETE_DEADLINE_MARGIN_MS, l as STREAM_POLICY_KEY, lc as configBooleanRefusal, lu as timePhase, m as reverseMapStreamPolicy, mc as requireConfigArray, mo as getAccountInfo, mt as findNestedTemplateTreeDefect, nc as WARM_THROUGHPUT_MEMBERS, nt as hasCdkAutoDeleteTag, oc as toFiniteNumber, on as isAccessDeniedError, p as planStreamMemberOps, pa as unchangedBehindSecretReference, pc as replayWarn, pl as dynamicReferenceTokens, q as vectorIndexesSettled, qc as recordReferenceProvenanceEntry, qi as tagPlanWarning, qn as redactedDeleteAddressSkip, qs as withoutSilentDropProperties, rc as coerceWarmThroughput$1, rt as isTruthyCfnBoolean, sc as coerceCfnBoolean, sn as lookupEachName, t as DeployEngine, ta as waitForLambdaFunctionActive, tt as S3_AUTO_DELETE_OBJECTS_TAG, u as STREAM_TAGS_KEY, uc as configIntegerRefusal, us as refuseMalformedNestedChildOutputs, v as streamPolicyMatchesDeclared, va as deleteSkipReason, vi as secretNamedAttributeNamesOf, w as planIndexContributorInsightsOps, wa as isTerminationProtectionPropagationError, wc as emrClusterInstancesReplaced, wt as enclosingDeadlineRemainingMs, x as contributorInsightsRefusals, xa as markWaitAbandoned, xc as blockDeviceMappingsDifferOnlyInDeleteOnTermination, xl as physicalNameCopiesOf, y as streamTagsMatchDeclared, ya as withIndeterminateGuard, yd as canonicalizeRegion, z as TABLE_INDEX_NOUN, za as s3BucketArn, zc as passedNoEchoParametersOf, zi as isRefusedByName } from "./deploy-engine-NYjdxQWe.js";
|
|
6
|
+
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-Ddo7WwEs.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-DSq5150i.js";
|
|
8
|
+
import { n as modifyDbInstanceWhenAvailable } from "./db-instance-modify-retry-DQTozL4b.js";
|
|
9
|
+
import { RDSProvider } from "./rds-provider-VigGKsxO.js";
|
|
10
|
+
import { NeptuneProvider } from "./neptune-provider-CuZbMn9R.js";
|
|
11
|
+
import { ASGProvider } from "./asg-provider-DOLuhiky.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";
|
|
@@ -65,7 +65,7 @@ import { CreateLifecyclePolicyCommand, DLMClient, DeleteLifecyclePolicyCommand a
|
|
|
65
65
|
import { CreateVectorBucketCommand, DeleteIndexCommand, DeleteVectorBucketCommand, GetVectorBucketCommand, ListIndexesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$19, S3VectorsClient, TagResourceCommand as TagResourceCommand$28, UntagResourceCommand as UntagResourceCommand$29 } from "@aws-sdk/client-s3vectors";
|
|
66
66
|
import { CreateNamespaceCommand, CreateTableBucketCommand, CreateTableCommand as CreateTableCommand$2, DeleteNamespaceCommand as DeleteNamespaceCommand$1, DeleteTableBucketCommand, DeleteTableBucketMetricsConfigurationCommand, DeleteTableBucketReplicationCommand, DeleteTableCommand as DeleteTableCommand$2, GetNamespaceCommand as GetNamespaceCommand$1, GetTableBucketCommand, GetTableBucketEncryptionCommand, GetTableBucketMaintenanceConfigurationCommand, GetTableBucketMetricsConfigurationCommand, GetTableBucketReplicationCommand, GetTableBucketStorageClassCommand, GetTableCommand as GetTableCommand$1, GetTableMaintenanceConfigurationCommand, ListNamespacesCommand as ListNamespacesCommand$1, ListTableBucketsCommand, ListTablesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$20, NotFoundException as NotFoundException$7, PutTableBucketEncryptionCommand, PutTableBucketMaintenanceConfigurationCommand, PutTableBucketMetricsConfigurationCommand, PutTableBucketReplicationCommand, PutTableBucketStorageClassCommand, PutTableMaintenanceConfigurationCommand, RenameTableCommand, S3TablesClient, TagResourceCommand as TagResourceCommand$29, UntagResourceCommand as UntagResourceCommand$30 } from "@aws-sdk/client-s3tables";
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
// src/provisioning/providers/iam-policy-provider.ts
|
|
69
69
|
const POLICY_NAME_SKIP_REASON = "no policy name in state — no delete issued";
|
|
70
70
|
const POLICY_NO_TARGET_SKIP_REASON = "no Roles/Groups/Users in state — no delete issued";
|
|
71
71
|
const POLICY_MALFORMED_TARGET_SKIP_REASON = "malformed Roles/Groups/Users in state — no delete issued";
|
|
@@ -590,8 +590,7 @@ var IAMPolicyProvider = class {
|
|
|
590
590
|
}
|
|
591
591
|
};
|
|
592
592
|
|
|
593
|
-
|
|
594
|
-
//#region src/provisioning/providers/iam-managed-policy-provider.ts
|
|
593
|
+
// src/provisioning/providers/iam-managed-policy-provider.ts
|
|
595
594
|
const principalsOf = (bag) => readPrincipalLists({
|
|
596
595
|
Groups: bag["Groups"],
|
|
597
596
|
Roles: bag["Roles"],
|
|
@@ -1217,8 +1216,7 @@ function recordedNonRootPath(arn) {
|
|
|
1217
1216
|
return path === "/" ? void 0 : path;
|
|
1218
1217
|
}
|
|
1219
1218
|
|
|
1220
|
-
|
|
1221
|
-
//#region src/provisioning/providers/iam-instance-profile-provider.ts
|
|
1219
|
+
// src/provisioning/providers/iam-instance-profile-provider.ts
|
|
1222
1220
|
const INSTANCE_PROFILE_TYPE = "AWS::IAM::InstanceProfile";
|
|
1223
1221
|
function isInstanceProfileName(id) {
|
|
1224
1222
|
return /^[\w+=,.@-]{1,128}$/.test(id);
|
|
@@ -1485,8 +1483,7 @@ var IAMInstanceProfileProvider = class {
|
|
|
1485
1483
|
}
|
|
1486
1484
|
};
|
|
1487
1485
|
|
|
1488
|
-
|
|
1489
|
-
//#region src/provisioning/providers/iam-access-key-provider.ts
|
|
1486
|
+
// src/provisioning/providers/iam-access-key-provider.ts
|
|
1490
1487
|
const ACCESS_KEY_ID_PATTERN = /^AKIA[A-Z0-9]{16}$/;
|
|
1491
1488
|
const CREATE_DATE_SKEW_MARGIN_MS = 5e3;
|
|
1492
1489
|
var IAMAccessKeyProvider = class {
|
|
@@ -1796,8 +1793,7 @@ var IAMAccessKeyProvider = class {
|
|
|
1796
1793
|
}
|
|
1797
1794
|
};
|
|
1798
1795
|
|
|
1799
|
-
|
|
1800
|
-
//#region src/provisioning/providers/iam-user-group-provider.ts
|
|
1796
|
+
// src/provisioning/providers/iam-user-group-provider.ts
|
|
1801
1797
|
function isUserOrGroupName(resourceType, id) {
|
|
1802
1798
|
return resourceType === "AWS::IAM::User" ? /^[\w+=,.@-]{1,64}$/.test(id) : /^[\w+=,.@-]{1,128}$/.test(id);
|
|
1803
1799
|
}
|
|
@@ -2938,15 +2934,13 @@ var IAMUserGroupProvider = class {
|
|
|
2938
2934
|
}
|
|
2939
2935
|
};
|
|
2940
2936
|
|
|
2941
|
-
|
|
2942
|
-
//#region src/utils/cfn-timestamp.ts
|
|
2937
|
+
// src/utils/cfn-timestamp.ts
|
|
2943
2938
|
const OFFSETLESS_DATE_TIME = /^\d{4}-\d{2}-\d{2}[Tt ]\d{2}:\d{2}(:\d{2}(\.\d+)?)?$/;
|
|
2944
2939
|
function parseCfnTimestamp(value) {
|
|
2945
2940
|
return new Date(OFFSETLESS_DATE_TIME.test(value) ? `${value}Z` : value);
|
|
2946
2941
|
}
|
|
2947
2942
|
|
|
2948
|
-
|
|
2949
|
-
//#region src/provisioning/providers/s3-bucket-provider.ts
|
|
2943
|
+
// src/provisioning/providers/s3-bucket-provider.ts
|
|
2950
2944
|
function manualBucketDeletionClause(bucketName, maskSecrets, journaled) {
|
|
2951
2945
|
const command = renderDisableCommand({
|
|
2952
2946
|
before: "aws s3api delete-bucket --bucket",
|
|
@@ -6059,8 +6053,7 @@ var S3BucketProvider = class S3BucketProvider {
|
|
|
6059
6053
|
}
|
|
6060
6054
|
};
|
|
6061
6055
|
|
|
6062
|
-
|
|
6063
|
-
//#region src/provisioning/providers/s3-bucket-policy-provider.ts
|
|
6056
|
+
// src/provisioning/providers/s3-bucket-policy-provider.ts
|
|
6064
6057
|
const OAI_USER_ARN_RE = /^arn:aws[a-z-]*:iam::cloudfront:user\/CloudFront Origin Access Identity ([A-Z0-9]+)$/;
|
|
6065
6058
|
const IAM_UNIQUE_ID_RE = /^A[A-Z0-9]{15,}$/;
|
|
6066
6059
|
const oaiCanonicalUserIdCache = /* @__PURE__ */ new Map();
|
|
@@ -6262,8 +6255,7 @@ function isS3BucketName(value) {
|
|
|
6262
6255
|
return true;
|
|
6263
6256
|
}
|
|
6264
6257
|
|
|
6265
|
-
|
|
6266
|
-
//#region src/provisioning/providers/sqs-queue-provider.ts
|
|
6258
|
+
// src/provisioning/providers/sqs-queue-provider.ts
|
|
6267
6259
|
function serializeRedrivePolicy(value) {
|
|
6268
6260
|
if (value === null || value === void 0) return "";
|
|
6269
6261
|
if (typeof value === "object" && Object.keys(value).length === 0) return "";
|
|
@@ -6591,8 +6583,7 @@ var SQSQueueProvider = class {
|
|
|
6591
6583
|
}
|
|
6592
6584
|
};
|
|
6593
6585
|
|
|
6594
|
-
|
|
6595
|
-
//#region src/provisioning/policy-document-content.ts
|
|
6586
|
+
// src/provisioning/policy-document-content.ts
|
|
6596
6587
|
const MASK = "***";
|
|
6597
6588
|
const PERMANENT_CDKD_CODES = /* @__PURE__ */ new Set(["ROLLBACK_SECRET_TOKEN_SCAN_MISMATCH"]);
|
|
6598
6589
|
const MARKED_PERMANENT_CODE_PREFIXES = ["INTRINSIC_RESOLUTION_REFUSAL", "ROLLBACK_SECRET_REGION_AMBIGUOUS"];
|
|
@@ -6723,8 +6714,7 @@ function policyContentKey(document) {
|
|
|
6723
6714
|
return canonicalJson$3(value);
|
|
6724
6715
|
}
|
|
6725
6716
|
|
|
6726
|
-
|
|
6727
|
-
//#region src/provisioning/providers/sqs-queue-policy-provider.ts
|
|
6717
|
+
// src/provisioning/providers/sqs-queue-policy-provider.ts
|
|
6728
6718
|
const QUEUE_POLICY_UNREADABLE_SKIP_REASON = "the policy of a queue it wrote could not be read, so whether that queue still carries it is unknown";
|
|
6729
6719
|
const QUEUE_POLICY_UNRESOLVED_DOCUMENT_SKIP_REASON = "the policy document it attempted could not be resolved right now to compare its queues with";
|
|
6730
6720
|
const QUEUE_POLICY_MISMATCH_LEFT_REASON = "a queue it wrote carries a policy that does not match the document it attempted, so that queue was not cleared";
|
|
@@ -7026,8 +7016,7 @@ function splitQueueUrls(physicalId) {
|
|
|
7026
7016
|
return physicalId.split(",").filter((url) => url.length > 0);
|
|
7027
7017
|
}
|
|
7028
7018
|
|
|
7029
|
-
|
|
7030
|
-
//#region src/provisioning/providers/create-ownership.ts
|
|
7019
|
+
// src/provisioning/providers/create-ownership.ts
|
|
7031
7020
|
async function nameHeldBefore(lookup, isAbsent) {
|
|
7032
7021
|
try {
|
|
7033
7022
|
return await lookup() ? "held" : "free";
|
|
@@ -7044,8 +7033,7 @@ function skippedCleanupText(heldBefore, what, command) {
|
|
|
7044
7033
|
return heldBefore === "held" ? `${what} already existed before this create attempt (it may be an earlier attempt of this same deploy, an earlier failed deploy, or another stack's or someone else's resource), and the create handed it back, so cdkd did not delete it after the wiring failure; this deploy may have changed its configuration. A resource under a cdkd-generated name is adopted by the next deploy if its create-time settings are unchanged, so it needs no action if it is this stack's. Delete it only after confirming from its tags and creation time that no one else uses it: ${command}` : `cdkd could not tell whether this create made ${what} (the lookup before the create did not answer), so it was not deleted after the wiring failure. If this deploy created it, delete it before the next deploy: ${command}`;
|
|
7045
7034
|
}
|
|
7046
7035
|
|
|
7047
|
-
|
|
7048
|
-
//#region src/provisioning/providers/sns-topic-provider.ts
|
|
7036
|
+
// src/provisioning/providers/sns-topic-provider.ts
|
|
7049
7037
|
const SNS_MAXIMUM_MESSAGE_SIZE_DEFAULT = "262144";
|
|
7050
7038
|
function snsTopicAttributes(topicArn) {
|
|
7051
7039
|
return {
|
|
@@ -7601,8 +7589,7 @@ function mapDeliveryStatusLogging(attrs, stateCaseMap = /* @__PURE__ */ new Map(
|
|
|
7601
7589
|
return result;
|
|
7602
7590
|
}
|
|
7603
7591
|
|
|
7604
|
-
|
|
7605
|
-
//#region src/provisioning/providers/sns-subscription-provider.ts
|
|
7592
|
+
// src/provisioning/providers/sns-subscription-provider.ts
|
|
7606
7593
|
const SNS_SUBSCRIPTION_DELETE_THREW_REASON = "the Unsubscribe call did not complete, so the old subscription is unproven";
|
|
7607
7594
|
const MUTABLE_ATTRIBUTES = [
|
|
7608
7595
|
"RawMessageDelivery",
|
|
@@ -7865,8 +7852,7 @@ function isPendingConfirmationError(error) {
|
|
|
7865
7852
|
return error instanceof InvalidParameterException && error.message.toLowerCase().includes("pending confirmation");
|
|
7866
7853
|
}
|
|
7867
7854
|
|
|
7868
|
-
|
|
7869
|
-
//#region src/provisioning/providers/sns-topic-policy-provider.ts
|
|
7855
|
+
// src/provisioning/providers/sns-topic-policy-provider.ts
|
|
7870
7856
|
const TOPIC_POLICY_UNREADABLE_SKIP_REASON = "the policy of a topic it wrote could not be read, so whether that topic still carries it is unknown";
|
|
7871
7857
|
const TOPIC_POLICY_UNRESOLVED_DOCUMENT_SKIP_REASON = "the policy document it attempted could not be resolved right now to compare its topics with";
|
|
7872
7858
|
const TOPIC_POLICY_MISMATCH_LEFT_REASON = "a topic it wrote carries a policy that does not match the document it attempted, so that topic was not reset";
|
|
@@ -8182,8 +8168,7 @@ function canonicalPolicy(text) {
|
|
|
8182
8168
|
}
|
|
8183
8169
|
}
|
|
8184
8170
|
|
|
8185
|
-
|
|
8186
|
-
//#region src/provisioning/providers/lambda-create-client.ts
|
|
8171
|
+
// src/provisioning/providers/lambda-create-client.ts
|
|
8187
8172
|
var LambdaCreateClientCache = class {
|
|
8188
8173
|
client;
|
|
8189
8174
|
shared;
|
|
@@ -8204,8 +8189,7 @@ var LambdaCreateClientCache = class {
|
|
|
8204
8189
|
}
|
|
8205
8190
|
};
|
|
8206
8191
|
|
|
8207
|
-
|
|
8208
|
-
//#region src/provisioning/providers/lambda-function-provider.ts
|
|
8192
|
+
// src/provisioning/providers/lambda-function-provider.ts
|
|
8209
8193
|
function isFunctionName(id) {
|
|
8210
8194
|
return /^[A-Za-z0-9_-]{1,64}$/.test(id);
|
|
8211
8195
|
}
|
|
@@ -9236,8 +9220,7 @@ var LambdaFunctionProvider = class {
|
|
|
9236
9220
|
}
|
|
9237
9221
|
};
|
|
9238
9222
|
|
|
9239
|
-
|
|
9240
|
-
//#region src/provisioning/providers/lambda-permission-provider.ts
|
|
9223
|
+
// src/provisioning/providers/lambda-permission-provider.ts
|
|
9241
9224
|
const PERMISSION_FUNCTION_NAME_SKIP_REASON = "FunctionName missing from state — no delete issued";
|
|
9242
9225
|
const PERMISSION_STATEMENT_ID_SKIP_REASON = "empty StatementId in state physicalId — no delete issued";
|
|
9243
9226
|
const DEPLOY_SKIP_CAVEAT$1 = "NOTE this arm is ALSO reached from cdkd deploy. Since issue 1762 the DELETE of a resource removed from the template behaves like destroy — the record is KEPT and the next deploy re-attempts it — but a REPLACEMENT / rollback delete FAILS the resource instead (https://github.com/go-to-k/cdkd/issues/1762), leaving the old one untracked; there, remove the resource by hand.";
|
|
@@ -9468,8 +9451,7 @@ function permissionStatementId(logicalId) {
|
|
|
9468
9451
|
return statementId;
|
|
9469
9452
|
}
|
|
9470
9453
|
|
|
9471
|
-
|
|
9472
|
-
//#region src/provisioning/providers/lambda-url-provider.ts
|
|
9454
|
+
// src/provisioning/providers/lambda-url-provider.ts
|
|
9473
9455
|
var LambdaUrlProvider = class {
|
|
9474
9456
|
lambdaClient;
|
|
9475
9457
|
createClient = new LambdaCreateClientCache(() => this.lambdaClient);
|
|
@@ -9678,8 +9660,7 @@ var LambdaUrlProvider = class {
|
|
|
9678
9660
|
}
|
|
9679
9661
|
};
|
|
9680
9662
|
|
|
9681
|
-
|
|
9682
|
-
//#region src/provisioning/providers/orphan-report.ts
|
|
9663
|
+
// src/provisioning/providers/orphan-report.ts
|
|
9683
9664
|
async function orphanCommandRegionArg(client, aws) {
|
|
9684
9665
|
let region;
|
|
9685
9666
|
try {
|
|
@@ -9744,8 +9725,7 @@ async function reportPossibleOrphans(logicalId, window, log, lookup) {
|
|
|
9744
9725
|
log.warn(`${lead} (${when}), and ${service} may have created ${lookup.subject} then that no cdkd state records. ${found.ids.length} ${lookup.noun} match that this deploy did not record: ${shown.join(", ")}${more}. ${service} reports no creation time for them, so any of them may instead be this stack's own recorded one, another stack's, or older than this deploy; cdkd does not adopt or delete them. ${afterward} Inspect each before deleting anything: ${inspect}.${incomplete}`);
|
|
9745
9726
|
}
|
|
9746
9727
|
|
|
9747
|
-
|
|
9748
|
-
//#region src/provisioning/providers/lambda-eventsource-provider.ts
|
|
9728
|
+
// src/provisioning/providers/lambda-eventsource-provider.ts
|
|
9749
9729
|
const createEventSourceMappingLatch = new AmbiguousCreateLatch("lambda:CreateEventSourceMapping");
|
|
9750
9730
|
const mappingsCreatedByThisProcess = new RecentIdSet();
|
|
9751
9731
|
const ARN_SERVICE_RE = /^arn:aws[a-z0-9-]*:([^:]+):/;
|
|
@@ -10364,8 +10344,7 @@ var LambdaEventSourceMappingProvider = class {
|
|
|
10364
10344
|
}
|
|
10365
10345
|
};
|
|
10366
10346
|
|
|
10367
|
-
|
|
10368
|
-
//#region src/provisioning/providers/lambda-layer-provider.ts
|
|
10347
|
+
// src/provisioning/providers/lambda-layer-provider.ts
|
|
10369
10348
|
const publishLayerVersionLatch = new AmbiguousCreateLatch("lambda:PublishLayerVersion");
|
|
10370
10349
|
const versionsPublishedByThisProcess = new RecentIdSet();
|
|
10371
10350
|
function parseLayerCreatedDate(value) {
|
|
@@ -10556,8 +10535,7 @@ var LambdaLayerVersionProvider = class {
|
|
|
10556
10535
|
}
|
|
10557
10536
|
};
|
|
10558
10537
|
|
|
10559
|
-
|
|
10560
|
-
//#region src/provisioning/providers/lambda-event-invoke-config-provider.ts
|
|
10538
|
+
// src/provisioning/providers/lambda-event-invoke-config-provider.ts
|
|
10561
10539
|
function stringOrUndefined(value) {
|
|
10562
10540
|
return typeof value === "string" ? value : void 0;
|
|
10563
10541
|
}
|
|
@@ -10795,8 +10773,7 @@ var LambdaEventInvokeConfigProvider = class {
|
|
|
10795
10773
|
}
|
|
10796
10774
|
};
|
|
10797
10775
|
|
|
10798
|
-
|
|
10799
|
-
//#region src/provisioning/providers/lambda-microvm-image-provider.ts
|
|
10776
|
+
// src/provisioning/providers/lambda-microvm-image-provider.ts
|
|
10800
10777
|
var LambdaMicrovmImageProvider = class {
|
|
10801
10778
|
client;
|
|
10802
10779
|
logger = getLogger().child("LambdaMicrovmImageProvider");
|
|
@@ -11165,8 +11142,7 @@ function isRecord$2(value) {
|
|
|
11165
11142
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
11166
11143
|
}
|
|
11167
11144
|
|
|
11168
|
-
|
|
11169
|
-
//#region src/provisioning/providers/lambda-web-function-arns.ts
|
|
11145
|
+
// src/provisioning/providers/lambda-web-function-arns.ts
|
|
11170
11146
|
const CHILD_ARN = /^(arn:[^:]+:lambda:[^:]+:\d{12}:web-function\/[^/]+)\/(revision|endpoint)\/([^/]+)$/;
|
|
11171
11147
|
function parseWebFunctionChildArn(arn, kind) {
|
|
11172
11148
|
const match = CHILD_ARN.exec(arn);
|
|
@@ -11200,8 +11176,7 @@ function sleep$1(ms) {
|
|
|
11200
11176
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
11201
11177
|
}
|
|
11202
11178
|
|
|
11203
|
-
|
|
11204
|
-
//#region src/provisioning/providers/lambda-web-function-revision-provider.ts
|
|
11179
|
+
// src/provisioning/providers/lambda-web-function-revision-provider.ts
|
|
11205
11180
|
const createRevisionLatch = new AmbiguousCreateLatch("lambda-web:CreateWebFunctionRevision");
|
|
11206
11181
|
const revisionsCreatedByThisProcess = new RecentIdSet();
|
|
11207
11182
|
var LambdaWebFunctionRevisionProvider = class {
|
|
@@ -11561,8 +11536,7 @@ function serviceConfigToCfn(config) {
|
|
|
11561
11536
|
return out;
|
|
11562
11537
|
}
|
|
11563
11538
|
|
|
11564
|
-
|
|
11565
|
-
//#region src/provisioning/providers/lambda-web-function-endpoint-provider.ts
|
|
11539
|
+
// src/provisioning/providers/lambda-web-function-endpoint-provider.ts
|
|
11566
11540
|
var LambdaWebFunctionEndpointProvider = class {
|
|
11567
11541
|
client;
|
|
11568
11542
|
logger = getLogger().child("LambdaWebFunctionEndpointProvider");
|
|
@@ -11924,8 +11898,7 @@ function buildAttributes$1(resp) {
|
|
|
11924
11898
|
return attributes;
|
|
11925
11899
|
}
|
|
11926
11900
|
|
|
11927
|
-
|
|
11928
|
-
//#region src/provisioning/providers/lambda-network-connector-provider.ts
|
|
11901
|
+
// src/provisioning/providers/lambda-network-connector-provider.ts
|
|
11929
11902
|
const POLL_INTERVAL_MS$2 = 1e3;
|
|
11930
11903
|
const MAX_POLL_ATTEMPTS = 1200;
|
|
11931
11904
|
var LambdaNetworkConnectorProvider = class {
|
|
@@ -12228,8 +12201,7 @@ function versionOfArn(arn) {
|
|
|
12228
12201
|
return match ? Number(match[1]) : void 0;
|
|
12229
12202
|
}
|
|
12230
12203
|
|
|
12231
|
-
|
|
12232
|
-
//#region src/provisioning/delete-gone-wait.ts
|
|
12204
|
+
// src/provisioning/delete-gone-wait.ts
|
|
12233
12205
|
async function waitForGoneAfterDelete(opts) {
|
|
12234
12206
|
const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
12235
12207
|
const now = opts.now ?? Date.now;
|
|
@@ -12280,8 +12252,7 @@ async function waitForGoneAfterDelete(opts) {
|
|
|
12280
12252
|
}
|
|
12281
12253
|
}
|
|
12282
12254
|
|
|
12283
|
-
|
|
12284
|
-
//#region src/provisioning/providers/dynamodb-table-provider.ts
|
|
12255
|
+
// src/provisioning/providers/dynamodb-table-provider.ts
|
|
12285
12256
|
function isTableName(id) {
|
|
12286
12257
|
return /^[A-Za-z0-9_.-]{3,255}$/.test(id);
|
|
12287
12258
|
}
|
|
@@ -12528,12 +12499,15 @@ function sentWarmThroughputMembers(value) {
|
|
|
12528
12499
|
function wasSentWarmThroughput(value) {
|
|
12529
12500
|
return sentWarmThroughputMembers(value).size > 0;
|
|
12530
12501
|
}
|
|
12531
|
-
function readbackWarmThroughput(live, members) {
|
|
12502
|
+
function readbackWarmThroughput(live, members, declared) {
|
|
12503
|
+
const moving = live.Status === "UPDATING" ? coerceWarmThroughput(declared)?.spec : void 0;
|
|
12532
12504
|
const out = {};
|
|
12533
12505
|
for (const member of WARM_THROUGHPUT_MEMBERS) {
|
|
12534
|
-
|
|
12506
|
+
const value = live[member];
|
|
12507
|
+
if (value === void 0) continue;
|
|
12535
12508
|
if (members !== void 0 && !members.has(member)) continue;
|
|
12536
|
-
|
|
12509
|
+
const target = moving?.[member];
|
|
12510
|
+
out[member] = target === void 0 ? value : Math.max(value, target);
|
|
12537
12511
|
}
|
|
12538
12512
|
return Object.keys(out).length > 0 ? out : void 0;
|
|
12539
12513
|
}
|
|
@@ -12595,7 +12569,7 @@ function reverseMapSecondaryIndex(live, desired, bagInformative) {
|
|
|
12595
12569
|
if (Object.keys(odt).length > 0) out["OnDemandThroughput"] = odt;
|
|
12596
12570
|
}
|
|
12597
12571
|
if ("WarmThroughput" in live && indexDeclares(desired, "WarmThroughput", bagInformative) && live.WarmThroughput) {
|
|
12598
|
-
const wt = readbackWarmThroughput(live.WarmThroughput, bagInformative ? sentWarmThroughputMembers(desired?.["WarmThroughput"]) : void 0);
|
|
12572
|
+
const wt = readbackWarmThroughput(live.WarmThroughput, bagInformative ? sentWarmThroughputMembers(desired?.["WarmThroughput"]) : void 0, bagInformative ? desired?.["WarmThroughput"] : void 0);
|
|
12599
12573
|
if (wt !== void 0) out["WarmThroughput"] = wt;
|
|
12600
12574
|
}
|
|
12601
12575
|
return out;
|
|
@@ -12953,7 +12927,14 @@ var DynamoDBTableProvider = class {
|
|
|
12953
12927
|
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
12928
|
warn(`${lsiMessage}; the LocalSecondaryIndexes change was not applied`);
|
|
12955
12929
|
}
|
|
12956
|
-
const
|
|
12930
|
+
const vectorIndexesChanged = JSON.stringify(properties["VectorIndexes"]) !== JSON.stringify(previousProperties["VectorIndexes"]);
|
|
12931
|
+
const vectorIndexShape = vectorIndexesChanged ? vectorIndexesShapeDetail(properties["VectorIndexes"]) : void 0;
|
|
12932
|
+
if (vectorIndexShape !== void 0) {
|
|
12933
|
+
const shapeMessage = `AWS::DynamoDB::Table ${logicalId}: ${vectorIndexShape}`;
|
|
12934
|
+
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);
|
|
12935
|
+
warn(`${shapeMessage}; the VectorIndexes change was not applied`);
|
|
12936
|
+
}
|
|
12937
|
+
const vectorIndexPlan = vectorIndexesChanged && vectorIndexShape === void 0 ? planVectorIndexUpdates(previousProperties["VectorIndexes"], properties["VectorIndexes"], table?.VectorIndexes ?? (table === void 0 ? void 0 : [])) : void 0;
|
|
12957
12938
|
if (vectorIndexPlan !== void 0 && vectorIndexPlan.changed.length > 0) {
|
|
12958
12939
|
const vectorMessage = `AWS::DynamoDB::Table ${logicalId}: VectorIndexes ${vectorIndexPlan.changed.map((n) => maskSecrets(n)).join(", ")} changed definition, which DynamoDB cannot modify in place`;
|
|
12959
12940
|
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 +14255,8 @@ var DynamoDBTableProvider = class {
|
|
|
14274
14255
|
if (Object.keys(odt).length > 0) result["OnDemandThroughput"] = odt;
|
|
14275
14256
|
}
|
|
14276
14257
|
if (table.WarmThroughput && declaresWarmThroughput(properties)) {
|
|
14277
|
-
const
|
|
14258
|
+
const informative = properties !== void 0 && desiredBagIsInformative(properties);
|
|
14259
|
+
const wt = readbackWarmThroughput(table.WarmThroughput, informative ? sentWarmThroughputMembers(properties["WarmThroughput"]) : void 0, informative ? properties["WarmThroughput"] : void 0);
|
|
14278
14260
|
if (wt !== void 0) result["WarmThroughput"] = wt;
|
|
14279
14261
|
}
|
|
14280
14262
|
let streamMembersRead = Promise.resolve();
|
|
@@ -14540,8 +14522,7 @@ function projectIndexesOnto(live, recorded, desired, attempted = /* @__PURE__ */
|
|
|
14540
14522
|
return kept.length > 0 ? kept : void 0;
|
|
14541
14523
|
}
|
|
14542
14524
|
|
|
14543
|
-
|
|
14544
|
-
//#region src/provisioning/providers/logs-loggroup-provider.ts
|
|
14525
|
+
// src/provisioning/providers/logs-loggroup-provider.ts
|
|
14545
14526
|
const LOG_GROUP_TYPE = "AWS::Logs::LogGroup";
|
|
14546
14527
|
function isLogGroupName(id) {
|
|
14547
14528
|
return /^[A-Za-z0-9._/#-]{1,512}$/.test(id);
|
|
@@ -15040,8 +15021,7 @@ var LogsLogGroupProvider = class {
|
|
|
15040
15021
|
}
|
|
15041
15022
|
};
|
|
15042
15023
|
|
|
15043
|
-
|
|
15044
|
-
//#region src/provisioning/providers/cloudwatch-alarm-provider.ts
|
|
15024
|
+
// src/provisioning/providers/cloudwatch-alarm-provider.ts
|
|
15045
15025
|
function isDefaultEvaluationWindow(value) {
|
|
15046
15026
|
if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
15047
15027
|
const keys = Object.keys(value);
|
|
@@ -15409,8 +15389,7 @@ var CloudWatchAlarmProvider = class {
|
|
|
15409
15389
|
}
|
|
15410
15390
|
};
|
|
15411
15391
|
|
|
15412
|
-
|
|
15413
|
-
//#region src/provisioning/providers/cloudwatch-anomaly-detector-provider.ts
|
|
15392
|
+
// src/provisioning/providers/cloudwatch-anomaly-detector-provider.ts
|
|
15414
15393
|
const ID_ATTRIBUTES = ["AnomalyDetectorId", "Id"];
|
|
15415
15394
|
var CloudWatchAnomalyDetectorProvider = class {
|
|
15416
15395
|
cloudWatchClient;
|
|
@@ -15579,8 +15558,7 @@ function hasDescriptor(params) {
|
|
|
15579
15558
|
return params.SingleMetricAnomalyDetector !== void 0 || params.MetricMathAnomalyDetector !== void 0 || params.Namespace !== void 0 || params.MetricName !== void 0;
|
|
15580
15559
|
}
|
|
15581
15560
|
|
|
15582
|
-
|
|
15583
|
-
//#region src/provisioning/providers/secretsmanager-secret-provider.ts
|
|
15561
|
+
// src/provisioning/providers/secretsmanager-secret-provider.ts
|
|
15584
15562
|
function asJson(value) {
|
|
15585
15563
|
return value === void 0 ? void 0 : JSON.parse(JSON.stringify(value));
|
|
15586
15564
|
}
|
|
@@ -16019,8 +15997,7 @@ var SecretsManagerSecretProvider = class {
|
|
|
16019
15997
|
}
|
|
16020
15998
|
};
|
|
16021
15999
|
|
|
16022
|
-
|
|
16023
|
-
//#region src/provisioning/providers/ssm-parameter-provider.ts
|
|
16000
|
+
// src/provisioning/providers/ssm-parameter-provider.ts
|
|
16024
16001
|
var SSMParameterProvider = class SSMParameterProvider {
|
|
16025
16002
|
ssmClient;
|
|
16026
16003
|
createClient;
|
|
@@ -16310,8 +16287,7 @@ function ssmPoliciesParameter(policies) {
|
|
|
16310
16287
|
return JSON.stringify(policies);
|
|
16311
16288
|
}
|
|
16312
16289
|
|
|
16313
|
-
|
|
16314
|
-
//#region src/provisioning/providers/eventbridge-rule-provider.ts
|
|
16290
|
+
// src/provisioning/providers/eventbridge-rule-provider.ts
|
|
16315
16291
|
var EventBridgeRuleProvider = class {
|
|
16316
16292
|
eventBridgeClient;
|
|
16317
16293
|
logger = getLogger().child("EventBridgeRuleProvider");
|
|
@@ -16752,8 +16728,7 @@ var EventBridgeRuleProvider = class {
|
|
|
16752
16728
|
}
|
|
16753
16729
|
};
|
|
16754
16730
|
|
|
16755
|
-
|
|
16756
|
-
//#region src/provisioning/providers/eventbridge-bus-provider.ts
|
|
16731
|
+
// src/provisioning/providers/eventbridge-bus-provider.ts
|
|
16757
16732
|
function sanitizeDeadLetterConfig(value) {
|
|
16758
16733
|
if (value === null || value === void 0) return void 0;
|
|
16759
16734
|
if (typeof value !== "object") return void 0;
|
|
@@ -17039,8 +17014,7 @@ var EventBridgeBusProvider = class {
|
|
|
17039
17014
|
}
|
|
17040
17015
|
};
|
|
17041
17016
|
|
|
17042
|
-
|
|
17043
|
-
//#region src/provisioning/providers/ec2-provider.ts
|
|
17017
|
+
// src/provisioning/providers/ec2-provider.ts
|
|
17044
17018
|
const EC2_VPC_GATEWAY_ATTACHMENT_ID_FORMAT = {
|
|
17045
17019
|
label: "VPCGatewayAttachment",
|
|
17046
17020
|
segments: ["gatewayId", "vpcId"]
|
|
@@ -21756,8 +21730,7 @@ function isDefaultEgressRule(rule) {
|
|
|
21756
21730
|
return true;
|
|
21757
21731
|
}
|
|
21758
21732
|
|
|
21759
|
-
|
|
21760
|
-
//#region src/provisioning/providers/apigateway-provider.ts
|
|
21733
|
+
// src/provisioning/providers/apigateway-provider.ts
|
|
21761
21734
|
const createAuthorizerLatch$1 = new AmbiguousCreateLatch("apigateway:CreateAuthorizer");
|
|
21762
21735
|
const createDeploymentLatch = new AmbiguousCreateLatch("apigateway:CreateDeployment");
|
|
21763
21736
|
const authorizersCreatedByThisProcess$1 = new RecentIdSet();
|
|
@@ -23355,8 +23328,7 @@ function methodChildCalls(ids, desired, previous) {
|
|
|
23355
23328
|
return calls;
|
|
23356
23329
|
}
|
|
23357
23330
|
|
|
23358
|
-
|
|
23359
|
-
//#region src/provisioning/providers/apigatewayv2-provider.ts
|
|
23331
|
+
// src/provisioning/providers/apigatewayv2-provider.ts
|
|
23360
23332
|
const createApiLatch = new AmbiguousCreateLatch("apigatewayv2:CreateApi");
|
|
23361
23333
|
const createIntegrationLatch = new AmbiguousCreateLatch("apigatewayv2:CreateIntegration");
|
|
23362
23334
|
const createAuthorizerLatch = new AmbiguousCreateLatch("apigatewayv2:CreateAuthorizer");
|
|
@@ -24825,8 +24797,7 @@ var ApiGatewayV2Provider = class ApiGatewayV2Provider {
|
|
|
24825
24797
|
}
|
|
24826
24798
|
};
|
|
24827
24799
|
|
|
24828
|
-
|
|
24829
|
-
//#region src/provisioning/providers/cloudfront-oai-provider.ts
|
|
24800
|
+
// src/provisioning/providers/cloudfront-oai-provider.ts
|
|
24830
24801
|
var CloudFrontOAIProvider = class {
|
|
24831
24802
|
cloudFrontClient;
|
|
24832
24803
|
logger = getLogger().child("CloudFrontOAIProvider");
|
|
@@ -24975,8 +24946,7 @@ var CloudFrontOAIProvider = class {
|
|
|
24975
24946
|
}
|
|
24976
24947
|
};
|
|
24977
24948
|
|
|
24978
|
-
|
|
24979
|
-
//#region src/provisioning/providers/cloudfront-oac-provider.ts
|
|
24949
|
+
// src/provisioning/providers/cloudfront-oac-provider.ts
|
|
24980
24950
|
var CloudFrontOACProvider = class {
|
|
24981
24951
|
cloudFrontClient;
|
|
24982
24952
|
createClient;
|
|
@@ -25141,8 +25111,7 @@ var CloudFrontOACProvider = class {
|
|
|
25141
25111
|
}
|
|
25142
25112
|
};
|
|
25143
25113
|
|
|
25144
|
-
|
|
25145
|
-
//#region src/provisioning/providers/cloudfront-distribution-provider.ts
|
|
25114
|
+
// src/provisioning/providers/cloudfront-distribution-provider.ts
|
|
25146
25115
|
function shownId(id) {
|
|
25147
25116
|
return isPlainImportValue(id) ? id : VALUE_NOT_SHOWN;
|
|
25148
25117
|
}
|
|
@@ -25820,8 +25789,7 @@ var CloudFrontDistributionProvider = class {
|
|
|
25820
25789
|
}
|
|
25821
25790
|
};
|
|
25822
25791
|
|
|
25823
|
-
|
|
25824
|
-
//#region src/provisioning/providers/agentcore-case-convert.ts
|
|
25792
|
+
// src/provisioning/providers/agentcore-case-convert.ts
|
|
25825
25793
|
function pascalToCamelCaseKeys(value, preserveKeys) {
|
|
25826
25794
|
if (value === null || value === void 0) return value;
|
|
25827
25795
|
if (Array.isArray(value)) return value.map((item) => pascalToCamelCaseKeys(item, preserveKeys));
|
|
@@ -25849,8 +25817,7 @@ function camelToPascalCaseKeys(value, preserveKeys) {
|
|
|
25849
25817
|
return value;
|
|
25850
25818
|
}
|
|
25851
25819
|
|
|
25852
|
-
|
|
25853
|
-
//#region src/provisioning/providers/agentcore-runtime-provider.ts
|
|
25820
|
+
// src/provisioning/providers/agentcore-runtime-provider.ts
|
|
25854
25821
|
const CFN_MAP_KEYS = /* @__PURE__ */ new Set(["Tags", "AdvertisedScopeMapping"]);
|
|
25855
25822
|
const SDK_MAP_KEYS = /* @__PURE__ */ new Set(["tags", "advertisedScopeMapping"]);
|
|
25856
25823
|
const RUNTIME_TAGS_WHAT = "a map of tag keys to scalar values or a list of tags with a non-empty string Key and a scalar Value";
|
|
@@ -26144,8 +26111,7 @@ var AgentCoreRuntimeProvider = class {
|
|
|
26144
26111
|
}
|
|
26145
26112
|
};
|
|
26146
26113
|
|
|
26147
|
-
|
|
26148
|
-
//#region src/provisioning/providers/agentcore-browser-provider.ts
|
|
26114
|
+
// src/provisioning/providers/agentcore-browser-provider.ts
|
|
26149
26115
|
const DEFAULT_BROWSER_ID = "aws.browser.v1";
|
|
26150
26116
|
var AgentCoreBrowserProvider = class {
|
|
26151
26117
|
client;
|
|
@@ -26219,8 +26185,7 @@ var AgentCoreBrowserProvider = class {
|
|
|
26219
26185
|
}
|
|
26220
26186
|
};
|
|
26221
26187
|
|
|
26222
|
-
|
|
26223
|
-
//#region src/provisioning/providers/agentcore-code-interpreter-provider.ts
|
|
26188
|
+
// src/provisioning/providers/agentcore-code-interpreter-provider.ts
|
|
26224
26189
|
const DEFAULT_CODE_INTERPRETER_ID = "aws.codeinterpreter.v1";
|
|
26225
26190
|
var AgentCoreCodeInterpreterProvider = class {
|
|
26226
26191
|
client;
|
|
@@ -26289,8 +26254,7 @@ var AgentCoreCodeInterpreterProvider = class {
|
|
|
26289
26254
|
}
|
|
26290
26255
|
};
|
|
26291
26256
|
|
|
26292
|
-
|
|
26293
|
-
//#region src/provisioning/providers/agentcore-evaluator-provider.ts
|
|
26257
|
+
// src/provisioning/providers/agentcore-evaluator-provider.ts
|
|
26294
26258
|
const CFN_PRESERVE_KEYS = /* @__PURE__ */ new Set(["AdditionalModelRequestFields"]);
|
|
26295
26259
|
const SDK_PRESERVE_KEYS = /* @__PURE__ */ new Set(["additionalModelRequestFields"]);
|
|
26296
26260
|
function evaluatorIdFromArn(arnOrId) {
|
|
@@ -26484,8 +26448,7 @@ var AgentCoreEvaluatorProvider = class {
|
|
|
26484
26448
|
}
|
|
26485
26449
|
};
|
|
26486
26450
|
|
|
26487
|
-
|
|
26488
|
-
//#region src/provisioning/providers/stepfunctions-provider.ts
|
|
26451
|
+
// src/provisioning/providers/stepfunctions-provider.ts
|
|
26489
26452
|
function stateMachineRevisionId(described) {
|
|
26490
26453
|
return described.revisionId ?? "INITIAL";
|
|
26491
26454
|
}
|
|
@@ -26893,8 +26856,7 @@ function wasMeaningfullyConfigured(value, discriminatorKey) {
|
|
|
26893
26856
|
return value[discriminatorKey] !== void 0;
|
|
26894
26857
|
}
|
|
26895
26858
|
|
|
26896
|
-
|
|
26897
|
-
//#region src/provisioning/providers/ecs-provider.ts
|
|
26859
|
+
// src/provisioning/providers/ecs-provider.ts
|
|
26898
26860
|
const registerTaskDefinitionLatch = new AmbiguousCreateLatch("ecs:RegisterTaskDefinition");
|
|
26899
26861
|
const taskDefinitionsRegisteredByThisProcess = new RecentIdSet();
|
|
26900
26862
|
function familyOfTaskDefinitionArn(arn) {
|
|
@@ -28511,8 +28473,7 @@ var ECSProvider = class {
|
|
|
28511
28473
|
}
|
|
28512
28474
|
};
|
|
28513
28475
|
|
|
28514
|
-
|
|
28515
|
-
//#region src/provisioning/providers/elbv2-provider.ts
|
|
28476
|
+
// src/provisioning/providers/elbv2-provider.ts
|
|
28516
28477
|
function loadBalancerNameFromArn(arn) {
|
|
28517
28478
|
return nameFromElbv2Arn(arn, ":loadbalancer/", 3);
|
|
28518
28479
|
}
|
|
@@ -30022,8 +29983,7 @@ var ELBv2Provider = class {
|
|
|
30022
29983
|
}
|
|
30023
29984
|
};
|
|
30024
29985
|
|
|
30025
|
-
|
|
30026
|
-
//#region src/provisioning/providers/rds-dbproxy-provider.ts
|
|
29986
|
+
// src/provisioning/providers/rds-dbproxy-provider.ts
|
|
30027
29987
|
const POLL_INTERVAL_MS$1 = 5e3;
|
|
30028
29988
|
const POLL_TIMEOUT_MS$1 = 18e5;
|
|
30029
29989
|
const RETAINED_ON_REMOVAL = [
|
|
@@ -30402,8 +30362,7 @@ var RDSDBProxyProvider = class {
|
|
|
30402
30362
|
}
|
|
30403
30363
|
};
|
|
30404
30364
|
|
|
30405
|
-
|
|
30406
|
-
//#region src/provisioning/providers/rds-dbproxy-endpoint-provider.ts
|
|
30365
|
+
// src/provisioning/providers/rds-dbproxy-endpoint-provider.ts
|
|
30407
30366
|
const POLL_INTERVAL_MS = 5e3;
|
|
30408
30367
|
const POLL_TIMEOUT_MS = 18e5;
|
|
30409
30368
|
var RDSDBProxyEndpointProvider = class {
|
|
@@ -30705,8 +30664,7 @@ var RDSDBProxyEndpointProvider = class {
|
|
|
30705
30664
|
}
|
|
30706
30665
|
};
|
|
30707
30666
|
|
|
30708
|
-
|
|
30709
|
-
//#region src/provisioning/providers/rds-dbproxy-targetgroup-provider.ts
|
|
30667
|
+
// src/provisioning/providers/rds-dbproxy-targetgroup-provider.ts
|
|
30710
30668
|
const RDS_TARGET_IDENTIFIER = /^[A-Za-z][A-Za-z0-9-]{0,62}$/;
|
|
30711
30669
|
function readTargetLists(values) {
|
|
30712
30670
|
const lists = {
|
|
@@ -31220,8 +31178,7 @@ function withoutKey(bag, key) {
|
|
|
31220
31178
|
return rest;
|
|
31221
31179
|
}
|
|
31222
31180
|
|
|
31223
|
-
|
|
31224
|
-
//#region src/provisioning/providers/docdb-shared.ts
|
|
31181
|
+
// src/provisioning/providers/docdb-shared.ts
|
|
31225
31182
|
function wrapDocDBFailure(logger, mask, error, build) {
|
|
31226
31183
|
const m = maskerOrIdentity(mask);
|
|
31227
31184
|
const failure = describeAwsFailure(error);
|
|
@@ -31230,6 +31187,41 @@ function wrapDocDBFailure(logger, mask, error, build) {
|
|
|
31230
31187
|
const wrapped = build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`);
|
|
31231
31188
|
return error instanceof Error ? markRedactedCause(wrapped) : wrapped;
|
|
31232
31189
|
}
|
|
31190
|
+
function docdbStringList(value) {
|
|
31191
|
+
if (value == null) return [];
|
|
31192
|
+
if (!Array.isArray(value)) return void 0;
|
|
31193
|
+
return value.every((item) => typeof item === "string") ? value : void 0;
|
|
31194
|
+
}
|
|
31195
|
+
function docdbLogExportChange(desired, previous) {
|
|
31196
|
+
const enable = [...new Set(desired)].filter((type) => !previous.includes(type));
|
|
31197
|
+
const disable = [...new Set(previous)].filter((type) => !desired.includes(type));
|
|
31198
|
+
if (enable.length === 0 && disable.length === 0) return void 0;
|
|
31199
|
+
return {
|
|
31200
|
+
...enable.length > 0 && { EnableLogTypes: enable },
|
|
31201
|
+
...disable.length > 0 && { DisableLogTypes: disable }
|
|
31202
|
+
};
|
|
31203
|
+
}
|
|
31204
|
+
function cfnCapacity(value) {
|
|
31205
|
+
const capacity = typeof value === "number" || typeof value === "string" && value.trim() !== "" ? Number(value) : NaN;
|
|
31206
|
+
return Number.isFinite(capacity) ? capacity : void 0;
|
|
31207
|
+
}
|
|
31208
|
+
function docdbServerlessScaling(value) {
|
|
31209
|
+
if (value == null) return void 0;
|
|
31210
|
+
if (typeof value !== "object" || Array.isArray(value)) return null;
|
|
31211
|
+
const { MinCapacity, MaxCapacity } = value;
|
|
31212
|
+
const min = cfnCapacity(MinCapacity);
|
|
31213
|
+
const max = cfnCapacity(MaxCapacity);
|
|
31214
|
+
if (min === void 0 || max === void 0) return null;
|
|
31215
|
+
return {
|
|
31216
|
+
MinCapacity: min,
|
|
31217
|
+
MaxCapacity: max
|
|
31218
|
+
};
|
|
31219
|
+
}
|
|
31220
|
+
function holdsDocDBPendingValue(value) {
|
|
31221
|
+
if (value === void 0 || value === null) return false;
|
|
31222
|
+
if (typeof value === "object") return Object.values(value).some(holdsDocDBPendingValue);
|
|
31223
|
+
return true;
|
|
31224
|
+
}
|
|
31233
31225
|
function isDocDBNotFoundError(error, faultName) {
|
|
31234
31226
|
if (!(error instanceof Error)) return false;
|
|
31235
31227
|
const name = error.name ?? "";
|
|
@@ -31269,8 +31261,7 @@ async function attachDocDBTags(client, logger, result, arn) {
|
|
|
31269
31261
|
}
|
|
31270
31262
|
}
|
|
31271
31263
|
|
|
31272
|
-
|
|
31273
|
-
//#region src/provisioning/providers/docdb-provider.ts
|
|
31264
|
+
// src/provisioning/providers/docdb-provider.ts
|
|
31274
31265
|
function masterUserPasswordToSend(properties, previousProperties, context) {
|
|
31275
31266
|
const desired = properties["MasterUserPassword"];
|
|
31276
31267
|
if (desired === void 0 || desired === null) return void 0;
|
|
@@ -31280,6 +31271,20 @@ function masterUserPasswordToSend(properties, previousProperties, context) {
|
|
|
31280
31271
|
return typeof desired === "string" && typeof recorded === "string" && recorded === desired && dynamicReferenceTokens(recorded).length === 0 && recorded !== "***" ? void 0 : desired;
|
|
31281
31272
|
}
|
|
31282
31273
|
const DOCDB_DEFAULT_PORT = 27017;
|
|
31274
|
+
const DOCDB_DEFAULT_STORAGE_TYPE = "standard";
|
|
31275
|
+
function rotateMasterUserPassword(properties, previousProperties, context) {
|
|
31276
|
+
if (context?.replayingState === true || context?.desiredFromAwsReadback === true) return false;
|
|
31277
|
+
return coerceCfnBoolean(properties["RotateMasterUserPassword"]) === true && coerceCfnBoolean(previousProperties["RotateMasterUserPassword"]) !== true;
|
|
31278
|
+
}
|
|
31279
|
+
function kmsKeyText(key) {
|
|
31280
|
+
return key.replace(/^arn:[^:]*:kms:[^:]*:[^:]*:/, "").replace(/^key\//, "");
|
|
31281
|
+
}
|
|
31282
|
+
function sameKmsKey(a, b) {
|
|
31283
|
+
return b !== void 0 && kmsKeyText(a) === kmsKeyText(b);
|
|
31284
|
+
}
|
|
31285
|
+
function declaredChange(desired, recorded, live) {
|
|
31286
|
+
return desired != null && String(desired) !== String(recorded ?? live);
|
|
31287
|
+
}
|
|
31283
31288
|
const DOCDB_CLUSTER_KEPT_ON_REMOVAL = [
|
|
31284
31289
|
"DeletionProtection",
|
|
31285
31290
|
"BackupRetentionPeriod",
|
|
@@ -31287,17 +31292,38 @@ const DOCDB_CLUSTER_KEPT_ON_REMOVAL = [
|
|
|
31287
31292
|
"EngineVersion",
|
|
31288
31293
|
"PreferredBackupWindow",
|
|
31289
31294
|
"PreferredMaintenanceWindow",
|
|
31290
|
-
"DBClusterParameterGroupName"
|
|
31295
|
+
"DBClusterParameterGroupName",
|
|
31296
|
+
"CopyTagsToSnapshot",
|
|
31297
|
+
"EnableCloudwatchLogsExports",
|
|
31298
|
+
"StorageType",
|
|
31299
|
+
"ServerlessV2ScalingConfiguration",
|
|
31300
|
+
"MasterUserSecretKmsKeyId"
|
|
31301
|
+
];
|
|
31302
|
+
const DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL = ["NetworkType", "ManageMasterUserPassword"];
|
|
31303
|
+
const DOCDB_INSTANCE_KEPT_ON_REMOVAL = [
|
|
31304
|
+
"PreferredMaintenanceWindow",
|
|
31305
|
+
"CACertificateIdentifier",
|
|
31306
|
+
"EnablePerformanceInsights"
|
|
31307
|
+
];
|
|
31308
|
+
const CLUSTER_MODIFY_UNSETTLED_KEYS = [
|
|
31309
|
+
"CopyTagsToSnapshot",
|
|
31310
|
+
"EnableCloudwatchLogsExports",
|
|
31311
|
+
"NetworkType",
|
|
31312
|
+
"ServerlessV2ScalingConfiguration",
|
|
31313
|
+
"StorageType"
|
|
31291
31314
|
];
|
|
31292
|
-
const
|
|
31293
|
-
|
|
31315
|
+
const INSTANCE_MODIFY_UNSETTLED_KEYS = ["CACertificateIdentifier", "EnablePerformanceInsights"];
|
|
31316
|
+
const SETTLE_MAX_WAIT_MS = 3e5;
|
|
31317
|
+
const STORAGE_SETTLE_MAX_WAIT_MS = 18e5;
|
|
31318
|
+
const DEADLINE_MARGIN_MS = 3e4;
|
|
31319
|
+
function keptOnRemovalWarning$1(keys, properties, previousProperties, context, logicalId, resourceType, measured = true) {
|
|
31294
31320
|
const removedSet = context?.removedProperties ?? new Set(removedTemplateKeys(previousProperties, properties));
|
|
31295
31321
|
const removed = keys.filter((key) => removedSet.has(key));
|
|
31296
31322
|
if (removed.length === 0) return void 0;
|
|
31297
31323
|
const one = removed.length === 1;
|
|
31298
31324
|
const names = `${one ? "property" : "properties"} ${removed.join(", ")}`;
|
|
31299
31325
|
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"}.`;
|
|
31326
|
+
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
31327
|
}
|
|
31302
31328
|
const SECURITY_GROUP_CHANGE_MEMBER_STATUSES = /* @__PURE__ */ new Set(["modifying"]);
|
|
31303
31329
|
const PORT_CHANGE_MEMBER_STATUSES = /* @__PURE__ */ new Set(["modifying", "rebooting"]);
|
|
@@ -31341,6 +31367,7 @@ var DocDBProvider = class {
|
|
|
31341
31367
|
protectionFlips = new ProtectionFlipRegistry();
|
|
31342
31368
|
disableCcApiFallback = true;
|
|
31343
31369
|
removalHandledInUpdate = /* @__PURE__ */ new Map([["AWS::DocDB::DBCluster", /* @__PURE__ */ new Set([
|
|
31370
|
+
"AvailabilityZones",
|
|
31344
31371
|
"DBClusterIdentifier",
|
|
31345
31372
|
"DBSubnetGroupName",
|
|
31346
31373
|
"KmsKeyId",
|
|
@@ -31349,7 +31376,9 @@ var DocDBProvider = class {
|
|
|
31349
31376
|
"Port",
|
|
31350
31377
|
"Tags",
|
|
31351
31378
|
"MasterUserPassword",
|
|
31352
|
-
|
|
31379
|
+
"RotateMasterUserPassword",
|
|
31380
|
+
...DOCDB_CLUSTER_KEPT_ON_REMOVAL,
|
|
31381
|
+
...DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL
|
|
31353
31382
|
])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
|
|
31354
31383
|
"DBInstanceIdentifier",
|
|
31355
31384
|
"DBClusterIdentifier",
|
|
@@ -31357,6 +31386,7 @@ var DocDBProvider = class {
|
|
|
31357
31386
|
"DBInstanceClass",
|
|
31358
31387
|
"Tags",
|
|
31359
31388
|
"AutoMinorVersionUpgrade",
|
|
31389
|
+
"CertificateRotationRestart",
|
|
31360
31390
|
...DOCDB_INSTANCE_KEPT_ON_REMOVAL
|
|
31361
31391
|
])]]);
|
|
31362
31392
|
handledProperties = /* @__PURE__ */ new Map([["AWS::DocDB::DBCluster", /* @__PURE__ */ new Set([
|
|
@@ -31374,7 +31404,16 @@ var DocDBProvider = class {
|
|
|
31374
31404
|
"PreferredMaintenanceWindow",
|
|
31375
31405
|
"DBClusterParameterGroupName",
|
|
31376
31406
|
"DeletionProtection",
|
|
31377
|
-
"Tags"
|
|
31407
|
+
"Tags",
|
|
31408
|
+
"AvailabilityZones",
|
|
31409
|
+
"CopyTagsToSnapshot",
|
|
31410
|
+
"EnableCloudwatchLogsExports",
|
|
31411
|
+
"ManageMasterUserPassword",
|
|
31412
|
+
"MasterUserSecretKmsKeyId",
|
|
31413
|
+
"NetworkType",
|
|
31414
|
+
"RotateMasterUserPassword",
|
|
31415
|
+
"ServerlessV2ScalingConfiguration",
|
|
31416
|
+
"StorageType"
|
|
31378
31417
|
])], ["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
|
|
31379
31418
|
"DBInstanceIdentifier",
|
|
31380
31419
|
"DBInstanceClass",
|
|
@@ -31382,7 +31421,10 @@ var DocDBProvider = class {
|
|
|
31382
31421
|
"AvailabilityZone",
|
|
31383
31422
|
"PreferredMaintenanceWindow",
|
|
31384
31423
|
"AutoMinorVersionUpgrade",
|
|
31385
|
-
"Tags"
|
|
31424
|
+
"Tags",
|
|
31425
|
+
"CACertificateIdentifier",
|
|
31426
|
+
"CertificateRotationRestart",
|
|
31427
|
+
"EnablePerformanceInsights"
|
|
31386
31428
|
])]]);
|
|
31387
31429
|
getClient() {
|
|
31388
31430
|
if (!this.docdbClient) {
|
|
@@ -31404,8 +31446,8 @@ var DocDBProvider = class {
|
|
|
31404
31446
|
async create(logicalId, resourceType, properties, context) {
|
|
31405
31447
|
const mask = context?.maskSecrets;
|
|
31406
31448
|
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);
|
|
31449
|
+
case "AWS::DocDB::DBCluster": return this.createDBCluster(logicalId, resourceType, properties, mask, context?.replayingState === true);
|
|
31450
|
+
case "AWS::DocDB::DBInstance": return this.createDBInstance(logicalId, resourceType, properties, mask, context?.replayingState === true);
|
|
31409
31451
|
default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId);
|
|
31410
31452
|
}
|
|
31411
31453
|
}
|
|
@@ -31430,9 +31472,13 @@ var DocDBProvider = class {
|
|
|
31430
31472
|
const thrown = this.wrapCaughtError(mask, error, build);
|
|
31431
31473
|
return error instanceof Error && error.name.includes("NotFound") ? markNotGone(thrown) : thrown;
|
|
31432
31474
|
}
|
|
31433
|
-
async createDBCluster(logicalId, resourceType, properties, mask) {
|
|
31475
|
+
async createDBCluster(logicalId, resourceType, properties, mask, replayingState) {
|
|
31434
31476
|
this.logger.debug(`Creating DocDB DBCluster ${logicalId}`);
|
|
31435
31477
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
31478
|
+
const origin = { stateBorne: replayingState };
|
|
31479
|
+
const { logTypes, scaling } = this.readClusterBlocks(properties, resourceType, logicalId, origin, true);
|
|
31480
|
+
const managedPassword = this.readBooleanProperty("ManageMasterUserPassword", properties, resourceType, logicalId, origin);
|
|
31481
|
+
const password = this.passwordBesideManaged(managedPassword, false, properties["MasterUserPassword"], resourceType, logicalId, origin);
|
|
31436
31482
|
const dbClusterIdentifier = properties["DBClusterIdentifier"] || generatedNameFor("AWS::DocDB::DBCluster", logicalId);
|
|
31437
31483
|
let clusterCreated = false;
|
|
31438
31484
|
let createdResourceId;
|
|
@@ -31442,7 +31488,7 @@ var DocDBProvider = class {
|
|
|
31442
31488
|
Engine: "docdb",
|
|
31443
31489
|
EngineVersion: properties["EngineVersion"],
|
|
31444
31490
|
MasterUsername: properties["MasterUsername"],
|
|
31445
|
-
MasterUserPassword:
|
|
31491
|
+
MasterUserPassword: password,
|
|
31446
31492
|
Port: properties["Port"] != null ? Number(properties["Port"]) : void 0,
|
|
31447
31493
|
VpcSecurityGroupIds: properties["VpcSecurityGroupIds"],
|
|
31448
31494
|
DBSubnetGroupName: properties["DBSubnetGroupName"],
|
|
@@ -31453,6 +31499,14 @@ var DocDBProvider = class {
|
|
|
31453
31499
|
PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
|
|
31454
31500
|
DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
|
|
31455
31501
|
DeletionProtection: properties["DeletionProtection"],
|
|
31502
|
+
AvailabilityZones: properties["AvailabilityZones"],
|
|
31503
|
+
CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
|
|
31504
|
+
ManageMasterUserPassword: managedPassword,
|
|
31505
|
+
MasterUserSecretKmsKeyId: properties["MasterUserSecretKmsKeyId"],
|
|
31506
|
+
NetworkType: properties["NetworkType"],
|
|
31507
|
+
StorageType: properties["StorageType"],
|
|
31508
|
+
...logTypes !== void 0 && logTypes.length > 0 && { EnableCloudwatchLogsExports: logTypes },
|
|
31509
|
+
...scaling != null && { ServerlessV2ScalingConfiguration: scaling },
|
|
31456
31510
|
...tags.length > 0 && { Tags: tags }
|
|
31457
31511
|
}));
|
|
31458
31512
|
clusterCreated = true;
|
|
@@ -31474,10 +31528,26 @@ var DocDBProvider = class {
|
|
|
31474
31528
|
async updateDBCluster(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
31475
31529
|
this.logger.debug(`Updating DocDB DBCluster ${logicalId}: ${physicalId}`);
|
|
31476
31530
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
31531
|
+
const origin = {
|
|
31532
|
+
stateBorne: context?.replayingState === true || context?.desiredFromAwsReadback === true,
|
|
31533
|
+
physicalId
|
|
31534
|
+
};
|
|
31535
|
+
const { logTypes, scaling } = this.readClusterBlocks(properties, resourceType, logicalId, origin, false);
|
|
31536
|
+
const logExportConfig = logTypes === void 0 ? void 0 : docdbLogExportChange(logTypes, docdbStringList(previousProperties["EnableCloudwatchLogsExports"]) ?? []);
|
|
31477
31537
|
try {
|
|
31538
|
+
const credentials = await this.planMasterCredentials(physicalId, properties, previousProperties, resourceType, logicalId, context, origin);
|
|
31478
31539
|
const vpcSgIds = properties["VpcSecurityGroupIds"];
|
|
31479
31540
|
const sendVpcSgIds = vpcSgIds !== void 0 && vpcSgIds.length > 0;
|
|
31480
31541
|
const portToSend = clusterPortToSend(properties, previousProperties);
|
|
31542
|
+
const unrecorded = (key) => properties[key] != null && previousProperties[key] == null;
|
|
31543
|
+
const live = unrecorded("NetworkType") || unrecorded("StorageType") || logExportConfig?.EnableLogTypes !== void 0 ? await this.describeDBCluster(physicalId) : void 0;
|
|
31544
|
+
const networkType = properties["NetworkType"];
|
|
31545
|
+
const networkChange = declaredChange(networkType, previousProperties["NetworkType"], live?.NetworkType);
|
|
31546
|
+
const storageType = properties["StorageType"];
|
|
31547
|
+
const storageChange = declaredChange(storageType, previousProperties["StorageType"], live?.StorageType ?? DOCDB_DEFAULT_STORAGE_TYPE);
|
|
31548
|
+
const previousScaling = docdbServerlessScaling(previousProperties["ServerlessV2ScalingConfiguration"]);
|
|
31549
|
+
const scalingChange = scaling != null && (scaling.MinCapacity !== previousScaling?.MinCapacity || scaling.MaxCapacity !== previousScaling?.MaxCapacity);
|
|
31550
|
+
this.markChangedUnsettled(CLUSTER_MODIFY_UNSETTLED_KEYS, properties, previousProperties, context);
|
|
31481
31551
|
await this.getClient().send(new ModifyDBClusterCommand$1({
|
|
31482
31552
|
DBClusterIdentifier: physicalId,
|
|
31483
31553
|
EngineVersion: properties["EngineVersion"],
|
|
@@ -31487,15 +31557,40 @@ var DocDBProvider = class {
|
|
|
31487
31557
|
PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
|
|
31488
31558
|
DBClusterParameterGroupName: properties["DBClusterParameterGroupName"],
|
|
31489
31559
|
...sendVpcSgIds && { VpcSecurityGroupIds: vpcSgIds },
|
|
31490
|
-
MasterUserPassword:
|
|
31560
|
+
MasterUserPassword: credentials.password,
|
|
31491
31561
|
Port: portToSend,
|
|
31562
|
+
CopyTagsToSnapshot: properties["CopyTagsToSnapshot"],
|
|
31563
|
+
...rotateMasterUserPassword(properties, previousProperties, context) && { RotateMasterUserPassword: true },
|
|
31564
|
+
...credentials.managed !== void 0 && { ManageMasterUserPassword: credentials.managed },
|
|
31565
|
+
...credentials.secretKmsKey !== void 0 && { MasterUserSecretKmsKeyId: credentials.secretKmsKey },
|
|
31566
|
+
...networkChange && { NetworkType: networkType },
|
|
31567
|
+
...storageChange && { StorageType: storageType },
|
|
31568
|
+
...scalingChange && { ServerlessV2ScalingConfiguration: scaling },
|
|
31569
|
+
...logExportConfig !== void 0 && { CloudwatchLogsExportConfiguration: logExportConfig },
|
|
31492
31570
|
ApplyImmediately: true
|
|
31493
31571
|
}));
|
|
31572
|
+
const addedLogTypes = (logExportConfig?.EnableLogTypes ?? []).filter((type) => !live?.EnabledCloudwatchLogsExports?.includes(type));
|
|
31573
|
+
if (addedLogTypes.length > 0) context?.markAttempted?.("EnableCloudwatchLogsExports", addedLogTypes);
|
|
31494
31574
|
this.logger.debug(`Successfully updated DocDB DBCluster ${logicalId}`);
|
|
31495
31575
|
const noWait = process.env["CDKD_NO_WAIT"] === "true";
|
|
31496
31576
|
const portChanged = portToSend !== void 0 && portToSend !== numberOrUndefined(previousProperties["Port"]);
|
|
31497
31577
|
if (!noWait && portChanged) await this.waitForClusterPortApplied(physicalId, logicalId, portToSend);
|
|
31498
31578
|
const described = await this.describeDBCluster(physicalId);
|
|
31579
|
+
if (!noWait) {
|
|
31580
|
+
const { EnableLogTypes: enabled = [], DisableLogTypes: disabled = [] } = logExportConfig ?? {};
|
|
31581
|
+
const applied = /* @__PURE__ */ new Map();
|
|
31582
|
+
if (logExportConfig !== void 0) applied.set("EnableCloudwatchLogsExports", (cluster) => {
|
|
31583
|
+
const logs = cluster?.EnabledCloudwatchLogsExports;
|
|
31584
|
+
return enabled.every((type) => logs?.includes(type)) && !disabled.some((type) => logs?.includes(type));
|
|
31585
|
+
});
|
|
31586
|
+
if (networkChange) applied.set("NetworkType", (cluster) => cluster?.NetworkType === networkType);
|
|
31587
|
+
if (storageChange) applied.set("StorageType", (cluster) => (cluster?.StorageType ?? DOCDB_DEFAULT_STORAGE_TYPE) === storageType);
|
|
31588
|
+
if (scalingChange) applied.set("ServerlessV2ScalingConfiguration", (cluster) => {
|
|
31589
|
+
const live = cluster?.ServerlessV2ScalingConfiguration;
|
|
31590
|
+
return live?.MinCapacity === scaling?.MinCapacity && live?.MaxCapacity === scaling?.MaxCapacity;
|
|
31591
|
+
});
|
|
31592
|
+
await this.waitForApplied(logicalId, applied, () => this.describeDBCluster(physicalId), storageChange ? STORAGE_SETTLE_MAX_WAIT_MS : SETTLE_MAX_WAIT_MS);
|
|
31593
|
+
}
|
|
31499
31594
|
if (!noWait && portChanged) {
|
|
31500
31595
|
for (const member of described?.DBClusterMembers ?? []) if (member.DBInstanceIdentifier) await this.waitForMemberAfterClusterChange(member.DBInstanceIdentifier, logicalId, PORT_CHANGE_MEMBER_STATUSES, "port");
|
|
31501
31596
|
}
|
|
@@ -31506,15 +31601,20 @@ var DocDBProvider = class {
|
|
|
31506
31601
|
if (described?.DBClusterArn) await applyDocDBTagDiff(this.getClient(), this.logger, described.DBClusterArn, resourceType, logicalId, previousProperties["Tags"], properties["Tags"]);
|
|
31507
31602
|
const keptWarning = keptOnRemovalWarning$1(DOCDB_CLUSTER_KEPT_ON_REMOVAL, properties, previousProperties, context, logicalId, resourceType);
|
|
31508
31603
|
if (keptWarning !== void 0) this.logger.warn(keptWarning);
|
|
31604
|
+
const unmeasuredWarning = keptOnRemovalWarning$1(DOCDB_CLUSTER_UNMEASURED_ON_REMOVAL, properties, previousProperties, context, logicalId, resourceType, false);
|
|
31605
|
+
if (unmeasuredWarning !== void 0) this.logger.warn(unmeasuredWarning);
|
|
31606
|
+
if (credentials.heldWarning !== void 0) this.logger.warn(credentials.heldWarning);
|
|
31509
31607
|
return {
|
|
31510
31608
|
physicalId,
|
|
31511
31609
|
wasReplaced: false,
|
|
31512
31610
|
attributes: clusterAttributes(noWait && portChanged && described !== void 0 ? {
|
|
31513
31611
|
...described,
|
|
31514
31612
|
Port: portToSend
|
|
31515
|
-
} : described)
|
|
31613
|
+
} : described),
|
|
31614
|
+
...credentials.effectiveProperties !== void 0 && { effectiveProperties: credentials.effectiveProperties }
|
|
31516
31615
|
};
|
|
31517
31616
|
} catch (error) {
|
|
31617
|
+
if (error instanceof ProvisioningError) throw error;
|
|
31518
31618
|
const cause = error instanceof Error ? error : void 0;
|
|
31519
31619
|
throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update DocDB DBCluster ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
31520
31620
|
}
|
|
@@ -31596,9 +31696,10 @@ var DocDBProvider = class {
|
|
|
31596
31696
|
throw this.wrapDeleteError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete DocDB DBCluster ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
31597
31697
|
}
|
|
31598
31698
|
}
|
|
31599
|
-
async createDBInstance(logicalId, resourceType, properties, mask) {
|
|
31699
|
+
async createDBInstance(logicalId, resourceType, properties, mask, replayingState) {
|
|
31600
31700
|
this.logger.debug(`Creating DocDB DBInstance ${logicalId}`);
|
|
31601
31701
|
const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
31702
|
+
const insights = this.readBooleanProperty("EnablePerformanceInsights", properties, resourceType, logicalId, { stateBorne: replayingState });
|
|
31602
31703
|
const dbInstanceIdentifier = properties["DBInstanceIdentifier"] || generatedNameFor("AWS::DocDB::DBInstance", logicalId);
|
|
31603
31704
|
let instanceCreated = false;
|
|
31604
31705
|
let createdResourceId;
|
|
@@ -31611,6 +31712,8 @@ var DocDBProvider = class {
|
|
|
31611
31712
|
AvailabilityZone: properties["AvailabilityZone"],
|
|
31612
31713
|
PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
|
|
31613
31714
|
AutoMinorVersionUpgrade: properties["AutoMinorVersionUpgrade"],
|
|
31715
|
+
CACertificateIdentifier: properties["CACertificateIdentifier"],
|
|
31716
|
+
EnablePerformanceInsights: insights,
|
|
31614
31717
|
...tags.length > 0 && { Tags: tags }
|
|
31615
31718
|
}));
|
|
31616
31719
|
instanceCreated = true;
|
|
@@ -31633,13 +31736,25 @@ var DocDBProvider = class {
|
|
|
31633
31736
|
this.logger.debug(`Updating DocDB DBInstance ${logicalId}: ${physicalId}`);
|
|
31634
31737
|
const mask = context?.maskSecrets;
|
|
31635
31738
|
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
31739
|
+
const insights = this.readBooleanProperty("EnablePerformanceInsights", properties, resourceType, logicalId, {
|
|
31740
|
+
stateBorne: context?.replayingState === true || context?.desiredFromAwsReadback === true,
|
|
31741
|
+
physicalId
|
|
31742
|
+
});
|
|
31636
31743
|
try {
|
|
31744
|
+
const certificate = properties["CACertificateIdentifier"];
|
|
31745
|
+
const live = certificate != null && previousProperties["CACertificateIdentifier"] == null || insights !== void 0 && previousProperties["EnablePerformanceInsights"] == null ? await this.describeDBInstance(physicalId) : void 0;
|
|
31746
|
+
const certificateChange = declaredChange(certificate, previousProperties["CACertificateIdentifier"], live?.CACertificateIdentifier);
|
|
31747
|
+
const insightsChange = declaredChange(insights, previousProperties["EnablePerformanceInsights"], live?.PerformanceInsightsEnabled ?? false);
|
|
31748
|
+
this.markChangedUnsettled(INSTANCE_MODIFY_UNSETTLED_KEYS, properties, previousProperties, context);
|
|
31637
31749
|
await modifyDbInstanceWhenAvailable({
|
|
31638
31750
|
send: () => this.getClient().send(new ModifyDBInstanceCommand$1({
|
|
31639
31751
|
DBInstanceIdentifier: physicalId,
|
|
31640
31752
|
DBInstanceClass: properties["DBInstanceClass"],
|
|
31641
31753
|
PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
|
|
31642
31754
|
AutoMinorVersionUpgrade: properties["AutoMinorVersionUpgrade"],
|
|
31755
|
+
...certificateChange && { CACertificateIdentifier: certificate },
|
|
31756
|
+
...certificateChange && properties["CertificateRotationRestart"] != null && { CertificateRotationRestart: properties["CertificateRotationRestart"] },
|
|
31757
|
+
...insightsChange && { EnablePerformanceInsights: insights },
|
|
31643
31758
|
ApplyImmediately: true
|
|
31644
31759
|
})),
|
|
31645
31760
|
readStatus: async () => (await this.describeDBInstance(physicalId))?.DBInstanceStatus,
|
|
@@ -31650,6 +31765,12 @@ var DocDBProvider = class {
|
|
|
31650
31765
|
remainingMs: enclosingDeadlineRemainingMs()
|
|
31651
31766
|
});
|
|
31652
31767
|
this.logger.debug(`Successfully updated DocDB DBInstance ${logicalId}`);
|
|
31768
|
+
if (process.env["CDKD_NO_WAIT"] !== "true") {
|
|
31769
|
+
const applied = /* @__PURE__ */ new Map();
|
|
31770
|
+
if (certificateChange) applied.set("CACertificateIdentifier", (instance) => instance?.CACertificateIdentifier === certificate);
|
|
31771
|
+
if (insightsChange) applied.set("EnablePerformanceInsights", (instance) => instance?.PerformanceInsightsEnabled === insights);
|
|
31772
|
+
await this.waitForApplied(logicalId, applied, () => this.describeDBInstance(physicalId));
|
|
31773
|
+
}
|
|
31653
31774
|
const described = await this.describeDBInstance(physicalId);
|
|
31654
31775
|
if (described?.DBInstanceArn) await applyDocDBTagDiff(this.getClient(), this.logger, described.DBInstanceArn, resourceType, logicalId, previousProperties["Tags"], properties["Tags"]);
|
|
31655
31776
|
const keptWarning = keptOnRemovalWarning$1(DOCDB_INSTANCE_KEPT_ON_REMOVAL, properties, previousProperties, context, logicalId, resourceType);
|
|
@@ -31682,6 +31803,106 @@ var DocDBProvider = class {
|
|
|
31682
31803
|
throw this.wrapDeleteError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete DocDB DBInstance ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
31683
31804
|
}
|
|
31684
31805
|
}
|
|
31806
|
+
markChangedUnsettled(keys, properties, previousProperties, context) {
|
|
31807
|
+
for (const key of keys) if (properties[key] != null && !isDeepStrictEqual(properties[key], previousProperties[key])) context?.markUnsettled?.(key);
|
|
31808
|
+
}
|
|
31809
|
+
refuseBlock(logicalId, resourceType, physicalId, text) {
|
|
31810
|
+
throw markNonRetryable(new ProvisioningError(safeMsg`${resourceType === "AWS::DocDB::DBInstance" ? "DocDB DBInstance" : "DocDB DBCluster"} ${logicalId}: ${text}; nothing was changed.`, resourceType, logicalId, physicalId));
|
|
31811
|
+
}
|
|
31812
|
+
readClusterBlocks(properties, resourceType, logicalId, origin, creating) {
|
|
31813
|
+
const leaveOut = (key) => {
|
|
31814
|
+
this.logger.warn(safeMsg`${logicalId} (${resourceType}): the recorded ${key} is unusable, so it is not sent.`);
|
|
31815
|
+
};
|
|
31816
|
+
const rawLogs = properties["EnableCloudwatchLogsExports"];
|
|
31817
|
+
let logTypes = rawLogs == null ? void 0 : docdbStringList(rawLogs);
|
|
31818
|
+
if (rawLogs != null && logTypes === void 0) {
|
|
31819
|
+
if (!(creating && origin.stateBorne)) this.refuseBlock(logicalId, resourceType, origin.physicalId, "EnableCloudwatchLogsExports must be a list of strings");
|
|
31820
|
+
leaveOut("EnableCloudwatchLogsExports");
|
|
31821
|
+
logTypes = void 0;
|
|
31822
|
+
}
|
|
31823
|
+
const scaling = docdbServerlessScaling(properties["ServerlessV2ScalingConfiguration"]);
|
|
31824
|
+
if (scaling === null) {
|
|
31825
|
+
if (!origin.stateBorne) this.refuseBlock(logicalId, resourceType, origin.physicalId, "ServerlessV2ScalingConfiguration must be an object with both a numeric MinCapacity and a numeric MaxCapacity");
|
|
31826
|
+
leaveOut("ServerlessV2ScalingConfiguration");
|
|
31827
|
+
}
|
|
31828
|
+
return {
|
|
31829
|
+
logTypes,
|
|
31830
|
+
scaling
|
|
31831
|
+
};
|
|
31832
|
+
}
|
|
31833
|
+
async planMasterCredentials(physicalId, properties, previousProperties, resourceType, logicalId, context, origin) {
|
|
31834
|
+
const managed = this.readBooleanProperty("ManageMasterUserPassword", properties, resourceType, logicalId, origin);
|
|
31835
|
+
const changedPassword = masterUserPasswordToSend(properties, previousProperties, context);
|
|
31836
|
+
const recordedFlag = coerceCfnBoolean(previousProperties["ManageMasterUserPassword"]);
|
|
31837
|
+
const key = properties["MasterUserSecretKmsKeyId"];
|
|
31838
|
+
const recordedKey = previousProperties["MasterUserSecretKmsKeyId"];
|
|
31839
|
+
let managedSide = recordedFlag ?? false;
|
|
31840
|
+
let keyChange = key != null && !sameKmsKey(key, recordedKey);
|
|
31841
|
+
if (recordedFlag === void 0 && (changedPassword !== void 0 || managed !== void 0 || keyChange)) {
|
|
31842
|
+
const secret = (await this.describeDBCluster(physicalId))?.MasterUserSecret;
|
|
31843
|
+
managedSide = secret !== void 0;
|
|
31844
|
+
if (recordedKey === void 0 && secret?.KmsKeyId !== void 0 && key != null) keyChange = !sameKmsKey(key, secret.KmsKeyId) && !kmsKeyText(key).startsWith("alias/");
|
|
31845
|
+
}
|
|
31846
|
+
const leaving = managed === false && managedSide;
|
|
31847
|
+
const declared = properties["MasterUserPassword"];
|
|
31848
|
+
const declaredUsable = typeof declared === "string" && declared !== "***" && dynamicReferenceTokens(declared).length === 0;
|
|
31849
|
+
const password = leaving ? declaredUsable ? declared : void 0 : changedPassword;
|
|
31850
|
+
const modeChange = managed !== void 0 && managed !== managedSide;
|
|
31851
|
+
if (context?.desiredFromAwsReadback === true && modeChange) return {
|
|
31852
|
+
managed: void 0,
|
|
31853
|
+
secretKmsKey: void 0,
|
|
31854
|
+
password: void 0,
|
|
31855
|
+
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.`
|
|
31856
|
+
};
|
|
31857
|
+
if (origin.stateBorne && leaving && password === void 0) return {
|
|
31858
|
+
managed: void 0,
|
|
31859
|
+
secretKmsKey: void 0,
|
|
31860
|
+
password: void 0,
|
|
31861
|
+
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.`,
|
|
31862
|
+
effectiveProperties: {
|
|
31863
|
+
...properties,
|
|
31864
|
+
ManageMasterUserPassword: true
|
|
31865
|
+
}
|
|
31866
|
+
};
|
|
31867
|
+
const sendKey = key != null && (modeChange && managed === true || keyChange && (managed ?? managedSide));
|
|
31868
|
+
return {
|
|
31869
|
+
managed: modeChange || sendKey ? managed : void 0,
|
|
31870
|
+
secretKmsKey: sendKey ? key : void 0,
|
|
31871
|
+
password: this.passwordBesideManaged(managed, managed === void 0 && managedSide, password, resourceType, logicalId, origin),
|
|
31872
|
+
heldWarning: void 0
|
|
31873
|
+
};
|
|
31874
|
+
}
|
|
31875
|
+
readBooleanProperty(key, properties, resourceType, logicalId, origin) {
|
|
31876
|
+
const value = properties[key];
|
|
31877
|
+
if (value == null) return void 0;
|
|
31878
|
+
const flag = coerceCfnBoolean(value);
|
|
31879
|
+
if (flag !== void 0) return flag;
|
|
31880
|
+
if (!origin.stateBorne) this.refuseBlock(logicalId, resourceType, origin.physicalId, `${key} must be a boolean`);
|
|
31881
|
+
this.logger.warn(safeMsg`${logicalId} (${resourceType}): the recorded ${key} is unusable, so it is not sent.`);
|
|
31882
|
+
}
|
|
31883
|
+
passwordBesideManaged(managed, removedFromManaged, password, resourceType, logicalId, origin) {
|
|
31884
|
+
if (managed !== true && !removedFromManaged || password == null) return password;
|
|
31885
|
+
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");
|
|
31886
|
+
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.`);
|
|
31887
|
+
}
|
|
31888
|
+
async waitForApplied(logicalId, applied, read, maxWaitMs = SETTLE_MAX_WAIT_MS) {
|
|
31889
|
+
if (applied.size === 0) return;
|
|
31890
|
+
const capMs = Math.min(maxWaitMs, enclosingDeadlineRemainingMs() - DEADLINE_MARGIN_MS);
|
|
31891
|
+
const startTime = Date.now();
|
|
31892
|
+
let delay = 2e3;
|
|
31893
|
+
for (;;) {
|
|
31894
|
+
const live = await read();
|
|
31895
|
+
const pending = [...applied].filter(([, isApplied]) => !isApplied(live));
|
|
31896
|
+
if (pending.length === 0) return;
|
|
31897
|
+
if (Date.now() - startTime + delay >= capMs) {
|
|
31898
|
+
const keys = pending.map(([key]) => key).join(", ");
|
|
31899
|
+
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.`);
|
|
31900
|
+
return;
|
|
31901
|
+
}
|
|
31902
|
+
await this.sleep(delay);
|
|
31903
|
+
delay = Math.min(delay * 2, 1e4);
|
|
31904
|
+
}
|
|
31905
|
+
}
|
|
31685
31906
|
async describeDBCluster(dbClusterIdentifier) {
|
|
31686
31907
|
return (await this.getClient().send(new DescribeDBClustersCommand$1({ DBClusterIdentifier: dbClusterIdentifier }))).DBClusters?.[0];
|
|
31687
31908
|
}
|
|
@@ -31870,6 +32091,60 @@ var DocDBProvider = class {
|
|
|
31870
32091
|
sleep(ms) {
|
|
31871
32092
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
31872
32093
|
}
|
|
32094
|
+
getDriftUnknownPaths(resourceType) {
|
|
32095
|
+
if (resourceType === "AWS::DocDB::DBCluster") return [
|
|
32096
|
+
"AvailabilityZones",
|
|
32097
|
+
"MasterUserSecretKmsKeyId",
|
|
32098
|
+
"RotateMasterUserPassword"
|
|
32099
|
+
];
|
|
32100
|
+
if (resourceType === "AWS::DocDB::DBInstance") return ["CertificateRotationRestart"];
|
|
32101
|
+
return [];
|
|
32102
|
+
}
|
|
32103
|
+
getDriftUnorderedPaths(resourceType) {
|
|
32104
|
+
return resourceType === "AWS::DocDB::DBCluster" ? ["EnableCloudwatchLogsExports"] : [];
|
|
32105
|
+
}
|
|
32106
|
+
canonicalizeDriftProperties(resourceType, properties) {
|
|
32107
|
+
if (resourceType !== "AWS::DocDB::DBCluster") return properties;
|
|
32108
|
+
const out = { ...properties };
|
|
32109
|
+
const logs = out["EnableCloudwatchLogsExports"];
|
|
32110
|
+
if (Array.isArray(logs) && docdbStringList(logs) !== void 0) out["EnableCloudwatchLogsExports"] = [...new Set(logs)];
|
|
32111
|
+
const scaling = docdbServerlessScaling(out["ServerlessV2ScalingConfiguration"]);
|
|
32112
|
+
if (scaling != null) out["ServerlessV2ScalingConfiguration"] = scaling;
|
|
32113
|
+
return out;
|
|
32114
|
+
}
|
|
32115
|
+
canonicalizeUnsettledProperties(resourceType, properties) {
|
|
32116
|
+
return this.canonicalizeDriftProperties(resourceType, properties);
|
|
32117
|
+
}
|
|
32118
|
+
async readUnsettled(physicalId, logicalId, resourceType, names, recordedProperties, desiredProperties, attemptedItems) {
|
|
32119
|
+
const live = await this.readCurrentState(physicalId, logicalId, resourceType);
|
|
32120
|
+
if (resourceType !== "AWS::DocDB::DBCluster") return live;
|
|
32121
|
+
if (live === void 0 || live === RESOURCE_NOT_FOUND) return live;
|
|
32122
|
+
if (!names.has("EnableCloudwatchLogsExports")) return live;
|
|
32123
|
+
const key = "EnableCloudwatchLogsExports";
|
|
32124
|
+
const named = /* @__PURE__ */ new Set([
|
|
32125
|
+
...docdbStringList(recordedProperties?.[key]) ?? [],
|
|
32126
|
+
...docdbStringList(desiredProperties?.[key]) ?? [],
|
|
32127
|
+
...[...attemptedItems?.get(key) ?? []].filter(isUsableAttemptedName)
|
|
32128
|
+
]);
|
|
32129
|
+
return {
|
|
32130
|
+
...live,
|
|
32131
|
+
[key]: (live[key] ?? []).filter((type) => named.has(type))
|
|
32132
|
+
};
|
|
32133
|
+
}
|
|
32134
|
+
async unsettledInTransition(physicalId, _logicalId, resourceType, names, _recordedProperties, desiredProperties) {
|
|
32135
|
+
if (desiredProperties !== void 0) return /* @__PURE__ */ new Set();
|
|
32136
|
+
const unmoving = (status) => isProceedDbStatus(status) || status === "backing-up";
|
|
32137
|
+
try {
|
|
32138
|
+
if (resourceType === "AWS::DocDB::DBCluster") return unmoving((await this.describeDBCluster(physicalId))?.Status) ? /* @__PURE__ */ new Set() : names;
|
|
32139
|
+
if (resourceType === "AWS::DocDB::DBInstance") {
|
|
32140
|
+
const instance = await this.describeDBInstance(physicalId);
|
|
32141
|
+
return unmoving(instance?.DBInstanceStatus) && !holdsDocDBPendingValue(instance?.PendingModifiedValues) ? /* @__PURE__ */ new Set() : names;
|
|
32142
|
+
}
|
|
32143
|
+
return /* @__PURE__ */ new Set();
|
|
32144
|
+
} catch {
|
|
32145
|
+
return names;
|
|
32146
|
+
}
|
|
32147
|
+
}
|
|
31873
32148
|
async import(input) {
|
|
31874
32149
|
switch (input.resourceType) {
|
|
31875
32150
|
case "AWS::DocDB::DBInstance": return this.importDBInstance(input);
|
|
@@ -31901,6 +32176,8 @@ var DocDBProvider = class {
|
|
|
31901
32176
|
if (inst.AvailabilityZone !== void 0) result["AvailabilityZone"] = inst.AvailabilityZone;
|
|
31902
32177
|
if (inst.PreferredMaintenanceWindow !== void 0) result["PreferredMaintenanceWindow"] = inst.PreferredMaintenanceWindow;
|
|
31903
32178
|
if (inst.AutoMinorVersionUpgrade !== void 0) result["AutoMinorVersionUpgrade"] = inst.AutoMinorVersionUpgrade;
|
|
32179
|
+
if (inst.CACertificateIdentifier !== void 0) result["CACertificateIdentifier"] = inst.CACertificateIdentifier;
|
|
32180
|
+
result["EnablePerformanceInsights"] = inst.PerformanceInsightsEnabled ?? false;
|
|
31904
32181
|
if (inst.DBInstanceArn) await attachDocDBTags(this.getClient(), this.logger, result, inst.DBInstanceArn);
|
|
31905
32182
|
return result;
|
|
31906
32183
|
}
|
|
@@ -31928,6 +32205,16 @@ var DocDBProvider = class {
|
|
|
31928
32205
|
if (cluster.PreferredMaintenanceWindow !== void 0) result["PreferredMaintenanceWindow"] = cluster.PreferredMaintenanceWindow;
|
|
31929
32206
|
if (cluster.DBClusterParameterGroup !== void 0) result["DBClusterParameterGroupName"] = cluster.DBClusterParameterGroup;
|
|
31930
32207
|
if (cluster.DeletionProtection !== void 0) result["DeletionProtection"] = cluster.DeletionProtection;
|
|
32208
|
+
result["CopyTagsToSnapshot"] = cluster.CopyTagsToSnapshot ?? false;
|
|
32209
|
+
result["ManageMasterUserPassword"] = cluster.MasterUserSecret !== void 0;
|
|
32210
|
+
result["StorageType"] = cluster.StorageType ?? DOCDB_DEFAULT_STORAGE_TYPE;
|
|
32211
|
+
result["EnableCloudwatchLogsExports"] = cluster.EnabledCloudwatchLogsExports ?? [];
|
|
32212
|
+
if (cluster.NetworkType !== void 0) result["NetworkType"] = cluster.NetworkType;
|
|
32213
|
+
const { MinCapacity: min, MaxCapacity: max } = cluster.ServerlessV2ScalingConfiguration ?? {};
|
|
32214
|
+
if (min !== void 0 && max !== void 0) result["ServerlessV2ScalingConfiguration"] = {
|
|
32215
|
+
MinCapacity: min,
|
|
32216
|
+
MaxCapacity: max
|
|
32217
|
+
};
|
|
31931
32218
|
if (cluster.DBClusterArn) await attachDocDBTags(this.getClient(), this.logger, result, cluster.DBClusterArn);
|
|
31932
32219
|
return result;
|
|
31933
32220
|
}
|
|
@@ -31965,8 +32252,7 @@ function securityGroupListChanged(sent, previous) {
|
|
|
31965
32252
|
return [...sent].sort().join(" ") !== [...before].sort().join(" ");
|
|
31966
32253
|
}
|
|
31967
32254
|
|
|
31968
|
-
|
|
31969
|
-
//#region src/provisioning/providers/docdb-subnet-group-provider.ts
|
|
32255
|
+
// src/provisioning/providers/docdb-subnet-group-provider.ts
|
|
31970
32256
|
var DocDBSubnetGroupProvider = class {
|
|
31971
32257
|
docdbClient;
|
|
31972
32258
|
createClient;
|
|
@@ -32103,8 +32389,7 @@ var DocDBSubnetGroupProvider = class {
|
|
|
32103
32389
|
}
|
|
32104
32390
|
};
|
|
32105
32391
|
|
|
32106
|
-
|
|
32107
|
-
//#region src/provisioning/providers/route53-provider.ts
|
|
32392
|
+
// src/provisioning/providers/route53-provider.ts
|
|
32108
32393
|
function isZoneDisabledForMutationError(error) {
|
|
32109
32394
|
return error instanceof Error && error.message.includes("is marked disabled for mutation");
|
|
32110
32395
|
}
|
|
@@ -33259,8 +33544,7 @@ var Route53Provider = class {
|
|
|
33259
33544
|
}
|
|
33260
33545
|
};
|
|
33261
33546
|
|
|
33262
|
-
|
|
33263
|
-
//#region src/provisioning/providers/wafv2-provider.ts
|
|
33547
|
+
// src/provisioning/providers/wafv2-provider.ts
|
|
33264
33548
|
function sanitizeDescription(value) {
|
|
33265
33549
|
if (value === void 0 || value === null) return void 0;
|
|
33266
33550
|
if (typeof value === "string" && value.length === 0) return void 0;
|
|
@@ -33726,8 +34010,7 @@ var WAFv2WebACLProvider = class {
|
|
|
33726
34010
|
}
|
|
33727
34011
|
};
|
|
33728
34012
|
|
|
33729
|
-
|
|
33730
|
-
//#region src/provisioning/providers/cognito-provider.ts
|
|
34013
|
+
// src/provisioning/providers/cognito-provider.ts
|
|
33731
34014
|
const USER_POOL_ECHO_MEMBERS = [
|
|
33732
34015
|
"LambdaConfig",
|
|
33733
34016
|
"UserPoolAddOns",
|
|
@@ -34874,8 +35157,7 @@ var CognitoUserPoolProvider = class {
|
|
|
34874
35157
|
}
|
|
34875
35158
|
};
|
|
34876
35159
|
|
|
34877
|
-
|
|
34878
|
-
//#region src/provisioning/providers/elasticache-provider.ts
|
|
35160
|
+
// src/provisioning/providers/elasticache-provider.ts
|
|
34879
35161
|
const CACHE_DELETE_WAIT_MS = Math.max(6e5, slowCcOperationTimeoutMs("AWS::ElastiCache::CacheCluster", "DELETE"));
|
|
34880
35162
|
const NODE_TYPE_MODIFY_WAIT_MS = Math.max(36e5, slowCcOperationTimeoutMs("AWS::ElastiCache::CacheCluster", "UPDATE"));
|
|
34881
35163
|
const MODIFY_DROPPED_AFTER_MS = 12e4;
|
|
@@ -35521,8 +35803,7 @@ var ElastiCacheProvider = class {
|
|
|
35521
35803
|
}
|
|
35522
35804
|
};
|
|
35523
35805
|
|
|
35524
|
-
|
|
35525
|
-
//#region src/provisioning/providers/servicediscovery-provider.ts
|
|
35806
|
+
// src/provisioning/providers/servicediscovery-provider.ts
|
|
35526
35807
|
const PUBLIC_DNS_NAMESPACE_DEFAULT_SOA_TTL = 60;
|
|
35527
35808
|
const PRIVATE_DNS_NAMESPACE_DEFAULT_SOA_TTL = 15;
|
|
35528
35809
|
const CREATE_SERVICE_NAMESPACE_LAG_MAX_RETRIES = 9;
|
|
@@ -36455,8 +36736,7 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
|
|
|
36455
36736
|
}
|
|
36456
36737
|
};
|
|
36457
36738
|
|
|
36458
|
-
|
|
36459
|
-
//#region src/provisioning/providers/appsync-provider.ts
|
|
36739
|
+
// src/provisioning/providers/appsync-provider.ts
|
|
36460
36740
|
const createGraphqlApiLatch = new AmbiguousCreateLatch("CreateGraphqlApi");
|
|
36461
36741
|
const graphqlApisCreatedByThisProcess = new RecentIdSet();
|
|
36462
36742
|
const MAX_GRAPHQL_API_LIST_PAGES = 40;
|
|
@@ -38118,8 +38398,7 @@ var AppSyncProvider = class {
|
|
|
38118
38398
|
}
|
|
38119
38399
|
};
|
|
38120
38400
|
|
|
38121
|
-
|
|
38122
|
-
//#region src/provisioning/providers/glue-provider.ts
|
|
38401
|
+
// src/provisioning/providers/glue-provider.ts
|
|
38123
38402
|
const GLUE_TABLE_ID_FORMAT = {
|
|
38124
38403
|
label: "Glue Table",
|
|
38125
38404
|
segments: ["databaseName", "tableName"]
|
|
@@ -40460,8 +40739,7 @@ var GlueTriggerProvider = class {
|
|
|
40460
40739
|
}
|
|
40461
40740
|
};
|
|
40462
40741
|
|
|
40463
|
-
|
|
40464
|
-
//#region src/provisioning/providers/kms-provider.ts
|
|
40742
|
+
// src/provisioning/providers/kms-provider.ts
|
|
40465
40743
|
const createKeyLatch = new AmbiguousCreateLatch("CreateKey");
|
|
40466
40744
|
const keysCreatedByThisProcess = new RecentIdSet();
|
|
40467
40745
|
const pendingKeys = /* @__PURE__ */ new Map();
|
|
@@ -41092,8 +41370,7 @@ function templateBool(value) {
|
|
|
41092
41370
|
return Boolean(value);
|
|
41093
41371
|
}
|
|
41094
41372
|
|
|
41095
|
-
|
|
41096
|
-
//#region src/provisioning/providers/budgets-budget-provider.ts
|
|
41373
|
+
// src/provisioning/providers/budgets-budget-provider.ts
|
|
41097
41374
|
const BUDGET_LIST_WHAT = {
|
|
41098
41375
|
NotificationsWithSubscribers: "entries with a Notification (NotificationType, ComparisonOperator, numeric Threshold) and Subscribers (SubscriptionType, Address)",
|
|
41099
41376
|
ResourceTags: "tags with a string Key"
|
|
@@ -41828,8 +42105,7 @@ var BudgetsBudgetProvider = class {
|
|
|
41828
42105
|
}
|
|
41829
42106
|
};
|
|
41830
42107
|
|
|
41831
|
-
|
|
41832
|
-
//#region src/provisioning/providers/kinesis-provider.ts
|
|
42108
|
+
// src/provisioning/providers/kinesis-provider.ts
|
|
41833
42109
|
function isKmsEncryption(value) {
|
|
41834
42110
|
if (!value) return false;
|
|
41835
42111
|
return value["EncryptionType"] === "KMS";
|
|
@@ -42489,8 +42765,7 @@ var KinesisStreamProvider = class {
|
|
|
42489
42765
|
}
|
|
42490
42766
|
};
|
|
42491
42767
|
|
|
42492
|
-
|
|
42493
|
-
//#region src/provisioning/providers/kinesis-streamconsumer-provider.ts
|
|
42768
|
+
// src/provisioning/providers/kinesis-streamconsumer-provider.ts
|
|
42494
42769
|
function consumerArnParts(consumerArn) {
|
|
42495
42770
|
const at = consumerArn.lastIndexOf("/consumer/");
|
|
42496
42771
|
if (at <= 0) return void 0;
|
|
@@ -42711,8 +42986,7 @@ function tagListToMap(tags) {
|
|
|
42711
42986
|
return Object.fromEntries(tags.map((t) => [t.Key, t.Value]));
|
|
42712
42987
|
}
|
|
42713
42988
|
|
|
42714
|
-
|
|
42715
|
-
//#region src/provisioning/providers/scheduler-schedule-provider.ts
|
|
42989
|
+
// src/provisioning/providers/scheduler-schedule-provider.ts
|
|
42716
42990
|
const RECORDED_CREATION_DATE_KEY = "cdkd:CreationDate";
|
|
42717
42991
|
function recordedCreationDate(attributes) {
|
|
42718
42992
|
const value = attributes?.[RECORDED_CREATION_DATE_KEY];
|
|
@@ -43148,8 +43422,7 @@ var SchedulerScheduleProvider = class {
|
|
|
43148
43422
|
}
|
|
43149
43423
|
};
|
|
43150
43424
|
|
|
43151
|
-
|
|
43152
|
-
//#region src/provisioning/providers/pipes-provider.ts
|
|
43425
|
+
// src/provisioning/providers/pipes-provider.ts
|
|
43153
43426
|
const PIPE_TYPE = "AWS::Pipes::Pipe";
|
|
43154
43427
|
function isPipeName(id) {
|
|
43155
43428
|
return /^[.\-_A-Za-z0-9]{1,64}$/.test(id);
|
|
@@ -43783,8 +44056,7 @@ var PipesPipeProvider = class {
|
|
|
43783
44056
|
}
|
|
43784
44057
|
};
|
|
43785
44058
|
|
|
43786
|
-
|
|
43787
|
-
//#region src/provisioning/providers/server-clock.ts
|
|
44059
|
+
// src/provisioning/providers/server-clock.ts
|
|
43788
44060
|
const SERVER_CLOCK_MARGIN_MS = 5e3;
|
|
43789
44061
|
const CLOCK_FALLBACK_MARGIN_MS = 3e5;
|
|
43790
44062
|
const readings = /* @__PURE__ */ new WeakMap();
|
|
@@ -43821,8 +44093,7 @@ function earliestOwnCreationTime(firstSentLocalMs, reading) {
|
|
|
43821
44093
|
return firstSentLocalMs + (reading.serverDateMs - reading.receivedAtMs) - SERVER_CLOCK_MARGIN_MS;
|
|
43822
44094
|
}
|
|
43823
44095
|
|
|
43824
|
-
|
|
43825
|
-
//#region src/provisioning/providers/efs-provider.ts
|
|
44096
|
+
// src/provisioning/providers/efs-provider.ts
|
|
43826
44097
|
function samePosixUser(requested, described) {
|
|
43827
44098
|
if (requested == null || described == null) return requested == null && described == null;
|
|
43828
44099
|
const gids = (user) => JSON.stringify([...new Set(user.SecondaryGids ?? [])].sort((a, b) => a - b));
|
|
@@ -44664,8 +44935,7 @@ var EFSProvider = class {
|
|
|
44664
44935
|
}
|
|
44665
44936
|
};
|
|
44666
44937
|
|
|
44667
|
-
|
|
44668
|
-
//#region src/provisioning/providers/fsx-filesystem-provider.ts
|
|
44938
|
+
// src/provisioning/providers/fsx-filesystem-provider.ts
|
|
44669
44939
|
const DEFAULT_MAX_WAIT_MS$3 = 36e5;
|
|
44670
44940
|
const DEFAULT_POLL_INTERVAL_MS$3 = 15e3;
|
|
44671
44941
|
const FILE_SYSTEM_ID_PATTERN = /^fs-[0-9a-f]+$/;
|
|
@@ -45895,8 +46165,7 @@ var FSxFileSystemProvider = class {
|
|
|
45895
46165
|
}
|
|
45896
46166
|
};
|
|
45897
46167
|
|
|
45898
|
-
|
|
45899
|
-
//#region src/provisioning/emr-configuration.ts
|
|
46168
|
+
// src/provisioning/emr-configuration.ts
|
|
45900
46169
|
function isRecord$1(value) {
|
|
45901
46170
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
45902
46171
|
}
|
|
@@ -45943,8 +46212,7 @@ function toSdkInstanceTypeConfigs(value) {
|
|
|
45943
46212
|
});
|
|
45944
46213
|
}
|
|
45945
46214
|
|
|
45946
|
-
|
|
45947
|
-
//#region src/provisioning/providers/emr-instance-group-config-provider.ts
|
|
46215
|
+
// src/provisioning/providers/emr-instance-group-config-provider.ts
|
|
45948
46216
|
const DEFAULT_MAX_WAIT_MS$2 = 36e5;
|
|
45949
46217
|
const DEFAULT_POLL_INTERVAL_MS$2 = 15e3;
|
|
45950
46218
|
const READY_STATES$1 = /* @__PURE__ */ new Set(["RUNNING"]);
|
|
@@ -46318,8 +46586,7 @@ var EMRInstanceGroupConfigProvider = class {
|
|
|
46318
46586
|
}
|
|
46319
46587
|
};
|
|
46320
46588
|
|
|
46321
|
-
|
|
46322
|
-
//#region src/provisioning/providers/emr-instance-fleet-config-provider.ts
|
|
46589
|
+
// src/provisioning/providers/emr-instance-fleet-config-provider.ts
|
|
46323
46590
|
const DEFAULT_MAX_WAIT_MS$1 = 36e5;
|
|
46324
46591
|
const DEFAULT_POLL_INTERVAL_MS$1 = 15e3;
|
|
46325
46592
|
const READY_STATES = /* @__PURE__ */ new Set(["RUNNING"]);
|
|
@@ -46667,8 +46934,7 @@ var EMRInstanceFleetConfigProvider = class {
|
|
|
46667
46934
|
}
|
|
46668
46935
|
};
|
|
46669
46936
|
|
|
46670
|
-
|
|
46671
|
-
//#region src/provisioning/providers/emr-cluster-provider.ts
|
|
46937
|
+
// src/provisioning/providers/emr-cluster-provider.ts
|
|
46672
46938
|
const DEFAULT_MAX_WAIT_MS = 36e5;
|
|
46673
46939
|
const DEFAULT_POLL_INTERVAL_MS = 15e3;
|
|
46674
46940
|
const CREATE_READY_STATES = /* @__PURE__ */ new Set(["WAITING", "RUNNING"]);
|
|
@@ -47670,8 +47936,7 @@ var EMRClusterProvider = class {
|
|
|
47670
47936
|
}
|
|
47671
47937
|
};
|
|
47672
47938
|
|
|
47673
|
-
|
|
47674
|
-
//#region src/provisioning/providers/firehose-provider.ts
|
|
47939
|
+
// src/provisioning/providers/firehose-provider.ts
|
|
47675
47940
|
const ENCRYPTION_KEY = "DeliveryStreamEncryptionConfigurationInput";
|
|
47676
47941
|
function readEncryptionInput(value, emptyIsAbsent) {
|
|
47677
47942
|
if (value === void 0 || value === null) return { kind: "absent" };
|
|
@@ -47756,6 +48021,7 @@ var FirehoseProvider = class {
|
|
|
47756
48021
|
"S3DestinationConfiguration",
|
|
47757
48022
|
"ExtendedS3DestinationConfiguration",
|
|
47758
48023
|
"KinesisStreamSourceConfiguration",
|
|
48024
|
+
"DirectPutSourceConfiguration",
|
|
47759
48025
|
"Tags",
|
|
47760
48026
|
"HttpEndpointDestinationConfiguration",
|
|
47761
48027
|
"RedshiftDestinationConfiguration",
|
|
@@ -47808,6 +48074,7 @@ var FirehoseProvider = class {
|
|
|
47808
48074
|
RoleARN: kinesisConfig["RoleArn"] || kinesisConfig["RoleARN"]
|
|
47809
48075
|
};
|
|
47810
48076
|
}
|
|
48077
|
+
if (properties["DirectPutSourceConfiguration"] !== void 0) input.DirectPutSourceConfiguration = { ThroughputHintInMBs: properties["DirectPutSourceConfiguration"]["ThroughputHintInMBs"] };
|
|
47811
48078
|
if (properties["HttpEndpointDestinationConfiguration"]) {
|
|
47812
48079
|
const httpConfig = properties["HttpEndpointDestinationConfiguration"];
|
|
47813
48080
|
const endpointConfig = httpConfig["EndpointConfiguration"];
|
|
@@ -48594,6 +48861,8 @@ var FirehoseProvider = class {
|
|
|
48594
48861
|
if (src.RoleARN !== void 0) srcOut["RoleARN"] = src.RoleARN;
|
|
48595
48862
|
if (Object.keys(srcOut).length > 0) result["KinesisStreamSourceConfiguration"] = srcOut;
|
|
48596
48863
|
}
|
|
48864
|
+
const directPut = desc.Source?.DirectPutSourceDescription;
|
|
48865
|
+
if (directPut?.ThroughputHintInMBs !== void 0) result["DirectPutSourceConfiguration"] = { ThroughputHintInMBs: directPut.ThroughputHintInMBs };
|
|
48597
48866
|
const dest = desc.Destinations?.[0];
|
|
48598
48867
|
if (dest?.ExtendedS3DestinationDescription) result["ExtendedS3DestinationConfiguration"] = mapExtendedS3DescriptionToCfn(dest.ExtendedS3DestinationDescription);
|
|
48599
48868
|
else if (dest?.S3DestinationDescription) result["S3DestinationConfiguration"] = mapS3DescriptionToCfn(dest.S3DestinationDescription);
|
|
@@ -48779,8 +49048,7 @@ function mapHttpEndpointDescriptionToCfn(desc) {
|
|
|
48779
49048
|
return out;
|
|
48780
49049
|
}
|
|
48781
49050
|
|
|
48782
|
-
|
|
48783
|
-
//#region src/provisioning/providers/cloudtrail-provider.ts
|
|
49051
|
+
// src/provisioning/providers/cloudtrail-provider.ts
|
|
48784
49052
|
const DEFAULT_EVENT_SELECTORS = Object.freeze([Object.freeze({
|
|
48785
49053
|
ReadWriteType: "All",
|
|
48786
49054
|
IncludeManagementEvents: true
|
|
@@ -49335,8 +49603,7 @@ var CloudTrailProvider = class {
|
|
|
49335
49603
|
}
|
|
49336
49604
|
};
|
|
49337
49605
|
|
|
49338
|
-
|
|
49339
|
-
//#region src/provisioning/providers/codebuild-provider.ts
|
|
49606
|
+
// src/provisioning/providers/codebuild-provider.ts
|
|
49340
49607
|
const DEFAULT_PROJECT_VISIBILITY = "PRIVATE";
|
|
49341
49608
|
const DEFAULT_ENCRYPTION_KEY = "alias/aws/s3";
|
|
49342
49609
|
function readVisibility(properties, mask) {
|
|
@@ -49860,8 +50127,7 @@ var CodeBuildProvider = class {
|
|
|
49860
50127
|
}
|
|
49861
50128
|
};
|
|
49862
50129
|
|
|
49863
|
-
|
|
49864
|
-
//#region src/provisioning/providers/codecommit-repository-provider.ts
|
|
50130
|
+
// src/provisioning/providers/codecommit-repository-provider.ts
|
|
49865
50131
|
function toSdkTagMap(tags) {
|
|
49866
50132
|
if (!tags || tags.length === 0) return void 0;
|
|
49867
50133
|
const out = {};
|
|
@@ -50396,8 +50662,7 @@ var CodeCommitRepositoryProvider = class {
|
|
|
50396
50662
|
}
|
|
50397
50663
|
};
|
|
50398
50664
|
|
|
50399
|
-
|
|
50400
|
-
//#region src/provisioning/providers/dlm-lifecycle-policy-provider.ts
|
|
50665
|
+
// src/provisioning/providers/dlm-lifecycle-policy-provider.ts
|
|
50401
50666
|
const KEPT_ON_REMOVAL = [
|
|
50402
50667
|
"Description",
|
|
50403
50668
|
"ExecutionRoleArn",
|
|
@@ -50684,8 +50949,7 @@ var DLMLifecyclePolicyProvider = class {
|
|
|
50684
50949
|
}
|
|
50685
50950
|
};
|
|
50686
50951
|
|
|
50687
|
-
|
|
50688
|
-
//#region src/provisioning/providers/s3-vectors-provider.ts
|
|
50952
|
+
// src/provisioning/providers/s3-vectors-provider.ts
|
|
50689
50953
|
var S3VectorsProvider = class {
|
|
50690
50954
|
client;
|
|
50691
50955
|
createClient;
|
|
@@ -50905,8 +51169,7 @@ var S3VectorsProvider = class {
|
|
|
50905
51169
|
}
|
|
50906
51170
|
};
|
|
50907
51171
|
|
|
50908
|
-
|
|
50909
|
-
//#region src/provisioning/providers/s3-directory-bucket-provider.ts
|
|
51172
|
+
// src/provisioning/providers/s3-directory-bucket-provider.ts
|
|
50910
51173
|
function notEmptyRefusalMessage(bucketName, maskSecrets) {
|
|
50911
51174
|
const mask = maskerOrIdentity(maskSecrets);
|
|
50912
51175
|
const secretDerived = mask(bucketName) !== bucketName;
|
|
@@ -51731,8 +51994,7 @@ var S3DirectoryBucketProvider = class {
|
|
|
51731
51994
|
}
|
|
51732
51995
|
};
|
|
51733
51996
|
|
|
51734
|
-
|
|
51735
|
-
//#region src/provisioning/providers/s3-tables-provider.ts
|
|
51997
|
+
// src/provisioning/providers/s3-tables-provider.ts
|
|
51736
51998
|
const S3_TABLES_NAMESPACE_ID_FORMAT = {
|
|
51737
51999
|
label: "S3 Tables Namespace",
|
|
51738
52000
|
segments: ["tableBucketARN", "namespace"]
|
|
@@ -52949,8 +53211,7 @@ var S3TablesProvider = class {
|
|
|
52949
53211
|
}
|
|
52950
53212
|
};
|
|
52951
53213
|
|
|
52952
|
-
|
|
52953
|
-
//#region src/provisioning/providers/ecr-provider.ts
|
|
53214
|
+
// src/provisioning/providers/ecr-provider.ts
|
|
52954
53215
|
var ECRProvider = class {
|
|
52955
53216
|
client;
|
|
52956
53217
|
createClient;
|
|
@@ -53243,8 +53504,7 @@ var ECRProvider = class {
|
|
|
53243
53504
|
}
|
|
53244
53505
|
};
|
|
53245
53506
|
|
|
53246
|
-
|
|
53247
|
-
//#region src/provisioning/nested-stack-messages.ts
|
|
53507
|
+
// src/provisioning/nested-stack-messages.ts
|
|
53248
53508
|
function nestedStackChildFailureMessage(childStackName, errorCount, alsoSkippedCount, alsoInterrupted, inspectCommand, holeNote = "") {
|
|
53249
53509
|
const extra = [];
|
|
53250
53510
|
if (alsoSkippedCount > 0) extra.push(`${alsoSkippedCount} resource(s) were also skipped`);
|
|
@@ -53252,8 +53512,7 @@ function nestedStackChildFailureMessage(childStackName, errorCount, alsoSkippedC
|
|
|
53252
53512
|
return `Nested stack ${childStackName} failed to destroy: ${errorCount} resource(s) failed to delete` + (extra.length > 0 ? ` (${extra.join("; ")})` : "") + ". The child's state is PRESERVED and still lists them — inspect it, resolve the failure, and re-run the destroy. The parent's record of this nested stack is kept so the child stays reachable." + holeNote + `\nInspect it with: ${inspectCommand}`;
|
|
53253
53513
|
}
|
|
53254
53514
|
|
|
53255
|
-
|
|
53256
|
-
//#region src/provisioning/providers/nested-stack-provider.ts
|
|
53515
|
+
// src/provisioning/providers/nested-stack-provider.ts
|
|
53257
53516
|
function isAbsoluteCrossPlatform(p) {
|
|
53258
53517
|
return isAbsoluteAssetPath(p);
|
|
53259
53518
|
}
|
|
@@ -53622,8 +53881,7 @@ function inheritedPhysicalNameCopiesOf(bag) {
|
|
|
53622
53881
|
return copies === void 0 || copies.size === 0 ? void 0 : new Set(copies);
|
|
53623
53882
|
}
|
|
53624
53883
|
|
|
53625
|
-
|
|
53626
|
-
//#region src/provisioning/providers/wait-condition-handle-provider.ts
|
|
53884
|
+
// src/provisioning/providers/wait-condition-handle-provider.ts
|
|
53627
53885
|
var WaitConditionHandleProvider = class {
|
|
53628
53886
|
logger = getLogger().child("WaitConditionHandleProvider");
|
|
53629
53887
|
handledProperties = /* @__PURE__ */ new Map([["AWS::CloudFormation::WaitConditionHandle", /* @__PURE__ */ new Set([])]]);
|
|
@@ -53660,8 +53918,7 @@ var WaitConditionHandleProvider = class {
|
|
|
53660
53918
|
}
|
|
53661
53919
|
};
|
|
53662
53920
|
|
|
53663
|
-
|
|
53664
|
-
//#region src/provisioning/providers/acm-certificate-provider.ts
|
|
53921
|
+
// src/provisioning/providers/acm-certificate-provider.ts
|
|
53665
53922
|
function certificateInUseByName(error) {
|
|
53666
53923
|
let current = error;
|
|
53667
53924
|
for (let depth = 0; depth < 5 && current instanceof Error; depth++) {
|
|
@@ -54059,6 +54316,5 @@ var ACMCertificateProvider = class {
|
|
|
54059
54316
|
}
|
|
54060
54317
|
};
|
|
54061
54318
|
|
|
54062
|
-
//#endregion
|
|
54063
54319
|
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-
|
|
54320
|
+
//# sourceMappingURL=provider-classes-ushrO6ri.js.map
|