@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.
- package/dist/{asg-provider-semUK44T.js → asg-provider-CvJsMScM.js} +2 -2
- package/dist/{asg-provider-semUK44T.js.map → asg-provider-CvJsMScM.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-A-Ys_mhE.js → deploy-engine-DLGCuN4i.js} +131 -12
- package/dist/deploy-engine-DLGCuN4i.js.map +1 -0
- package/dist/{iam-role-provider-CpqTal4K.js → iam-role-provider-B020NDGS.js} +2 -2
- package/dist/{iam-role-provider-CpqTal4K.js.map → iam-role-provider-B020NDGS.js.map} +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-C4A86Y7P.js → neptune-provider-DDFjTv9k.js} +2 -2
- package/dist/{neptune-provider-C4A86Y7P.js.map → neptune-provider-DDFjTv9k.js.map} +1 -1
- package/dist/{program-D5gcmWad.js → program-BQnReLnG.js} +105 -51
- package/dist/program-BQnReLnG.js.map +1 -0
- package/dist/{provider-classes-CuZ-P4gB.js → provider-classes-BTP4rLU6.js} +228 -91
- package/dist/provider-classes-BTP4rLU6.js.map +1 -0
- package/dist/{rds-provider-X4mc-nGw.js → rds-provider-DcfF-k86.js} +2 -2
- package/dist/{rds-provider-X4mc-nGw.js.map → rds-provider-DcfF-k86.js.map} +1 -1
- package/dist/{version-CItAaDXu.js → version-CWATUXWX.js} +2 -2
- package/dist/{version-CItAaDXu.js.map → version-CWATUXWX.js.map} +1 -1
- package/package.json +2 -2
- package/dist/deploy-engine-A-Ys_mhE.js.map +0 -1
- package/dist/program-D5gcmWad.js.map +0 -1
- 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
|
|
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,
|
|
@@ -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
|
-
|
|
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
|
-
|
|
11668
|
-
|
|
11669
|
-
|
|
11670
|
-
|
|
11671
|
-
|
|
11672
|
-
|
|
11673
|
-
|
|
11674
|
-
|
|
11675
|
-
|
|
11676
|
-
|
|
11677
|
-
|
|
11678
|
-
|
|
11679
|
-
|
|
11680
|
-
|
|
11681
|
-
|
|
11682
|
-
|
|
11683
|
-
|
|
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-
|
|
44971
|
+
//# sourceMappingURL=provider-classes-BTP4rLU6.js.map
|