@go-to-k/cdkd 0.301.12 → 0.301.14

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.
Files changed (27) hide show
  1. package/dist/{asg-provider-CUvV78Th.js → asg-provider-ak7zMqaQ.js} +4 -4
  2. package/dist/{asg-provider-CUvV78Th.js.map → asg-provider-ak7zMqaQ.js.map} +1 -1
  3. package/dist/{aws-failure-text-YMKku1DS.js → aws-failure-text-CdgZn80O.js} +16 -2
  4. package/dist/{aws-failure-text-YMKku1DS.js.map → aws-failure-text-CdgZn80O.js.map} +1 -1
  5. package/dist/cli.js +2 -2
  6. package/dist/{deploy-engine-C_9bc6wV.js → deploy-engine-B0ObJCy0.js} +58 -11
  7. package/dist/deploy-engine-B0ObJCy0.js.map +1 -0
  8. package/dist/{iam-policy-targets-Df2XcLrn.js → iam-policy-targets-Dap4bLyq.js} +2 -2
  9. package/dist/{iam-policy-targets-Df2XcLrn.js.map → iam-policy-targets-Dap4bLyq.js.map} +1 -1
  10. package/dist/{iam-role-provider-4NDbgxK0.js → iam-role-provider-CukWclVP.js} +4 -4
  11. package/dist/{iam-role-provider-4NDbgxK0.js.map → iam-role-provider-CukWclVP.js.map} +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +4 -4
  14. package/dist/{neptune-provider-BM-ndw-1.js → neptune-provider-BTkMpImX.js} +4 -4
  15. package/dist/{neptune-provider-BM-ndw-1.js.map → neptune-provider-BTkMpImX.js.map} +1 -1
  16. package/dist/{program-SAXkerq9.js → program-9BJEui0z.js} +17 -15
  17. package/dist/program-9BJEui0z.js.map +1 -0
  18. package/dist/{provider-classes-D1zpvb93.js → provider-classes-Dmz-lVVh.js} +346 -150
  19. package/dist/provider-classes-Dmz-lVVh.js.map +1 -0
  20. package/dist/{rds-provider-DUk3Oqhy.js → rds-provider-D0srL6Rb.js} +4 -4
  21. package/dist/{rds-provider-DUk3Oqhy.js.map → rds-provider-D0srL6Rb.js.map} +1 -1
  22. package/dist/{version-2S5I2Sx_.js → version-BTi3OoSX.js} +2 -2
  23. package/dist/{version-2S5I2Sx_.js.map → version-BTi3OoSX.js.map} +1 -1
  24. package/package.json +1 -1
  25. package/dist/deploy-engine-C_9bc6wV.js.map +0 -1
  26. package/dist/program-SAXkerq9.js.map +0 -1
  27. package/dist/provider-classes-D1zpvb93.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  import { r as getAwsClients } from "./aws-clients-B_CEQGE1.js";
2
- import { B as plainIdentOr, F as displayIdent, I as displaySafe, L as displayStackName, R as isPasteableIdent, V as safeMsg, b as generateResourceName, i as safeStringify, k as SECRET_REF_MAX_CODE_POINTS, n as describeAwsFailure, o as getLogger, r as isAwsAuthoredFailure, x as generateResourceNameWithFallback } from "./aws-failure-text-YMKku1DS.js";
3
- import { $ as protectedReplacementAdvice, $n as markReplayMayCollide, $t as ambientCredentialConfig, A as isQuotableImportValue, B as isTerminalDeleteFailure, C as setBounded, D as VALUE_NOT_SHOWN, E as assertRegionMatch, F as resolveExplicitPhysicalId, Fn as isInertUnquoted, H as observeThenDisableProtection, Hn as withheldTargetClause, In as pasteableCommand, Kt as injectiveKey, L as ProtectionFlipRegistry, M as quotedRemedyLogicalId, Mt as markCreatedBeforeFailure, N as refusalTypeShown, Nn as commandHole, Nt as markSupersedesEarlierCreate, O as isPlainImportJson, P as remedyLogicalId, Pn as hasClauseBreak, Q as pasteableAwsCommand, Qn as markNameCollision, Qt as ambientClientDefaults, Rn as plainOrDescribed, S as replayedSendWindow, St as withDerivedNameMasks, T as RESOURCE_NOT_FOUND, Tt as clearCreatedBeforeFailure, U as protectionFlipKey, V as logGroupProtectionSite, Vn as shellQuote, W as rdsFamilyProtectionSite, X as WITHHELD_AWS_COMMAND, Y as UNNAMEABLE_ID_CLAUSE, Z as isAwsCliLiteral, Zt as withPasteableAwsProfile, _ as RecentIdSet, _r as markRedactedCause, _t as createMaskedLogSinks, a as onlySecretDerived, at as startInterruptWatch, b as isInsideWindow, bn as ResourceUpdateNotSupportedError, bt as maskDeep, c as recordedPrincipalsRepair, cr as isExplicitDenyError, ct as canonicalizeRoute53QueryName, dr as isTransientServerError, dt as compositeIdSkipResult, en as clientDefaultsFor, er as relayedNameCollision, et as renderDisableCommand, ft as logicalIdShown, g as AmbiguousCreateLatch, gr as markNonRetryable, gt as stateOrphanRecordRemedy, h as AMBIGUOUS_LATCH_TTL_MS, hr as isThrottlingError, ht as segmentAfterAnchor, i as holdsSecretDerivedEntry, in as CdkdError, ir as explicitDenyPolicyKind, it as isInterruptedWaitError, j as normalizeAwsTagsToCfn, jt as markAuxiliaryFailure, k as isPlainImportValue, lt as compositeIdFormatMessage, mr as isMarkedNonRetryable, nn as AccountIdUnavailableError, o as readPrincipalLists, ot as ElapsedBudgetRegistry, p as withRemovalDefaults, pr as THROTTLING_ERROR_NAMES, pt as packCompositeId, q as userPoolProtectionSite, qn as isNameCollisionError, qt as injectiveKeyPrefix, r as SECRET_DERIVED_READ_LIVE, sr as isAmbiguousOutcomeError, tn as credentialFingerprint, u as clearOnUpdateRemoval, ur as isRetryableTransientError, ut as compositeIdSeparatorRefusal, v as ambiguousAttemptLead, vn as ProvisioningError, vr as wrapMaskedAwsError, vt as createMaskedRetryLogger, w as withoutServerErrorRetries, x as replayFollowedAmbiguousAttempt, xt as maskerOrIdentity, y as createAttemptKey, yt as isSecretDerivedValue, z as deleteWithProtectionCompensation } from "./iam-policy-targets-Df2XcLrn.js";
2
+ import { A as SECRET_REF_MAX_CODE_POINTS, H as safeMsg, I as displayIdent, L as displaySafe, R as displayStackName, S as generateResourceNameWithFallback, V as plainIdentOr, a as safeStringify, i as isAwsAuthoredFailure, n as describeAwsFailure, r as describeAwsStatusReason, s as getLogger, x as generateResourceName, z as isPasteableIdent } from "./aws-failure-text-CdgZn80O.js";
3
+ import { $ as protectedReplacementAdvice, $n as markReplayMayCollide, $t as ambientCredentialConfig, A as isQuotableImportValue, B as isTerminalDeleteFailure, C as setBounded, D as VALUE_NOT_SHOWN, E as assertRegionMatch, F as resolveExplicitPhysicalId, Fn as isInertUnquoted, H as observeThenDisableProtection, Hn as withheldTargetClause, In as pasteableCommand, Kt as injectiveKey, L as ProtectionFlipRegistry, M as quotedRemedyLogicalId, Mt as markCreatedBeforeFailure, N as refusalTypeShown, Nn as commandHole, Nt as markSupersedesEarlierCreate, O as isPlainImportJson, P as remedyLogicalId, Pn as hasClauseBreak, Q as pasteableAwsCommand, Qn as markNameCollision, Qt as ambientClientDefaults, Rn as plainOrDescribed, S as replayedSendWindow, St as withDerivedNameMasks, T as RESOURCE_NOT_FOUND, Tt as clearCreatedBeforeFailure, U as protectionFlipKey, V as logGroupProtectionSite, Vn as shellQuote, W as rdsFamilyProtectionSite, X as WITHHELD_AWS_COMMAND, Y as UNNAMEABLE_ID_CLAUSE, Z as isAwsCliLiteral, Zt as withPasteableAwsProfile, _ as RecentIdSet, _r as markRedactedCause, _t as createMaskedLogSinks, a as onlySecretDerived, at as startInterruptWatch, b as isInsideWindow, bn as ResourceUpdateNotSupportedError, bt as maskDeep, c as recordedPrincipalsRepair, cr as isExplicitDenyError, ct as canonicalizeRoute53QueryName, dr as isTransientServerError, dt as compositeIdSkipResult, en as clientDefaultsFor, er as relayedNameCollision, et as renderDisableCommand, ft as logicalIdShown, g as AmbiguousCreateLatch, gr as markNonRetryable, gt as stateOrphanRecordRemedy, h as AMBIGUOUS_LATCH_TTL_MS, hr as isThrottlingError, ht as segmentAfterAnchor, i as holdsSecretDerivedEntry, in as CdkdError, ir as explicitDenyPolicyKind, it as isInterruptedWaitError, j as normalizeAwsTagsToCfn, jt as markAuxiliaryFailure, k as isPlainImportValue, lt as compositeIdFormatMessage, mr as isMarkedNonRetryable, nn as AccountIdUnavailableError, o as readPrincipalLists, ot as ElapsedBudgetRegistry, p as withRemovalDefaults, pr as THROTTLING_ERROR_NAMES, pt as packCompositeId, q as userPoolProtectionSite, qn as isNameCollisionError, qt as injectiveKeyPrefix, r as SECRET_DERIVED_READ_LIVE, sr as isAmbiguousOutcomeError, tn as credentialFingerprint, u as clearOnUpdateRemoval, ur as isRetryableTransientError, ut as compositeIdSeparatorRefusal, v as ambiguousAttemptLead, vn as ProvisioningError, vr as wrapMaskedAwsError, vt as createMaskedRetryLogger, w as withoutServerErrorRetries, x as replayFollowedAmbiguousAttempt, xt as maskerOrIdentity, y as createAttemptKey, yt as isSecretDerivedValue, z as deleteWithProtectionCompensation } from "./iam-policy-targets-Dap4bLyq.js";
4
4
  import { s as ambientRegion } from "./aws-client-defaults-DBXBcg0J.js";
