@go-to-k/cdkd 0.298.1 → 0.298.3

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 (24) hide show
  1. package/dist/{asg-provider-semUK44T.js → asg-provider-CvJsMScM.js} +2 -2
  2. package/dist/{asg-provider-semUK44T.js.map → asg-provider-CvJsMScM.js.map} +1 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/{deploy-engine-A-Ys_mhE.js → deploy-engine-DLGCuN4i.js} +131 -12
  5. package/dist/deploy-engine-DLGCuN4i.js.map +1 -0
  6. package/dist/{iam-role-provider-CpqTal4K.js → iam-role-provider-B020NDGS.js} +2 -2
  7. package/dist/{iam-role-provider-CpqTal4K.js.map → iam-role-provider-B020NDGS.js.map} +1 -1
  8. package/dist/index.d.ts +11 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/{neptune-provider-C4A86Y7P.js → neptune-provider-DDFjTv9k.js} +2 -2
  12. package/dist/{neptune-provider-C4A86Y7P.js.map → neptune-provider-DDFjTv9k.js.map} +1 -1
  13. package/dist/{program-D5gcmWad.js → program-BQnReLnG.js} +105 -51
  14. package/dist/program-BQnReLnG.js.map +1 -0
  15. package/dist/{provider-classes-CuZ-P4gB.js → provider-classes-BTP4rLU6.js} +228 -91
  16. package/dist/provider-classes-BTP4rLU6.js.map +1 -0
  17. package/dist/{rds-provider-X4mc-nGw.js → rds-provider-DcfF-k86.js} +2 -2
  18. package/dist/{rds-provider-X4mc-nGw.js.map → rds-provider-DcfF-k86.js.map} +1 -1
  19. package/dist/{version-CItAaDXu.js → version-CWATUXWX.js} +2 -2
  20. package/dist/{version-CItAaDXu.js.map → version-CWATUXWX.js.map} +1 -1
  21. package/package.json +2 -2
  22. package/dist/deploy-engine-A-Ys_mhE.js.map +0 -1
  23. package/dist/program-D5gcmWad.js.map +0 -1
  24. package/dist/provider-classes-CuZ-P4gB.js.map +0 -1
@@ -2,17 +2,17 @@ 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, 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 resolveAssemblyPath, 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, ac as rewriteTemplateAssetReferences, ai as s3BucketArn, al as decodeListingKey, an as isRedactedRecordedValue, ao as toCfnInteger, ar as planTagDiff, as as dynamicReferenceTokens, b as lookupEachName, bl as displayAssemblyPath, bo as withRetry, br as getCurrentResourceSecrets, bt as getNestedRevertRun, c as renderNestedTemplateTreeDefect, ci as s3BucketRegionalDomainName, cl as canonicalizeRegion, co as coerceCfnInteger, cr as tagMapAsList, da as refuseMalformedNestedChildOutputs, do as configStringRefusal, dr as stringifyIfAssigned, ds as recoverMaskedOutput, ec as stringifyValue, er as reserveStackCreateToken, es as redactSecretsForState, et as getPriorAttempts, fo as readConfigString, fs as physicalNameCopiesOf, gi as getAccountInfo, go as requireConfigString, ho as requireConfigObject, hs as carriesSecretMask, 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, ll as derivePartitionAndUrlSuffix, lo as configBooleanRefusal, lr as tagPlanWarning, mo as requireConfigArray, nn as getCurrentProducerRegions, no as WARM_THROUGHPUT_MEMBERS, nr as acquireIdempotencyToken, o as isAbsoluteAssetPath, oi as s3BucketDomainName, on as redactedDeleteAddressFields, oo as toFiniteNumber, or as readTagList, po as replayWarn, 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, sn as redactedDeleteAddressSkip, so as coerceCfnBoolean, sr as refuseMalformedDesiredTags, t as DeployEngine, tt as markRefusedBeforeApplying, uo as configIntegerRefusal, ur as definedAttributes, v as chunks, x as withApiLimit, xl as renderAssemblyPathEscape, xo as canonicalLambdaFunctionName, y as isAccessDeniedError, yl as describeFileReadFailure, z as DynamoDBGlobalTableProvider, zr as observeThenDisableInstanceApiTermination } from "./deploy-engine-A-Ys_mhE.js";
6
- import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-CpqTal4K.js";
7
- import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-D5gcmWad.js";
8
- import { RDSProvider } from "./rds-provider-X4mc-nGw.js";
9
- import { NeptuneProvider } from "./neptune-provider-C4A86Y7P.js";
10
- import { ASGProvider } from "./asg-provider-semUK44T.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-DLGCuN4i.js";
6
+ import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-B020NDGS.js";
7
+ import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-BQnReLnG.js";
8
+ import { RDSProvider } from "./rds-provider-DcfF-k86.js";
9
+ import { NeptuneProvider } from "./neptune-provider-DDFjTv9k.js";
10
+ import { ASGProvider } from "./asg-provider-CvJsMScM.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";
14
14
  import { CreateQueueCommand, DeleteQueueCommand, GetQueueAttributesCommand, GetQueueUrlCommand, ListQueueTagsCommand, QueueDoesNotExist, SQSClient, SetQueueAttributesCommand, TagQueueCommand, UntagQueueCommand } from "@aws-sdk/client-sqs";
