@go-to-k/cdkd 0.298.2 → 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.
- package/dist/{asg-provider-Ds5ElkGf.js → asg-provider-CvJsMScM.js} +2 -2
- package/dist/{asg-provider-Ds5ElkGf.js.map → asg-provider-CvJsMScM.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-BgWY0v3K.js → deploy-engine-DLGCuN4i.js} +52 -8
- package/dist/deploy-engine-DLGCuN4i.js.map +1 -0
- package/dist/{iam-role-provider-KCSxfQZh.js → iam-role-provider-B020NDGS.js} +2 -2
- package/dist/{iam-role-provider-KCSxfQZh.js.map → iam-role-provider-B020NDGS.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-BGAmbyRB.js → neptune-provider-DDFjTv9k.js} +2 -2
- package/dist/{neptune-provider-BGAmbyRB.js.map → neptune-provider-DDFjTv9k.js.map} +1 -1
- package/dist/{program-BzEA5Cka.js → program-BQnReLnG.js} +56 -41
- package/dist/program-BQnReLnG.js.map +1 -0
- package/dist/{provider-classes-B74Nt7nS.js → provider-classes-BTP4rLU6.js} +117 -14
- package/dist/provider-classes-BTP4rLU6.js.map +1 -0
- package/dist/{rds-provider-D4kq6O-L.js → rds-provider-DcfF-k86.js} +2 -2
- package/dist/{rds-provider-D4kq6O-L.js.map → rds-provider-DcfF-k86.js.map} +1 -1
- package/dist/{version-CUIlKSi1.js → version-CWATUXWX.js} +2 -2
- package/dist/{version-CUIlKSi1.js.map → version-CWATUXWX.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-BgWY0v3K.js.map +0 -1
- package/dist/program-BzEA5Cka.js.map +0 -1
- package/dist/provider-classes-B74Nt7nS.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
|
|
6
|
-
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-
|
|
7
|
-
import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-
|
|
8
|
-
import { RDSProvider } from "./rds-provider-
|
|
9
|
-
import { NeptuneProvider } from "./neptune-provider-
|
|
10
|
-
import { ASGProvider } from "./asg-provider-
|
|
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
|
-
|
|
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,
|
|
@@ -44382,6 +44476,15 @@ var NestedStackProvider = class {
|
|
|
44382
44476
|
if (!childStateData) throw markNonRetryable(/* @__PURE__ */ new Error(`Child stack state ${displayStackName(childStackName)} not found after deploy — NestedStackProvider invariant violated.`));
|
|
44383
44477
|
refuseMalformedNestedChildOutputs(childStateData.state, childStackName, childRegion, runAccountOf(ctx));
|
|
44384
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
|
+
}
|
|
44385
44488
|
const noEchoAttributeNames = [];
|
|
44386
44489
|
const identity = credentialFingerprint(ambientCredentialConfig());
|
|
44387
44490
|
for (const [outputKey, persisted] of Object.entries(childStateData.state.outputs ?? {})) {
|
|
@@ -44865,4 +44968,4 @@ var ACMCertificateProvider = class {
|
|
|
44865
44968
|
|
|
44866
44969
|
//#endregion
|
|
44867
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 };
|
|
44868
|
-
//# sourceMappingURL=provider-classes-
|
|
44971
|
+
//# sourceMappingURL=provider-classes-BTP4rLU6.js.map
|