@go-to-k/cdkd 0.303.3 → 0.304.1
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-C78Etom_.js → asg-provider-BKJrVAH4.js} +4 -4
- package/dist/{asg-provider-C78Etom_.js.map → asg-provider-BKJrVAH4.js.map} +1 -1
- package/dist/{aws-clients-BJ7dmM_T.js → aws-clients-WQOzP1x4.js} +11 -1
- package/dist/aws-clients-WQOzP1x4.js.map +1 -0
- package/dist/{aws-failure-text-w5_iao51.js → aws-failure-text-Durl920o.js} +10 -1
- package/dist/aws-failure-text-Durl920o.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{db-instance-modify-retry-f79-MmD9.js → db-instance-modify-retry-DfY7rzvu.js} +3 -3
- package/dist/{db-instance-modify-retry-f79-MmD9.js.map → db-instance-modify-retry-DfY7rzvu.js.map} +1 -1
- package/dist/{deploy-engine-hkkKHd7Q.js → deploy-engine-Dwe6OnF_.js} +9 -9
- package/dist/{deploy-engine-hkkKHd7Q.js.map → deploy-engine-Dwe6OnF_.js.map} +1 -1
- package/dist/{iam-policy-targets-NZn9Idzv.js → iam-policy-targets-OyoL9Woo.js} +3 -3
- package/dist/{iam-policy-targets-NZn9Idzv.js.map → iam-policy-targets-OyoL9Woo.js.map} +1 -1
- package/dist/{iam-role-provider-DWNqJC8n.js → iam-role-provider-bQvjvq2x.js} +5 -5
- package/dist/{iam-role-provider-DWNqJC8n.js.map → iam-role-provider-bQvjvq2x.js.map} +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/{neptune-provider-CrzS-Bb7.js → neptune-provider-CIAyTNad.js} +5 -5
- package/dist/{neptune-provider-CrzS-Bb7.js.map → neptune-provider-CIAyTNad.js.map} +1 -1
- package/dist/{program-6n7mQJ_G.js → program-DuL51vnF.js} +24 -8
- package/dist/program-DuL51vnF.js.map +1 -0
- package/dist/{provider-classes-MEnHTWQs.js → provider-classes-Rf-SVs3I.js} +128 -34
- package/dist/provider-classes-Rf-SVs3I.js.map +1 -0
- package/dist/{rds-provider-D85k2Kx_.js → rds-provider-p_5gnXcp.js} +5 -5
- package/dist/{rds-provider-D85k2Kx_.js.map → rds-provider-p_5gnXcp.js.map} +1 -1
- package/dist/{version-CaXjO7GD.js → version-EpZTW7nR.js} +2 -2
- package/dist/{version-CaXjO7GD.js.map → version-EpZTW7nR.js.map} +1 -1
- package/package.json +2 -2
- package/dist/aws-clients-BJ7dmM_T.js.map +0 -1
- package/dist/aws-failure-text-w5_iao51.js.map +0 -1
- package/dist/program-6n7mQJ_G.js.map +0 -1
- package/dist/provider-classes-MEnHTWQs.js.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { r as getAwsClients } from "./aws-clients-
|
|
2
|
-
import { B as SECRET_REF_MAX_CODE_POINTS, C as generateResourceName, D as getCurrentStackInstanceId, J as displayStackName, K as displayIdent, M as recordedGeneratedNameKept, Q as safeMsg, T as generatedNameFor, Y as isPasteableIdent, Z as plainIdentOr, a as safeStringify, i as isAwsAuthoredFailure, k as isBeforeStateRead, n as describeAwsFailure, q as displaySafe, r as describeAwsStatusReason, s as getLogger, t as VERBOSE_POINTER, w as generateResourceNameWithFallback } from "./aws-failure-text-
|
|
3
|
-
import { $ as userPoolProtectionSite, $t as injectiveKeyPrefix, A as isPlainImportJson, C as setBounded, Cr as markNonRetryable, Ct as createMaskedLogSinks, D as markNotGone, Dn as ResourceUpdateNotSupportedError, Dt as maskerOrIdentity, Et as maskDeep, F as refusalTypeShown, Ft as isAuxiliaryFailure, H as deleteWithProtectionCompensation, Hn as hasClauseBreak, I as remedyLogicalId, J as observeThenDisableProtection, K as isTerminalDeleteFailure, Kn as plainOrDescribed, L as resolveExplicitPhysicalId, Lt as markAuxiliaryFailure, M as isQuotableImportValue, N as normalizeAwsTagsToCfn, O as assertRegionMatch, Ot as withDerivedNameMasks, P as quotedRemedyLogicalId, Qt as injectiveKey, Rt as markCreatedBeforeFailure, S as replayedSendWindow, Sr as isThrottlingError, St as stateOrphanRecordRemedy, T as RESOURCE_NOT_FOUND, Tn as ProvisioningError, Tr as wrapMaskedAwsError, Tt as isSecretDerivedValue, Un as isInertUnquoted, V as deleteAfterProtectionFlipWithFinalSnapshot, Vn as commandHole, Wn as pasteableCommand, X as rdsFamilyProtectionSite, Xn as withheldTargetClause, Y as protectionFlipKey, Yn as shellQuote, _ as RecentIdSet, _r as isRetryableTransientError, _t as compositeIdSkipResult, a as onlySecretDerived, an as ambientCredentialConfig, ar as markNameCollision, at as protectedReplacementAdvice, b as isInsideWindow, br as THROTTLING_ERROR_NAMES, c as recordedPrincipalsRepair, cn as AccountIdUnavailableError, dr as explicitDenyPolicyKind, dt as startInterruptWatch, ft as ElapsedBudgetRegistry, g as AmbiguousCreateLatch, gt as compositeIdSeparatorRefusal, h as AMBIGUOUS_LATCH_TTL_MS, hr as isExplicitDenyError, ht as compositeIdFormatMessage, i as holdsSecretDerivedEntry, in as ambientClientDefaults, it as pasteableAwsCommand, j as isPlainImportValue, jt as clearCreatedBeforeFailure, k as VALUE_NOT_SHOWN, mr as isAmbiguousOutcomeError, mt as canonicalizeRoute53QueryName, nt as WITHHELD_AWS_COMMAND, o as readPrincipalLists, on as clientDefaultsFor, or as markReplayMayCollide, ot as renderDisableCommand, p as withRemovalDefaults, q as logGroupProtectionSite, r as SECRET_DERIVED_READ_LIVE, rn as withPasteableAwsProfile, rt as isAwsCliLiteral, sn as credentialFingerprint, sr as relayedNameCollision, tt as UNNAMEABLE_ID_CLAUSE, u as clearOnUpdateRemoval, un as CdkdError, ut as isInterruptedWaitError, v as ambiguousAttemptLead, vr as isTransientServerError, vt as logicalIdShown, w as withoutServerErrorRetries, wr as markRedactedCause, wt as createMaskedRetryLogger, x as replayFollowedAmbiguousAttempt, xr as isMarkedNonRetryable, xt as segmentAfterAnchor, y as createAttemptKey, yt as packCompositeId, z as ProtectionFlipRegistry, zt as markSupersedesEarlierCreate } from "./iam-policy-targets-
|
|
1
|
+
import { r as getAwsClients } from "./aws-clients-WQOzP1x4.js";
|
|
2
|
+
import { B as SECRET_REF_MAX_CODE_POINTS, C as generateResourceName, D as getCurrentStackInstanceId, J as displayStackName, K as displayIdent, M as recordedGeneratedNameKept, Q as safeMsg, T as generatedNameFor, Y as isPasteableIdent, Z as plainIdentOr, a as safeStringify, i as isAwsAuthoredFailure, k as isBeforeStateRead, n as describeAwsFailure, q as displaySafe, r as describeAwsStatusReason, s as getLogger, t as VERBOSE_POINTER, w as generateResourceNameWithFallback } from "./aws-failure-text-Durl920o.js";
|
|
3
|
+
import { $ as userPoolProtectionSite, $t as injectiveKeyPrefix, A as isPlainImportJson, C as setBounded, Cr as markNonRetryable, Ct as createMaskedLogSinks, D as markNotGone, Dn as ResourceUpdateNotSupportedError, Dt as maskerOrIdentity, Et as maskDeep, F as refusalTypeShown, Ft as isAuxiliaryFailure, H as deleteWithProtectionCompensation, Hn as hasClauseBreak, I as remedyLogicalId, J as observeThenDisableProtection, K as isTerminalDeleteFailure, Kn as plainOrDescribed, L as resolveExplicitPhysicalId, Lt as markAuxiliaryFailure, M as isQuotableImportValue, N as normalizeAwsTagsToCfn, O as assertRegionMatch, Ot as withDerivedNameMasks, P as quotedRemedyLogicalId, Qt as injectiveKey, Rt as markCreatedBeforeFailure, S as replayedSendWindow, Sr as isThrottlingError, St as stateOrphanRecordRemedy, T as RESOURCE_NOT_FOUND, Tn as ProvisioningError, Tr as wrapMaskedAwsError, Tt as isSecretDerivedValue, Un as isInertUnquoted, V as deleteAfterProtectionFlipWithFinalSnapshot, Vn as commandHole, Wn as pasteableCommand, X as rdsFamilyProtectionSite, Xn as withheldTargetClause, Y as protectionFlipKey, Yn as shellQuote, _ as RecentIdSet, _r as isRetryableTransientError, _t as compositeIdSkipResult, a as onlySecretDerived, an as ambientCredentialConfig, ar as markNameCollision, at as protectedReplacementAdvice, b as isInsideWindow, br as THROTTLING_ERROR_NAMES, c as recordedPrincipalsRepair, cn as AccountIdUnavailableError, dr as explicitDenyPolicyKind, dt as startInterruptWatch, ft as ElapsedBudgetRegistry, g as AmbiguousCreateLatch, gt as compositeIdSeparatorRefusal, h as AMBIGUOUS_LATCH_TTL_MS, hr as isExplicitDenyError, ht as compositeIdFormatMessage, i as holdsSecretDerivedEntry, in as ambientClientDefaults, it as pasteableAwsCommand, j as isPlainImportValue, jt as clearCreatedBeforeFailure, k as VALUE_NOT_SHOWN, mr as isAmbiguousOutcomeError, mt as canonicalizeRoute53QueryName, nt as WITHHELD_AWS_COMMAND, o as readPrincipalLists, on as clientDefaultsFor, or as markReplayMayCollide, ot as renderDisableCommand, p as withRemovalDefaults, q as logGroupProtectionSite, r as SECRET_DERIVED_READ_LIVE, rn as withPasteableAwsProfile, rt as isAwsCliLiteral, sn as credentialFingerprint, sr as relayedNameCollision, tt as UNNAMEABLE_ID_CLAUSE, u as clearOnUpdateRemoval, un as CdkdError, ut as isInterruptedWaitError, v as ambiguousAttemptLead, vr as isTransientServerError, vt as logicalIdShown, w as withoutServerErrorRetries, wr as markRedactedCause, wt as createMaskedRetryLogger, x as replayFollowedAmbiguousAttempt, xr as isMarkedNonRetryable, xt as segmentAfterAnchor, y as createAttemptKey, yt as packCompositeId, z as ProtectionFlipRegistry, zt as markSupersedesEarlierCreate } from "./iam-policy-targets-OyoL9Woo.js";
|
|
4
4
|
import { c as ambientRegion } from "./aws-client-defaults-BX9Y_fKp.js";
|
|
5
|
-
import { $r as markDeleteStarted, Aa as parseWebACLArn, Ai as deleteSkipReason, Ba as accountArgs, C as hasCdkAutoDeleteTag, Ds as sameLambdaFunctionAddress, Dt as lookupEachName, E as markRefusedBeforeApplying, Es as lambdaFunctionNameForMask, Et as isAccessDeniedError, F as findNestedTemplateTreeDefect, Fi as ec2InstanceProtectionSite, Fo as refuseMalformedResourcesForDestroy, Fu as resolveAssemblyPath, Gi as s3BucketArn, Gs as markSameGenerationBag, I as isAbsoluteAssetPath, Ii as isTerminationProtectionPropagationError, Ji as s3BucketRegionalDomainName, Jr as acquireIdempotencyToken, Js as snapshotPassProvenance, Ki as s3BucketDomainName, Kr as reserveStackCreateToken, Ks as redactForState, L as listNestedTemplateRows, Li as observeThenDisableInstanceApiTermination, Mi as isWaitAbandonedError, Mu as describeFileReadFailure, Na as passedParameterClassesOf, Ni as markWaitAbandoned, Nu as displayAssemblyPath, Ot as withApiLimit, Pu as renderAssemblyPathEscape, Qn as awaitInFlightSibling, Qr as isRefusedByName, R as renderNestedTemplateTreeDefect, Ri as reDisableInstanceApiTermination, S as S3_AUTO_DELETE_OBJECTS_TAG, T as getPriorAttempts, Ti as unchangedBehindSecretReference, Ts as canonicalLambdaFunctionName, Tt as chunks, W as enclosingDeadlineRemainingMs, Wi as isSettledInstanceState, Wr as earliestDefined, Yi as s3BucketWebsiteUrl, Yo as findSilentDropProperties, Zo as withoutSilentDropProperties, Zs as hasMaskableValues, _ as deleteTableWithIndexBusyRetry, _s as replayWarn, ai as tagMapAsList, an as isRedactedRecordedValue, b as waitForIndexesSettled, ba as getAccountInfo, bc as physicalNameCopiesOf, bs as requireConfigString, c as DynamoDBGlobalTableProvider, ci as stringifyIfAssigned, cl as timePhase, cs as isWarmThroughputDecrease, d as compensateRemovedDeletionProtection, dc as withoutPhysicalNameCopies, dl as stringifyValue, ds as coerceCfnBoolean, ea as outputReferenceProvenanceOf, ei as DBPROXY_TAGS_WHAT, er as getStackRecords, f as deleteBudgetKey, fs as coerceCfnInteger, g as INDEX_SETTLE_POLL_INTERVAL_MS, gl as rewriteTemplateAssetReferences, gs as readConfigString, h as DELETE_INDEX_WAIT_PROCEED_NOTE, ho as refuseMalformedNestedChildOutputs, hs as configStringRefusal, ht as withNestedStackContext, hu as decodeListingKey, ii as refuseMalformedDesiredTags, in as REDACTED_DELETE_ADDRESS_SKIP_REASON, ji as withIndeterminateGuard, jr as secretNamedAttributeNamesOf, l as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, ls as toCfnInteger, m as resolveDynamoDbDeleteBudgetMs, mi as waitForLambdaFunctionActive, ms as configIntegerRefusal, mt as getCurrentNestedStackContext, ni as planTagDiff, nn as getCurrentProducerRegions, nr as replacedDeleteFailureVerdict, oi as tagPlanWarning, on as redactedDeleteAddressFields, os as WARM_THROUGHPUT_MEMBERS, p as resolveDynamoDbDeleteBudgetClock, pc as dynamicReferenceTokens, ps as configBooleanRefusal, qi as s3BucketDualStackDomainName, qo as withheldAccountClause, qs as recordReferenceProvenanceEntry, ri as readTagList, si as definedAttributes, sn as redactedDeleteAddressSkip, ss as coerceWarmThroughput$1, st as getNestedRevertRun, t as DeployEngine, ti as DBPROXY_TAG_OPTIONS, u as beginDeleteWait, us as toFiniteNumber, ut as revertNestedChildFromJournal, v as maskedLogger, vi as getCurrentResourceSecrets, vs as requireConfigArray, vu as canonicalizeRegion, w as isTruthyCfnBoolean, wc as carriesSecretMask, wi as slowCcOperationTimeoutMs, ws as withRetry, x as ECR_AUTO_DELETE_IMAGES_TAG, xc as recordAttributeIdCopy, y as relayedIndexBusyDelete, yc as recoverMaskedOutput, ys as requireConfigObject, yu as derivePartitionAndUrlSuffix, zi as reEnableInstanceApiTermination, zs as passedNoEchoParametersOf } from "./deploy-engine-
|
|
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 { t as modifyDbInstanceWhenAvailable } from "./db-instance-modify-retry-
|
|
9
|
-
import { RDSProvider } from "./rds-provider-
|
|
10
|
-
import { NeptuneProvider } from "./neptune-provider-
|
|
11
|
-
import { ASGProvider } from "./asg-provider-
|
|
5
|
+
import { $r as markDeleteStarted, Aa as parseWebACLArn, Ai as deleteSkipReason, Ba as accountArgs, C as hasCdkAutoDeleteTag, Ds as sameLambdaFunctionAddress, Dt as lookupEachName, E as markRefusedBeforeApplying, Es as lambdaFunctionNameForMask, Et as isAccessDeniedError, F as findNestedTemplateTreeDefect, Fi as ec2InstanceProtectionSite, Fo as refuseMalformedResourcesForDestroy, Fu as resolveAssemblyPath, Gi as s3BucketArn, Gs as markSameGenerationBag, I as isAbsoluteAssetPath, Ii as isTerminationProtectionPropagationError, Ji as s3BucketRegionalDomainName, Jr as acquireIdempotencyToken, Js as snapshotPassProvenance, Ki as s3BucketDomainName, Kr as reserveStackCreateToken, Ks as redactForState, L as listNestedTemplateRows, Li as observeThenDisableInstanceApiTermination, Mi as isWaitAbandonedError, Mu as describeFileReadFailure, Na as passedParameterClassesOf, Ni as markWaitAbandoned, Nu as displayAssemblyPath, Ot as withApiLimit, Pu as renderAssemblyPathEscape, Qn as awaitInFlightSibling, Qr as isRefusedByName, R as renderNestedTemplateTreeDefect, Ri as reDisableInstanceApiTermination, S as S3_AUTO_DELETE_OBJECTS_TAG, T as getPriorAttempts, Ti as unchangedBehindSecretReference, Ts as canonicalLambdaFunctionName, Tt as chunks, W as enclosingDeadlineRemainingMs, Wi as isSettledInstanceState, Wr as earliestDefined, Yi as s3BucketWebsiteUrl, Yo as findSilentDropProperties, Zo as withoutSilentDropProperties, Zs as hasMaskableValues, _ as deleteTableWithIndexBusyRetry, _s as replayWarn, ai as tagMapAsList, an as isRedactedRecordedValue, b as waitForIndexesSettled, ba as getAccountInfo, bc as physicalNameCopiesOf, bs as requireConfigString, c as DynamoDBGlobalTableProvider, ci as stringifyIfAssigned, cl as timePhase, cs as isWarmThroughputDecrease, d as compensateRemovedDeletionProtection, dc as withoutPhysicalNameCopies, dl as stringifyValue, ds as coerceCfnBoolean, ea as outputReferenceProvenanceOf, ei as DBPROXY_TAGS_WHAT, er as getStackRecords, f as deleteBudgetKey, fs as coerceCfnInteger, g as INDEX_SETTLE_POLL_INTERVAL_MS, gl as rewriteTemplateAssetReferences, gs as readConfigString, h as DELETE_INDEX_WAIT_PROCEED_NOTE, ho as refuseMalformedNestedChildOutputs, hs as configStringRefusal, ht as withNestedStackContext, hu as decodeListingKey, ii as refuseMalformedDesiredTags, in as REDACTED_DELETE_ADDRESS_SKIP_REASON, ji as withIndeterminateGuard, jr as secretNamedAttributeNamesOf, l as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, ls as toCfnInteger, m as resolveDynamoDbDeleteBudgetMs, mi as waitForLambdaFunctionActive, ms as configIntegerRefusal, mt as getCurrentNestedStackContext, ni as planTagDiff, nn as getCurrentProducerRegions, nr as replacedDeleteFailureVerdict, oi as tagPlanWarning, on as redactedDeleteAddressFields, os as WARM_THROUGHPUT_MEMBERS, p as resolveDynamoDbDeleteBudgetClock, pc as dynamicReferenceTokens, ps as configBooleanRefusal, qi as s3BucketDualStackDomainName, qo as withheldAccountClause, qs as recordReferenceProvenanceEntry, ri as readTagList, si as definedAttributes, sn as redactedDeleteAddressSkip, ss as coerceWarmThroughput$1, st as getNestedRevertRun, t as DeployEngine, ti as DBPROXY_TAG_OPTIONS, u as beginDeleteWait, us as toFiniteNumber, ut as revertNestedChildFromJournal, v as maskedLogger, vi as getCurrentResourceSecrets, vs as requireConfigArray, vu as canonicalizeRegion, w as isTruthyCfnBoolean, wc as carriesSecretMask, wi as slowCcOperationTimeoutMs, ws as withRetry, x as ECR_AUTO_DELETE_IMAGES_TAG, xc as recordAttributeIdCopy, y as relayedIndexBusyDelete, yc as recoverMaskedOutput, ys as requireConfigObject, yu as derivePartitionAndUrlSuffix, zi as reEnableInstanceApiTermination, zs as passedNoEchoParametersOf } from "./deploy-engine-Dwe6OnF_.js";
|
|
6
|
+
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-bQvjvq2x.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-DuL51vnF.js";
|
|
8
|
+
import { t as modifyDbInstanceWhenAvailable } from "./db-instance-modify-retry-DfY7rzvu.js";
|
|
9
|
+
import { RDSProvider } from "./rds-provider-p_5gnXcp.js";
|
|
10
|
+
import { NeptuneProvider } from "./neptune-provider-CIAyTNad.js";
|
|
11
|
+
import { ASGProvider } from "./asg-provider-BKJrVAH4.js";
|
|
12
12
|
import { createHash, randomUUID } from "node:crypto";
|
|
13
13
|
import { CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListBucketsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client } from "@aws-sdk/client-s3";
|
|
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, UpdateLoginProfileCommand } from "@aws-sdk/client-iam";
|
|
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";
|
|
15
15
|
import { CreateQueueCommand, DeleteQueueCommand, GetQueueAttributesCommand, GetQueueUrlCommand, ListQueueTagsCommand, QueueDoesNotExist, SQSClient, SetQueueAttributesCommand, TagQueueCommand, UntagQueueCommand } from "@aws-sdk/client-sqs";
|
|
16
16
|
import { CreateTopicCommand, DeleteTopicCommand, GetSubscriptionAttributesCommand, GetTopicAttributesCommand, InvalidParameterException, ListSubscriptionsByTopicCommand, ListTagsForResourceCommand, ListTopicsCommand, NotFoundException, SNSClient, SetSubscriptionAttributesCommand, SetTopicAttributesCommand, SubscribeCommand, TagResourceCommand, UnsubscribeCommand, UntagResourceCommand } from "@aws-sdk/client-sns";
|
|
17
17
|
import { AddPermissionCommand, CreateEventSourceMappingCommand, CreateFunctionCommand, CreateFunctionUrlConfigCommand, DeleteEventSourceMappingCommand, DeleteFunctionCodeSigningConfigCommand, DeleteFunctionCommand, DeleteFunctionConcurrencyCommand, DeleteFunctionEventInvokeConfigCommand, DeleteFunctionUrlConfigCommand, DeleteLayerVersionCommand, GetEventSourceMappingCommand, GetFunctionCodeSigningConfigCommand, GetFunctionCommand, GetFunctionConcurrencyCommand, GetFunctionEventInvokeConfigCommand, GetFunctionRecursionConfigCommand, GetFunctionUrlConfigCommand, GetLayerVersionByArnCommand, GetPolicyCommand as GetPolicyCommand$1, GetRuntimeManagementConfigCommand, LambdaClient, ListEventSourceMappingsCommand, ListLayerVersionsCommand, ListTagsCommand, PublishLayerVersionCommand, PutFunctionCodeSigningConfigCommand, PutFunctionConcurrencyCommand, PutFunctionEventInvokeConfigCommand, PutFunctionRecursionConfigCommand, PutRuntimeManagementConfigCommand, RemovePermissionCommand, ResourceNotFoundException, TagResourceCommand as TagResourceCommand$1, UntagResourceCommand as UntagResourceCommand$1, UpdateEventSourceMappingCommand, UpdateFunctionCodeCommand, UpdateFunctionConfigurationCommand, UpdateFunctionUrlConfigCommand, waitUntilFunctionActiveV2, waitUntilFunctionUpdatedV2 } from "@aws-sdk/client-lambda";
|
|
@@ -28,12 +28,12 @@ import { AssociateKmsKeyCommand, CloudWatchLogsClient, CreateLogGroupCommand, De
|
|
|
28
28
|
import { BedrockAgentCoreControlClient, CreateAgentRuntimeCommand, CreateEvaluatorCommand, DeleteAgentRuntimeCommand, DeleteEvaluatorCommand, GetAgentRuntimeCommand, GetBrowserCommand, GetCodeInterpreterCommand, GetEvaluatorCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$6, ResourceNotFoundException as ResourceNotFoundException$6, TagResourceCommand as TagResourceCommand$9, UntagResourceCommand as UntagResourceCommand$9, UpdateAgentRuntimeCommand, UpdateEvaluatorCommand } from "@aws-sdk/client-bedrock-agentcore-control";
|
|
29
29
|
import { AddTagsToResourceCommand as AddTagsToResourceCommand$1, CreateCacheClusterCommand, CreateCacheSubnetGroupCommand, DeleteCacheClusterCommand, DeleteCacheSubnetGroupCommand, DescribeCacheClustersCommand, DescribeCacheSubnetGroupsCommand, ElastiCacheClient, ListTagsForResourceCommand as ListTagsForResourceCommand$7, ModifyCacheClusterCommand, ModifyCacheSubnetGroupCommand, RemoveTagsFromResourceCommand as RemoveTagsFromResourceCommand$1 } from "@aws-sdk/client-elasticache";
|
|
30
30
|
import { ACMClient, AddTagsToCertificateCommand, DeleteCertificateCommand, DescribeCertificateCommand, ListTagsForCertificateCommand, RemoveTagsFromCertificateCommand, RequestCertificateCommand, ResourceNotFoundException as ResourceNotFoundException$7, UpdateCertificateOptionsCommand } from "@aws-sdk/client-acm";
|
|
31
|
+
import { AssociateVPCWithHostedZoneCommand, ChangeResourceRecordSetsCommand, ChangeTagsForResourceCommand, CreateHostedZoneCommand, CreateQueryLoggingConfigCommand, DeleteHostedZoneCommand, DeleteQueryLoggingConfigCommand, DisassociateVPCFromHostedZoneCommand, GetHostedZoneCommand, HostedZoneAlreadyExists, ListHostedZonesByNameCommand, ListQueryLoggingConfigsCommand, ListResourceRecordSetsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$8, Route53Client, UpdateHostedZoneCommentCommand, UpdateHostedZoneFeaturesCommand } from "@aws-sdk/client-route-53";
|
|
31
32
|
import { CreateMicrovmImageCommand, DeleteMicrovmImageCommand, GetMicrovmImageCommand, LambdaMicrovmsClient, ListTagsCommand as ListTagsCommand$1, ResourceNotFoundException as ResourceNotFoundException$8, TagResourceCommand as TagResourceCommand$10, UntagResourceCommand as UntagResourceCommand$10, UpdateMicrovmImageCommand } from "@aws-sdk/client-lambda-microvms";
|
|
32
33
|
import { CreateWebFunctionEndpointCommand, CreateWebFunctionRevisionCommand, DeleteWebFunctionEndpointCommand, DeleteWebFunctionRevisionCommand, GetWebFunctionEndpointCommand, GetWebFunctionRevisionCommand, LambdaWebClient, ListWebFunctionRevisionsCommand, ResourceNotFoundException as ResourceNotFoundException$9, UpdateWebFunctionEndpointCommand } from "@aws-sdk/client-lambda-web";
|
|
33
34
|
import { CreateNetworkConnectorCommand, DeleteNetworkConnectorCommand, GetNetworkConnectorCommand, LambdaCoreClient, ResourceNotFoundException as ResourceNotFoundException$10, UpdateNetworkConnectorCommand } from "@aws-sdk/client-lambda-core";
|
|
34
35
|
import * as fs from "node:fs";
|
|
35
36
|
import * as path from "node:path";
|
|
36
|
-
import { AssociateVPCWithHostedZoneCommand, ChangeResourceRecordSetsCommand, ChangeTagsForResourceCommand, CreateHostedZoneCommand, CreateQueryLoggingConfigCommand, DeleteHostedZoneCommand, DeleteQueryLoggingConfigCommand, DisassociateVPCFromHostedZoneCommand, GetHostedZoneCommand, HostedZoneAlreadyExists, ListHostedZonesByNameCommand, ListQueryLoggingConfigsCommand, ListResourceRecordSetsCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$8, Route53Client, UpdateHostedZoneCommentCommand, UpdateHostedZoneFeaturesCommand } from "@aws-sdk/client-route-53";
|
|
37
37
|
import { AddTagsCommand, CreateListenerCommand, CreateLoadBalancerCommand, CreateTargetGroupCommand, DeleteListenerCommand, DeleteLoadBalancerCommand, DeleteTargetGroupCommand, DeregisterTargetsCommand, DescribeCapacityReservationCommand, DescribeListenerAttributesCommand, DescribeListenersCommand, DescribeLoadBalancerAttributesCommand, DescribeLoadBalancersCommand, DescribeTagsCommand, DescribeTargetGroupAttributesCommand, DescribeTargetGroupsCommand, DescribeTargetHealthCommand, ElasticLoadBalancingV2Client, ModifyCapacityReservationCommand, ModifyIpPoolsCommand, ModifyListenerAttributesCommand, ModifyListenerCommand, ModifyLoadBalancerAttributesCommand, ModifyTargetGroupAttributesCommand, ModifyTargetGroupCommand, RegisterTargetsCommand, RemoveTagsCommand, SetIpAddressTypeCommand, SetSecurityGroupsCommand, SetSubnetsCommand, waitUntilLoadBalancerAvailable } from "@aws-sdk/client-elastic-load-balancing-v2";
|
|
38
38
|
import { CreateAliasCommand, CreateKeyCommand, DeleteAliasCommand, DescribeKeyCommand, DisableKeyCommand, DisableKeyRotationCommand, DisabledException, EnableKeyCommand, EnableKeyRotationCommand, GetKeyPolicyCommand, GetKeyRotationStatusCommand, KMSClient, ListAliasesCommand, ListKeysCommand, ListResourceTagsCommand, NotFoundException as NotFoundException$2, PutKeyPolicyCommand, ScheduleKeyDeletionCommand, TagResourceCommand as TagResourceCommand$11, UntagResourceCommand as UntagResourceCommand$11, UpdateAliasCommand, UpdateKeyDescriptionCommand } from "@aws-sdk/client-kms";
|
|
39
39
|
import { CreateRepositoryCommand, DeleteLifecyclePolicyCommand, DeleteRepositoryCommand, DeleteRepositoryPolicyCommand, DescribeRepositoriesCommand, ECRClient, GetLifecyclePolicyCommand, LifecyclePolicyNotFoundException, ListTagsForResourceCommand as ListTagsForResourceCommand$9, PutImageScanningConfigurationCommand, PutImageTagMutabilityCommand, PutLifecyclePolicyCommand, RepositoryNotEmptyException, RepositoryNotFoundException, SetRepositoryPolicyCommand, TagResourceCommand as TagResourceCommand$12, UntagResourceCommand as UntagResourceCommand$12 } from "@aws-sdk/client-ecr";
|
|
@@ -1836,6 +1836,9 @@ async function readPrincipalSides(opts) {
|
|
|
1836
1836
|
const DEPLOY_SKIP_CAVEAT$2 = "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 memberships by hand.";
|
|
1837
1837
|
const USER_NAME_MAX_LENGTH = 64;
|
|
1838
1838
|
const GROUP_NAME_MAX_LENGTH = 128;
|
|
1839
|
+
function iamPathOf(value) {
|
|
1840
|
+
return value || "/";
|
|
1841
|
+
}
|
|
1839
1842
|
function derivedNamePairs(resourceType, logicalId, properties) {
|
|
1840
1843
|
const spec = resourceType === "AWS::IAM::User" ? {
|
|
1841
1844
|
key: "UserName",
|
|
@@ -2037,6 +2040,14 @@ var IAMUserGroupProvider = class {
|
|
|
2037
2040
|
});
|
|
2038
2041
|
if (groups.unmatchedKinds.length > 0) log.warn(`The recorded Groups of IAM user ${logicalId} is secret-derived, and IAM lists memberships the template does not name: cdkd removes the user from none of them, since IAM's list includes memberships made elsewhere. Remove the user by hand from any that this list used to name.`);
|
|
2039
2042
|
try {
|
|
2043
|
+
const newPath = iamPathOf(properties["Path"]);
|
|
2044
|
+
if (newPath !== iamPathOf(previousProperties["Path"])) {
|
|
2045
|
+
await this.iamClient.send(new UpdateUserCommand({
|
|
2046
|
+
UserName: physicalId,
|
|
2047
|
+
NewPath: newPath
|
|
2048
|
+
}));
|
|
2049
|
+
log.debug(`Moved user ${v(physicalId)} to path ${v(newPath)}`);
|
|
2050
|
+
}
|
|
2040
2051
|
await this.applyUserTagDiff(physicalId, resourceType, logicalId, previousProperties["Tags"], properties["Tags"], log);
|
|
2041
2052
|
const newPermBoundary = properties["PermissionsBoundary"];
|
|
2042
2053
|
const oldPermBoundary = previousProperties["PermissionsBoundary"];
|
|
@@ -2375,6 +2386,14 @@ var IAMUserGroupProvider = class {
|
|
|
2375
2386
|
const { value: v } = log;
|
|
2376
2387
|
log.debug(`Updating IAM group ${logicalId}: ${v(physicalId)}`);
|
|
2377
2388
|
try {
|
|
2389
|
+
const newPath = iamPathOf(properties["Path"]);
|
|
2390
|
+
if (newPath !== iamPathOf(previousProperties["Path"])) {
|
|
2391
|
+
await this.iamClient.send(new UpdateGroupCommand({
|
|
2392
|
+
GroupName: physicalId,
|
|
2393
|
+
NewPath: newPath
|
|
2394
|
+
}));
|
|
2395
|
+
log.debug(`Moved group ${v(physicalId)} to path ${v(newPath)}`);
|
|
2396
|
+
}
|
|
2378
2397
|
await this.updateGroupManagedPolicies(physicalId, properties["ManagedPolicyArns"], previousProperties["ManagedPolicyArns"], log);
|
|
2379
2398
|
await this.updateGroupInlinePolicies(physicalId, properties["Policies"], previousProperties["Policies"], log, claimed);
|
|
2380
2399
|
const getGroupResponse = await this.iamClient.send(new GetGroupCommand({ GroupName: physicalId }));
|
|
@@ -11230,7 +11249,7 @@ var LambdaNetworkConnectorProvider = class {
|
|
|
11230
11249
|
}
|
|
11231
11250
|
async create(logicalId, resourceType, properties, context) {
|
|
11232
11251
|
this.logger.debug(safeMsg`Creating Lambda network connector ${logicalId}`);
|
|
11233
|
-
const tagList = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
11252
|
+
const tagList = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, void 0, "Tags", DBPROXY_TAGS_WHAT, DBPROXY_TAG_OPTIONS);
|
|
11234
11253
|
const name = typeof properties["Name"] === "string" && properties["Name"] !== "" ? properties["Name"] : generatedNameFor("AWS::Lambda::NetworkConnector", logicalId);
|
|
11235
11254
|
const vpc = this.readVpcEgress(properties, logicalId, resourceType, void 0);
|
|
11236
11255
|
const createToken = acquireIdempotencyToken({
|
|
@@ -11269,7 +11288,7 @@ var LambdaNetworkConnectorProvider = class {
|
|
|
11269
11288
|
}
|
|
11270
11289
|
async update(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
11271
11290
|
assertRegionMatch(context?.expectedRegion ? await this.client.config.region() : void 0, context?.expectedRegion, resourceType, logicalId, physicalId, "pre-update");
|
|
11272
|
-
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
|
|
11291
|
+
refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId, "Tags", DBPROXY_TAGS_WHAT, DBPROXY_TAG_OPTIONS);
|
|
11273
11292
|
const vpc = this.readVpcEgress(properties, logicalId, resourceType, physicalId);
|
|
11274
11293
|
const updateRole = this.readOperatorRole(properties, logicalId, resourceType, physicalId, context);
|
|
11275
11294
|
if (typeof previousProperties["OperatorRole"] === "string" && properties["OperatorRole"] === void 0 && context?.replayingState !== true && context?.desiredFromAwsReadback !== true) throw new ProvisioningError(`OperatorRole cannot be removed in place for Lambda network connector ${logicalIdShown(logicalId)}: cdkd sends no role when the template declares none, so the current one would stay attached. Set it to another role, or replace the connector (change its Name).`, resourceType, logicalId, physicalId);
|
|
@@ -11407,7 +11426,7 @@ var LambdaNetworkConnectorProvider = class {
|
|
|
11407
11426
|
throw new ProvisioningError(message, resourceType, logicalId, physicalId);
|
|
11408
11427
|
}
|
|
11409
11428
|
async reconcileTags(physicalId, resourceType, logicalId, newTags, oldTags) {
|
|
11410
|
-
const plan = planTagDiff(oldTags, newTags);
|
|
11429
|
+
const plan = planTagDiff(oldTags, newTags, DBPROXY_TAG_OPTIONS);
|
|
11411
11430
|
const tagWarning = tagPlanWarning(plan, resourceType, logicalId);
|
|
11412
11431
|
if (tagWarning !== void 0) this.logger.warn(tagWarning);
|
|
11413
11432
|
if (plan.remove.length > 0) await this.lambda.send(new UntagResourceCommand$1({
|
|
@@ -14755,13 +14774,18 @@ var SecretsManagerSecretProvider = class {
|
|
|
14755
14774
|
}));
|
|
14756
14775
|
}
|
|
14757
14776
|
if (newReplicas && newReplicas.length > 0) {
|
|
14758
|
-
const
|
|
14759
|
-
const
|
|
14777
|
+
const AWS_MANAGED_SECRETS_KEY = "alias/aws/secretsmanager";
|
|
14778
|
+
const replicaKey = (k) => k === void 0 || k === "" || k === AWS_MANAGED_SECRETS_KEY ? AWS_MANAGED_SECRETS_KEY : JSON.stringify(k);
|
|
14779
|
+
const oldKeyByRegion = new Map((oldReplicas || []).map((r) => [r["Region"], replicaKey(r["KmsKeyId"])]));
|
|
14780
|
+
const regionsToAdd = newReplicas.filter((r) => {
|
|
14781
|
+
const region = r["Region"];
|
|
14782
|
+
return !oldKeyByRegion.has(region) || oldKeyByRegion.get(region) !== replicaKey(r["KmsKeyId"]);
|
|
14783
|
+
});
|
|
14760
14784
|
if (regionsToAdd.length > 0) await this.smClient.send(new ReplicateSecretToRegionsCommand({
|
|
14761
14785
|
SecretId: physicalId,
|
|
14762
14786
|
AddReplicaRegions: regionsToAdd.map((r) => ({
|
|
14763
14787
|
Region: r["Region"],
|
|
14764
|
-
KmsKeyId: r["KmsKeyId"]
|
|
14788
|
+
KmsKeyId: r["KmsKeyId"] || void 0
|
|
14765
14789
|
}))
|
|
14766
14790
|
}));
|
|
14767
14791
|
}
|
|
@@ -14813,13 +14837,37 @@ var SecretsManagerSecretProvider = class {
|
|
|
14813
14837
|
warn: (message) => logger.warn(mask(message))
|
|
14814
14838
|
};
|
|
14815
14839
|
}
|
|
14840
|
+
async replicaRegionsBlockingDelete(error, physicalId) {
|
|
14841
|
+
const refusal = error;
|
|
14842
|
+
if (refusal?.name !== "InvalidParameterException" || typeof refusal.message !== "string" || !/replica/i.test(refusal.message)) return;
|
|
14843
|
+
const regions = ((await this.smClient.send(new DescribeSecretCommand({ SecretId: physicalId })).catch(() => void 0))?.ReplicationStatus ?? []).map((r) => r.Region).filter((r) => typeof r === "string" && r.length > 0);
|
|
14844
|
+
return regions.length > 0 ? regions : void 0;
|
|
14845
|
+
}
|
|
14816
14846
|
async delete(logicalId, physicalId, resourceType, _properties, context) {
|
|
14817
14847
|
this.logger.debug(`Deleting secret ${logicalId}: ${physicalId}`);
|
|
14848
|
+
const deleteSecret = () => this.smClient.send(new DeleteSecretCommand({
|
|
14849
|
+
SecretId: physicalId,
|
|
14850
|
+
ForceDeleteWithoutRecovery: true
|
|
14851
|
+
}));
|
|
14852
|
+
let unremovedReplicaRegions;
|
|
14818
14853
|
try {
|
|
14819
|
-
|
|
14820
|
-
|
|
14821
|
-
|
|
14822
|
-
|
|
14854
|
+
try {
|
|
14855
|
+
await deleteSecret();
|
|
14856
|
+
} catch (error) {
|
|
14857
|
+
const regions = await this.replicaRegionsBlockingDelete(error, physicalId);
|
|
14858
|
+
if (!regions) throw error;
|
|
14859
|
+
try {
|
|
14860
|
+
await this.smClient.send(new RemoveRegionsFromReplicationCommand({
|
|
14861
|
+
SecretId: physicalId,
|
|
14862
|
+
RemoveReplicaRegions: regions
|
|
14863
|
+
}));
|
|
14864
|
+
} catch (removeError) {
|
|
14865
|
+
unremovedReplicaRegions = regions;
|
|
14866
|
+
throw removeError;
|
|
14867
|
+
}
|
|
14868
|
+
this.logger.debug(safeMsg`Removed replica regions ${regions.join(", ")} from secret ${physicalId} before deleting it`);
|
|
14869
|
+
await deleteSecret();
|
|
14870
|
+
}
|
|
14823
14871
|
this.logger.debug(`Successfully deleted secret ${logicalId}`);
|
|
14824
14872
|
} catch (error) {
|
|
14825
14873
|
if (error instanceof ResourceNotFoundException$3) {
|
|
@@ -14829,7 +14877,10 @@ var SecretsManagerSecretProvider = class {
|
|
|
14829
14877
|
return;
|
|
14830
14878
|
}
|
|
14831
14879
|
const cause = error instanceof Error ? error : void 0;
|
|
14832
|
-
const
|
|
14880
|
+
const mask = maskerOrIdentity(context?.maskSecrets);
|
|
14881
|
+
const regions = unremovedReplicaRegions?.join(" ");
|
|
14882
|
+
const step = regions ? ` (removing its replica regions ${regions} first, which DeleteSecret requires). Remove them, then re-run destroy: aws secretsmanager remove-regions-from-replication --secret-id ${mask(physicalId)} --remove-replica-regions ${regions}` : "";
|
|
14883
|
+
const thrown = this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to delete secret ${logicalId}: ${text}${step}`, resourceType, logicalId, physicalId, cause));
|
|
14833
14884
|
throw error instanceof Error && error.name.includes("NotFound") ? markNotGone(thrown) : thrown;
|
|
14834
14885
|
}
|
|
14835
14886
|
}
|
|
@@ -46733,8 +46784,7 @@ var S3VectorsProvider = class {
|
|
|
46733
46784
|
async createVectorBucket(logicalId, resourceType, properties, context) {
|
|
46734
46785
|
this.logger.debug(`Creating S3 VectorBucket ${logicalId}`);
|
|
46735
46786
|
const desiredTags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
|
|
46736
|
-
const vectorBucketName = properties["VectorBucketName"];
|
|
46737
|
-
if (!vectorBucketName) throw new ProvisioningError(`VectorBucketName is required for S3 VectorBucket ${logicalId}`, resourceType, logicalId);
|
|
46787
|
+
const vectorBucketName = properties["VectorBucketName"] || generatedNameFor("AWS::S3Vectors::VectorBucket", logicalId);
|
|
46738
46788
|
const encryptionConfiguration = properties["EncryptionConfiguration"];
|
|
46739
46789
|
const tagRecord = Object.fromEntries(desiredTags.map((t) => [t.Key, t.Value]));
|
|
46740
46790
|
const tags = Object.keys(tagRecord).length > 0 ? tagRecord : void 0;
|
|
@@ -48549,6 +48599,18 @@ function isCertificateInUseError(error) {
|
|
|
48549
48599
|
const message = describeAwsFailure(error).detail;
|
|
48550
48600
|
return /ResourceInUseException|in use/i.test(message);
|
|
48551
48601
|
}
|
|
48602
|
+
const VALIDATION_RECORD_TTL = 300;
|
|
48603
|
+
function dnsValidationZones(properties) {
|
|
48604
|
+
const zones = /* @__PURE__ */ new Map();
|
|
48605
|
+
const options = properties["DomainValidationOptions"];
|
|
48606
|
+
if (properties["ValidationMethod"] !== "DNS" || !Array.isArray(options)) return zones;
|
|
48607
|
+
for (const option of options) {
|
|
48608
|
+
const domain = option["DomainName"];
|
|
48609
|
+
const zone = option["HostedZoneId"];
|
|
48610
|
+
if (typeof domain === "string" && domain && typeof zone === "string" && zone) zones.set(domain, zone);
|
|
48611
|
+
}
|
|
48612
|
+
return zones;
|
|
48613
|
+
}
|
|
48552
48614
|
var ACMCertificateProvider = class {
|
|
48553
48615
|
acmClient;
|
|
48554
48616
|
logger = getLogger().child("ACMCertificateProvider");
|
|
@@ -48594,11 +48656,13 @@ var ACMCertificateProvider = class {
|
|
|
48594
48656
|
const input = { DomainName: domainName };
|
|
48595
48657
|
if (properties["ValidationMethod"]) input["ValidationMethod"] = properties["ValidationMethod"];
|
|
48596
48658
|
if (Array.isArray(properties["SubjectAlternativeNames"])) input["SubjectAlternativeNames"] = properties["SubjectAlternativeNames"];
|
|
48597
|
-
if (Array.isArray(properties["DomainValidationOptions"]))
|
|
48598
|
-
const
|
|
48599
|
-
|
|
48600
|
-
|
|
48601
|
-
|
|
48659
|
+
if (Array.isArray(properties["DomainValidationOptions"])) {
|
|
48660
|
+
const options = properties["DomainValidationOptions"].filter((opt) => opt["DomainName"] && opt["ValidationDomain"]).map((opt) => ({
|
|
48661
|
+
DomainName: opt["DomainName"],
|
|
48662
|
+
ValidationDomain: opt["ValidationDomain"]
|
|
48663
|
+
}));
|
|
48664
|
+
if (options.length > 0) input["DomainValidationOptions"] = options;
|
|
48665
|
+
}
|
|
48602
48666
|
if (properties["CertificateAuthorityArn"]) input["CertificateAuthorityArn"] = properties["CertificateAuthorityArn"];
|
|
48603
48667
|
if (properties["KeyAlgorithm"]) input["KeyAlgorithm"] = properties["KeyAlgorithm"];
|
|
48604
48668
|
const options = {};
|
|
@@ -48619,7 +48683,7 @@ var ACMCertificateProvider = class {
|
|
|
48619
48683
|
if (!certificateArn) throw new ProvisioningError(`RequestCertificate succeeded but no CertificateArn returned for ${logicalId}`, resourceType, logicalId);
|
|
48620
48684
|
requestedArn = certificateArn;
|
|
48621
48685
|
this.logger.debug(`Requested ACM certificate: ${certificateArn}`);
|
|
48622
|
-
if (!(process.env["CDKD_NO_WAIT"] === "true")) await this.waitForCertificateIssued(certificateArn, logicalId, resourceType);
|
|
48686
|
+
if (!(process.env["CDKD_NO_WAIT"] === "true")) await this.waitForCertificateIssued(certificateArn, logicalId, resourceType, dnsValidationZones(properties));
|
|
48623
48687
|
else this.logger.warn(`Skipping wait for ACM certificate ${logicalId} (CDKD_NO_WAIT=true). Downstream consumers (CloudFront / ALB) will fail until the cert reaches ISSUED.`);
|
|
48624
48688
|
idempotencyToken.release();
|
|
48625
48689
|
return {
|
|
@@ -48820,8 +48884,9 @@ var ACMCertificateProvider = class {
|
|
|
48820
48884
|
}
|
|
48821
48885
|
return null;
|
|
48822
48886
|
}
|
|
48823
|
-
async waitForCertificateIssued(certificateArn, logicalId, resourceType) {
|
|
48887
|
+
async waitForCertificateIssued(certificateArn, logicalId, resourceType, zones = /* @__PURE__ */ new Map()) {
|
|
48824
48888
|
this.logger.debug(`Waiting for ACM certificate ${certificateArn} to reach ISSUED status...`);
|
|
48889
|
+
const written = /* @__PURE__ */ new Map();
|
|
48825
48890
|
let interrupted = false;
|
|
48826
48891
|
let lastValidationOptions;
|
|
48827
48892
|
const sigintHandler = () => {
|
|
@@ -48843,7 +48908,8 @@ var ACMCertificateProvider = class {
|
|
|
48843
48908
|
}
|
|
48844
48909
|
if (status === "FAILED" || status === "VALIDATION_TIMED_OUT" || status === "INACTIVE" || status === "REVOKED" || status === "EXPIRED") throw new ProvisioningError(`ACM certificate ${logicalIdShown(logicalId)} ${isPlainImportValue(certificateArn) ? `(${certificateArn})` : VALUE_NOT_SHOWN} entered terminal status ${status} during validation. Check ACM console / DNS records to diagnose.`, resourceType, logicalId, certificateArn);
|
|
48845
48910
|
if (status === "PENDING_VALIDATION") {
|
|
48846
|
-
|
|
48911
|
+
await this.writeValidationRecords(validations, zones, written, certificateArn, logicalId, resourceType);
|
|
48912
|
+
const rendered = this.renderValidationOptions(validations.filter((v) => !(v.DomainName && zones.has(v.DomainName))));
|
|
48847
48913
|
if (rendered !== void 0 && rendered !== lastValidationOptions) {
|
|
48848
48914
|
this.logger.info(rendered);
|
|
48849
48915
|
lastValidationOptions = rendered;
|
|
@@ -48859,6 +48925,34 @@ var ACMCertificateProvider = class {
|
|
|
48859
48925
|
process.removeListener("SIGINT", sigintHandler);
|
|
48860
48926
|
}
|
|
48861
48927
|
}
|
|
48928
|
+
async writeValidationRecords(validations, zones, written, certificateArn, logicalId, resourceType) {
|
|
48929
|
+
for (const validation of validations) {
|
|
48930
|
+
const zone = validation.DomainName ? zones.get(validation.DomainName) : void 0;
|
|
48931
|
+
const record = validation.ResourceRecord;
|
|
48932
|
+
if (!zone || !record?.Name || !record.Value) continue;
|
|
48933
|
+
if (written.get(zone)?.has(record.Name)) continue;
|
|
48934
|
+
try {
|
|
48935
|
+
await getAwsClients().route53.send(new ChangeResourceRecordSetsCommand({
|
|
48936
|
+
HostedZoneId: zone,
|
|
48937
|
+
ChangeBatch: { Changes: [{
|
|
48938
|
+
Action: "UPSERT",
|
|
48939
|
+
ResourceRecordSet: {
|
|
48940
|
+
Name: record.Name,
|
|
48941
|
+
Type: "CNAME",
|
|
48942
|
+
TTL: VALIDATION_RECORD_TTL,
|
|
48943
|
+
ResourceRecords: [{ Value: record.Value }]
|
|
48944
|
+
}
|
|
48945
|
+
}] }
|
|
48946
|
+
}));
|
|
48947
|
+
} catch (error) {
|
|
48948
|
+
throw new ProvisioningError(safeMsg`ACM certificate ${displayIdent(logicalId)} could not get its DNS validation record ${displayIdent(record.Name)} written to hosted zone ${displayIdent(zone)}: ${describeAwsFailure(error).summary}. The caller needs route53:ChangeResourceRecordSets on that zone.`, resourceType, logicalId, certificateArn, error instanceof Error ? error : void 0);
|
|
48949
|
+
}
|
|
48950
|
+
const inZone = written.get(zone) ?? /* @__PURE__ */ new Set();
|
|
48951
|
+
inZone.add(record.Name);
|
|
48952
|
+
written.set(zone, inZone);
|
|
48953
|
+
this.logger.info(safeMsg`Wrote DNS validation record ${displayIdent(record.Name)} to hosted zone ${displayIdent(zone)} for ${displayIdent(validation.DomainName)}`);
|
|
48954
|
+
}
|
|
48955
|
+
}
|
|
48862
48956
|
renderValidationOptions(validations) {
|
|
48863
48957
|
const lines = ["ACM certificate is PENDING_VALIDATION. Add the following DNS records to validate:"];
|
|
48864
48958
|
for (const v of validations) if (v.ValidationMethod === "DNS" && v.ResourceRecord) {
|
|
@@ -48889,4 +48983,4 @@ var ACMCertificateProvider = class {
|
|
|
48889
48983
|
|
|
48890
48984
|
//#endregion
|
|
48891
48985
|
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 };
|
|
48892
|
-
//# sourceMappingURL=provider-classes-
|
|
48986
|
+
//# sourceMappingURL=provider-classes-Rf-SVs3I.js.map
|