15
- import { CreateTopicCommand, DeleteTopicCommand, GetSubscriptionAttributesCommand, GetTopicAttributesCommand, InvalidParameterException, ListSubscriptionsByTopicCommand, ListTagsForResourceCommand, ListTopicsCommand, NotFoundException, SNSClient, SetTopicAttributesCommand, SubscribeCommand, TagResourceCommand, UnsubscribeCommand, UntagResourceCommand } from "@aws-sdk/client-sns";
15
+ import { CreateTopicCommand, DeleteTopicCommand, GetSubscriptionAttributesCommand, GetTopicAttributesCommand, InvalidParameterException, ListSubscriptionsByTopicCommand, ListTagsForResourceCommand, ListTopicsCommand, NotFoundException, SNSClient, SetSubscriptionAttributesCommand, SetTopicAttributesCommand, SubscribeCommand, TagResourceCommand, UnsubscribeCommand, UntagResourceCommand } from "@aws-sdk/client-sns";
16
16
  import { AddPermissionCommand, CreateEventSourceMappingCommand, CreateFunctionCommand, CreateFunctionUrlConfigCommand, DeleteEventSourceMappingCommand, DeleteFunctionCodeSigningConfigCommand, DeleteFunctionCommand, DeleteFunctionConcurrencyCommand, DeleteFunctionEventInvokeConfigCommand, DeleteFunctionUrlConfigCommand, DeleteLayerVersionCommand, GetEventSourceMappingCommand, GetFunctionCodeSigningConfigCommand, GetFunctionCommand, GetFunctionConcurrencyCommand, GetFunctionEventInvokeConfigCommand, GetFunctionRecursionConfigCommand, GetFunctionUrlConfigCommand, GetLayerVersionByArnCommand, GetPolicyCommand as GetPolicyCommand$1, GetRuntimeManagementConfigCommand, LambdaClient, ListEventSourceMappingsCommand, ListLayerVersionsCommand, ListTagsCommand, PublishLayerVersionCommand, PutFunctionCodeSigningConfigCommand, PutFunctionConcurrencyCommand, PutFunctionEventInvokeConfigCommand, PutFunctionRecursionConfigCommand, PutRuntimeManagementConfigCommand, RemovePermissionCommand, ResourceNotFoundException, TagResourceCommand as TagResourceCommand$1, UntagResourceCommand as UntagResourceCommand$1, UpdateEventSourceMappingCommand, UpdateFunctionCodeCommand, UpdateFunctionConfigurationCommand, UpdateFunctionUrlConfigCommand, waitUntilFunctionActiveV2, waitUntilFunctionUpdatedV2 } from "@aws-sdk/client-lambda";
17
17
  import { GetCallerIdentityCommand, STSClient } from "@aws-sdk/client-sts";