5
- import { $r as reDisableInstanceApiTermination, Aa as refuseMalformedNestedChildOutputs, Ao as configStringRefusal, Bl as renderAssemblyPathEscape, Bo as canonicalLambdaFunctionName, Br as unchangedBehindSecretReference, C as hasCdkAutoDeleteTag, Co as isWarmThroughputDecrease, Cr as stringifyIfAssigned, Dl as canonicalizeRegion, Dn as getStackRecords, Do as coerceCfnInteger, Dt as isAccessDeniedError, E as markRefusedBeforeApplying, Eo as coerceCfnBoolean, Es as withoutPhysicalNameCopies, Et as chunks, F as findNestedTemplateTreeDefect, Fi as getAccountInfo, Fo as requireConfigString, Fs as physicalNameCopiesOf, Gi as parseWebACLArn, Gr as deleteSkipReason, Ho as sameLambdaFunctionAddress, I as isAbsoluteAssetPath, Is as recordAttributeIdCopy, Ji as passedParameterClassesOf, Jn as secretNamedAttributeNamesOf, Jr as markWaitAbandoned, Jt as REDACTED_DELETE_ADDRESS_SKIP_REASON, Kr as withIndeterminateGuard, Kt as getCurrentProducerRegions, L as listNestedTemplateRows, Mo as replayWarn, No as requireConfigArray, Nr as getCurrentResourceSecrets, Ol as derivePartitionAndUrlSuffix, Oo as configBooleanRefusal, Os as dynamicReferenceTokens, Ot as lookupEachName, Po as requireConfigObject, Ps as recoverMaskedOutput, Qr as observeThenDisableInstanceApiTermination, R as renderNestedTemplateTreeDefect, Rl as describeFileReadFailure, S as S3_AUTO_DELETE_OBJECTS_TAG, So as coerceWarmThroughput$1, Sr as definedAttributes, T as getPriorAttempts, Tc as rewriteTemplateAssetReferences, Tn as awaitInFlightSibling, To as toFiniteNumber, Vl as resolveAssemblyPath, Vo as lambdaFunctionNameForMask, Xa as refuseMalformedResourcesForDestroy, Xr as ec2InstanceProtectionSite, Xt as redactedDeleteAddressFields, Yt as isRedactedRecordedValue, Zr as isTerminationProtectionPropagationError, Zt as redactedDeleteAddressSkip, _ as deleteTableWithIndexBusyRetry, _r as planTagDiff, ai as isSettledInstanceState, b as waitForIndexesSettled, bc as stringifyValue, br as tagMapAsList, c as DynamoDBGlobalTableProvider, ci as s3BucketDualStackDomainName, co as withheldAccountClause, cr as earliestDefined, cs as recordReferenceProvenanceEntry, ct as getNestedRevertRun, d as compensateRemovedDeletionProtection, dt as revertNestedChildFromJournal, ei as reEnableInstanceApiTermination, es as passedNoEchoParametersOf, f as deleteBudgetKey, fo as withoutSilentDropProperties, fr as acquireIdempotencyToken, fs as hasMaskableValues, g as INDEX_SETTLE_POLL_INTERVAL_MS, gr as DBPROXY_TAG_OPTIONS, gt as withNestedStackContext, h as DELETE_INDEX_WAIT_PROCEED_NOTE, hi as outputReferenceProvenanceOf, hr as DBPROXY_TAGS_WHAT, ht as getCurrentNestedStackContext, jo as readConfigString, kn as replacedDeleteFailureVerdict, ko as configIntegerRefusal, kr as waitForLambdaFunctionActive, kt as withApiLimit, l as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, li as s3BucketRegionalDomainName, ls as snapshotPassProvenance, m as resolveDynamoDbDeleteBudgetMs, mr as markDeleteStarted, oi as s3BucketArn, os as markSameGenerationBag, p as resolveDynamoDbDeleteBudgetClock, pr as isRefusedByName, qr as isWaitAbandonedError, si as s3BucketDomainName, ss as redactForState, t as DeployEngine, ta as accountArgs, u as beginDeleteWait, ui as s3BucketWebsiteUrl, uo as findSilentDropProperties, ur as reserveStackCreateToken, v as maskedLogger, vr as readTagList, w as isTruthyCfnBoolean, wl as decodeListingKey, wo as toCfnInteger, x as ECR_AUTO_DELETE_IMAGES_TAG, xo as WARM_THROUGHPUT_MEMBERS, xr as tagPlanWarning, y as relayedIndexBusyDelete, yr as refuseMalformedDesiredTags, zl as displayAssemblyPath, zo as withRetry, zr as slowCcOperationTimeoutMs, zs as carriesSecretMask } from "./deploy-engine-C_9bc6wV.js";
6
- import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-4NDbgxK0.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-SAXkerq9.js";
8
- import { RDSProvider } from "./rds-provider-DUk3Oqhy.js";
9
- import { NeptuneProvider } from "./neptune-provider-BM-ndw-1.js";
10
- import { ASGProvider } from "./asg-provider-CUvV78Th.js";
5
+ import { $r as reDisableInstanceApiTermination, Aa as refuseMalformedNestedChildOutputs, Ao as configStringRefusal, Bl as renderAssemblyPathEscape, Bo as canonicalLambdaFunctionName, Br as unchangedBehindSecretReference, C as hasCdkAutoDeleteTag, Co as isWarmThroughputDecrease, Cr as stringifyIfAssigned, Dl as canonicalizeRegion, Dn as getStackRecords, Do as coerceCfnInteger, Dt as isAccessDeniedError, E as markRefusedBeforeApplying, Eo as coerceCfnBoolean, Es as withoutPhysicalNameCopies, Et as chunks, F as findNestedTemplateTreeDefect, Fi as getAccountInfo, Fo as requireConfigString, Fs as physicalNameCopiesOf, Gi as parseWebACLArn, Gr as deleteSkipReason, Ho as sameLambdaFunctionAddress, I as isAbsoluteAssetPath, Is as recordAttributeIdCopy, Ji as passedParameterClassesOf, Jn as secretNamedAttributeNamesOf, Jr as markWaitAbandoned, Jt as REDACTED_DELETE_ADDRESS_SKIP_REASON, Kr as withIndeterminateGuard, Kt as getCurrentProducerRegions, L as listNestedTemplateRows, Mo as replayWarn, No as requireConfigArray, Nr as getCurrentResourceSecrets, Ol as derivePartitionAndUrlSuffix, Oo as configBooleanRefusal, Os as dynamicReferenceTokens, Ot as lookupEachName, Po as requireConfigObject, Ps as recoverMaskedOutput, Qr as observeThenDisableInstanceApiTermination, R as renderNestedTemplateTreeDefect, Rl as describeFileReadFailure, S as S3_AUTO_DELETE_OBJECTS_TAG, So as coerceWarmThroughput$1, Sr as definedAttributes, T as getPriorAttempts, Tc as rewriteTemplateAssetReferences, Tn as awaitInFlightSibling, To as toFiniteNumber, Vl as resolveAssemblyPath, Vo as lambdaFunctionNameForMask, Xa as refuseMalformedResourcesForDestroy, Xr as ec2InstanceProtectionSite, Xt as redactedDeleteAddressFields, Yt as isRedactedRecordedValue, Zr as isTerminationProtectionPropagationError, Zt as redactedDeleteAddressSkip, _ as deleteTableWithIndexBusyRetry, _r as planTagDiff, ai as isSettledInstanceState, b as waitForIndexesSettled, bc as stringifyValue, br as tagMapAsList, c as DynamoDBGlobalTableProvider, ci as s3BucketDualStackDomainName, co as withheldAccountClause, cr as earliestDefined, cs as recordReferenceProvenanceEntry, ct as getNestedRevertRun, d as compensateRemovedDeletionProtection, dt as revertNestedChildFromJournal, ei as reEnableInstanceApiTermination, es as passedNoEchoParametersOf, f as deleteBudgetKey, fo as withoutSilentDropProperties, fr as acquireIdempotencyToken, fs as hasMaskableValues, g as INDEX_SETTLE_POLL_INTERVAL_MS, gr as DBPROXY_TAG_OPTIONS, gt as withNestedStackContext, h as DELETE_INDEX_WAIT_PROCEED_NOTE, hi as outputReferenceProvenanceOf, hr as DBPROXY_TAGS_WHAT, ht as getCurrentNestedStackContext, jo as readConfigString, kn as replacedDeleteFailureVerdict, ko as configIntegerRefusal, kr as waitForLambdaFunctionActive, kt as withApiLimit, l as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, li as s3BucketRegionalDomainName, ls as snapshotPassProvenance, m as resolveDynamoDbDeleteBudgetMs, mr as markDeleteStarted, oi as s3BucketArn, os as markSameGenerationBag, p as resolveDynamoDbDeleteBudgetClock, pr as isRefusedByName, qr as isWaitAbandonedError, si as s3BucketDomainName, ss as redactForState, t as DeployEngine, ta as accountArgs, u as beginDeleteWait, ui as s3BucketWebsiteUrl, uo as findSilentDropProperties, ur as reserveStackCreateToken, v as maskedLogger, vr as readTagList, w as isTruthyCfnBoolean, wl as decodeListingKey, wo as toCfnInteger, x as ECR_AUTO_DELETE_IMAGES_TAG, xo as WARM_THROUGHPUT_MEMBERS, xr as tagPlanWarning, y as relayedIndexBusyDelete, yr as refuseMalformedDesiredTags, zl as displayAssemblyPath, zo as withRetry, zr as slowCcOperationTimeoutMs, zs as carriesSecretMask } from "./deploy-engine-B0ObJCy0.js";
6
+ import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-CukWclVP.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-9BJEui0z.js";
8
+ import { RDSProvider } from "./rds-provider-D0srL6Rb.js";
9
+ import { NeptuneProvider } from "./neptune-provider-BTkMpImX.js";
10
+ import { ASGProvider } from "./asg-provider-ak7zMqaQ.js";
11
11
  import { createHash, randomUUID } from "node:crypto";
12
12
  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";
13
13
  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";
@@ -8789,8 +8789,12 @@ var LambdaUrlProvider = class {
8789
8789
  operationSinks(maskSecrets, pairs) {
8790
8790
  return withDerivedNameMasks(this.logger, createMaskedLogSinks(this.logger, maskSecrets), pairs);
8791
8791
  }
8792
- wrapMaskedError(mask, error, build) {
8793
- return wrapMaskedAwsError(mask, error, build);
8792
+ wrapMaskedError(log, error, build) {
8793
+ const failure = describeAwsFailure(error);
8794
+ if (!(error instanceof Error)) return build(log.mask(failure.detail));
8795
+ if (!failure.redacted) return wrapMaskedAwsError(log.mask, error, build);
8796
+ log.debug(build(log.mask(failure.detail)).message);
8797
+ return markRedactedCause(build(`${log.mask(failure.summary)}${relayedNameCollision(failure.detail)}`));
8794
8798
  }
8795
8799
  async create(logicalId, resourceType, properties, context) {
8796
8800
  const targetFunctionArn = properties["TargetFunctionArn"];
@@ -8821,7 +8825,7 @@ var LambdaUrlProvider = class {
8821
8825
  };
8822
8826
  } catch (error) {
8823
8827
  const cause = error instanceof Error ? error : void 0;
8824
- throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to create Lambda URL ${logicalId}: ${text}`, resourceType, logicalId, targetFunctionArn, cause));
8828
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to create Lambda URL ${logicalId}: ${text}`, resourceType, logicalId, targetFunctionArn, cause));
8825
8829
  }
8826
8830
  }
8827
8831
  async update(logicalId, physicalId, resourceType, properties, previousProperties, context) {
@@ -8887,23 +8891,24 @@ var LambdaUrlProvider = class {
8887
8891
  };
8888
8892
  } catch (error) {
8889
8893
  const cause = error instanceof Error ? error : void 0;
8890
- throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to update Lambda URL ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
8894
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to update Lambda URL ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
8891
8895
  }
8892
8896
  }
