@go-to-k/cdkd 0.298.5 → 0.298.6

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 (26) hide show
  1. package/dist/{asg-provider-Cqpxk8Pl.js → asg-provider-C_6LflRi.js} +2 -2
  2. package/dist/{asg-provider-Cqpxk8Pl.js.map → asg-provider-C_6LflRi.js.map} +1 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/{deploy-engine-Cqmlu_JG.js → deploy-engine-BhJ7GrCh.js} +94 -61
  5. package/dist/deploy-engine-BhJ7GrCh.js.map +1 -0
  6. package/dist/iam-policy-targets-CwKiK9nS.js.map +1 -1
  7. package/dist/{iam-role-provider-j_AyoKr6.js → iam-role-provider-DxbBY_JA.js} +20 -20
  8. package/dist/iam-role-provider-DxbBY_JA.js.map +1 -0
  9. package/dist/index.d.ts +1 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -2
  12. package/dist/{neptune-provider-CpEImWxf.js → neptune-provider-Cxxs8Pug.js} +2 -2
  13. package/dist/{neptune-provider-CpEImWxf.js.map → neptune-provider-Cxxs8Pug.js.map} +1 -1
  14. package/dist/{program-CV-IVMYw.js → program-BYoddGM7.js} +6 -5
  15. package/dist/program-BYoddGM7.js.map +1 -0
  16. package/dist/{provider-classes-BvHGcxn6.js → provider-classes-BRNQRRLh.js} +91 -69
  17. package/dist/provider-classes-BRNQRRLh.js.map +1 -0
  18. package/dist/{rds-provider-DlzTjANF.js → rds-provider-Db42mU7e.js} +2 -2
  19. package/dist/{rds-provider-DlzTjANF.js.map → rds-provider-Db42mU7e.js.map} +1 -1
  20. package/dist/{version-B0fI6qqz.js → version-B28nhaco.js} +2 -2
  21. package/dist/{version-B0fI6qqz.js.map → version-B28nhaco.js.map} +1 -1
  22. package/package.json +1 -1
  23. package/dist/deploy-engine-Cqmlu_JG.js.map +0 -1
  24. package/dist/iam-role-provider-j_AyoKr6.js.map +0 -1
  25. package/dist/program-CV-IVMYw.js.map +0 -1
  26. package/dist/provider-classes-BvHGcxn6.js.map +0 -1
@@ -2,12 +2,12 @@ import { r as getAwsClients } from "./aws-clients-CnmtbrxD.js";
2
2
  import { F as displayStackName, I as isPasteableIdent, N as displayIdent, O as SECRET_REF_MAX_CODE_POINTS, P as displaySafe, R as plainIdentOr, a as getLogger, b as generateResourceNameWithFallback, n as isAwsAuthoredFailure, r as safeStringify, t as describeAwsFailure, y as generateResourceName, z as safeMsg } from "./aws-failure-text-DtvlUugx.js";
3
3
  import { $ as protectedReplacementAdvice, $n as isAmbiguousOutcomeError, $t as credentialFingerprint, A as isQuotableImportValue, B as isTerminalDeleteFailure, Bn as withheldTargetClause, C as setBounded, D as VALUE_NOT_SHOWN, E as assertRegionMatch, F as resolveExplicitPhysicalId, Gt as injectiveKeyPrefix, H as observeThenDisableProtection, In as plainOrDescribed, L as ProtectionFlipRegistry, M as quotedRemedyLogicalId, Mn as hasClauseBreak, Mt as markCreatedBeforeFailure, N as refusalTypeShown, Nn as isInertUnquoted, O as isPlainImportJson, P as remedyLogicalId, Pn as pasteableCommand, Q as pasteableAwsCommand, Qt as clientDefaultsFor, S as replayedSendWindow, St as withDerivedNameMasks, T as RESOURCE_NOT_FOUND, Tt as clearCreatedBeforeFailure, U as protectionFlipKey, V as logGroupProtectionSite, W as rdsFamilyProtectionSite, Wt as injectiveKey, X as WITHHELD_AWS_COMMAND, Xn as markReplayMayCollide, Xt as ambientClientDefaults, Y as UNNAMEABLE_ID_CLAUSE, Yn as markNameCollision, Yt as withPasteableAwsProfile, Z as isAwsCliLiteral, Zt as ambientCredentialConfig, _ as RecentIdSet, _t as createMaskedLogSinks, a as onlySecretDerived, ar as isMarkedNonRetryable, at as startInterruptWatch, b as isInsideWindow, bt as maskDeep, c as recordedPrincipalsRepair, cr as markRedactedCause, ct as canonicalizeRoute53QueryName, dt as compositeIdSkipResult, en as AccountIdUnavailableError, et as renderDisableCommand, ft as logicalIdShown, g as AmbiguousCreateLatch, gn as ProvisioningError, gt as stateOrphanRecordRemedy, h as AMBIGUOUS_LATCH_TTL_MS, ht as segmentAfterAnchor, i as holdsSecretDerivedEntry, ir as THROTTLING_ERROR_NAMES, it as isInterruptedWaitError, j as normalizeAwsTagsToCfn, jn as commandHole, jt as markAuxiliaryFailure, k as isPlainImportValue, lr as wrapMaskedAwsError, lt as compositeIdFormatMessage, nn as CdkdError, nr as isTransientServerError, o as readPrincipalLists, or as isThrottlingError, ot as ElapsedBudgetRegistry, p as withRemovalDefaults, pt as packCompositeId, q as userPoolProtectionSite, r as SECRET_DERIVED_READ_LIVE, sr as markNonRetryable, tr as isRetryableTransientError, u as clearOnUpdateRemoval, ut as compositeIdSeparatorRefusal, v as ambiguousAttemptLead, vn as ResourceUpdateNotSupportedError, vt as createMaskedRetryLogger, w as withoutServerErrorRetries, x as replayFollowedAmbiguousAttempt, xt as maskerOrIdentity, y as createAttemptKey, yt as isSecretDerivedValue, z as deleteWithProtectionCompensation, zn as shellQuote } from "./iam-policy-targets-CwKiK9nS.js";