18
18
  import { AllocateAddressCommand, AssociateAddressCommand, AssociateIamInstanceProfileCommand, AssociateRouteTableCommand, AttachInternetGatewayCommand, AuthorizeSecurityGroupEgressCommand, AuthorizeSecurityGroupIngressCommand, CreateInternetGatewayCommand, CreateNatGatewayCommand, CreateNetworkAclCommand, CreateNetworkAclEntryCommand, CreateRouteCommand, CreateRouteTableCommand, CreateSecurityGroupCommand, CreateSubnetCommand, CreateTagsCommand, CreateVpcCommand, DeleteInternetGatewayCommand, DeleteNatGatewayCommand, DeleteNetworkAclCommand, DeleteNetworkAclEntryCommand, DeleteNetworkInterfaceCommand, DeleteRouteCommand, DeleteRouteTableCommand, DeleteSecurityGroupCommand, DeleteSubnetCommand, DeleteTagsCommand, DeleteVpcCommand, DescribeAddressesCommand, DescribeAvailabilityZonesCommand, DescribeIamInstanceProfileAssociationsCommand, DescribeInstanceAttributeCommand, DescribeInstanceCreditSpecificationsCommand, DescribeInstancesCommand, DescribeInternetGatewaysCommand, DescribeNatGatewaysCommand, DescribeNetworkAclsCommand, DescribeNetworkInterfacesCommand, DescribeRouteTablesCommand, DescribeSecurityGroupRulesCommand, DescribeSecurityGroupsCommand, DescribeSubnetsCommand, DescribeVolumesCommand, DescribeVpcAttributeCommand, DescribeVpcsCommand, DetachInternetGatewayCommand, DisassociateAddressCommand, DisassociateRouteTableCommand, EC2Client, ModifyInstanceAttributeCommand, ModifyInstanceCreditSpecificationCommand, ModifyInstanceMetadataOptionsCommand, ModifySubnetAttributeCommand, ModifyVpcAttributeCommand, MonitorInstancesCommand, ReleaseAddressCommand, ReplaceNetworkAclAssociationCommand, RevokeSecurityGroupEgressCommand, RevokeSecurityGroupIngressCommand, RunInstancesCommand, TerminateInstancesCommand, UnmonitorInstancesCommand, waitUntilInstanceRunning, waitUntilInstanceTerminated, waitUntilNatGatewayAvailable, waitUntilNatGatewayDeleted } from "@aws-sdk/client-ec2";