8893
- async delete(logicalId, physicalId, resourceType, _properties, context) {
8894
- this.logger.debug(`Deleting Lambda URL ${logicalId}: ${physicalId}`);
8897
+ async delete(logicalId, physicalId, resourceType, properties, context) {
8898
+ const log = this.operationSinks(context?.maskSecrets, [[properties?.["TargetFunctionArn"], physicalId], [properties?.["TargetFunctionArn"], lambdaFunctionNameForMask(physicalId)]]);
8899
+ log.debug(`Deleting Lambda URL ${logicalId}: ${physicalId}`);
8895
8900
  try {
8896
8901
  await this.lambdaClient.send(new DeleteFunctionUrlConfigCommand({ FunctionName: physicalId }));
8897
- this.logger.debug(`Successfully deleted Lambda URL ${logicalId}`);
8902
+ log.debug(`Successfully deleted Lambda URL ${logicalId}`);
8898
8903
  } catch (error) {
8899
8904
  if (error instanceof ResourceNotFoundException) {
8900
8905
  const clientRegion = await this.lambdaClient.config.region();
8901
8906
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
8902
- this.logger.debug(`Lambda URL ${physicalId} does not exist, skipping deletion`);
8907
+ log.debug(`Lambda URL ${physicalId} does not exist, skipping deletion`);
8903
8908
  return;
8904
8909
  }
8905
8910
  const cause = error instanceof Error ? error : void 0;
8906
- throw new ProvisioningError(`Failed to delete Lambda URL ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
8911
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to delete Lambda URL ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
8907
8912
  }
8908
8913
  }
8909
8914
  async getAttribute(physicalId, _resourceType, attributeName) {
@@ -9185,8 +9190,12 @@ var LambdaEventSourceMappingProvider = class {
9185
9190
  }
9186
9191
  return withDerivedNameMasks(this.logger, createMaskedLogSinks(this.logger, maskSecrets), pairs);
9187
9192
  }
9188
- wrapMaskedError(mask, error, build) {
9189
- return wrapMaskedAwsError(mask, error, build);
9193
+ wrapMaskedError(log, error, build) {
9194
+ const failure = describeAwsFailure(error);
9195
+ if (!(error instanceof Error)) return build(log.mask(failure.detail));
9196
+ if (!failure.redacted) return wrapMaskedAwsError(log.mask, error, build);
9197
+ log.debug(build(log.mask(failure.detail)).message);
9198
+ return markRedactedCause(build(`${log.mask(failure.summary)}${relayedNameCollision(failure.detail)}`));
9190
9199
  }
9191
9200
  async create(logicalId, resourceType, properties, context) {
9192
9201
  const log = this.operationSinks(context?.maskSecrets, properties);
@@ -9257,7 +9266,7 @@ var LambdaEventSourceMappingProvider = class {
9257
9266
  };
9258
9267
  } catch (error) {
9259
9268
  const cause = error instanceof Error ? error : void 0;
9260
- throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to create event source mapping ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
9269
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to create event source mapping ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
9261
9270
  }
9262
9271
  }
9263
9272
  async reportPossibleMappingOrphans(logicalId, window, log, functionName, sourceArn) {
@@ -9297,7 +9306,7 @@ var LambdaEventSourceMappingProvider = class {
9297
9306
  } catch (error) {
9298
9307
  if (error instanceof CdkdError) throw error;
9299
9308
  const cause = error instanceof Error ? error : void 0;
9300
- throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to update event source mapping ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
9309
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to update event source mapping ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
9301
9310
  }
9302
9311
  }
9303
9312
  async applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties, log, context) {
@@ -9378,7 +9387,7 @@ var LambdaEventSourceMappingProvider = class {
9378
9387
  log.debug(`Added/updated ${Object.keys(tagsToAdd).length} tag(s) on EventSourceMapping ${arn}`);
9379
9388
  }
9380
9389
  }
9381
- async delete(logicalId, physicalId, resourceType, _properties, context) {
9390
+ async delete(logicalId, physicalId, resourceType, properties, context) {
9382
9391
  this.logger.debug(`Deleting event source mapping ${logicalId}: ${physicalId}`);
9383
9392
  try {
9384
9393
  try {
@@ -9402,7 +9411,7 @@ var LambdaEventSourceMappingProvider = class {
9402
9411
  return;
9403
9412
  }
9404
9413
  const cause = error instanceof Error ? error : void 0;
9405
- throw new ProvisioningError(`Failed to delete event source mapping ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
9414
+ throw this.wrapMaskedError(this.operationSinks(context?.maskSecrets, properties ?? {}), error, (text) => new ProvisioningError(`Failed to delete event source mapping ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
9406
9415
  }
9407
9416
  }
9408
9417
  async readCurrentState(physicalId, _logicalId, _resourceType, properties) {
@@ -9939,7 +9948,7 @@ var LambdaMicrovmImageProvider = class {
9939
9948
  getMinResourceTimeoutMs() {
9940
9949
  return this.maxPollAttempts * this.pollIntervalMs;
9941
9950
  }
9942
- async create(logicalId, resourceType, properties) {
9951
+ async create(logicalId, resourceType, properties, context) {
9943
9952
  const tagList = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
9944
9953
  this.logger.debug(`Creating MicroVM image ${logicalId}`);
9945
9954
  const name = properties["Name"];
@@ -9988,7 +9997,7 @@ var LambdaMicrovmImageProvider = class {
9988
9997
  })
9989
9998
  };
9990
9999
  } catch (error) {
9991
- const thrown = this.wrapError("create", logicalId, resourceType, void 0, error);
10000
+ const thrown = this.wrapError("create", logicalId, resourceType, void 0, error, context?.maskSecrets);
9992
10001
  if (createdArn) markCreatedBeforeFailure(thrown, logicalId, resourceType, createdArn);
9993
10002
  throw thrown;
9994
10003
  }
@@ -10046,7 +10055,7 @@ var LambdaMicrovmImageProvider = class {
10046
10055
  })
10047
10056
  };
10048
10057
  } catch (error) {
10049
- throw this.wrapError("update", logicalId, resourceType, physicalId, error);
10058
+ throw this.wrapError("update", logicalId, resourceType, physicalId, error, context?.maskSecrets);
10050
10059
  }
10051
10060
  }
10052
10061
  async delete(logicalId, physicalId, resourceType, _properties, context) {
@@ -10066,7 +10075,7 @@ var LambdaMicrovmImageProvider = class {
10066
10075
  await this.waitForDeleted(physicalId, logicalId);
10067
10076
  this.logger.debug(`Successfully deleted MicroVM image ${logicalId}`);
10068
10077
  } catch (error) {
10069
- throw this.wrapError("delete", logicalId, resourceType, physicalId, error);
10078
+ throw this.wrapError("delete", logicalId, resourceType, physicalId, error, context?.maskSecrets);
10070
10079
  }
10071
10080
  }
10072
10081
  async getAttribute(physicalId, _resourceType, attributeName) {
@@ -10173,10 +10182,15 @@ var LambdaMicrovmImageProvider = class {
10173
10182
  Tags: tagsToAdd
10174
10183
  }));
10175
10184
  }
10176
- wrapError(operation, logicalId, resourceType, physicalId, error) {
10185
+ wrapError(operation, logicalId, resourceType, physicalId, error, mask) {
10177
10186
  if (error instanceof ProvisioningError) return error;
10178
10187
  const cause = error instanceof Error ? error : void 0;
10179
- return new ProvisioningError(`Failed to ${operation} MicroVM image ${logicalIdShown(logicalId)}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
10188
+ const build = (text) => new ProvisioningError(`Failed to ${operation} MicroVM image ${logicalIdShown(logicalId)}: ${text}`, resourceType, logicalId, physicalId, cause);
10189
+ const failure = describeAwsFailure(error);
10190
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
10191
+ const m = mask ?? ((text) => text);
10192
+ this.logger.debug(m(build(m(failure.detail)).message));
10193
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
10180
10194
  }
10181
10195
  };
10182
10196
  const BUILD_AFFECTING_CFN_KEYS = [
@@ -10352,16 +10366,16 @@ var LambdaWebFunctionRevisionProvider = class {
10352
10366
  const replayWindow = replayedSendWindow(response, attemptStartMs);
10353
10367
  if (replayWindow !== void 0) await this.reportPossibleRevisionOrphans(logicalId, replayWindow, log, input.functionName);
10354
10368
  if (!createdArn || !response.revisionId) throw new ProvisioningError(`CreateWebFunctionRevision succeeded but returned no revision ARN for ${logicalIdShown(logicalId)}`, resourceType, logicalId);
10355
- const active = await this.waitForActive(input.functionName, createdArn, logicalId);
10369
+ const active = await this.waitForActive(input.functionName, createdArn, logicalId, resourceType, log.mask);
10356
10370
  return {
10357
10371
  physicalId: createdArn,
10358
10372
  attributes: buildAttributes$2(active)
10359
10373
  };
10360
10374
  } catch (error) {
10361
- const thrown = this.wrapError("create", logicalId, resourceType, void 0, error);
10375
+ const thrown = this.wrapError("create", logicalId, resourceType, void 0, error, log.mask);
10362
10376
  let leftBehindArn = createdArn;
10363
10377
  if (leftBehindArn) try {
10364
- await this.delete(logicalId, leftBehindArn, resourceType);
10378
+ await this.delete(logicalId, leftBehindArn, resourceType, void 0, context?.maskSecrets ? { maskSecrets: context.maskSecrets } : void 0);
10365
10379
  leftBehindArn = void 0;
10366
10380
  } catch (cleanupError) {
10367
10381
  log.warn(safeMsg`Failed to delete partially-created Lambda web function revision ${logicalId}: ${describeAwsFailure(cleanupError).detail}. The failed deploy records it for \`cdkd rollback --revert-failed\`, or delete it by hand`);
@@ -10430,7 +10444,7 @@ var LambdaWebFunctionRevisionProvider = class {
10430
10444
  }
10431
10445
  await this.waitForGone(parts.functionArn, physicalId, logicalId);
10432
10446
  } catch (error) {
10433
- throw this.wrapError("delete", logicalId, resourceType, physicalId, error);
10447
+ throw this.wrapError("delete", logicalId, resourceType, physicalId, error, context?.maskSecrets);
10434
10448
  }
10435
10449
  }
10436
10450
  async getAttribute(physicalId, _resourceType, attributeName) {
@@ -10563,7 +10577,7 @@ var LambdaWebFunctionRevisionProvider = class {
10563
10577
  }
10564
10578
  return out;
10565
10579
  }
10566
- async waitForActive(functionName, revisionArn, logicalId) {
10580
+ async waitForActive(functionName, revisionArn, logicalId, resourceType, mask) {
10567
10581
  for (let attempt = 1; attempt <= LAMBDA_WEB_MAX_POLL_ATTEMPTS; attempt++) {
10568
10582
  const resp = await this.client.send(new GetWebFunctionRevisionCommand({
10569
10583
  functionName,
@@ -10571,8 +10585,12 @@ var LambdaWebFunctionRevisionProvider = class {
10571
10585
  }));
10572
10586
  if (resp.state === "Active") return resp;
10573
10587
  if (resp.state === "Failed") {
10574
- const errors = (resp.errors ?? []).map((e) => `${e.errorCode ?? ""} ${e.errorMessage ?? ""}`.trim());
10575
- throw new Error(`Lambda web function revision ${logicalIdShown(logicalId)} entered Failed: ${resp.stateReason ?? "no reason given"}` + (errors.length > 0 ? ` (${errors.join("; ")})` : ""));
10588
+ const errors = (resp.errors ?? []).map((e) => `${e.errorCode ?? ""} ${e.errorMessage ?? ""}`.trim()).filter((e) => e !== "");
10589
+ const reasonText = resp.stateReason || errors.length > 0 ? `${resp.stateReason || "no reason given"}` + (errors.length > 0 ? ` (${errors.join("; ")})` : "") : void 0;
10590
+ throw this.wrapStatusReasonError(mask, {
10591
+ code: resp.errors?.find((e) => e.errorCode)?.errorCode,
10592
+ message: reasonText
10593
+ }, (text, cause) => new ProvisioningError(`Lambda web function revision ${logicalIdShown(logicalId)} entered Failed: ${text}`, resourceType, logicalId, revisionArn, cause));
10576
10594
  }
10577
10595
  await sleep$1(500);
10578
10596
  }
@@ -10593,10 +10611,23 @@ var LambdaWebFunctionRevisionProvider = class {
10593
10611
  }
10594
10612
  throw new Error(`Lambda web function revision ${logicalIdShown(logicalId)} was not fully deleted within ${LAMBDA_WEB_MAX_POLL_ATTEMPTS * 500 / 1e3}s.`);
10595
10613
  }
10596
- wrapError(operation, logicalId, resourceType, physicalId, error) {
10614
+ wrapStatusReasonError(mask, reason, build) {
10615
+ const text = describeAwsStatusReason(reason, "no reason given");
10616
+ if (!text.redacted) return build(text.detail, void 0);
10617
+ const m = mask ?? ((value) => value);
10618
+ const cause = new Error(text.detail);
10619
+ this.logger.debug(m(build(m(text.detail), cause).message));
10620
+ return markRedactedCause(build(m(text.summary), cause));
10621
+ }
10622
+ wrapError(operation, logicalId, resourceType, physicalId, error, mask) {
10597
10623
  if (error instanceof ProvisioningError) return error;
10598
10624
  const cause = error instanceof Error ? error : void 0;
10599
- return new ProvisioningError(`Failed to ${operation} Lambda web function revision ${logicalIdShown(logicalId)}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
10625
+ const build = (text) => new ProvisioningError(`Failed to ${operation} Lambda web function revision ${logicalIdShown(logicalId)}: ${text}`, resourceType, logicalId, physicalId, cause);
10626
+ const failure = describeAwsFailure(error);
10627
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
10628
+ const m = mask ?? ((text) => text);
10629
+ this.logger.debug(m(build(m(failure.detail)).message));
10630
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
10600
10631
  }
10601
10632
  };
10602
10633
  function buildAttributes$2(resp) {
@@ -10713,13 +10744,13 @@ var LambdaWebFunctionEndpointProvider = class {
10713
10744
  try {
10714
10745
  createdArn = (await this.client.send(new CreateWebFunctionEndpointCommand(input))).endpointArn;
10715
10746
  if (!createdArn) throw new ProvisioningError(`CreateWebFunctionEndpoint succeeded but returned no endpoint ARN for ${logicalIdShown(logicalId)}`, resourceType, logicalId);
10716
- const settled = await this.waitForSettled(input.functionName, input.endpointName, logicalId, "create");
10747
+ const settled = await this.waitForSettled(input.functionName, input.endpointName, logicalId, resourceType, "create", void 0, context?.maskSecrets);
10717
10748
  return {
10718
10749
  physicalId: createdArn,
10719
10750
  attributes: buildAttributes$1(settled)
10720
10751
  };
10721
10752
  } catch (error) {
10722
- const thrown = this.wrapError("create", logicalId, resourceType, void 0, error);
10753
+ const thrown = this.wrapError("create", logicalId, resourceType, void 0, error, context?.maskSecrets);
10723
10754
  if (createdArn) markCreatedBeforeFailure(thrown, logicalId, resourceType, createdArn);
10724
10755
  throw thrown;
10725
10756
  }
@@ -10753,10 +10784,10 @@ var LambdaWebFunctionEndpointProvider = class {
10753
10784
  return {
10754
10785
  physicalId,
10755
10786
  wasReplaced: false,
10756
- attributes: buildAttributes$1(await this.waitForSettled(parts.functionArn, parts.childId, logicalId, "update", input.revisionWeights))
10787
+ attributes: buildAttributes$1(await this.waitForSettled(parts.functionArn, parts.childId, logicalId, resourceType, "update", input.revisionWeights, context?.maskSecrets, physicalId))
10757
10788
  };
10758
10789
  } catch (error) {
10759
- throw this.wrapError("update", logicalId, resourceType, physicalId, error);
10790
+ throw this.wrapError("update", logicalId, resourceType, physicalId, error, context?.maskSecrets);
10760
10791
  }
10761
10792
  }
10762
10793
  async delete(logicalId, physicalId, resourceType, _properties, context) {
@@ -10779,7 +10810,7 @@ var LambdaWebFunctionEndpointProvider = class {
10779
10810
  }
10780
10811
  await this.waitForGone(parts.functionArn, parts.childId, logicalId);
10781
10812
  } catch (error) {
10782
- throw this.wrapError("delete", logicalId, resourceType, physicalId, error);
10813
+ throw this.wrapError("delete", logicalId, resourceType, physicalId, error, context?.maskSecrets);
10783
10814
  }
10784
10815
  }
10785
10816
  async getAttribute(physicalId, _resourceType, attributeName) {
@@ -10876,7 +10907,7 @@ var LambdaWebFunctionEndpointProvider = class {
10876
10907
  n
10877
10908
  };
10878
10909
  }
10879
- async waitForSettled(functionName, endpointName, logicalId, operation, sentWeights) {
10910
+ async waitForSettled(functionName, endpointName, logicalId, resourceType, operation, sentWeights, mask, physicalId) {
10880
10911
  for (let attempt = 1; attempt <= LAMBDA_WEB_MAX_POLL_ATTEMPTS; attempt++) {
10881
10912
  let resp;
10882
10913
  try {
@@ -10891,8 +10922,8 @@ var LambdaWebFunctionEndpointProvider = class {
10891
10922
  }
10892
10923
  throw error;
10893
10924
  }
10894
- if (resp.state === "Failed") throw new Error(`Lambda web function endpoint ${logicalIdShown(logicalId)} entered Failed: ${resp.stateReason ?? "no reason given"}`);
10895
- if (resp.updateStatus === "Failed") throw new Error(`Lambda web function endpoint ${logicalIdShown(logicalId)} ${operation} failed: ${resp.updateStatusReason ?? "no reason given"}`);
10925
+ if (resp.state === "Failed") throw this.wrapStatusReasonError(mask, { message: resp.stateReason }, (text, cause) => new ProvisioningError(`Lambda web function endpoint ${logicalIdShown(logicalId)} entered Failed: ${text}`, resourceType, logicalId, physicalId, cause));
10926
+ if (resp.updateStatus === "Failed") throw this.wrapStatusReasonError(mask, { message: resp.updateStatusReason }, (text, cause) => new ProvisioningError(`Lambda web function endpoint ${logicalIdShown(logicalId)} ${operation} failed: ${text}`, resourceType, logicalId, physicalId, cause));
10896
10927
  if (resp.state === "Active" && resp.updateStatus !== "InProgress" && (sentWeights === void 0 || sameWeights(sentWeights, resp.revisionWeights))) return resp;
10897
10928
  await sleep$1(500);
10898
10929
  }
@@ -10913,10 +10944,23 @@ var LambdaWebFunctionEndpointProvider = class {
10913
10944
  }
10914
10945
  throw new Error(`Lambda web function endpoint ${logicalIdShown(logicalId)} was not fully deleted within ${LAMBDA_WEB_MAX_POLL_ATTEMPTS * 500 / 1e3}s.`);
10915
10946
  }
10916
- wrapError(operation, logicalId, resourceType, physicalId, error) {
10947
+ wrapStatusReasonError(mask, reason, build) {
10948
+ const text = describeAwsStatusReason(reason, "no reason given");
10949
+ if (!text.redacted) return build(text.detail, void 0);
10950
+ const m = mask ?? ((value) => value);
10951
+ const cause = new Error(text.detail);
10952
+ this.logger.debug(m(build(m(text.detail), cause).message));
10953
+ return markRedactedCause(build(m(text.summary), cause));
10954
+ }
10955
+ wrapError(operation, logicalId, resourceType, physicalId, error, mask) {
10917
10956
  if (error instanceof ProvisioningError) return error;
10918
10957
  const cause = error instanceof Error ? error : void 0;
10919
- return new ProvisioningError(`Failed to ${operation} Lambda web function endpoint ${logicalIdShown(logicalId)}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
10958
+ const build = (text) => new ProvisioningError(`Failed to ${operation} Lambda web function endpoint ${logicalIdShown(logicalId)}: ${text}`, resourceType, logicalId, physicalId, cause);
10959
+ const failure = describeAwsFailure(error);
10960
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
10961
+ const m = mask ?? ((text) => text);
10962
+ this.logger.debug(m(build(m(failure.detail)).message));
10963
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
10920
10964
  }
10921
10965
  };
10922
10966
  function readRevisionWeights(value, fail) {
@@ -15969,7 +16013,7 @@ var EC2Provider = class {
15969
16013
  ])],
15970
16014
  ["AWS::EC2::SubnetNetworkAclAssociation", /* @__PURE__ */ new Set(["SubnetId", "NetworkAclId"])]
15971
16015
  ]);
15972
- removalDefaults = /* @__PURE__ */ new Map([["AWS::EC2::VPC", /* @__PURE__ */ new Map([["EnableDnsHostnames", false], ["EnableDnsSupport", true]])]]);
16016
+ removalDefaults = /* @__PURE__ */ new Map([["AWS::EC2::VPC", /* @__PURE__ */ new Map([["EnableDnsHostnames", false], ["EnableDnsSupport", true]])], ["AWS::EC2::Instance", /* @__PURE__ */ new Map([["Monitoring", false]])]]);
15973
16017
  unhandledByDesign = /* @__PURE__ */ new Map([
15974
16018
  ["AWS::EC2::Instance", /* @__PURE__ */ new Map([["ElasticGpuSpecifications", "AWS Elastic GPU end-of-life (announced 2023-11); no replacement API"], ["ElasticInferenceAccelerators", "AWS Elastic Inference end-of-life 2024-04; use AWS Inferentia / Trainium accelerator instance families instead"]])],
15975
16019
  ["AWS::EC2::SecurityGroupIngress", /* @__PURE__ */ new Map([["GroupName", "EC2-Classic-only — use GroupId for VPC security groups (EC2-Classic retired 2022-08-15)"], ["SourceSecurityGroupName", "EC2-Classic-only — use SourceSecurityGroupId for VPC peer security groups (EC2-Classic retired 2022-08-15)"]])],
@@ -16145,7 +16189,7 @@ var EC2Provider = class {
16145
16189
  case "AWS::EC2::SubnetRouteTableAssociation": return this.updateSubnetRouteTableAssociation(logicalId, physicalId);
16146
16190
  case "AWS::EC2::SecurityGroup": return this.updateSecurityGroup(logicalId, physicalId, resourceType, properties, previousProperties);
16147
16191
  case "AWS::EC2::SecurityGroupIngress": return this.updateSecurityGroupIngress(logicalId, physicalId, resourceType, properties, previousProperties, context?.maskSecrets, context?.replayingState === true, context?.recordedAttributes);
16148
- case "AWS::EC2::Instance": return this.updateInstance(logicalId, physicalId, resourceType, properties, previousProperties);
16192
+ case "AWS::EC2::Instance": return this.updateInstance(logicalId, physicalId, resourceType, properties, previousProperties, context);
16149
16193
  case "AWS::EC2::NetworkAclEntry": return this.updateNetworkAclEntry(logicalId, physicalId, resourceType, properties, previousProperties, context);
16150
16194
  case "AWS::EC2::NetworkAcl":
16151
16195
  case "AWS::EC2::SubnetNetworkAclAssociation": throw new ResourceUpdateNotSupportedError(resourceType, logicalId, "AWS provides no in-place Update API for this EC2 sub-resource type; every property change requires Delete + Create. Re-deploy with cdkd deploy --replace, or destroy + redeploy.");
@@ -17914,9 +17958,10 @@ var EC2Provider = class {
17914
17958
  isInstanceProfilePropagationError(msg) {
17915
17959
  return msg.includes("Invalid IAM Instance Profile") || msg.includes("NoSuchEntity") || msg.includes("not authorized") || msg.includes("InvalidParameterValue") && msg.includes("instance profile");
17916
17960
  }
17917
- async updateInstance(logicalId, physicalId, resourceType, properties, previousProperties) {
17961
+ async updateInstance(logicalId, physicalId, resourceType, properties, previousProperties, context) {
17918
17962
  this.logger.debug(`Updating EC2 Instance ${logicalId}: ${physicalId}`);
17919
17963
  refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
17964
+ this.guardTerminationProtectionRemoval(logicalId, physicalId, resourceType, properties, previousProperties, context);
17920
17965
  try {
17921
17966
  await this.applyTagDiff(physicalId, resourceType, logicalId, previousProperties["Tags"], properties["Tags"]);
17922
17967
  await this.updateInstanceSecurityProps(physicalId, properties, previousProperties);
@@ -17931,6 +17976,14 @@ var EC2Provider = class {
17931
17976
  throw this.wrapCaughtError(error, (text) => new ProvisioningError(`Failed to update EC2 Instance ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
17932
17977
  }
17933
17978
  }
17979
+ guardTerminationProtectionRemoval(logicalId, physicalId, resourceType, properties, previousProperties, context) {
17980
+ if (!(context?.removedProperties !== void 0 ? context.removedProperties.has("DisableApiTermination") : previousProperties["DisableApiTermination"] !== void 0 && properties["DisableApiTermination"] === void 0)) return;
17981
+ if (context?.replayingState === true) {
17982
+ if (this.coerceBool(previousProperties["DisableApiTermination"]) === true) this.logger.warn(safeMsg`${logicalId} (${resourceType}): the state being restored does not declare DisableApiTermination; the rollback leaves termination protection at its current AWS value. Set DisableApiTermination to false to turn termination protection off.`);
17983
+ return;
17984
+ }
17985
+ throw markNonRetryable(new ProvisioningError(safeMsg`${logicalId} (${resourceType}): DisableApiTermination was removed from the template, and CloudFormation fails that update for an existing instance. Keep it declared, and set it to false to turn termination protection off. The instance was not updated.`, resourceType, logicalId, physicalId));
17986
+ }
17934
17987
  async updateInstanceSecurityProps(physicalId, properties, previousProperties) {
17935
17988
  const newDisableApiTermination = this.coerceBool(properties["DisableApiTermination"]);
17936
17989
  const oldDisableApiTermination = this.coerceBool(previousProperties["DisableApiTermination"]);
@@ -19480,6 +19533,7 @@ var ApiGatewayProvider = class ApiGatewayProvider {
19480
19533
  ])]
19481
19534
  ]);
19482
19535
  unhandledByDesign = /* @__PURE__ */ new Map([["AWS::ApiGateway::Deployment", /* @__PURE__ */ new Map([["StageName", "CFn-only convenience for inline-creating a Stage from a Deployment; declare AWS::ApiGateway::Stage explicitly to attach to this Deployment"], ["StageDescription", "CFn-only convenience for inline-creating a Stage; declare AWS::ApiGateway::Stage with the Description property instead"]])]]);
19536
+ removalDefaults = /* @__PURE__ */ new Map([["AWS::ApiGateway::Account", /* @__PURE__ */ new Map([["CloudWatchRoleArn", ""]])]]);
19483
19537
  static MAX_IAM_RETRIES = 3;
19484
19538
  static IAM_RETRY_DELAY_MS = 1e4;
19485
19539
  constructor() {
@@ -19528,7 +19582,9 @@ var ApiGatewayProvider = class ApiGatewayProvider {
19528
19582
  async update(logicalId, physicalId, resourceType, properties, previousProperties, context) {
19529
19583
  const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
19530
19584
  switch (resourceType) {
19531
- case "AWS::ApiGateway::Account": return this.updateAccount(logicalId, physicalId, resourceType, properties, log);
19585
+ case "AWS::ApiGateway::Account":
19586
+ properties = withRemovalDefaults(this.removalDefaults, resourceType, properties, previousProperties, context);
19587
+ return this.updateAccount(logicalId, physicalId, resourceType, properties, log);
19532
19588
  case "AWS::ApiGateway::Authorizer": return this.updateAuthorizer(logicalId, physicalId, resourceType, properties, previousProperties, log);
19533
19589
  case "AWS::ApiGateway::Resource": return this.updateResource(logicalId, physicalId, resourceType, properties, previousProperties, log);
19534
19590
  case "AWS::ApiGateway::Deployment": return this.updateDeployment(logicalId, physicalId, resourceType);
@@ -23397,6 +23453,14 @@ var AgentCoreEvaluatorProvider = class {
23397
23453
  "KmsKeyArn",
23398
23454
  "Tags"
23399
23455
  ])]]);
23456
+ removalHandledInUpdate = /* @__PURE__ */ new Map([["AWS::BedrockAgentCore::Evaluator", /* @__PURE__ */ new Set([
23457
+ "EvaluatorName",
23458
+ "EvaluatorConfig",
23459
+ "Level",
23460
+ "Description",
23461
+ "KmsKeyArn",
23462
+ "Tags"
23463
+ ])]]);
23400
23464
  constructor() {
23401
23465
  const awsClients = getAwsClients();
23402
23466
  this.client = awsClients.bedrockAgentCoreControl;
@@ -31608,6 +31672,10 @@ var ElastiCacheProvider = class {
31608
31672
  //#region src/provisioning/providers/servicediscovery-provider.ts
31609
31673
  const PUBLIC_DNS_NAMESPACE_DEFAULT_SOA_TTL = 60;
31610
31674
  const PRIVATE_DNS_NAMESPACE_DEFAULT_SOA_TTL = 15;
31675
+ const CREATE_SERVICE_NAMESPACE_LAG_MAX_RETRIES = 9;
31676
+ const CREATE_SERVICE_NAMESPACE_LAG_INITIAL_DELAY_MS = 500;
31677
+ const CREATE_SERVICE_NAMESPACE_LAG_MAX_DELAY_MS = 4e3;
31678
+ const CREATE_SERVICE_NAMESPACE_LAG_BACKOFF_SECONDS = Array.from({ length: CREATE_SERVICE_NAMESPACE_LAG_MAX_RETRIES }, (_, i) => Math.min(CREATE_SERVICE_NAMESPACE_LAG_INITIAL_DELAY_MS * 2 ** i, CREATE_SERVICE_NAMESPACE_LAG_MAX_DELAY_MS)).reduce((a, b) => a + b, 0) / 1e3;
31611
31679
  const NAMESPACE_TYPES = [
31612
31680
  "AWS::ServiceDiscovery::PrivateDnsNamespace",
31613
31681
  "AWS::ServiceDiscovery::HttpNamespace",
@@ -31618,6 +31686,19 @@ const NAMESPACE_KIND_BY_TYPE = /* @__PURE__ */ new Map([
31618
31686
  ["AWS::ServiceDiscovery::PublicDnsNamespace", "DNS_PUBLIC"],
31619
31687
  ["AWS::ServiceDiscovery::HttpNamespace", "HTTP"]
31620
31688
  ]);
31689
+ function sameAsRecorded(desired, recorded) {
31690
+ if (typeof recorded === "string" && isRecordedStandIn(recorded)) return false;
31691
+ if (Array.isArray(desired) && Array.isArray(recorded)) return desired.length === recorded.length && desired.every((item, i) => sameAsRecorded(item, recorded[i]));
31692
+ if (desired !== null && recorded !== null && typeof desired === "object" && typeof recorded === "object" && !Array.isArray(desired) && !Array.isArray(recorded)) {
31693
+ const d = desired;
31694
+ const r = recorded;
31695
+ return [.../* @__PURE__ */ new Set([...Object.keys(d), ...Object.keys(r)])].every((key) => Object.hasOwn(d, key) === Object.hasOwn(r, key) && sameAsRecorded(d[key], r[key]));
31696
+ }
31697
+ return isDeepStrictEqual(desired, recorded);
31698
+ }
31699
+ function isRecordedStandIn(value) {
31700
+ return dynamicReferenceTokens(value).length > 0 || value.includes("***");
31701
+ }
31621
31702
  const NAMESPACE_ID_PATTERN = /^ns-[a-z0-9]{16}$/;
31622
31703
  const SERVICE_ID_PATTERN = /^srv-[a-z0-9]{16}$/;
31623
31704
  var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
@@ -31669,6 +31750,17 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
31669
31750
  "Name",
31670
31751
  "Tags",
31671
31752
  "Properties"
31753
+ ])],
31754
+ ["AWS::ServiceDiscovery::Service", /* @__PURE__ */ new Set([
31755
+ "Name",
31756
+ "NamespaceId",
31757
+ "Type",
31758
+ "HealthCheckCustomConfig",
31759
+ "Tags",
31760
+ "ServiceAttributes",
31761
+ "Description",
31762
+ "DnsConfig",
31763
+ "HealthCheckConfig"
31672
31764
  ])]
31673
31765
  ]);
31674
31766
  getClient() {
@@ -31970,16 +32062,31 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
31970
32062
  if (!name) throw new ProvisioningError(`Name is required for ServiceDiscovery Service ${logicalId}`, resourceType, logicalId);
31971
32063
  let leftBehindServiceId;
31972
32064
  try {
31973
- const service = (await client.send(new CreateServiceCommand$1({
31974
- Name: name,
31975
- ...namespaceId && { NamespaceId: namespaceId },
31976
- ...description && { Description: description },
31977
- ...dnsConfig && { DnsConfig: dnsConfig },
31978
- ...healthCheckCustomConfig && { HealthCheckCustomConfig: healthCheckCustomConfig },
31979
- ...healthCheckConfig && { HealthCheckConfig: healthCheckConfig },
31980
- ...tags.length > 0 && { Tags: tags },
31981
- ...type && { Type: type }
31982
- }))).Service;
32065
+ const watch = startInterruptWatch(`Cloud Map service ${logicalId}`);
32066
+ let response;
32067
+ try {
32068
+ response = await withRetry(() => client.send(new CreateServiceCommand$1({
32069
+ Name: name,
32070
+ ...namespaceId && { NamespaceId: namespaceId },
32071
+ ...description && { Description: description },
32072
+ ...dnsConfig && { DnsConfig: dnsConfig },
32073
+ ...healthCheckCustomConfig && { HealthCheckCustomConfig: healthCheckCustomConfig },
32074
+ ...healthCheckConfig && { HealthCheckConfig: healthCheckConfig },
32075
+ ...tags.length > 0 && { Tags: tags },
32076
+ ...type && { Type: type }
32077
+ })), logicalId, {
32078
+ maxRetries: CREATE_SERVICE_NAMESPACE_LAG_MAX_RETRIES,
32079
+ initialDelayMs: CREATE_SERVICE_NAMESPACE_LAG_INITIAL_DELAY_MS,
32080
+ maxDelayMs: CREATE_SERVICE_NAMESPACE_LAG_MAX_DELAY_MS,
32081
+ isRetryable: (_text, error) => error instanceof NamespaceNotFound,
32082
+ logger: this.maskedRetryLogger(maskSecrets),
32083
+ isInterrupted: watch.isInterrupted,
32084
+ onInterrupted: watch.onInterrupted
32085
+ });
32086
+ } finally {
32087
+ watch.dispose();
32088
+ }
32089
+ const service = response.Service;
31983
32090
  if (!service || !service.Id) throw new Error("CreateService did not return Service ID");
31984
32091
  const serviceId = service.Id;
31985
32092
  leftBehindServiceId = serviceId;
@@ -32023,7 +32130,8 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32023
32130
  };
32024
32131
  } catch (error) {
32025
32132
  const cause = error instanceof Error ? error : void 0;
32026
- const thrown = this.wrapMaskedError(maskerOrIdentity(maskSecrets), error, (text) => new ProvisioningError(`Failed to create service discovery service ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
32133
+ const retriedNote = error instanceof NamespaceNotFound ? ` (Cloud Map still rejected the namespace after ${CREATE_SERVICE_NAMESPACE_LAG_BACKOFF_SECONDS}s of retries)` : "";
32134
+ const thrown = this.wrapMaskedError(maskerOrIdentity(maskSecrets), error, (text) => new ProvisioningError(`Failed to create service discovery service ${logicalId}: ${text}${retriedNote}`, resourceType, logicalId, void 0, cause));
32027
32135
  if (leftBehindServiceId) markCreatedBeforeFailure(thrown, logicalId, resourceType, leftBehindServiceId);
32028
32136
  throw thrown;
32029
32137
  }
@@ -32032,17 +32140,14 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32032
32140
  this.logger.debug(`Updating service discovery service ${logicalId}: ${physicalId}`);
32033
32141
  refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId, physicalId);
32034
32142
  const client = this.getClient();
32035
- const serviceChange = {};
32036
- if (properties["Description"] !== void 0) serviceChange.Description = properties["Description"];
32037
- const dnsConfig = properties["DnsConfig"];
32038
- if (dnsConfig?.DnsRecords !== void 0) serviceChange.DnsConfig = { DnsRecords: dnsConfig.DnsRecords };
32039
- if (properties["HealthCheckConfig"] !== void 0) serviceChange.HealthCheckConfig = properties["HealthCheckConfig"];
32143
+ const servicePlan = this.planServiceChange(properties, previousProperties);
32144
+ const serviceChange = servicePlan?.change ?? {};
32040
32145
  const newAttrs = this.normalizeServiceAttributes(properties["ServiceAttributes"]);
32041
32146
  const oldAttrs = this.normalizeServiceAttributes(previousProperties["ServiceAttributes"]);
32042
32147
  const upsertAttrs = {};
32043
32148
  for (const [k, v] of Object.entries(newAttrs)) if (oldAttrs[k] !== v) upsertAttrs[k] = v;
32044
32149
  const removedAttrKeys = Object.keys(oldAttrs).filter((k) => !Object.hasOwn(newAttrs, k));
32045
- const hasServiceChange = Object.keys(serviceChange).length > 0;
32150
+ const hasServiceChange = servicePlan !== void 0;
32046
32151
  const hasAttrUpsert = Object.keys(upsertAttrs).length > 0;
32047
32152
  const hasAttrRemove = removedAttrKeys.length > 0;
32048
32153
  const tagPlan = planTagDiff(previousProperties["Tags"], properties["Tags"]);
@@ -32056,8 +32161,10 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32056
32161
  wasReplaced: false
32057
32162
  };
32058
32163
  }
32164
+ let knownArn;
32059
32165
  try {
32060
32166
  if (hasServiceChange) {
32167
+ if (servicePlan.keepRemovedFromLive) knownArn = await this.keepUndeclaredServiceFields(physicalId, serviceChange);
32061
32168
  const operationId = (await client.send(new UpdateServiceCommand$1({
32062
32169
  Id: physicalId,
32063
32170
  Service: serviceChange
@@ -32094,7 +32201,7 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32094
32201
  }
32095
32202
  }
32096
32203
  if (hasTagChange) {
32097
- const arn = (await client.send(new GetServiceCommand({ Id: physicalId }))).Service?.Arn;
32204
+ const arn = knownArn ?? (await client.send(new GetServiceCommand({ Id: physicalId }))).Service?.Arn;
32098
32205
  if (!arn) throw new ProvisioningError(safeMsg`Could not resolve the ARN of service discovery service ${logicalId}; its Tags were not updated`, resourceType, logicalId, physicalId);
32099
32206
  if (tagPlan.remove.length > 0) await client.send(new UntagResourceCommand$16({
32100
32207
  ResourceARN: arn,
@@ -32119,6 +32226,30 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32119
32226
  throw this.wrapMaskedError(maskerOrIdentity(maskSecrets), error, (text) => new ProvisioningError(`Failed to update service discovery service ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
32120
32227
  }
32121
32228
  }
32229
+ planServiceChange(properties, previousProperties) {
32230
+ const declaredDiffers = (key) => properties[key] !== void 0 && !sameAsRecorded(properties[key], previousProperties[key]);
32231
+ const change = {};
32232
+ if (properties["Description"] !== void 0) change.Description = properties["Description"];
32233
+ const desiredRecords = properties["DnsConfig"]?.DnsRecords;
32234
+ const previousRecords = previousProperties["DnsConfig"]?.DnsRecords;
32235
+ if (desiredRecords !== void 0) change.DnsConfig = { DnsRecords: desiredRecords };
32236
+ if (properties["HealthCheckConfig"] !== void 0) change.HealthCheckConfig = properties["HealthCheckConfig"];
32237
+ if (declaredDiffers("Description") || declaredDiffers("HealthCheckConfig")) return {
32238
+ change,
32239
+ keepRemovedFromLive: false
32240
+ };
32241
+ if (desiredRecords !== void 0 && !sameAsRecorded(desiredRecords, previousRecords)) return {
32242
+ change,
32243
+ keepRemovedFromLive: true
32244
+ };
32245
+ }
32246
+ async keepUndeclaredServiceFields(physicalId, serviceChange) {
32247
+ if (serviceChange.Description !== void 0 && serviceChange.HealthCheckConfig !== void 0) return;
32248
+ const live = (await this.getClient().send(new GetServiceCommand({ Id: physicalId }))).Service;
32249
+ if (serviceChange.Description === void 0 && live?.Description !== void 0) serviceChange.Description = live.Description;
32250
+ if (serviceChange.HealthCheckConfig === void 0 && live?.HealthCheckConfig !== void 0) serviceChange.HealthCheckConfig = live.HealthCheckConfig;
32251
+ return live?.Arn;
32252
+ }
32122
32253
  async deleteService(logicalId, physicalId, resourceType, context) {
32123
32254
  this.logger.debug(`Deleting service discovery service ${logicalId}: ${physicalId}`);
32124
32255
  const client = this.getClient();
@@ -39205,8 +39336,12 @@ var EFSProvider = class {
39205
39336
  this.getClient();
39206
39337
  return this.mountTargetCreateClient;
39207
39338
  }
39208
- wrapMaskedError(mask, error, build) {
39209
- return wrapMaskedAwsError(mask, error, build);
39339
+ wrapMaskedError(log, error, build) {
39340
+ const failure = describeAwsFailure(error);
39341
+ if (!(error instanceof Error)) return build(log.mask(failure.detail));
39342
+ if (!failure.redacted) return wrapMaskedAwsError(log.mask, error, build);
39343
+ log.debug(build(log.mask(failure.detail)).message);
39344
+ return markRedactedCause(build(`${log.mask(failure.summary)}${relayedNameCollision(failure.detail)}`));
39210
39345
  }
39211
39346
  async create(logicalId, resourceType, properties, context) {
39212
39347
  const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
@@ -39278,7 +39413,7 @@ var EFSProvider = class {
39278
39413
  } catch (error) {
39279
39414
  if (error instanceof ProvisioningError) throw error;
39280
39415
  const cause = error instanceof Error ? error : void 0;
39281
- throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to update EFS FileSystem ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
39416
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to update EFS FileSystem ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
39282
39417
  }
39283
39418
  }
39284
39419
  async updateMountTarget(logicalId, physicalId, resourceType, properties, log) {
@@ -39303,7 +39438,7 @@ var EFSProvider = class {
39303
39438
  };
39304
39439
  } catch (error) {
39305
39440
  const cause = error instanceof Error ? error : void 0;
39306
- throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to update EFS MountTarget ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
39441
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to update EFS MountTarget ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
39307
39442
  }
39308
39443
  }
39309
39444
  async delete(logicalId, physicalId, resourceType, _properties, context) {
@@ -39385,7 +39520,7 @@ var EFSProvider = class {
39385
39520
  }
39386
39521
  }
39387
39522
  const cause = error instanceof Error ? error : void 0;
39388
- const thrown = error instanceof ProvisioningError ? error : this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to create EFS FileSystem ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
39523
+ const thrown = error instanceof ProvisioningError ? error : this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to create EFS FileSystem ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
39389
39524
  if (fileSystemLeftBehind && fileSystemId !== void 0) markCreatedBeforeFailure(thrown, logicalId, resourceType, fileSystemId);
39390
39525
  throw thrown;
39391
39526
  }
@@ -39510,7 +39645,8 @@ var EFSProvider = class {
39510
39645
  return;
39511
39646
  }
39512
39647
  const cause = error instanceof Error ? error : void 0;
39513
- throw new ProvisioningError(`Failed to delete EFS FileSystem ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
39648
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
39649
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to delete EFS FileSystem ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
39514
39650
  }
39515
39651
  }
39516
39652
  async waitForFileSystemAvailable(fileSystemId, logicalId, resourceType, log) {
@@ -39549,7 +39685,7 @@ var EFSProvider = class {
39549
39685
  };
39550
39686
  } catch (error) {
39551
39687
  const cause = error instanceof Error ? error : void 0;
39552
- const thrown = error instanceof ProvisioningError ? error : this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to create EFS MountTarget ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
39688
+ const thrown = error instanceof ProvisioningError ? error : this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to create EFS MountTarget ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
39553
39689
  if (createdMountTargetId) markCreatedBeforeFailure(thrown, logicalId, resourceType, createdMountTargetId);
39554
39690
  throw thrown;
39555
39691
  }
@@ -39580,7 +39716,8 @@ var EFSProvider = class {
39580
39716
  return;
39581
39717
  }
39582
39718
  const cause = error instanceof Error ? error : void 0;
39583
- throw new ProvisioningError(`Failed to delete EFS MountTarget ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
39719
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
39720
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to delete EFS MountTarget ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
39584
39721
  }
39585
39722
  }
39586
39723
  async waitForMountTargetDeleted(mountTargetId, logicalId) {
@@ -39648,7 +39785,7 @@ var EFSProvider = class {
39648
39785
  } catch (error) {
39649
39786
  if (error instanceof ProvisioningError) throw error;
39650
39787
  const cause = error instanceof Error ? error : void 0;
39651
- throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to create EFS AccessPoint ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
39788
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to create EFS AccessPoint ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
39652
39789
  }
39653
39790
  }
39654
39791
  async createOrAdoptAccessPoint(logicalId, resourceType, log, input) {
@@ -39709,7 +39846,8 @@ var EFSProvider = class {
39709
39846
  return;
39710
39847
  }
39711
39848
  const cause = error instanceof Error ? error : void 0;
39712
- throw new ProvisioningError(`Failed to delete EFS AccessPoint ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
39849
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
39850
+ throw this.wrapMaskedError(log, error, (text) => new ProvisioningError(`Failed to delete EFS AccessPoint ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
39713
39851
  }
39714
39852
  }
39715
39853
  async readCurrentState(physicalId, _logicalId, resourceType) {
@@ -39986,6 +40124,21 @@ var FSxFileSystemProvider = class {
39986
40124
  this.pollIntervalMs = options?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS$3;
39987
40125
  this.maxWaitMs = options?.maxWaitMs ?? DEFAULT_MAX_WAIT_MS$3;
39988
40126
  }
40127
+ wrapStatusReasonError(mask, message, build) {
40128
+ const text = describeAwsStatusReason({ message }, "no failure details reported");
40129
+ if (!text.redacted) return build(text.detail, void 0);
40130
+ const m = maskerOrIdentity(mask);
40131
+ const cause = new Error(text.detail);
40132
+ this.logger.debug(m(build(m(text.detail), cause).message));
40133
+ return markRedactedCause(build(m(text.summary), cause));
40134
+ }
40135
+ wrapCaughtError(mask, error, build) {
40136
+ const failure = describeAwsFailure(error);
40137
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
40138
+ const m = maskerOrIdentity(mask);
40139
+ this.logger.debug(m(build(m(failure.detail)).message));
40140
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
40141
+ }
39989
40142
  handledProperties = /* @__PURE__ */ new Map([["AWS::FSx::FileSystem", /* @__PURE__ */ new Set([
39990
40143
  "BackupId",
39991
40144
  "FileSystemType",
@@ -40019,7 +40172,7 @@ var FSxFileSystemProvider = class {
40019
40172
  getMinResourceTimeoutMs() {
40020
40173
  return this.maxWaitMs;
40021
40174
  }
40022
- async create(logicalId, resourceType, properties) {
40175
+ async create(logicalId, resourceType, properties, context) {
40023
40176
  const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
40024
40177
  if (resourceType !== "AWS::FSx::FileSystem") throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId);
40025
40178
  const backupId = properties["BackupId"];
@@ -40085,7 +40238,7 @@ var FSxFileSystemProvider = class {
40085
40238
  throw markNonRetryable(new ProvisioningError(safeMsg`FSx answered the create of ${logicalId} with file system ${returnedId}, which ${createdAt === void 0 ? "carries no creation time" : "predates this create"}: the create token cdkd derives for this stack's file system is held by it, and it is NOT recorded in cdkd state. It is not one this deploy, or an interrupted earlier deploy of this stack, made: it was created under this token by an earlier cdkd version, or a completed deploy recorded it and cdkd later let go of it, and it may hold data, so cdkd neither records nor deletes it. Inspect it with: ${inspect} --file-system-ids ${returnedId} -- then import it into this stack, or delete it once you are sure its data is not needed, and deploy again.`, resourceType, logicalId));
40086
40239
  }
40087
40240
  fileSystemId = returnedId;
40088
- const fs = await this.waitForFileSystemAvailable(fileSystemId, logicalId, resourceType);
40241
+ const fs = await this.waitForFileSystemAvailable(fileSystemId, logicalId, resourceType, context?.maskSecrets);
40089
40242
  this.logger.debug(`Successfully created FSx FileSystem ${logicalId}: ${fileSystemId}`);
40090
40243
  this.createTokenFirstSentAt.delete(clientRequestToken);
40091
40244
  return {
@@ -40107,13 +40260,9 @@ var FSxFileSystemProvider = class {
40107
40260
  throw error;
40108
40261
  }
40109
40262
  const cause = error instanceof Error ? error : void 0;
40110
- const message = `Failed to create FSx FileSystem ${logicalId}: ${describeAwsFailure(error).detail}`;
40111
- if (survivorId !== void 0) {
40112
- const thrown = new ProvisioningError(message, resourceType, logicalId, void 0, cause);
40113
- markCreatedBeforeFailure(thrown, logicalId, resourceType, survivorId);
40114
- throw thrown;
40115
- }
40116
- throw new ProvisioningError(message, resourceType, logicalId, void 0, cause);
40263
+ const thrown = this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to create FSx FileSystem ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
40264
+ if (survivorId !== void 0) markCreatedBeforeFailure(thrown, logicalId, resourceType, survivorId);
40265
+ throw thrown;
40117
40266
  }
40118
40267
  }
40119
40268
  toCreateLustreConfiguration(config) {
@@ -40325,7 +40474,7 @@ var FSxFileSystemProvider = class {
40325
40474
  }))).FileSystem?.AdministrativeActions ?? []).filter((a) => a.AdministrativeActionType === "FILE_SYSTEM_UPDATE" && (a.Status === "PENDING" || a.Status === "IN_PROGRESS"));
40326
40475
  const requestTimes = respPendingActions.map((a) => a.RequestTime?.getTime()).filter((t) => t !== void 0);
40327
40476
  const actionThresholdMs = requestTimes.length > 0 ? Math.min(...requestTimes) : callTimeMs - 6e4;
40328
- updatedFs = await this.waitForUpdateActionComplete(physicalId, logicalId, resourceType, actionThresholdMs, respPendingActions.length > 0);
40477
+ updatedFs = await this.waitForUpdateActionComplete(physicalId, logicalId, resourceType, actionThresholdMs, respPendingActions.length > 0, context?.maskSecrets);
40329
40478
  }
40330
40479
  if (tagsChanged) await this.applyTagDiff(physicalId, resourceType, logicalId, properties["Tags"], previousProperties["Tags"]);
40331
40480
  if (!updatedFs) try {
@@ -40343,7 +40492,7 @@ var FSxFileSystemProvider = class {
40343
40492
  } catch (error) {
40344
40493
  if (error instanceof ProvisioningError) throw error;
40345
40494
  const cause = error instanceof Error ? error : void 0;
40346
- throw new ProvisioningError(`Failed to update FSx FileSystem ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
40495
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update FSx FileSystem ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
40347
40496
  }
40348
40497
  }
40349
40498
  detectVariantConfigKey(properties, previousProperties) {
@@ -40536,9 +40685,9 @@ var FSxFileSystemProvider = class {
40536
40685
  return;
40537
40686
  }
40538
40687
  const cause = error instanceof Error ? error : void 0;
40539
- throw new ProvisioningError(`Failed to delete FSx FileSystem ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
40688
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete FSx FileSystem ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
40540
40689
  }
40541
- await this.waitForFileSystemDeleted(physicalId, logicalId, resourceType);
40690
+ await this.waitForFileSystemDeleted(physicalId, logicalId, resourceType, context?.maskSecrets);
40542
40691
  this.logger.debug(`Successfully deleted FSx FileSystem ${logicalId}`);
40543
40692
  }
40544
40693
  async isSameResource(journaledPhysicalId, record, resourceType, context) {
@@ -40581,23 +40730,20 @@ var FSxFileSystemProvider = class {
40581
40730
  throw error;
40582
40731
  }
40583
40732
  }
40584
- async waitForFileSystemAvailable(fileSystemId, logicalId, resourceType) {
40733
+ async waitForFileSystemAvailable(fileSystemId, logicalId, resourceType, mask) {
40585
40734
  const startTime = Date.now();
40586
40735
  const transientState = { count: 0 };
40587
40736
  while (Date.now() - startTime < this.maxWaitMs) {
40588
40737
  const fs = await this.describeForPoll(fileSystemId, transientState);
40589
40738
  const lifecycle = fs?.Lifecycle;
40590
40739
  if (fs && lifecycle === "AVAILABLE") return fs;
40591
- if (lifecycle === "FAILED" || lifecycle === "MISCONFIGURED") {
40592
- const detail = fs?.FailureDetails?.Message ?? "no failure details reported";
40593
- throw new ProvisioningError(`FSx FileSystem ${fileSystemId} entered lifecycle state ${lifecycle}: ${detail}`, resourceType, logicalId, fileSystemId);
40594
- }
40740
+ if (lifecycle === "FAILED" || lifecycle === "MISCONFIGURED") throw this.wrapStatusReasonError(mask, fs?.FailureDetails?.Message, (text, cause) => new ProvisioningError(`FSx FileSystem ${fileSystemId} entered lifecycle state ${lifecycle}: ${text}`, resourceType, logicalId, fileSystemId, cause));
40595
40741
  this.logger.debug(`FSx FileSystem ${fileSystemId} state: ${lifecycle ?? "unknown"}, waiting...`);
40596
40742
  await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));
40597
40743
  }
40598
40744
  throw new ProvisioningError(`Timed out waiting for FSx FileSystem ${fileSystemId} to become AVAILABLE (${Math.round(this.maxWaitMs / 6e4)} min)`, resourceType, logicalId, fileSystemId);
40599
40745
  }
40600
- async waitForUpdateActionComplete(fileSystemId, logicalId, resourceType, actionThresholdMs, requireActionObservation) {
40746
+ async waitForUpdateActionComplete(fileSystemId, logicalId, resourceType, actionThresholdMs, requireActionObservation, mask) {
40601
40747
  const startTime = Date.now();
40602
40748
  const transientState = { count: 0 };
40603
40749
  let seenTrackedAction = false;
@@ -40607,10 +40753,7 @@ var FSxFileSystemProvider = class {
40607
40753
  const updateActions = (fs.AdministrativeActions ?? []).filter((a) => a.AdministrativeActionType === "FILE_SYSTEM_UPDATE" && (a.RequestTime === void 0 || a.RequestTime.getTime() >= actionThresholdMs));
40608
40754
  if (updateActions.length > 0) seenTrackedAction = true;
40609
40755
  const failed = updateActions.find((a) => a.Status === "FAILED");
40610
- if (failed) {
40611
- const detail = failed.FailureDetails?.Message ?? "no failure details reported";
40612
- throw new ProvisioningError(`FSx FileSystem ${fileSystemId} update failed (FILE_SYSTEM_UPDATE administrative action): ${detail}`, resourceType, logicalId, fileSystemId);
40613
- }
40756
+ if (failed) throw this.wrapStatusReasonError(mask, failed.FailureDetails?.Message, (text, cause) => new ProvisioningError(`FSx FileSystem ${fileSystemId} update failed (FILE_SYSTEM_UPDATE administrative action): ${text}`, resourceType, logicalId, fileSystemId, cause));
40614
40757
  if (!updateActions.some((a) => a.Status === "PENDING" || a.Status === "IN_PROGRESS") && (!requireActionObservation || seenTrackedAction) && fs.Lifecycle === "AVAILABLE") return fs;
40615
40758
  this.logger.debug(`FSx FileSystem ${fileSystemId} update in progress (lifecycle: ${fs.Lifecycle ?? "unknown"}), waiting...`);
40616
40759
  }
@@ -40618,7 +40761,7 @@ var FSxFileSystemProvider = class {
40618
40761
  }
40619
40762
  throw new ProvisioningError(`Timed out waiting for FSx FileSystem ${fileSystemId} update to complete (${Math.round(this.maxWaitMs / 6e4)} min)`, resourceType, logicalId, fileSystemId);
40620
40763
  }
40621
- async waitForFileSystemDeleted(fileSystemId, logicalId, resourceType) {
40764
+ async waitForFileSystemDeleted(fileSystemId, logicalId, resourceType, mask) {
40622
40765
  const startTime = Date.now();
40623
40766
  const transientState = { count: 0 };
40624
40767
  while (Date.now() - startTime < this.maxWaitMs) {
@@ -40630,17 +40773,14 @@ var FSxFileSystemProvider = class {
40630
40773
  } catch (error) {
40631
40774
  if (error instanceof FileSystemNotFound$1) return;
40632
40775
  const cause = error instanceof Error ? error : void 0;
40633
- throw new ProvisioningError(`Failed to poll FSx FileSystem ${fileSystemId} deletion: ${describeAwsFailure(error).detail}`, resourceType, logicalId, fileSystemId, cause);
40776
+ throw this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to poll FSx FileSystem ${fileSystemId} deletion: ${text}`, resourceType, logicalId, fileSystemId, cause));
40634
40777
  }
40635
40778
  if (!fs && sawResponse) return;
40636
40779
  if (!fs) {
40637
40780
  await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));
40638
40781
  continue;
40639
40782
  }
40640
- if (fs.Lifecycle === "FAILED") {
40641
- const detail = fs.FailureDetails?.Message ?? "no failure details reported";
40642
- throw new ProvisioningError(`FSx FileSystem ${fileSystemId} entered lifecycle state FAILED during deletion: ${detail}`, resourceType, logicalId, fileSystemId);
40643
- }
40783
+ if (fs.Lifecycle === "FAILED") throw this.wrapStatusReasonError(mask, fs.FailureDetails?.Message, (text, cause) => new ProvisioningError(`FSx FileSystem ${fileSystemId} entered lifecycle state FAILED during deletion: ${text}`, resourceType, logicalId, fileSystemId, cause));
40644
40784
  this.logger.debug(`FSx FileSystem ${fileSystemId} state: ${fs.Lifecycle ?? "unknown"}, waiting for deletion...`);
40645
40785
  await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));
40646
40786
  }
@@ -40976,6 +41116,21 @@ var EMRClusterProvider = class {
40976
41116
  this.pollIntervalMs = options?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS$2;
40977
41117
  this.maxWaitMs = options?.maxWaitMs ?? DEFAULT_MAX_WAIT_MS$2;
40978
41118
  }
41119
+ wrapStatusReasonError(mask, reason, fallback, build) {
41120
+ const text = describeAwsStatusReason(reason, fallback);
41121
+ if (!text.redacted) return build(text.detail, void 0);
41122
+ const m = maskerOrIdentity(mask);
41123
+ const cause = new Error(text.detail);
41124
+ this.logger.debug(m(build(m(text.detail), cause).message));
41125
+ return markRedactedCause(build(m(text.summary), cause));
41126
+ }
41127
+ wrapCaughtError(mask, error, build) {
41128
+ const failure = describeAwsFailure(error);
41129
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
41130
+ const m = maskerOrIdentity(mask);
41131
+ this.logger.debug(m(build(m(failure.detail)).message));
41132
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
41133
+ }
40979
41134
  handledProperties = /* @__PURE__ */ new Map([["AWS::EMR::Cluster", /* @__PURE__ */ new Set([
40980
41135
  "AdditionalInfo",
40981
41136
  "Applications",
@@ -41113,7 +41268,7 @@ var EMRClusterProvider = class {
41113
41268
  const replayWindow = replayedSendWindow(response, attemptStartMs);
41114
41269
  if (replayWindow !== void 0) await reportOrphans(replayWindow);
41115
41270
  if (!clusterId) throw new ProvisioningError(`EMR RunJobFlow for ${logicalId} returned no JobFlowId`, resourceType, logicalId);
41116
- const cluster = await this.waitForClusterReady(clusterId, logicalId, resourceType);
41271
+ const cluster = await this.waitForClusterReady(clusterId, logicalId, resourceType, context?.maskSecrets);
41117
41272
  this.logger.debug(`Successfully created EMR Cluster ${logicalId}: ${clusterId}`);
41118
41273
  return {
41119
41274
  physicalId: clusterId,
@@ -41140,14 +41295,12 @@ var EMRClusterProvider = class {
41140
41295
  throw error;
41141
41296
  }
41142
41297
  const cause = error instanceof Error ? error : void 0;
41143
- const message = `Failed to create EMR Cluster ${logicalId}: ${describeAwsFailure(error).detail}`;
41298
+ const thrown = this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to create EMR Cluster ${logicalId}: ${text}`, resourceType, logicalId, void 0, cause));
41144
41299
  if (survivorId !== void 0) {
41145
- const thrown = new ProvisioningError(message, resourceType, logicalId, void 0, cause);
41146
41300
  markCreatedBeforeFailure(thrown, logicalId, resourceType, survivorId);
41147
41301
  markNonRetryable(thrown);
41148
- throw thrown;
41149
41302
  }
41150
- throw new ProvisioningError(message, resourceType, logicalId, void 0, cause);
41303
+ throw thrown;
41151
41304
  }
41152
41305
  }
41153
41306
  toJobFlowInstancesConfig(config) {
@@ -41338,7 +41491,7 @@ var EMRClusterProvider = class {
41338
41491
  } catch (error) {
41339
41492
  if (error instanceof ProvisioningError) throw error;
41340
41493
  const cause = error instanceof Error ? error : void 0;
41341
- throw new ProvisioningError(`Failed to update EMR Cluster ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
41494
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update EMR Cluster ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
41342
41495
  }
41343
41496
  }
41344
41497
  async applyTagDiff(physicalId, resourceType, logicalId, prevTagsRaw, nextTagsRaw) {
@@ -41392,7 +41545,7 @@ var EMRClusterProvider = class {
41392
41545
  return;
41393
41546
  }
41394
41547
  const cause = error instanceof Error ? error : void 0;
41395
- throw new ProvisioningError(`Failed to describe EMR Cluster ${logicalId} before deletion: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
41548
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to describe EMR Cluster ${logicalId} before deletion: ${text}`, resourceType, logicalId, physicalId, cause));
41396
41549
  }
41397
41550
  const currentState = current?.Status?.State;
41398
41551
  if (currentState && TERMINAL_STATES.has(currentState)) {
@@ -41421,9 +41574,9 @@ var EMRClusterProvider = class {
41421
41574
  flip.deleteAccepted = true;
41422
41575
  } catch (error) {
41423
41576
  const cause = error instanceof Error ? error : void 0;
41424
- throw new ProvisioningError(`Failed to terminate EMR Cluster ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
41577
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to terminate EMR Cluster ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
41425
41578
  }
41426
- await this.waitForClusterTerminated(physicalId, logicalId, resourceType);
41579
+ await this.waitForClusterTerminated(physicalId, logicalId, resourceType, context?.maskSecrets);
41427
41580
  this.logger.debug(`Successfully deleted EMR Cluster ${logicalId}`);
41428
41581
  }
41429
41582
  async describeForPoll(clusterId, transientState, maxConsecutiveTransient = 5) {
@@ -41442,7 +41595,7 @@ var EMRClusterProvider = class {
41442
41595
  throw error;
41443
41596
  }
41444
41597
  }
41445
- async waitForClusterReady(clusterId, logicalId, resourceType) {
41598
+ async waitForClusterReady(clusterId, logicalId, resourceType, mask) {
41446
41599
  const startTime = Date.now();
41447
41600
  const transientState = { count: 0 };
41448
41601
  while (Date.now() - startTime < this.maxWaitMs) {
@@ -41450,15 +41603,18 @@ var EMRClusterProvider = class {
41450
41603
  const state = cluster?.Status?.State;
41451
41604
  if (cluster && state && CREATE_READY_STATES.has(state)) return cluster;
41452
41605
  if (state && TERMINAL_STATES.has(state)) {
41453
- const reason = cluster?.Status?.StateChangeReason?.Message ?? "no state-change reason reported";
41454
- throw new ProvisioningError(`EMR Cluster ${clusterId} entered terminal state ${state} during creation: ${reason}`, resourceType, logicalId, clusterId);
41606
+ const reason = cluster?.Status?.StateChangeReason;
41607
+ throw this.wrapStatusReasonError(mask, {
41608
+ code: reason?.Code,
41609
+ message: reason?.Message
41610
+ }, "no state-change reason reported", (text, cause) => new ProvisioningError(`EMR Cluster ${clusterId} entered terminal state ${state} during creation: ${text}`, resourceType, logicalId, clusterId, cause));
41455
41611
  }
41456
41612
  this.logger.debug(`EMR Cluster ${clusterId} state: ${state ?? "unknown"}, waiting...`);
41457
41613
  await new Promise((resolve) => setTimeout(resolve, this.pollIntervalMs));
41458
41614
  }
41459
41615
  throw new ProvisioningError(`Timed out waiting for EMR Cluster ${clusterId} to reach WAITING/RUNNING (${Math.round(this.maxWaitMs / 6e4)} min)`, resourceType, logicalId, clusterId);
41460
41616
  }
41461
- async waitForClusterTerminated(clusterId, logicalId, resourceType) {
41617
+ async waitForClusterTerminated(clusterId, logicalId, resourceType, mask) {
41462
41618
  const startTime = Date.now();
41463
41619
  const transientState = { count: 0 };
41464
41620
  while (Date.now() - startTime < this.maxWaitMs) {
@@ -41468,7 +41624,7 @@ var EMRClusterProvider = class {
41468
41624
  } catch (error) {
41469
41625
  if (error instanceof InvalidRequestException) return;
41470
41626
  const cause = error instanceof Error ? error : void 0;
41471
- throw new ProvisioningError(`Failed to poll EMR Cluster ${clusterId} termination: ${describeAwsFailure(error).detail}`, resourceType, logicalId, clusterId, cause);
41627
+ throw this.wrapCaughtError(mask, error, (text) => new ProvisioningError(`Failed to poll EMR Cluster ${clusterId} termination: ${text}`, resourceType, logicalId, clusterId, cause));
41472
41628
  }
41473
41629
  const state = cluster?.Status?.State;
41474
41630
  if (state && TERMINAL_STATES.has(state)) {
@@ -41719,6 +41875,21 @@ var EMRInstanceGroupConfigProvider = class {
41719
41875
  this.pollIntervalMs = options?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS$1;
41720
41876
  this.maxWaitMs = options?.maxWaitMs ?? DEFAULT_MAX_WAIT_MS$1;
41721
41877
  }
41878
+ wrapStatusReasonError(mask, reason, fallback, build) {
41879
+ const text = describeAwsStatusReason(reason, fallback);
41880
+ if (!text.redacted) return build(text.detail, void 0);
41881
+ const m = maskerOrIdentity(mask);
41882
+ const cause = new Error(text.detail);
41883
+ this.logger.debug(m(build(m(text.detail), cause).message));
41884
+ return markRedactedCause(build(m(text.summary), cause));
41885
+ }
41886
+ wrapCaughtError(mask, error, build) {
41887
+ const failure = describeAwsFailure(error);
41888
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
41889
+ const m = maskerOrIdentity(mask);
41890
+ this.logger.debug(m(build(m(failure.detail)).message));
41891
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
41892
+ }
41722
41893
  handledProperties = /* @__PURE__ */ new Map([["AWS::EMR::InstanceGroupConfig", /* @__PURE__ */ new Set([
41723
41894
  "AutoScalingPolicy",
41724
41895
  "BidPrice",
@@ -41802,7 +41973,7 @@ var EMRInstanceGroupConfigProvider = class {
41802
41973
  const replayWindow = replayedSendWindow(response, attemptStartMs);
41803
41974
  if (replayWindow !== void 0 && group.InstanceRole === "TASK") await reportOrphans(replayWindow);
41804
41975
  if (!groupId) throw new ProvisioningError(`EMR AddInstanceGroups for ${logicalId} returned no instance group id`, resourceType, logicalId);
41805
- await this.waitForGroupReady(jobFlowId, groupId, logicalId, resourceType, toNumber$1(properties["InstanceCount"]) ?? 0);
41976
+ await this.waitForGroupReady(jobFlowId, groupId, logicalId, resourceType, toNumber$1(properties["InstanceCount"]) ?? 0, false, context?.maskSecrets);
41806
41977
  this.logger.debug(`Successfully added EMR instance group ${logicalId}: ${groupId}`);
41807
41978
  return {
41808
41979
  physicalId: groupId,
@@ -41812,7 +41983,7 @@ var EMRInstanceGroupConfigProvider = class {
41812
41983
  }
41813
41984
  };
41814
41985
  } catch (error) {
41815
- const thrown = error instanceof ProvisioningError ? error : new ProvisioningError(`Failed to add EMR instance group ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, void 0, error instanceof Error ? error : void 0);
41986
+ const thrown = error instanceof ProvisioningError ? error : this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to add EMR instance group ${logicalId}: ${text}`, resourceType, logicalId, void 0, error instanceof Error ? error : void 0));
41816
41987
  let leftBehindGroupId = createdGroupId;
41817
41988
  if (leftBehindGroupId && properties["InstanceRole"] === "TASK") {
41818
41989
  const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
@@ -41891,7 +42062,7 @@ var EMRInstanceGroupConfigProvider = class {
41891
42062
  InstanceCount: toNumber$1(properties["InstanceCount"]) ?? 0
41892
42063
  }]
41893
42064
  }));
41894
- if (jobFlowId) await this.waitForGroupReady(jobFlowId, physicalId, logicalId, resourceType, toNumber$1(properties["InstanceCount"]) ?? 0, true);
42065
+ if (jobFlowId) await this.waitForGroupReady(jobFlowId, physicalId, logicalId, resourceType, toNumber$1(properties["InstanceCount"]) ?? 0, true, context?.maskSecrets);
41895
42066
  }
41896
42067
  if (autoScalingChanged) {
41897
42068
  if (!jobFlowId) throw new ProvisioningError(`EMR InstanceGroupConfig ${logicalId} AutoScalingPolicy update needs JobFlowId (the cluster id), which is absent`, resourceType, logicalId, physicalId);
@@ -41918,7 +42089,7 @@ var EMRInstanceGroupConfigProvider = class {
41918
42089
  } catch (error) {
41919
42090
  if (error instanceof ProvisioningError || error instanceof ResourceUpdateNotSupportedError) throw error;
41920
42091
  const cause = error instanceof Error ? error : void 0;
41921
- throw new ProvisioningError(`Failed to update EMR instance group ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
42092
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update EMR instance group ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
41922
42093
  }
41923
42094
  }
41924
42095
  async delete(logicalId, physicalId, resourceType, properties, context) {
@@ -41949,7 +42120,7 @@ var EMRInstanceGroupConfigProvider = class {
41949
42120
  async getAttribute(physicalId, _resourceType, attributeName) {
41950
42121
  if (attributeName === "Id" || attributeName === "InstanceGroupId") return physicalId;
41951
42122
  }
41952
- async waitForGroupReady(clusterId, groupId, logicalId, resourceType, expectedCount, toleratesStaleFailedState = false) {
42123
+ async waitForGroupReady(clusterId, groupId, logicalId, resourceType, expectedCount, toleratesStaleFailedState = false, mask) {
41953
42124
  const startTime = Date.now();
41954
42125
  const transientState = { count: 0 };
41955
42126
  let initialState;
@@ -41964,8 +42135,11 @@ var EMRInstanceGroupConfigProvider = class {
41964
42135
  if (state && READY_STATES$1.has(state) && group?.RunningInstanceCount === expectedCount) return;
41965
42136
  const enforceFailedStates = !toleratesStaleFailedState || hasLeftInitialState;
41966
42137
  if (state && enforceFailedStates && FAILED_STATES$1.has(state)) {
41967
- const reason = group?.Status?.StateChangeReason?.Message ?? "no state-change reason reported";
41968
- throw new ProvisioningError(`EMR instance group ${groupId} entered failed state ${state}: ${reason}`, resourceType, logicalId, groupId);
42138
+ const reason = group?.Status?.StateChangeReason;
42139
+ throw this.wrapStatusReasonError(mask, {
42140
+ code: reason?.Code,
42141
+ message: reason?.Message
42142
+ }, "no state-change reason reported", (text, cause) => new ProvisioningError(`EMR instance group ${groupId} entered failed state ${state}: ${text}`, resourceType, logicalId, groupId, cause));
41969
42143
  }
41970
42144
  if (state && !enforceFailedStates && FAILED_STATES$1.has(state)) this.logger.debug(`EMR instance group ${groupId} still reads ${state} from before the resize; waiting for it to leave that state before treating it as failed`);
41971
42145
  this.logger.debug(`EMR instance group ${groupId} state: ${state ?? "unknown"}, running ${group?.RunningInstanceCount ?? "?"}/${expectedCount}, waiting...`);
@@ -42036,6 +42210,21 @@ var EMRInstanceFleetConfigProvider = class {
42036
42210
  this.pollIntervalMs = options?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
42037
42211
  this.maxWaitMs = options?.maxWaitMs ?? DEFAULT_MAX_WAIT_MS;
42038
42212
  }
42213
+ wrapStatusReasonError(mask, reason, fallback, build) {
42214
+ const text = describeAwsStatusReason(reason, fallback);
42215
+ if (!text.redacted) return build(text.detail, void 0);
42216
+ const m = maskerOrIdentity(mask);
42217
+ const cause = new Error(text.detail);
42218
+ this.logger.debug(m(build(m(text.detail), cause).message));
42219
+ return markRedactedCause(build(m(text.summary), cause));
42220
+ }
42221
+ wrapCaughtError(mask, error, build) {
42222
+ const failure = describeAwsFailure(error);
42223
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
42224
+ const m = maskerOrIdentity(mask);
42225
+ this.logger.debug(m(build(m(failure.detail)).message));
42226
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
42227
+ }
42039
42228
  handledProperties = /* @__PURE__ */ new Map([["AWS::EMR::InstanceFleetConfig", /* @__PURE__ */ new Set([
42040
42229
  "ClusterId",
42041
42230
  "InstanceFleetType",
@@ -42128,7 +42317,7 @@ var EMRInstanceFleetConfigProvider = class {
42128
42317
  await this.waitForFleetReady(clusterId, fleetId, logicalId, resourceType, this.targetCapacities(properties), {
42129
42318
  onDemand: 0,
42130
42319
  spot: 0
42131
- });
42320
+ }, false, context?.maskSecrets);
42132
42321
  this.logger.debug(`Successfully added EMR instance fleet ${logicalId}: ${fleetId}`);
42133
42322
  return {
42134
42323
  physicalId: fleetId,
@@ -42138,7 +42327,7 @@ var EMRInstanceFleetConfigProvider = class {
42138
42327
  }
42139
42328
  };
42140
42329
  } catch (error) {
42141
- const thrown = error instanceof ProvisioningError ? error : new ProvisioningError(`Failed to add EMR instance fleet ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, void 0, error instanceof Error ? error : void 0);
42330
+ const thrown = error instanceof ProvisioningError ? error : this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to add EMR instance fleet ${logicalId}: ${text}`, resourceType, logicalId, void 0, error instanceof Error ? error : void 0));
42142
42331
  if (createdFleetId) {
42143
42332
  markCreatedBeforeFailure(thrown, logicalId, resourceType, createdFleetId);
42144
42333
  markNonRetryable(thrown);
@@ -42212,7 +42401,7 @@ var EMRInstanceFleetConfigProvider = class {
42212
42401
  ClusterId: clusterId,
42213
42402
  InstanceFleet: modify
42214
42403
  }));
42215
- await this.waitForFleetReady(clusterId, physicalId, logicalId, resourceType, this.targetCapacities(properties), this.targetCapacities(previousProperties), true);
42404
+ await this.waitForFleetReady(clusterId, physicalId, logicalId, resourceType, this.targetCapacities(properties), this.targetCapacities(previousProperties), true, context?.maskSecrets);
42216
42405
  this.logger.debug(`Successfully updated EMR instance fleet ${logicalId}`);
42217
42406
  warnLeftInPlace();
42218
42407
  return {
@@ -42226,7 +42415,7 @@ var EMRInstanceFleetConfigProvider = class {
42226
42415
  } catch (error) {
42227
42416
  if (error instanceof ProvisioningError || error instanceof ResourceUpdateNotSupportedError) throw error;
42228
42417
  const cause = error instanceof Error ? error : void 0;
42229
- throw new ProvisioningError(`Failed to update EMR instance fleet ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
42418
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update EMR instance fleet ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
42230
42419
  }
42231
42420
  }
42232
42421
  async delete(logicalId, physicalId, resourceType, properties, context) {
@@ -42264,7 +42453,7 @@ var EMRInstanceFleetConfigProvider = class {
42264
42453
  spot: toNumber(properties["TargetSpotCapacity"]) ?? 0
42265
42454
  };
42266
42455
  }
42267
- async waitForFleetReady(clusterId, fleetId, logicalId, resourceType, target, previous, toleratesStaleFailedState = false) {
42456
+ async waitForFleetReady(clusterId, fleetId, logicalId, resourceType, target, previous, toleratesStaleFailedState = false, mask) {
42268
42457
  const startTime = Date.now();
42269
42458
  const transientState = { count: 0 };
42270
42459
  let initialState;
@@ -42284,8 +42473,11 @@ var EMRInstanceFleetConfigProvider = class {
42284
42473
  if (state && READY_STATES.has(state) && capacityReady) return;
42285
42474
  const enforceFailedStates = !toleratesStaleFailedState || hasLeftInitialState;
42286
42475
  if (state && enforceFailedStates && FAILED_STATES.has(state)) {
42287
- const reason = fleet?.Status?.StateChangeReason?.Message ?? "no state-change reason reported";
42288
- throw new ProvisioningError(`EMR instance fleet ${fleetId} entered failed state ${state}: ${reason}`, resourceType, logicalId, fleetId);
42476
+ const reason = fleet?.Status?.StateChangeReason;
42477
+ throw this.wrapStatusReasonError(mask, {
42478
+ code: reason?.Code,
42479
+ message: reason?.Message
42480
+ }, "no state-change reason reported", (text, cause) => new ProvisioningError(`EMR instance fleet ${fleetId} entered failed state ${state}: ${text}`, resourceType, logicalId, fleetId, cause));
42289
42481
  }
42290
42482
  if (state && !enforceFailedStates && FAILED_STATES.has(state)) this.logger.debug(`EMR instance fleet ${fleetId} still reads ${state} from before the resize; waiting for it to leave that state before treating it as failed`);
42291
42483
  this.logger.debug(`EMR instance fleet ${fleetId} state: ${state ?? "unknown"}, provisioned ${onDemand}/${target.onDemand} on-demand + ${spot}/${target.spot} spot (${provisioned} total), waiting...`);
@@ -46666,6 +46858,13 @@ var ACMCertificateProvider = class {
46666
46858
  logger = getLogger().child("ACMCertificateProvider");
46667
46859
  maxPollAttempts = Number(process.env["CDKD_ACM_POLL_ATTEMPTS"] ?? 60);
46668
46860
  pollIntervalMs = Number(process.env["CDKD_ACM_POLL_INTERVAL_MS"] ?? 1e4);
46861
+ wrapCaughtError(mask, error, build) {
46862
+ const failure = describeAwsFailure(error);
46863
+ if (!(error instanceof Error) || !failure.redacted) return build(failure.detail);
46864
+ const m = mask ?? ((text) => text);
46865
+ this.logger.debug(m(build(m(failure.detail)).message));
46866
+ return markRedactedCause(build(`${m(failure.summary)}${relayedNameCollision(failure.detail)}`));
46867
+ }
46669
46868
  constructor() {
46670
46869
  this.acmClient = getAwsClients().acm;
46671
46870
  }
@@ -46691,7 +46890,7 @@ var ACMCertificateProvider = class {
46691
46890
  "KeyAlgorithm",
46692
46891
  "Tags"
46693
46892
  ])]]);
46694
- async create(logicalId, resourceType, properties) {
46893
+ async create(logicalId, resourceType, properties, context) {
46695
46894
  this.logger.debug(`Requesting ACM certificate ${logicalId}`);
46696
46895
  const tags = refuseMalformedDesiredTags(properties["Tags"], resourceType, logicalId);
46697
46896
  const domainName = properties["DomainName"];
@@ -46743,14 +46942,11 @@ var ACMCertificateProvider = class {
46743
46942
  throw thrown;
46744
46943
  }
46745
46944
  const cause = error instanceof Error ? error : void 0;
46746
- const detail = describeAwsFailure(error).detail;
46747
- const message = `Failed to create ACM certificate ${logicalIdShown(logicalId)}: ${detail}`;
46748
- if (requestedArn && survivorNote !== void 0) {
46749
- const thrown = new ProvisioningError(`${message} ${survivorNote}`, resourceType, logicalId, requestedArn, cause);
46750
- markCreatedBeforeFailure(thrown, logicalId, resourceType, requestedArn);
46751
- throw thrown;
46752
- }
46753
- throw new ProvisioningError(message, resourceType, logicalId, requestedArn, cause);
46945
+ const build = (text) => new ProvisioningError(`Failed to create ACM certificate ${logicalIdShown(logicalId)}: ` + (survivorNote !== void 0 ? `${text} ${survivorNote}` : text), resourceType, logicalId, requestedArn, cause);
46946
+ if (!requestedArn || survivorNote === void 0) throw this.wrapCaughtError(context?.maskSecrets, error, build);
46947
+ const thrown = this.wrapCaughtError(context?.maskSecrets, error, build);
46948
+ markCreatedBeforeFailure(thrown, logicalId, resourceType, requestedArn);
46949
+ throw thrown;
46754
46950
  }
46755
46951
  }
46756
46952
  regionOfArn(arn) {
@@ -46802,7 +46998,7 @@ var ACMCertificateProvider = class {
46802
46998
  }
46803
46999
  if (changedImmutable) {
46804
47000
  this.logger.debug(`${changedImmutable} changed, replacing ACM certificate: ${physicalId}`);
46805
- const createResult = await this.create(logicalId, resourceType, properties);
47001
+ const createResult = await this.create(logicalId, resourceType, properties, context?.maskSecrets ? { maskSecrets: context.maskSecrets } : void 0);
46806
47002
  let orphanReason;
46807
47003
  let oldResourceSurvivor = "unconfirmed";
46808
47004
  try {
@@ -46851,7 +47047,7 @@ var ACMCertificateProvider = class {
46851
47047
  };
46852
47048
  } catch (error) {
46853
47049
  const cause = error instanceof Error ? error : void 0;
46854
- throw new ProvisioningError(`Failed to update ACM certificate ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
47050
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to update ACM certificate ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
46855
47051
  }
46856
47052
  }
46857
47053
  async delete(logicalId, physicalId, resourceType, _properties, context) {
@@ -46871,7 +47067,7 @@ var ACMCertificateProvider = class {
46871
47067
  this.logger.debug(`Successfully deleted ACM certificate ${logicalId}`);
46872
47068
  } catch (error) {
46873
47069
  const cause = error instanceof Error ? error : void 0;
46874
- throw new ProvisioningError(`Failed to delete ACM certificate ${logicalId}: ${describeAwsFailure(error).detail}`, resourceType, logicalId, physicalId, cause);
47070
+ throw this.wrapCaughtError(context?.maskSecrets, error, (text) => new ProvisioningError(`Failed to delete ACM certificate ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
46875
47071
  }
46876
47072
  }
46877
47073
  async getAttribute(physicalId, _resourceType, attributeName) {
@@ -46993,4 +47189,4 @@ var ACMCertificateProvider = class {
46993
47189
 
46994
47190
  //#endregion
46995
47191
  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 };
46996
- //# sourceMappingURL=provider-classes-D1zpvb93.js.map
47192
+ //# sourceMappingURL=provider-classes-Dmz-lVVh.js.map