4
4
  import { s as ambientRegion } from "./aws-client-defaults-D0q0z4dG.js";
5
- import { $ as isTruthyCfnBoolean, $o as markSameGenerationBag, B as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Br as reDisableInstanceApiTermination, Bt as getStackRecords, Cl as renderAssemblyPathEscape, Co as sameLambdaFunctionAddress, Ct as revertNestedChildFromJournal, Dr as unchangedBehindSecretReference, Dt as getCurrentNestedStackContext, Ei as parseWebACLArn, Er as slowCcOperationTimeoutMs, Fo as passedNoEchoParametersOf, Fr as markWaitAbandoned, G as resolveDynamoDbDeleteBudgetMs, Ga as findSilentDropProperties, H as compensateRemovedDeletionProtection, Ho as hasMaskableValues, Ii as accountArgs, J as deleteTableWithIndexBusyRetry, K as DELETE_INDEX_WAIT_PROCEED_NOTE, Lr as ec2InstanceProtectionSite, Mr as deleteSkipReason, Nr as withIndeterminateGuard, Ot as withNestedStackContext, Pr as isWaitAbandonedError, Q as hasCdkAutoDeleteTag, Qn as earliestDefined, Rr as isTerminationProtectionPropagationError, Rt as awaitInFlightSibling, Sl as displayAssemblyPath, So as lambdaFunctionNameForMask, U as deleteBudgetKey, Ua as withheldAccountClause, V as beginDeleteWait, Vr as reEnableInstanceApiTermination, W as resolveDynamoDbDeleteBudgetClock, X as ECR_AUTO_DELETE_IMAGES_TAG, Y as waitForIndexesSettled, Z as S3_AUTO_DELETE_OBJECTS_TAG, a as findNestedTemplateTreeDefect, ai as s3BucketArn, an as isRedactedRecordedValue, ao as toCfnInteger, ar as planTagDiff, as as dynamicReferenceTokens, b as lookupEachName, bo as withRetry, br as getCurrentResourceSecrets, bt as getNestedRevertRun, c as renderNestedTemplateTreeDefect, ci as s3BucketRegionalDomainName, co as coerceCfnInteger, cr as tagMapAsList, da as refuseMalformedNestedChildOutputs, dl as derivePartitionAndUrlSuffix, do as configStringRefusal, dr as stringifyIfAssigned, ds as recoverMaskedOutput, er as reserveStackCreateToken, es as redactSecretsForState, et as getPriorAttempts, fo as readConfigString, fs as physicalNameCopiesOf, gi as getAccountInfo, go as requireConfigString, gs as carriesSecretMask, ho as requireConfigObject, ii as isSettledInstanceState, in as REDACTED_DELETE_ADDRESS_SKIP_REASON, io as isWarmThroughputDecrease, ir as DBPROXY_TAG_OPTIONS, ja as refuseMalformedResourcesForDestroy, ki as passedParameterClassesOf, li as s3BucketWebsiteUrl, lo as configBooleanRefusal, lr as tagPlanWarning, mo as requireConfigArray, nn as getCurrentProducerRegions, no as WARM_THROUGHPUT_MEMBERS, nr as acquireIdempotencyToken, o as isAbsoluteAssetPath, oc as rewriteTemplateAssetReferences, oi as s3BucketDomainName, on as redactedDeleteAddressFields, oo as toFiniteNumber, or as readTagList, po as replayWarn, ps as recordAttributeIdCopy, q as INDEX_SETTLE_POLL_INTERVAL_MS, qa as withoutSilentDropProperties, ro as coerceWarmThroughput$1, rr as DBPROXY_TAGS_WHAT, rs as withoutPhysicalNameCopies, s as listNestedTemplateRows, si as s3BucketDualStackDomainName, sl as decodeListingKey, sn as redactedDeleteAddressSkip, so as coerceCfnBoolean, sr as refuseMalformedDesiredTags, t as DeployEngine, tc as stringifyValue, tt as markRefusedBeforeApplying, ul as canonicalizeRegion, uo as configIntegerRefusal, ur as definedAttributes, v as chunks, wl as resolveAssemblyPath, x as withApiLimit, xl as describeFileReadFailure, xo as canonicalLambdaFunctionName, y as isAccessDeniedError, z as DynamoDBGlobalTableProvider, zr as observeThenDisableInstanceApiTermination } from "./deploy-engine-Cqmlu_JG.js";
6
- import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-j_AyoKr6.js";
7
- import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-CV-IVMYw.js";
8
- import { RDSProvider } from "./rds-provider-DlzTjANF.js";
9
- import { NeptuneProvider } from "./neptune-provider-CpEImWxf.js";
10
- import { ASGProvider } from "./asg-provider-Cqpxk8Pl.js";
5
+ import { $ as isTruthyCfnBoolean, $o as markSameGenerationBag, B as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, Br as reDisableInstanceApiTermination, Bt as getStackRecords, Cl as renderAssemblyPathEscape, Co as sameLambdaFunctionAddress, Ct as revertNestedChildFromJournal, Dr as unchangedBehindSecretReference, Dt as getCurrentNestedStackContext, Ei as parseWebACLArn, Er as slowCcOperationTimeoutMs, Fo as passedNoEchoParametersOf, Fr as markWaitAbandoned, G as resolveDynamoDbDeleteBudgetMs, Ga as findSilentDropProperties, H as compensateRemovedDeletionProtection, Ho as hasMaskableValues, Ii as accountArgs, J as deleteTableWithIndexBusyRetry, K as DELETE_INDEX_WAIT_PROCEED_NOTE, Lr as ec2InstanceProtectionSite, Mr as deleteSkipReason, Nr as withIndeterminateGuard, Ot as withNestedStackContext, Pr as isWaitAbandonedError, Q as hasCdkAutoDeleteTag, Qn as earliestDefined, Rr as isTerminationProtectionPropagationError, Rt as awaitInFlightSibling, Sl as displayAssemblyPath, So as lambdaFunctionNameForMask, U as deleteBudgetKey, Ua as withheldAccountClause, V as beginDeleteWait, Vr as reEnableInstanceApiTermination, W as resolveDynamoDbDeleteBudgetClock, X as ECR_AUTO_DELETE_IMAGES_TAG, Y as waitForIndexesSettled, Z as S3_AUTO_DELETE_OBJECTS_TAG, a as findNestedTemplateTreeDefect, ai as s3BucketArn, an as isRedactedRecordedValue, ao as toCfnInteger, ar as planTagDiff, as as dynamicReferenceTokens, b as lookupEachName, bo as withRetry, br as getCurrentResourceSecrets, bt as getNestedRevertRun, c as renderNestedTemplateTreeDefect, ci as s3BucketRegionalDomainName, co as coerceCfnInteger, cr as tagMapAsList, da as refuseMalformedNestedChildOutputs, dl as derivePartitionAndUrlSuffix, do as configStringRefusal, dr as stringifyIfAssigned, ds as recoverMaskedOutput, er as reserveStackCreateToken, es as redactSecretsForState, et as getPriorAttempts, fo as readConfigString, fs as physicalNameCopiesOf, gi as getAccountInfo, go as requireConfigString, gs as carriesSecretMask, ho as requireConfigObject, ii as isSettledInstanceState, in as REDACTED_DELETE_ADDRESS_SKIP_REASON, io as isWarmThroughputDecrease, ir as DBPROXY_TAG_OPTIONS, ja as refuseMalformedResourcesForDestroy, ki as passedParameterClassesOf, li as s3BucketWebsiteUrl, lo as configBooleanRefusal, lr as tagPlanWarning, mo as requireConfigArray, nn as getCurrentProducerRegions, no as WARM_THROUGHPUT_MEMBERS, nr as acquireIdempotencyToken, o as isAbsoluteAssetPath, oc as rewriteTemplateAssetReferences, oi as s3BucketDomainName, on as redactedDeleteAddressFields, oo as toFiniteNumber, or as readTagList, po as replayWarn, ps as recordAttributeIdCopy, q as INDEX_SETTLE_POLL_INTERVAL_MS, qa as withoutSilentDropProperties, ro as coerceWarmThroughput$1, rr as DBPROXY_TAGS_WHAT, rs as withoutPhysicalNameCopies, s as listNestedTemplateRows, si as s3BucketDualStackDomainName, sl as decodeListingKey, sn as redactedDeleteAddressSkip, so as coerceCfnBoolean, sr as refuseMalformedDesiredTags, t as DeployEngine, tc as stringifyValue, tt as markRefusedBeforeApplying, ul as canonicalizeRegion, uo as configIntegerRefusal, ur as definedAttributes, v as chunks, wl as resolveAssemblyPath, x as withApiLimit, xl as describeFileReadFailure, xo as canonicalLambdaFunctionName, y as isAccessDeniedError, z as DynamoDBGlobalTableProvider, zr as observeThenDisableInstanceApiTermination } from "./deploy-engine-BhJ7GrCh.js";
6
+ import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-DxbBY_JA.js";
7
+ import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-BYoddGM7.js";
8
+ import { RDSProvider } from "./rds-provider-Db42mU7e.js";
9
+ import { NeptuneProvider } from "./neptune-provider-Cxxs8Pug.js";
10
+ import { ASGProvider } from "./asg-provider-C_6LflRi.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";
@@ -693,7 +693,7 @@ var IAMManagedPolicyProvider = class {
693
693
  const createResult = await this.create(logicalId, resourceType, properties, { maskSecrets: log.mask });
694
694
  let orphanReason;
695
695
  try {
696
- const deleteResult = await this.delete(logicalId, physicalId, resourceType, previousProperties, void 0, log.mask);
696
+ const deleteResult = await this.delete(logicalId, physicalId, resourceType, previousProperties, { maskSecrets: log.mask });
697
697
  if (deleteResult?.outcome === "skipped") {
698
698
  orphanReason = log.mask(`old managed policy ${v(physicalId)} was not deleted: ${deleteResult.reason}`);
699
699
  log.warn(`Skipped deleting old managed policy ${v(physicalId)} during replacement: ${deleteResult.reason}. The old policy may be orphaned and require manual cleanup.`);
@@ -756,7 +756,8 @@ var IAMManagedPolicyProvider = class {
756
756
  throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to update IAM managed policy ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
757
757
  }
758
758
  }
759
- async delete(logicalId, physicalId, resourceType, _properties, context, mask = maskerOrIdentity(void 0)) {
759
+ async delete(logicalId, physicalId, resourceType, _properties, context) {
760
+ const mask = maskerOrIdentity(context?.maskSecrets);
760
761
  this.logger.debug(mask(`Deleting IAM managed policy ${logicalId}: ${physicalId}`));
761
762
  try {
762
763
  try {
@@ -1645,9 +1646,6 @@ var IAMUserGroupProvider = class {
1645
1646
  wrapMaskedError(mask, error, build) {
1646
1647
  return wrapMaskedAwsError(mask, error, build);
1647
1648
  }
1648
- unmaskedDeleteSinks() {
1649
- return createMaskedLogSinks(this.logger, void 0);
1650
- }
1651
1649
  handledProperties = /* @__PURE__ */ new Map([
1652
1650
  ["AWS::IAM::User", /* @__PURE__ */ new Set([
1653
1651
  "UserName",
@@ -1866,7 +1864,9 @@ var IAMUserGroupProvider = class {
1866
1864
  }
1867
1865
  }
1868
1866
  async deleteUser(logicalId, physicalId, resourceType, context) {
1869
- this.logger.debug(`Deleting IAM user ${logicalId}: ${physicalId}`);
1867
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
1868
+ const { value: v } = log;
1869
+ log.debug(`Deleting IAM user ${logicalId}: ${v(physicalId)}`);
1870
1870
  try {
1871
1871
  try {
1872
1872
  await this.iamClient.send(new GetUserCommand({ UserName: physicalId }));
@@ -1874,31 +1874,31 @@ var IAMUserGroupProvider = class {
1874
1874
  if (error instanceof NoSuchEntityException) {
1875
1875
  const clientRegion = await this.iamClient.config.region();
1876
1876
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
1877
- this.logger.debug(`User ${physicalId} does not exist, skipping deletion`);
1877
+ log.debug(`User ${v(physicalId)} does not exist, skipping deletion`);
1878
1878
  return;
1879
1879
  }
1880
1880
  throw error;
1881
1881
  }
1882
- await this.removeUserFromAllGroups(physicalId, this.unmaskedDeleteSinks());
1883
- await this.detachAllUserPolicies(physicalId, this.unmaskedDeleteSinks());
1884
- await this.deleteAllUserInlinePolicies(physicalId, this.unmaskedDeleteSinks());
1882
+ await this.removeUserFromAllGroups(physicalId, log);
1883
+ await this.detachAllUserPolicies(physicalId, log);
1884
+ await this.deleteAllUserInlinePolicies(physicalId, log);
1885
1885
  try {
1886
1886
  await this.iamClient.send(new DeleteLoginProfileCommand({ UserName: physicalId }));
1887
- this.logger.debug(`Deleted login profile for user ${physicalId}`);
1887
+ log.debug(`Deleted login profile for user ${v(physicalId)}`);
1888
1888
  } catch (error) {
1889
1889
  if (!(error instanceof NoSuchEntityException)) throw error;
1890
1890
  }
1891
- await this.deleteAllAccessKeys(physicalId);
1891
+ await this.deleteAllAccessKeys(physicalId, log);
1892
1892
  try {
1893
1893
  await this.iamClient.send(new DeleteUserPermissionsBoundaryCommand({ UserName: physicalId }));
1894
1894
  } catch (error) {
1895
1895
  if (!(error instanceof NoSuchEntityException)) throw error;
1896
1896
  }
1897
1897
  await this.iamClient.send(new DeleteUserCommand({ UserName: physicalId }));
1898
- this.logger.debug(`Successfully deleted IAM user ${logicalId}`);
1898
+ log.debug(`Successfully deleted IAM user ${logicalId}`);
1899
1899
  } catch (error) {
1900
1900
  const cause = error instanceof Error ? error : void 0;
1901
- throw new ProvisioningError(`Failed to delete IAM user ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
1901
+ throw new ProvisioningError(log.mask(`Failed to delete IAM user ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
1902
1902
  }
1903
1903
  }
1904
1904
  async readLiveGroups(userName) {
@@ -1932,7 +1932,8 @@ var IAMUserGroupProvider = class {
1932
1932
  throw error;
1933
1933
  }
1934
1934
  }
1935
- async deleteAllAccessKeys(userName) {
1935
+ async deleteAllAccessKeys(userName, log) {
1936
+ const { value: v } = log;
1936
1937
  try {
1937
1938
  const keys = (await this.iamClient.send(new ListAccessKeysCommand({ UserName: userName }))).AccessKeyMetadata || [];
1938
1939
  for (const key of keys) if (key.AccessKeyId) {
@@ -1940,7 +1941,7 @@ var IAMUserGroupProvider = class {
1940
1941
  UserName: userName,
1941
1942
  AccessKeyId: key.AccessKeyId
1942
1943
  }));
1943
- this.logger.debug(`Deleted access key ${key.AccessKeyId} for user ${userName}`);
1944
+ log.debug(`Deleted access key ${key.AccessKeyId} for user ${v(userName)}`);
1944
1945
  }
1945
1946
  } catch (error) {
1946
1947
  if (error instanceof NoSuchEntityException) return;
@@ -2152,22 +2153,24 @@ var IAMUserGroupProvider = class {
2152
2153
  }
2153
2154
  }
2154
2155
  async deleteGroup(logicalId, physicalId, resourceType, context) {
2155
- this.logger.debug(`Deleting IAM group ${logicalId}: ${physicalId}`);
2156
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
2157
+ const { value: v } = log;
2158
+ log.debug(`Deleting IAM group ${logicalId}: ${v(physicalId)}`);
2156
2159
  try {
2157
- await this.detachAllGroupPolicies(physicalId, this.unmaskedDeleteSinks());
2158
- await this.deleteAllGroupInlinePolicies(physicalId, this.unmaskedDeleteSinks());
2159
- await this.removeAllUsersFromGroup(physicalId);
2160
+ await this.detachAllGroupPolicies(physicalId, log);
2161
+ await this.deleteAllGroupInlinePolicies(physicalId, log);
2162
+ await this.removeAllUsersFromGroup(physicalId, log);
2160
2163
  await this.iamClient.send(new DeleteGroupCommand({ GroupName: physicalId }));
2161
- this.logger.debug(`Successfully deleted IAM group ${logicalId}`);
2164
+ log.debug(`Successfully deleted IAM group ${logicalId}`);
2162
2165
  } catch (error) {
2163
2166
  if (error instanceof NoSuchEntityException) {
2164
2167
  const clientRegion = await this.iamClient.config.region();
2165
2168
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
2166
- this.logger.debug(`Group ${physicalId} does not exist, skipping deletion`);
2169
+ log.debug(`Group ${v(physicalId)} does not exist, skipping deletion`);
2167
2170
  return;
2168
2171
  }
2169
2172
  const cause = error instanceof Error ? error : void 0;
2170
- throw new ProvisioningError(`Failed to delete IAM group ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
2173
+ throw new ProvisioningError(log.mask(`Failed to delete IAM group ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
2171
2174
  }
2172
2175
  }
2173
2176
  async detachAllGroupPolicies(groupName, log) {
@@ -2188,7 +2191,8 @@ var IAMUserGroupProvider = class {
2188
2191
  throw error;
2189
2192
  }
2190
2193
  }
2191
- async removeAllUsersFromGroup(groupName) {
2194
+ async removeAllUsersFromGroup(groupName, log) {
2195
+ const { value: v } = log;
2192
2196
  try {
2193
2197
  const users = (await this.iamClient.send(new GetGroupCommand({ GroupName: groupName }))).Users || [];
2194
2198
  for (const user of users) if (user.UserName) try {
@@ -2196,7 +2200,7 @@ var IAMUserGroupProvider = class {
2196
2200
  GroupName: groupName,
2197
2201
  UserName: user.UserName
2198
2202
  }));
2199
- this.logger.debug(`Removed user ${user.UserName} from group ${groupName}`);
2203
+ log.debug(`Removed user ${v(user.UserName)} from group ${v(groupName)}`);
2200
2204
  } catch (error) {
2201
2205
  if (!(error instanceof NoSuchEntityException)) throw error;
2202
2206
  }
@@ -6884,7 +6888,10 @@ var SNSSubscriptionProvider = class {
6884
6888
  let deleteResult = void 0;
6885
6889
  let deleteThrew = false;
6886
6890
  try {
6887
- deleteResult = await this.delete(logicalId, physicalId, resourceType, void 0, { expectedRegion: context?.expectedRegion });
6891
+ deleteResult = await this.delete(logicalId, physicalId, resourceType, void 0, {
6892
+ expectedRegion: context?.expectedRegion,
6893
+ ...context?.maskSecrets && { maskSecrets: context.maskSecrets }
6894
+ });
6888
6895
  } catch (error) {
6889
6896
  deleteThrew = true;
6890
6897
  this.logger.warn(`Failed to delete old subscription ${physicalId} during update: ${safeStringify(error)}`);
@@ -6902,7 +6909,8 @@ var SNSSubscriptionProvider = class {
6902
6909
  };
6903
6910
  }
6904
6911
  async delete(logicalId, physicalId, resourceType, _properties, context) {
6905
- this.logger.debug(`Deleting SNS subscription ${logicalId}: ${physicalId}`);
6912
+ const mask = maskerOrIdentity(context?.maskSecrets);
6913
+ this.logger.debug(mask(`Deleting SNS subscription ${logicalId}: ${mask(physicalId)}`));
6906
6914
  if (physicalId === "PendingConfirmation" || physicalId === "pending confirmation") {
6907
6915
  this.logPendingConfirmationSkip(logicalId, physicalId);
6908
6916
  return;
@@ -6914,15 +6922,15 @@ var SNSSubscriptionProvider = class {
6914
6922
  if (error instanceof NotFoundException) {
6915
6923
  const clientRegion = await this.snsClient.config.region();
6916
6924
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
6917
- this.logger.debug(`Subscription ${physicalId} does not exist, skipping deletion`);
6925
+ this.logger.debug(mask(`Subscription ${mask(physicalId)} does not exist, skipping deletion`));
6918
6926
  return;
6919
6927
  }
6920
6928
  if (isPendingConfirmationError(error)) {
6921
- this.logPendingConfirmationSkip(logicalId, physicalId);
6929
+ this.logPendingConfirmationSkip(logicalId, mask(physicalId));
6922
6930
  return;
6923
6931
  }
6924
6932
  const cause = error instanceof Error ? error : void 0;
6925
- throw new ProvisioningError(`Failed to delete SNS subscription ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
6933
+ throw new ProvisioningError(mask(`Failed to delete SNS subscription ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
6926
6934
  }
6927
6935
  }
6928
6936
  logPendingConfirmationSkip(logicalId, physicalId) {
@@ -26061,7 +26069,8 @@ var RDSDBProxyTargetGroupProvider = class {
26061
26069
  }
26062
26070
  const dbClusterIdentifiers = targets.lists.DBClusterIdentifiers;
26063
26071
  const dbInstanceIdentifiers = targets.lists.DBInstanceIdentifiers;
26064
- this.logger.debug(`Deregistering targets from ${dbProxyName}/${targetGroupName}: clusters=[${dbClusterIdentifiers.join(",")}], instances=[${dbInstanceIdentifiers.join(",")}]`);
26072
+ const mask = maskerOrIdentity(context?.maskSecrets);
26073
+ this.logger.debug(mask(`Deregistering targets from ${mask(dbProxyName)}/${mask(targetGroupName)}: clusters=[${dbClusterIdentifiers.map(mask).join(",")}], instances=[${dbInstanceIdentifiers.map(mask).join(",")}]`));
26065
26074
  try {
26066
26075
  await this.getClient().send(new DeregisterDBProxyTargetsCommand({
26067
26076
  DBProxyName: dbProxyName,
@@ -26073,7 +26082,7 @@ var RDSDBProxyTargetGroupProvider = class {
26073
26082
  if (error instanceof DBProxyNotFoundFault || error instanceof DBProxyTargetGroupNotFoundFault || error instanceof DBProxyTargetNotFoundFault) {
26074
26083
  const clientRegion = await this.getClient().config.region();
26075
26084
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
26076
- this.logger.debug(`${dbProxyName}/${targetGroupName} or its target is already gone, treating as success`);
26085
+ this.logger.debug(mask(`${mask(dbProxyName)}/${mask(targetGroupName)} or its target is already gone, treating as success`));
26077
26086
  return;
26078
26087
  }
26079
26088
  throw this.wrapError(error, "DELETE", resourceType, logicalId, physicalId);
@@ -32642,7 +32651,8 @@ var GlueProvider = class {
32642
32651
  }
32643
32652
  }
32644
32653
  async deleteDatabase(logicalId, physicalId, resourceType, properties, context) {
32645
- this.logger.debug(`Deleting Glue Database ${logicalId}: ${physicalId}`);
32654
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
32655
+ log.debug(`Deleting Glue Database ${logicalId}: ${log.value(physicalId)}`);
32646
32656
  const redactedSkip = redactedDeleteAddressSkip(this.logger, logicalId, resourceType, redactedDeleteAddressFields({ CatalogId: properties?.["CatalogId"] }));
32647
32657
  if (redactedSkip) return redactedSkip;
32648
32658
  const target = deleteCatalogId(properties);
@@ -32657,11 +32667,11 @@ var GlueProvider = class {
32657
32667
  if (error instanceof EntityNotFoundException) {
32658
32668
  const clientRegion = await this.getClient().config.region();
32659
32669
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
32660
- logCatalogScopedDeleteSkip(this.logger, target, "Database", logicalId, physicalId);
32670
+ logCatalogScopedDeleteSkip(log, target, "Database", logicalId, log.value(physicalId));
32661
32671
  return;
32662
32672
  }
32663
32673
  const cause = error instanceof Error ? error : void 0;
32664
- throw new ProvisioningError(`Failed to delete Glue Database ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
32674
+ throw new ProvisioningError(log.mask(`Failed to delete Glue Database ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
32665
32675
  }
32666
32676
  }
32667
32677
  async createTable(logicalId, resourceType, properties, context) {
@@ -32773,10 +32783,15 @@ var GlueProvider = class {
32773
32783
  }
32774
32784
  }
32775
32785
  async deleteTable(logicalId, physicalId, resourceType, properties, context) {
32776
- this.logger.debug(`Deleting Glue Table ${logicalId}: ${physicalId}`);
32786
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
32787
+ const shownId = physicalId.split("|").map((part) => log.value(part)).join("|");
32788
+ log.debug(`Deleting Glue Table ${logicalId}: ${shownId}`);
32777
32789
  const decoded = decodeTableId(physicalId, properties);
32778
32790
  if (!decoded) {
32779
- this.logger.warn(tableIdDecodeFailure(logicalId, physicalId, [properties], { skipping: true }));
32791
+ this.logger.warn(tableIdDecodeFailure(logicalId, physicalId, [properties], {
32792
+ skipping: true,
32793
+ mask: log.mask
32794
+ }));
32780
32795
  return compositeIdSkipResult();
32781
32796
  }
32782
32797
  const { databaseName, tableName } = decoded;
@@ -32795,11 +32810,11 @@ var GlueProvider = class {
32795
32810
  if (error instanceof EntityNotFoundException) {
32796
32811
  const clientRegion = await this.getClient().config.region();
32797
32812
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
32798
- logCatalogScopedDeleteSkip(this.logger, target, "Table", logicalId, physicalId);
32813
+ logCatalogScopedDeleteSkip(log, target, "Table", logicalId, shownId);
32799
32814
  return;
32800
32815
  }
32801
32816
  const cause = error instanceof Error ? error : void 0;
32802
- throw new ProvisioningError(`Failed to delete Glue Table ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
32817
+ throw new ProvisioningError(log.mask(`Failed to delete Glue Table ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
32803
32818
  }
32804
32819
  }
32805
32820
  preserveAwsManagedParameters(built, desiredParameters, previousParameters, liveParameters) {
@@ -33910,24 +33925,26 @@ var GlueCrawlerProvider = class {
33910
33925
  }
33911
33926
  }
33912
33927
  async delete(logicalId, physicalId, resourceType, _properties, context) {
33913
- this.logger.debug(`Deleting Glue Crawler ${logicalId}: ${physicalId}`);
33928
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
33929
+ const { value: v } = log;
33930
+ log.debug(`Deleting Glue Crawler ${logicalId}: ${v(physicalId)}`);
33914
33931
  try {
33915
33932
  await this.getClient().send(new DeleteCrawlerCommand({ Name: physicalId }));
33916
33933
  } catch (error) {
33917
33934
  if (error instanceof EntityNotFoundException) {
33918
33935
  const clientRegion = await this.getClient().config.region();
33919
33936
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
33920
- this.logger.debug(`Glue Crawler ${physicalId} does not exist, skipping deletion`);
33937
+ log.debug(`Glue Crawler ${v(physicalId)} does not exist, skipping deletion`);
33921
33938
  return;
33922
33939
  }
33923
33940
  if (error instanceof CrawlerRunningException) {
33924
- this.logger.debug(`Glue Crawler ${physicalId} is running; stopping before delete and retrying`);
33925
- await this.stopCrawlerAndWait(physicalId);
33941
+ log.debug(`Glue Crawler ${v(physicalId)} is running; stopping before delete and retrying`);
33942
+ await this.stopCrawlerAndWait(physicalId, log);
33926
33943
  await this.getClient().send(new DeleteCrawlerCommand({ Name: physicalId }));
33927
33944
  return;
33928
33945
  }
33929
33946
  const cause = error instanceof Error ? error : void 0;
33930
- throw new ProvisioningError(`Failed to delete Glue Crawler ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
33947
+ throw new ProvisioningError(log.mask(`Failed to delete Glue Crawler ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
33931
33948
  }
33932
33949
  }
33933
33950
  async stopCrawlerAndWait(physicalId, log = {
@@ -34156,7 +34173,8 @@ var GlueConnectionProvider = class {
34156
34173
  }
34157
34174
  }
34158
34175
  async delete(logicalId, physicalId, resourceType, properties, context) {
34159
- this.logger.debug(`Deleting Glue Connection ${logicalId}: ${physicalId}`);
34176
+ const log = createMaskedLogSinks(this.logger, context?.maskSecrets);
34177
+ log.debug(`Deleting Glue Connection ${logicalId}: ${log.value(physicalId)}`);
34160
34178
  const redactedSkip = redactedDeleteAddressSkip(this.logger, logicalId, resourceType, redactedDeleteAddressFields({ CatalogId: properties?.["CatalogId"] }));
34161
34179
  if (redactedSkip) return redactedSkip;
34162
34180
  const target = deleteCatalogId(properties);
@@ -34170,11 +34188,11 @@ var GlueConnectionProvider = class {
34170
34188
  if (error instanceof EntityNotFoundException) {
34171
34189
  const clientRegion = await this.getClient().config.region();
34172
34190
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
34173
- logCatalogScopedDeleteSkip(this.logger, target, "Connection", logicalId, physicalId);
34191
+ logCatalogScopedDeleteSkip(log, target, "Connection", logicalId, log.value(physicalId));
34174
34192
  return;
34175
34193
  }
34176
34194
  const cause = error instanceof Error ? error : void 0;
34177
- throw new ProvisioningError(`Failed to delete Glue Connection ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
34195
+ throw new ProvisioningError(log.mask(`Failed to delete Glue Connection ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
34178
34196
  }
34179
34197
  }
34180
34198
  async getAttribute(physicalId, _resourceType, attributeName) {
@@ -43049,14 +43067,16 @@ var S3VectorsProvider = class {
43049
43067
 
43050
43068
  //#endregion
43051
43069
  //#region src/provisioning/providers/s3-directory-bucket-provider.ts
43052
- function notEmptyRefusalMessage(bucketName) {
43053
- const command = bucketName !== "" && !bucketName.includes("/") && displaySafe(bucketName, { asciiOnly: true }) === bucketName ? renderDisableCommand({
43070
+ function notEmptyRefusalMessage(bucketName, maskSecrets) {
43071
+ const mask = maskerOrIdentity(maskSecrets);
43072
+ const secretDerived = mask(bucketName) !== bucketName;
43073
+ const command = bucketName !== "" && !bucketName.includes("/") && displaySafe(bucketName, { asciiOnly: true }) === bucketName && !secretDerived ? renderDisableCommand({
43054
43074
  before: "aws s3 rm",
43055
43075
  identifier: `s3://${bucketName}`,
43056
43076
  after: "--recursive"
43057
43077
  }) : "";
43058
- const remedy = command ? `Delete all objects first (e.g. ${command}) and destroy again.` : "Delete all objects first, via the console, and destroy again: the bucket name cdkd recorded cannot be reproduced safely on a command line, so any command shown here could act on a different bucket or run part of the name as shell.";
43059
- return `bucket ${displayIdent(bucketName)} is not empty. Matching CloudFormation, cdkd does not delete a non-empty directory bucket without an explicit opt-in. ${remedy}`;
43078
+ const remedy = command ? `Delete all objects first (e.g. ${command}) and destroy again.` : secretDerived ? "Delete all objects first, via the console, and destroy again: the bucket name is derived from a secret, so cdkd does not print it." : "Delete all objects first, via the console, and destroy again: the bucket name cdkd recorded cannot be reproduced safely on a command line, so any command shown here could act on a different bucket or run part of the name as shell.";
43079
+ return mask(`bucket ${displayIdent(mask(bucketName))} is not empty. Matching CloudFormation, cdkd does not delete a non-empty directory bucket without an explicit opt-in. ${remedy}`);
43060
43080
  }
43061
43081
  var S3DirectoryBucketProvider = class {
43062
43082
  s3Client;
@@ -43205,22 +43225,24 @@ var S3DirectoryBucketProvider = class {
43205
43225
  }
43206
43226
  }
43207
43227
  async delete(logicalId, physicalId, resourceType, properties, context) {
43208
- this.logger.debug(`Deleting S3 Express Directory Bucket ${logicalId}: ${physicalId}`);
43228
+ const mask = maskerOrIdentity(context?.maskSecrets);
43229
+ this.logger.debug(mask(`Deleting S3 Express Directory Bucket ${logicalId}: ${mask(physicalId)}`));
43209
43230
  const allowAutoEmpty = context?.forceDataDelete === true || hasCdkAutoDeleteTag(properties, "aws-cdk:auto-delete-objects");
43210
43231
  try {
43211
- await this.deleteBucketWithEmptyRetry(logicalId, physicalId, allowAutoEmpty);
43232
+ await this.deleteBucketWithEmptyRetry(logicalId, physicalId, allowAutoEmpty, context?.maskSecrets);
43212
43233
  } catch (error) {
43213
43234
  if (error instanceof Error && (error.name === "NoSuchBucket" || error.name === "BucketNotFound")) {
43214
43235
  const clientRegion = await this.s3Client.config.region();
43215
43236
  assertRegionMatch(clientRegion, context?.expectedRegion, resourceType, logicalId, physicalId);
43216
- this.logger.debug(`Bucket ${physicalId} does not exist, skipping deletion`);
43237
+ this.logger.debug(mask(`Bucket ${mask(physicalId)} does not exist, skipping deletion`));
43217
43238
  return;
43218
43239
  }
43219
43240
  const cause = error instanceof Error ? error : void 0;
43220
- throw new ProvisioningError(`Failed to delete S3 Express Directory Bucket ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
43241
+ throw new ProvisioningError(mask(`Failed to delete S3 Express Directory Bucket ${logicalId}: ${error instanceof Error ? error.message : String(error)}`), resourceType, logicalId, physicalId, cause);
43221
43242
  }
43222
43243
  }
43223
- async deleteBucketWithEmptyRetry(logicalId, bucketName, allowAutoEmpty) {
43244
+ async deleteBucketWithEmptyRetry(logicalId, bucketName, allowAutoEmpty, maskSecrets) {
43245
+ const mask = maskerOrIdentity(maskSecrets);
43224
43246
  const maxAttempts = 3;
43225
43247
  for (let attempt = 1; attempt <= maxAttempts; attempt++) try {
43226
43248
  await this.s3Client.send(new DeleteBucketCommand({ Bucket: bucketName }));
@@ -43229,9 +43251,9 @@ var S3DirectoryBucketProvider = class {
43229
43251
  } catch (error) {
43230
43252
  const msg = describeAwsFailure(error).detail;
43231
43253
  if (msg.includes("not empty") || msg.includes("BucketNotEmpty")) {
43232
- if (!allowAutoEmpty) throw markNonRetryable(new Error(notEmptyRefusalMessage(bucketName)));
43233
- this.logger.info(`Directory bucket ${bucketName} not empty (attempt ${attempt}/${maxAttempts}), emptying (auto-delete opt-in present)...`);
43234
- await this.emptyBucket(bucketName);
43254
+ if (!allowAutoEmpty) throw markNonRetryable(new Error(notEmptyRefusalMessage(bucketName, maskSecrets)));
43255
+ this.logger.info(mask(`Directory bucket ${mask(bucketName)} not empty (attempt ${attempt}/${maxAttempts}), emptying (auto-delete opt-in present)...`));
43256
+ await this.emptyBucket(bucketName, mask);
43235
43257
  continue;
43236
43258
  }
43237
43259
  throw error;
@@ -43239,7 +43261,7 @@ var S3DirectoryBucketProvider = class {
43239
43261
  await this.s3Client.send(new DeleteBucketCommand({ Bucket: bucketName }));
43240
43262
  this.logger.debug(`Successfully deleted S3 Express Directory Bucket ${logicalId}`);
43241
43263
  }
43242
- async emptyBucket(bucketName) {
43264
+ async emptyBucket(bucketName, mask) {
43243
43265
  let continuationToken;
43244
43266
  do {
43245
43267
  const listResponse = await this.s3Client.send(new ListObjectsV2Command({
@@ -43257,7 +43279,7 @@ var S3DirectoryBucketProvider = class {
43257
43279
  Quiet: true
43258
43280
  }
43259
43281
  }));
43260
- this.logger.debug(`Deleted ${objects.length} objects from bucket ${bucketName}`);
43282
+ this.logger.debug(mask(`Deleted ${objects.length} objects from bucket ${mask(bucketName)}`));
43261
43283
  }
43262
43284
  continuationToken = listResponse.IsTruncated ? listResponse.NextContinuationToken : void 0;
43263
43285
  } while (continuationToken);
@@ -44836,7 +44858,7 @@ var ACMCertificateProvider = class {
44836
44858
  const createResult = await this.create(logicalId, resourceType, properties);
44837
44859
  let orphanReason;
44838
44860
  try {
44839
- const deleteResult = await this.delete(logicalId, physicalId, resourceType, previousProperties);
44861
+ const deleteResult = await this.delete(logicalId, physicalId, resourceType, previousProperties, context?.maskSecrets ? { maskSecrets: context.maskSecrets } : void 0);
44840
44862
  if (deleteResult?.outcome === "skipped") {
44841
44863
  orphanReason = `old certificate ${physicalId} was not deleted: ${deleteResult.reason}`;
44842
44864
  this.logger.warn(`Skipped deleting old ACM certificate ${physicalId} during replacement: ${deleteResult.reason}. The old certificate may be orphaned and require manual cleanup.`);
@@ -45021,4 +45043,4 @@ var ACMCertificateProvider = class {
45021
45043
 
45022
45044
  //#endregion
45023
45045
  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, LambdaPermissionProvider, LambdaUrlProvider, 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 };
45024
- //# sourceMappingURL=provider-classes-BvHGcxn6.js.map
45046
+ //# sourceMappingURL=provider-classes-BRNQRRLh.js.map