@@ -6723,6 +6723,45 @@ function mapDeliveryStatusLogging(attrs, stateCaseMap = /* @__PURE__ */ new Map(
6723
6723
  //#endregion
6724
6724
  //#region src/provisioning/providers/sns-subscription-provider.ts
6725
6725
  const SNS_SUBSCRIPTION_DELETE_THREW_REASON = "the Unsubscribe call did not complete, so the old subscription is unproven";
6726
+ const MUTABLE_ATTRIBUTES = [
6727
+ "RawMessageDelivery",
6728
+ "FilterPolicy",
6729
+ "FilterPolicyScope",
6730
+ "RedrivePolicy",
6731
+ "DeliveryPolicy",
6732
+ "ReplayPolicy",
6733
+ "SubscriptionRoleArn"
6734
+ ];
6735
+ const RESET_VALUES = {
6736
+ RawMessageDelivery: "false",
6737
+ FilterPolicy: "",
6738
+ FilterPolicyScope: "MessageAttributes",
6739
+ RedrivePolicy: ""
6740
+ };
6741
+ const CREATE_ONLY_FIELDS = [
6742
+ "TopicArn",
6743
+ "Protocol",
6744
+ "Endpoint"
6745
+ ];
6746
+ function toAttributeValue(key, value) {
6747
+ if (value === void 0) return void 0;
6748
+ if (key === "FilterPolicy" || key === "RedrivePolicy" || key === "DeliveryPolicy" || key === "ReplayPolicy") return typeof value === "string" ? value : JSON.stringify(value);
6749
+ return stringifyValue(value);
6750
+ }
6751
+ function sameAttributeValue(name, desired, current) {
6752
+ if (current === void 0) return desired === RESET_VALUES[name];
6753
+ if (desired === current) return true;
6754
+ try {
6755
+ return JSON.stringify(JSON.parse(desired)) === JSON.stringify(JSON.parse(current));
6756
+ } catch {
6757
+ return false;
6758
+ }
6759
+ }
6760
+ function filterPolicyCleared(plan, current) {
6761
+ const planned = plan.find(([name]) => name === "FilterPolicy");
6762
+ if (planned !== void 0) return planned[1] === "";
6763
+ return current["FilterPolicy"] === void 0 || current["FilterPolicy"] === "";
6764
+ }
6726
6765
  var SNSSubscriptionProvider = class {
6727
6766
  snsClient;
6728
6767
  logger = getLogger().child("SNSSubscriptionProvider");
@@ -6743,7 +6782,7 @@ var SNSSubscriptionProvider = class {
6743
6782
  const awsClients = getAwsClients();
6744
6783
  this.snsClient = awsClients.sns;
6745
6784
  }
6746
- async create(logicalId, resourceType, properties) {
6785
+ async create(logicalId, resourceType, properties, context) {
6747
6786
  this.logger.debug(`Creating SNS subscription ${logicalId}`);
6748
6787
  const topicArn = properties["TopicArn"];
6749
6788
  const protocol = properties["Protocol"];
@@ -6781,16 +6820,71 @@ var SNSSubscriptionProvider = class {
6781
6820
  attributes: definedAttributes({ Arn: response.SubscriptionArn?.startsWith("arn:") ? response.SubscriptionArn : void 0 })
6782
6821
  };
6783
6822
  } catch (error) {
6784
- const cause = error instanceof Error ? error : void 0;
6785
- throw new ProvisioningError(`Failed to create SNS subscription ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
6823
+ throw this.wrapMaskedAwsCallError(maskerOrIdentity(context?.maskSecrets), error, `Failed to create SNS subscription ${logicalId}`, resourceType, logicalId, void 0);
6786
6824
  }
6787
6825
  }
6788
- async update(logicalId, physicalId, resourceType, properties, _previousProperties) {
6826
+ async update(logicalId, physicalId, resourceType, properties, _previousProperties, context) {
6789
6827
  this.logger.debug(`Updating SNS subscription ${logicalId}: ${physicalId}`);
6828
+ const plan = await this.planInPlaceUpdate(logicalId, physicalId, resourceType, properties, context);
6829
+ if (plan === void 0) return this.replace(logicalId, physicalId, resourceType, properties, context);
6830
+ const mask = maskerOrIdentity(context?.maskSecrets);
6831
+ for (const [name, value] of plan) try {
6832
+ await this.snsClient.send(new SetSubscriptionAttributesCommand({
6833
+ SubscriptionArn: physicalId,
6834
+ AttributeName: name,
6835
+ AttributeValue: value
6836
+ }));
6837
+ } catch (error) {
6838
+ throw this.wrapMaskedAwsCallError(mask, error, `Failed to update SNS subscription ${logicalId} (attribute ${name})`, resourceType, logicalId, physicalId);
6839
+ }
6840
+ const changed = plan.map(([name]) => name).join(", ") || "no attribute differed";
6841
+ this.logger.debug(safeMsg`Updated SNS subscription ${logicalId} in place: ${changed}`);
6842
+ return {
6843
+ physicalId,
6844
+ wasReplaced: false,
6845
+ attributes: definedAttributes({ Arn: physicalId.startsWith("arn:") ? physicalId : void 0 })
6846
+ };
6847
+ }
6848
+ async planInPlaceUpdate(logicalId, physicalId, resourceType, properties, context) {
6849
+ if (physicalId === "PendingConfirmation" || physicalId === "pending confirmation") return;
6850
+ let current;
6851
+ try {
6852
+ current = (await this.snsClient.send(new GetSubscriptionAttributesCommand({ SubscriptionArn: physicalId })))?.Attributes;
6853
+ } catch (error) {
6854
+ if (error instanceof NotFoundException) return void 0;
6855
+ throw this.wrapMaskedAwsCallError(maskerOrIdentity(context?.maskSecrets), error, `Failed to update SNS subscription ${logicalId}: could not read its attributes`, resourceType, logicalId, physicalId);
6856
+ }
6857
+ if (current === void 0 || current["PendingConfirmation"] === "true") return void 0;
6858
+ for (const field of CREATE_ONLY_FIELDS) {
6859
+ const desired = properties[field];
6860
+ if (desired !== void 0 && stringifyValue(desired) !== current[field]) return void 0;
6861
+ }
6862
+ const plan = [];
6863
+ for (const name of MUTABLE_ATTRIBUTES) {
6864
+ const desired = toAttributeValue(name, properties[name]);
6865
+ const now = current[name];
6866
+ if (desired !== void 0) {
6867
+ if (!sameAttributeValue(name, desired, now)) plan.push([name, desired]);
6868
+ continue;
6869
+ }
6870
+ if (now === void 0 || now === "") continue;
6871
+ if (name === "FilterPolicyScope" && filterPolicyCleared(plan, current)) continue;
6872
+ const reset = RESET_VALUES[name];
6873
+ if (reset === void 0) return void 0;
6874
+ if (now !== reset) plan.push([name, reset]);
6875
+ }
6876
+ const policy = plan.find(([name]) => name === "FilterPolicy");
6877
+ if (policy !== void 0 && policy[1] !== "" && plan.some(([name]) => name === "FilterPolicyScope")) return;
6878
+ return plan;
6879
+ }
6880
+ wrapMaskedAwsCallError(mask, error, prefix, resourceType, logicalId, physicalId) {
6881
+ return wrapMaskedAwsError(mask, error, (text) => new ProvisioningError(`${prefix}: ${text}`, resourceType, logicalId, physicalId, error instanceof Error ? error : void 0));
6882
+ }
6883
+ async replace(logicalId, physicalId, resourceType, properties, context) {
6790
6884
  let deleteResult = void 0;
6791
6885
  let deleteThrew = false;
6792
6886
  try {
6793
- deleteResult = await this.delete(logicalId, physicalId, resourceType);
6887
+ deleteResult = await this.delete(logicalId, physicalId, resourceType, void 0, { expectedRegion: context?.expectedRegion });
6794
6888
  } catch (error) {
6795
6889
  deleteThrew = true;
6796
6890
  this.logger.warn(`Failed to delete old subscription ${physicalId} during update: ${safeStringify(error)}`);
@@ -6800,7 +6894,7 @@ var SNSSubscriptionProvider = class {
6800
6894
  this.logger.warn(`Cannot replace SNS subscription ${logicalId}: the old subscription ${physicalId} was not deleted — ${notDeletedReason}`);
6801
6895
  throw markNonRetryable(new ProvisioningError(`Cannot replace SNS subscription ${logicalId}: cdkd could not delete the old subscription, and creating the replacement would leave both subscribed to the topic and deliver every message twice. See the warning naming ${logicalId} for the recorded physical id and the cause. Usually the Unsubscribe itself failed (a throttle, a denied sns:Unsubscribe) and the state record is FINE — clear that cause and re-run, or remove the old subscription in AWS by hand. Repair the state record only when the warning says the recorded physical id is malformed, which is the latent skip arm rather than this one.`, resourceType, logicalId, physicalId));
6802
6896
  }
6803
- const createResult = await this.create(logicalId, resourceType, properties);
6897
+ const createResult = await this.create(logicalId, resourceType, properties, context?.maskSecrets === void 0 ? void 0 : { maskSecrets: context.maskSecrets });
6804
6898
  return {
6805
6899
  physicalId: createResult.physicalId,
6806
6900
  wasReplaced: true,
@@ -11639,13 +11733,14 @@ var DynamoDBTableProvider = class {
11639
11733
  const wt = readbackWarmThroughput(table.WarmThroughput, properties !== void 0 && desiredBagIsInformative(properties) ? sentWarmThroughputMembers(properties["WarmThroughput"]) : void 0);
11640
11734
  if (wt !== void 0) result["WarmThroughput"] = wt;
11641
11735
  }
11736
+ let streamMembersRead = Promise.resolve();
11642
11737
  if (table.StreamSpecification?.StreamEnabled && table.StreamSpecification.StreamViewType) {
11643
11738
  const streamBlock = {
11644
11739
  StreamEnabled: true,
11645
11740
  StreamViewType: table.StreamSpecification.StreamViewType
11646
11741
  };
11647
11742
  result["StreamSpecification"] = streamBlock;
11648
- await this.readStreamMembers(physicalId, table.LatestStreamArn, properties?.["StreamSpecification"], streamBlock, context?.afterOwnWrite === true);
11743
+ streamMembersRead = this.readStreamMembers(physicalId, table.LatestStreamArn, properties?.["StreamSpecification"], streamBlock, context?.afterOwnWrite === true);
11649
11744
  }
11650
11745
  const bagInformative = desiredBagIsInformative(properties);
11651
11746
  if (table.GlobalSecondaryIndexes && table.GlobalSecondaryIndexes.length > 0) {
@@ -11664,88 +11759,121 @@ var DynamoDBTableProvider = class {
11664
11759
  }
11665
11760
  if (table.DeletionProtectionEnabled !== void 0) result["DeletionProtectionEnabled"] = table.DeletionProtectionEnabled;
11666
11761
  if (table.TableClassSummary?.TableClass) result["TableClass"] = table.TableClassSummary.TableClass;
11667
- if (table.TableArn) try {
11668
- const tagsResp = await this.dynamoDBClient.send(new ListTagsOfResourceCommand({ ResourceArn: table.TableArn }));
11669
- result["Tags"] = normalizeAwsTagsToCfn(tagsResp.Tags);
11670
- } catch (err) {
11671
- if (err instanceof ResourceNotFoundException$1) return RESOURCE_NOT_FOUND;
11672
- throw err;
11673
- }
11674
- try {
11675
- const pitrDesc = (await this.dynamoDBClient.send(new DescribeContinuousBackupsCommand({ TableName: physicalId }))).ContinuousBackupsDescription?.PointInTimeRecoveryDescription;
11676
- const pitrStatus = pitrDesc?.PointInTimeRecoveryStatus;
11677
- if (pitrStatus) {
11678
- const pitr = { PointInTimeRecoveryEnabled: pitrStatus === "ENABLED" };
11679
- if (pitrStatus === "ENABLED" && pitrDesc?.RecoveryPeriodInDays !== void 0) pitr["RecoveryPeriodInDays"] = pitrDesc.RecoveryPeriodInDays;
11680
- result["PointInTimeRecoverySpecification"] = pitr;
11681
- }
11682
- } catch (err) {
11683
- this.logger.debug(`Could not read PointInTimeRecovery for ${physicalId}: ${describeAwsFailure(err).detail}`);
11684
- }
11685
- try {
11686
- const ttlDesc = (await this.dynamoDBClient.send(new DescribeTimeToLiveCommand({ TableName: physicalId }))).TimeToLiveDescription;
11687
- if (ttlDesc?.TimeToLiveStatus === "ENABLED" && ttlDesc.AttributeName) result["TimeToLiveSpecification"] = {
11688
- AttributeName: ttlDesc.AttributeName,
11689
- Enabled: true
11690
- };
11691
- } catch (err) {
11692
- this.logger.debug(`Could not read TimeToLive for ${physicalId}: ${describeAwsFailure(err).detail}`);
11693
- }
11694
- if (table.TableArn) try {
11695
- const rpResp = await this.dynamoDBClient.send(new GetResourcePolicyCommand({ ResourceArn: table.TableArn }));
11696
- if (rpResp.Policy) {
11697
- let doc = rpResp.Policy;
11698
- try {
11699
- doc = JSON.parse(rpResp.Policy);
11700
- } catch {}
11701
- result["ResourcePolicy"] = { PolicyDocument: doc };
11702
- }
11703
- } catch (err) {
11704
- if (!(err instanceof ResourceNotFoundException$1)) this.logger.debug(`Could not read ResourcePolicy for ${physicalId}: ${describeAwsFailure(err).detail}`);
11705
- }
11706
- try {
11707
- const active = ((await this.dynamoDBClient.send(new DescribeKinesisStreamingDestinationCommand({ TableName: physicalId }))).KinesisDataStreamDestinations ?? []).find((d) => d.DestinationStatus === "ACTIVE" || d.DestinationStatus === "ENABLING");
11708
- if (active?.StreamArn) {
11709
- const kspec = { StreamArn: active.StreamArn };
11710
- if (active.ApproximateCreationDateTimePrecision !== void 0) kspec["ApproximateCreationDateTimePrecision"] = active.ApproximateCreationDateTimePrecision;
11711
- result["KinesisStreamSpecification"] = kspec;
11712
- }
11713
- } catch (err) {
11714
- this.logger.debug(`Could not read KinesisStreamingDestination for ${physicalId}: ${describeAwsFailure(err).detail}`);
11715
- }
11716
- try {
11717
- const ciResp = await this.dynamoDBClient.send(new DescribeContributorInsightsCommand({ TableName: physicalId }));
11718
- const cspec = reverseMapTableContributorInsights(ciResp.ContributorInsightsStatus, ciResp.ContributorInsightsMode);
11719
- if (cspec !== void 0) result["ContributorInsightsSpecification"] = cspec;
11720
- } catch (err) {
11721
- this.logger.debug(`Could not read ContributorInsights for ${physicalId}: ${describeAwsFailure(err).detail}`);
11722
- }
11723
- const emittedGsis = result["GlobalSecondaryIndexes"];
11724
- if (bagInformative && Array.isArray(emittedGsis)) {
11725
- const desiredByName = desiredIndexEntriesByName(properties?.["GlobalSecondaryIndexes"]);
11726
- for (const emitted of emittedGsis) {
11727
- const indexName = emitted["IndexName"];
11728
- if (typeof indexName !== "string") continue;
11729
- const desiredEntry = desiredByName.get(indexName);
11730
- if (!indexDeclaresContributorInsights(desiredEntry)) continue;
11731
- try {
11732
- const indexResp = await this.dynamoDBClient.send(new DescribeContributorInsightsCommand({
11733
- TableName: physicalId,
11734
- IndexName: indexName
11735
- }));
11736
- const block = reverseMapIndexContributorInsights(indexResp.ContributorInsightsStatus, indexResp.ContributorInsightsMode, desiredEntry?.[CONTRIBUTOR_INSIGHTS_KEY]);
11737
- if (block !== void 0) emitted[CONTRIBUTOR_INSIGHTS_KEY] = block;
11738
- } catch (err) {
11739
- this.logger.debug(`Could not read ContributorInsights for index ${indexName} of ${physicalId}: ${describeAwsFailure(err).detail}`);
11740
- }
11741
- }
11742
- }
11762
+ const tableArn = table.TableArn;
11763
+ const [tags, pitr, ttl, resourcePolicy, kinesis, contributorInsights] = await Promise.all([
11764
+ tableArn ? this.readTableTags(tableArn) : Promise.resolve(void 0),
11765
+ this.readPointInTimeRecovery(physicalId),
11766
+ this.readTimeToLive(physicalId),
11767
+ tableArn ? this.readTableResourcePolicy(physicalId, tableArn) : Promise.resolve(void 0),
11768
+ this.readKinesisStreamSpecification(physicalId),
11769
+ this.readTableContributorInsights(physicalId),
11770
+ this.readIndexContributorInsights(physicalId, result, properties, bagInformative),
11771
+ streamMembersRead
11772
+ ]);
11773
+ if (tags === RESOURCE_NOT_FOUND) return RESOURCE_NOT_FOUND;
11774
+ if (tags !== void 0) result["Tags"] = tags;
11775
+ if (pitr !== void 0) result["PointInTimeRecoverySpecification"] = pitr;
11776
+ if (ttl !== void 0) result["TimeToLiveSpecification"] = ttl;
11777
+ if (resourcePolicy !== void 0) result["ResourcePolicy"] = resourcePolicy;
11778
+ if (kinesis !== void 0) result["KinesisStreamSpecification"] = kinesis;
11779
+ if (contributorInsights !== void 0) result["ContributorInsightsSpecification"] = contributorInsights;
11743
11780
  return result;
11744
11781
  } catch (err) {
11745
11782
  if (err instanceof ResourceNotFoundException$1) return RESOURCE_NOT_FOUND;
11746
11783
  throw err;
11747
11784
  }
11748
11785
  }
11786
+ async readTableTags(tableArn) {
11787
+ try {
11788
+ const tagsResp = await this.dynamoDBClient.send(new ListTagsOfResourceCommand({ ResourceArn: tableArn }));
11789
+ return normalizeAwsTagsToCfn(tagsResp.Tags);
11790
+ } catch (err) {
11791
+ if (err instanceof ResourceNotFoundException$1) return RESOURCE_NOT_FOUND;
11792
+ throw err;
11793
+ }
11794
+ }
11795
+ async readPointInTimeRecovery(physicalId) {
11796
+ try {
11797
+ const pitrDesc = (await this.dynamoDBClient.send(new DescribeContinuousBackupsCommand({ TableName: physicalId }))).ContinuousBackupsDescription?.PointInTimeRecoveryDescription;
11798
+ const pitrStatus = pitrDesc?.PointInTimeRecoveryStatus;
11799
+ if (!pitrStatus) return void 0;
11800
+ const pitr = { PointInTimeRecoveryEnabled: pitrStatus === "ENABLED" };
11801
+ if (pitrStatus === "ENABLED" && pitrDesc?.RecoveryPeriodInDays !== void 0) pitr["RecoveryPeriodInDays"] = pitrDesc.RecoveryPeriodInDays;
11802
+ return pitr;
11803
+ } catch (err) {
11804
+ this.logger.debug(`Could not read PointInTimeRecovery for ${physicalId}: ${describeAwsFailure(err).detail}`);
11805
+ return;
11806
+ }
11807
+ }
11808
+ async readTimeToLive(physicalId) {
11809
+ try {
11810
+ const ttlDesc = (await this.dynamoDBClient.send(new DescribeTimeToLiveCommand({ TableName: physicalId }))).TimeToLiveDescription;
11811
+ if (ttlDesc?.TimeToLiveStatus === "ENABLED" && ttlDesc.AttributeName) return {
11812
+ AttributeName: ttlDesc.AttributeName,
11813
+ Enabled: true
11814
+ };
11815
+ return;
11816
+ } catch (err) {
11817
+ this.logger.debug(`Could not read TimeToLive for ${physicalId}: ${describeAwsFailure(err).detail}`);
11818
+ return;
11819
+ }
11820
+ }
11821
+ async readTableResourcePolicy(physicalId, tableArn) {
11822
+ try {
11823
+ const rpResp = await this.dynamoDBClient.send(new GetResourcePolicyCommand({ ResourceArn: tableArn }));
11824
+ if (!rpResp.Policy) return void 0;
11825
+ let doc = rpResp.Policy;
11826
+ try {
11827
+ doc = JSON.parse(rpResp.Policy);
11828
+ } catch {}
11829
+ return { PolicyDocument: doc };
11830
+ } catch (err) {
11831
+ if (!(err instanceof ResourceNotFoundException$1)) this.logger.debug(`Could not read ResourcePolicy for ${physicalId}: ${describeAwsFailure(err).detail}`);
11832
+ return;
11833
+ }
11834
+ }
11835
+ async readKinesisStreamSpecification(physicalId) {
11836
+ try {
11837
+ const active = ((await this.dynamoDBClient.send(new DescribeKinesisStreamingDestinationCommand({ TableName: physicalId }))).KinesisDataStreamDestinations ?? []).find((d) => d.DestinationStatus === "ACTIVE" || d.DestinationStatus === "ENABLING");
11838
+ if (!active?.StreamArn) return void 0;
11839
+ const kspec = { StreamArn: active.StreamArn };
11840
+ if (active.ApproximateCreationDateTimePrecision !== void 0) kspec["ApproximateCreationDateTimePrecision"] = active.ApproximateCreationDateTimePrecision;
11841
+ return kspec;
11842
+ } catch (err) {
11843
+ this.logger.debug(`Could not read KinesisStreamingDestination for ${physicalId}: ${describeAwsFailure(err).detail}`);
11844
+ return;
11845
+ }
11846
+ }
11847
+ async readTableContributorInsights(physicalId) {
11848
+ try {
11849
+ const ciResp = await this.dynamoDBClient.send(new DescribeContributorInsightsCommand({ TableName: physicalId }));
11850
+ return reverseMapTableContributorInsights(ciResp.ContributorInsightsStatus, ciResp.ContributorInsightsMode);
11851
+ } catch (err) {
11852
+ this.logger.debug(`Could not read ContributorInsights for ${physicalId}: ${describeAwsFailure(err).detail}`);
11853
+ return;
11854
+ }
11855
+ }
11856
+ async readIndexContributorInsights(physicalId, result, properties, bagInformative) {
11857
+ const emittedGsis = result["GlobalSecondaryIndexes"];
11858
+ if (!bagInformative || !Array.isArray(emittedGsis)) return;
11859
+ const desiredByName = desiredIndexEntriesByName(properties?.["GlobalSecondaryIndexes"]);
11860
+ for (const emitted of emittedGsis) {
11861
+ const indexName = emitted["IndexName"];
11862
+ if (typeof indexName !== "string") continue;
11863
+ const desiredEntry = desiredByName.get(indexName);
11864
+ if (!indexDeclaresContributorInsights(desiredEntry)) continue;
11865
+ try {
11866
+ const indexResp = await this.dynamoDBClient.send(new DescribeContributorInsightsCommand({
11867
+ TableName: physicalId,
11868
+ IndexName: indexName
11869
+ }));
11870
+ const block = reverseMapIndexContributorInsights(indexResp.ContributorInsightsStatus, indexResp.ContributorInsightsMode, desiredEntry?.[CONTRIBUTOR_INSIGHTS_KEY]);
11871
+ if (block !== void 0) emitted[CONTRIBUTOR_INSIGHTS_KEY] = block;
11872
+ } catch (err) {
11873
+ this.logger.debug(`Could not read ContributorInsights for index ${indexName} of ${physicalId}: ${describeAwsFailure(err).detail}`);
11874
+ }
11875
+ }
11876
+ }
11749
11877
  streamMemberRereadDelaysMs = [
11750
11878
  500,
11751
11879
  1e3,
@@ -44348,6 +44476,15 @@ var NestedStackProvider = class {
44348
44476
  if (!childStateData) throw markNonRetryable(/* @__PURE__ */ new Error(`Child stack state ${displayStackName(childStackName)} not found after deploy — NestedStackProvider invariant violated.`));
44349
44477
  refuseMalformedNestedChildOutputs(childStateData.state, childStackName, childRegion, runAccountOf(ctx));
44350
44478
  const attributes = this.buildOutputsAttributes(childStateData.state.outputs ?? {});
44479
+ const rowSecrets = getCurrentResourceSecrets();
44480
+ if (rowSecrets !== void 0) {
44481
+ const childResources = childStateData.state.resources;
44482
+ const ids = childResources !== null && typeof childResources === "object" ? Object.values(childResources).map((record) => record?.physicalId).filter((id) => typeof id === "string" && id !== "") : [];
44483
+ for (const value of Object.values(attributes)) {
44484
+ if (typeof value !== "string") continue;
44485
+ for (const id of ids) if (value.includes(id)) recordAttributeIdCopy(rowSecrets, id);
44486
+ }
44487
+ }
44351
44488
  const noEchoAttributeNames = [];
44352
44489
  const identity = credentialFingerprint(ambientCredentialConfig());
44353
44490
  for (const [outputKey, persisted] of Object.entries(childStateData.state.outputs ?? {})) {
@@ -44831,4 +44968,4 @@ var ACMCertificateProvider = class {
44831
44968
 
44832
44969
  //#endregion
44833
44970
  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 };
44834
- //# sourceMappingURL=provider-classes-CuZ-P4gB.js.map
44971
+ //# sourceMappingURL=provider-classes-BTP4rLU6.js.map