@go-to-k/cdkd 0.301.4 → 0.301.5
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--GY-B-zI.js → asg-provider-DHB498Xq.js} +2 -2
- package/dist/{asg-provider--GY-B-zI.js.map → asg-provider-DHB498Xq.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-BIPU9Xdh.js → deploy-engine-HAvm8vSI.js} +16111 -16173
- package/dist/deploy-engine-HAvm8vSI.js.map +1 -0
- package/dist/{iam-role-provider-C58oW5zG.js → iam-role-provider-CTpDWSUG.js} +2 -2
- package/dist/{iam-role-provider-C58oW5zG.js.map → iam-role-provider-CTpDWSUG.js.map} +1 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-DoKgbZCz.js → neptune-provider-CXhoiT-P.js} +2 -2
- package/dist/{neptune-provider-DoKgbZCz.js.map → neptune-provider-CXhoiT-P.js.map} +1 -1
- package/dist/{program-DYfZCsxM.js → program-DmPDfDhE.js} +48 -48
- package/dist/program-DmPDfDhE.js.map +1 -0
- package/dist/{provider-classes-BSUoljqw.js → provider-classes-DPwEHVDJ.js} +131 -84
- package/dist/{provider-classes-BSUoljqw.js.map → provider-classes-DPwEHVDJ.js.map} +1 -1
- package/dist/{rds-provider-DI_O0_iG.js → rds-provider-CxB94DZy.js} +2 -2
- package/dist/{rds-provider-DI_O0_iG.js.map → rds-provider-CxB94DZy.js.map} +1 -1
- package/dist/{version-Bft5jrTk.js → version-2jeKJQlt.js} +2 -2
- package/dist/{version-Bft5jrTk.js.map → version-2jeKJQlt.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-BIPU9Xdh.js.map +0 -1
- package/dist/program-DYfZCsxM.js.map +0 -1
|
@@ -2,12 +2,12 @@ import { r as getAwsClients } from "./aws-clients-B_CEQGE1.js";
|
|
|
2
2
|
import { B as safeMsg, F as displaySafe, I as displayStackName, L as isPasteableIdent, O as SECRET_REF_MAX_CODE_POINTS, P as displayIdent, a as getLogger, b as generateResourceNameWithFallback, n as isAwsAuthoredFailure, r as safeStringify, t as describeAwsFailure, y as generateResourceName, z as plainIdentOr } from "./aws-failure-text-BEQfs6za.js";
|
|
3
3
|
import { $ as protectedReplacementAdvice, $n as explicitDenyPolicyKind, $t as ambientCredentialConfig, A as isQuotableImportValue, B as isTerminalDeleteFailure, C as setBounded, D as VALUE_NOT_SHOWN, E as assertRegionMatch, F as resolveExplicitPhysicalId, Fn as isInertUnquoted, H as observeThenDisableProtection, Hn as withheldTargetClause, In as pasteableCommand, Kt as injectiveKey, L as ProtectionFlipRegistry, M as quotedRemedyLogicalId, Mt as markCreatedBeforeFailure, N as refusalTypeShown, Nn as commandHole, Nt as markSupersedesEarlierCreate, O as isPlainImportJson, P as remedyLogicalId, Pn as hasClauseBreak, Q as pasteableAwsCommand, Qn as markReplayMayCollide, Qt as ambientClientDefaults, Rn as plainOrDescribed, S as replayedSendWindow, St as withDerivedNameMasks, T as RESOURCE_NOT_FOUND, Tt as clearCreatedBeforeFailure, U as protectionFlipKey, V as logGroupProtectionSite, Vn as shellQuote, W as rdsFamilyProtectionSite, X as WITHHELD_AWS_COMMAND, Y as UNNAMEABLE_ID_CLAUSE, Z as isAwsCliLiteral, Zn as markNameCollision, Zt as withPasteableAwsProfile, _ as RecentIdSet, _t as createMaskedLogSinks, a as onlySecretDerived, ar as isRetryableTransientError, at as startInterruptWatch, b as isInsideWindow, bn as ResourceUpdateNotSupportedError, bt as maskDeep, c as recordedPrincipalsRepair, cr as THROTTLING_ERROR_NAMES, ct as canonicalizeRoute53QueryName, dr as markNonRetryable, dt as compositeIdSkipResult, en as clientDefaultsFor, et as renderDisableCommand, fr as markRedactedCause, ft as logicalIdShown, g as AmbiguousCreateLatch, gt as stateOrphanRecordRemedy, h as AMBIGUOUS_LATCH_TTL_MS, ht as segmentAfterAnchor, i as holdsSecretDerivedEntry, in as CdkdError, it as isInterruptedWaitError, j as normalizeAwsTagsToCfn, jt as markAuxiliaryFailure, k as isPlainImportValue, lr as isMarkedNonRetryable, lt as compositeIdFormatMessage, nn as AccountIdUnavailableError, nr as isAmbiguousOutcomeError, o as readPrincipalLists, or as isTransientServerError, ot as ElapsedBudgetRegistry, p as withRemovalDefaults, pr as wrapMaskedAwsError, pt as packCompositeId, q as userPoolProtectionSite, qt as injectiveKeyPrefix, r as SECRET_DERIVED_READ_LIVE, rr as isExplicitDenyError, tn as credentialFingerprint, u as clearOnUpdateRemoval, ur as isThrottlingError, ut as compositeIdSeparatorRefusal, v as ambiguousAttemptLead, vn as ProvisioningError, vt as createMaskedRetryLogger, w as withoutServerErrorRetries, x as replayFollowedAmbiguousAttempt, xt as maskerOrIdentity, y as createAttemptKey, yt as isSecretDerivedValue, z as deleteWithProtectionCompensation } from "./iam-policy-targets-BkeM7IXi.js";
|
|
4
4
|
import { s as ambientRegion } from "./aws-client-defaults-DBXBcg0J.js";
|
|
5
|
-
import { $ as
|
|
6
|
-
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-
|
|
7
|
-
import { a as resolveSecretDerivedPrincipals, i as isResolvableSecretPrincipalList, n as runDestroyForStack, o as canonicalizeIpProtocolValue, r as holdsUnprovenSecretPrincipalToken, s as resolvedResourceTimeoutMs, t as canonicalizeIpv4Cidr } from "./program-
|
|
8
|
-
import { RDSProvider } from "./rds-provider-
|
|
9
|
-
import { NeptuneProvider } from "./neptune-provider-
|
|
10
|
-
import { ASGProvider } from "./asg-provider
|
|
5
|
+
import { $i as accountArgs, Ao as replayWarn, Bo as sameLambdaFunctionAddress, C as getPriorAttempts, Cn as awaitInFlightSibling, Co as toFiniteNumber, Dc as rewriteTemplateAssetReferences, Dn as replacedDeleteFailureVerdict, Do as configIntegerRefusal, Dr as waitForLambdaFunctionActive, Dt as withApiLimit, Eo as configBooleanRefusal, Es as dynamicReferenceTokens, Et as lookupEachName, F as listNestedTemplateRows, Gl as renderAssemblyPathEscape, Gr as isWaitAbandonedError, I as renderNestedTemplateTreeDefect, Ja as refuseMalformedResourcesForDestroy, Jr as ec2InstanceProtectionSite, Jt as redactedDeleteAddressFields, Ki as passedParameterClassesOf, Kl as resolveAssemblyPath, Kn as secretNamedAttributeNamesOf, Kr as markWaitAbandoned, Kt as REDACTED_DELETE_ADDRESS_SKIP_REASON, Lo as withRetry, Lr as slowCcOperationTimeoutMs, Ls as carriesSecretMask, Ml as canonicalizeRegion, Mo as requireConfigObject, Ms as recoverMaskedOutput, N as findNestedTemplateTreeDefect, Ni as getAccountInfo, Nl as derivePartitionAndUrlSuffix, No as requireConfigString, Ns as physicalNameCopiesOf, Oa as refuseMalformedNestedChildOutputs, Oo as configStringRefusal, P as isAbsoluteAssetPath, Ps as recordAttributeIdCopy, Qo as passedNoEchoParametersOf, Qr as reEnableInstanceApiTermination, Ro as canonicalLambdaFunctionName, Rr as unchangedBehindSecretReference, S as isTruthyCfnBoolean, Sc as stringifyValue, So as toCfnInteger, Tn as getStackRecords, To as coerceCfnInteger, Tt as isAccessDeniedError, Ui as parseWebACLArn, Ul as describeFileReadFailure, Ur as deleteSkipReason, Wl as displayAssemblyPath, Wr as withIndeterminateGuard, Wt as getCurrentProducerRegions, Xr as observeThenDisableInstanceApiTermination, Yr as isTerminationProtectionPropagationError, Yt as redactedDeleteAddressSkip, Zr as reDisableInstanceApiTermination, _ as deleteTableWithIndexBusyRetry, _r as refuseMalformedDesiredTags, ai as s3BucketDomainName, b as S3_AUTO_DELETE_OBJECTS_TAG, bo as coerceWarmThroughput$1, br as definedAttributes, bs as snapshotPassProvenance, c as DynamoDBGlobalTableProvider, ci as s3BucketWebsiteUrl, co as findSilentDropProperties, cr as reserveStackCreateToken, d as compensateRemovedDeletionProtection, dr as isRefusedByName, f as deleteBudgetKey, fr as markDeleteStarted, g as INDEX_SETTLE_POLL_INTERVAL_MS, gr as readTagList, h as DELETE_INDEX_WAIT_PROCEED_NOTE, hr as planTagDiff, ii as s3BucketArn, jo as requireConfigArray, jr as getCurrentResourceSecrets, kl as decodeListingKey, ko as readConfigString, l as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, lt as revertNestedChildFromJournal, m as resolveDynamoDbDeleteBudgetMs, mr as DBPROXY_TAG_OPTIONS, mt as withNestedStackContext, oi as s3BucketDualStackDomainName, oo as withheldAccountClause, or as earliestDefined, os as hasMaskableValues, ot as getNestedRevertRun, p as resolveDynamoDbDeleteBudgetClock, pi as outputReferenceProvenanceOf, pr as DBPROXY_TAGS_WHAT, pt as getCurrentNestedStackContext, qt as isRedactedRecordedValue, ri as isSettledInstanceState, si as s3BucketRegionalDomainName, t as DeployEngine, u as beginDeleteWait, uo as withoutSilentDropProperties, ur as acquireIdempotencyToken, v as waitForIndexesSettled, vr as tagMapAsList, vs as markSameGenerationBag, w as markRefusedBeforeApplying, wo as coerceCfnBoolean, ws as withoutPhysicalNameCopies, wt as chunks, x as hasCdkAutoDeleteTag, xo as isWarmThroughputDecrease, xr as stringifyIfAssigned, xs as redactSecretsForState, y as ECR_AUTO_DELETE_IMAGES_TAG, yo as WARM_THROUGHPUT_MEMBERS, yr as tagPlanWarning, ys as recordReferenceProvenanceEntry, zo as lambdaFunctionNameForMask } from "./deploy-engine-HAvm8vSI.js";
|
|
6
|
+
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider-CTpDWSUG.js";
|
|
7
|
+
import { a as resolveSecretDerivedPrincipals, i as isResolvableSecretPrincipalList, n as runDestroyForStack, o as canonicalizeIpProtocolValue, r as holdsUnprovenSecretPrincipalToken, s as resolvedResourceTimeoutMs, t as canonicalizeIpv4Cidr } from "./program-DmPDfDhE.js";
|
|
8
|
+
import { RDSProvider } from "./rds-provider-CxB94DZy.js";
|
|
9
|
+
import { NeptuneProvider } from "./neptune-provider-CXhoiT-P.js";
|
|
10
|
+
import { ASGProvider } from "./asg-provider-DHB498Xq.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";
|
|
@@ -25254,35 +25254,9 @@ function targetsSecretCause(read) {
|
|
|
25254
25254
|
return read.kind === "malformed" && read.onlySecret ? " (an Id holds a dynamic reference or its mask, which names no target Elastic Load Balancing accepts)" : "";
|
|
25255
25255
|
}
|
|
25256
25256
|
const TARGETS_WHAT = "targets, each with a string Id and, where given, an integer Port and a string AvailabilityZone";
|
|
25257
|
-
const
|
|
25258
|
-
|
|
25259
|
-
|
|
25260
|
-
"stickiness.enabled": "false",
|
|
25261
|
-
"stickiness.lb_cookie.duration_seconds": "86400",
|
|
25262
|
-
"stickiness.app_cookie.duration_seconds": "86400",
|
|
25263
|
-
"load_balancing.algorithm.type": "round_robin",
|
|
25264
|
-
"load_balancing.algorithm.anomaly_mitigation": "off",
|
|
25265
|
-
"load_balancing.cross_zone.enabled": "use_load_balancer_configuration",
|
|
25266
|
-
"slow_start.duration_seconds": "0",
|
|
25267
|
-
"lambda.multi_value_headers.enabled": "false",
|
|
25268
|
-
"proxy_protocol_v2.enabled": "false"
|
|
25269
|
-
};
|
|
25270
|
-
const LOAD_BALANCER_ATTRIBUTE_DEFAULTS = {
|
|
25271
|
-
"deletion_protection.enabled": "false",
|
|
25272
|
-
"access_logs.s3.enabled": "false",
|
|
25273
|
-
"connection_logs.s3.enabled": "false",
|
|
25274
|
-
"health_check_logs.s3.enabled": "false",
|
|
25275
|
-
"routing.http.desync_mitigation_mode": "defensive",
|
|
25276
|
-
"routing.http.drop_invalid_header_fields.enabled": "false",
|
|
25277
|
-
"routing.http.preserve_host_header.enabled": "false",
|
|
25278
|
-
"routing.http.x_amzn_tls_version_and_cipher_suite.enabled": "false",
|
|
25279
|
-
"routing.http.xff_client_port.enabled": "false",
|
|
25280
|
-
"routing.http.xff_header_processing.mode": "append",
|
|
25281
|
-
"routing.http2.enabled": "true",
|
|
25282
|
-
"waf.fail_open.enabled": "false",
|
|
25283
|
-
"zonal_shift.config.enabled": "false"
|
|
25284
|
-
};
|
|
25285
|
-
const LISTENER_ATTRIBUTE_DEFAULTS = { "routing.http.response.server.enabled": "true" };
|
|
25257
|
+
const RETAIN_REMOVED_ATTRIBUTE = () => void 0;
|
|
25258
|
+
const LOG_DELIVERY_ATTRIBUTE = /^[a-z_]+_logs\.s3\./;
|
|
25259
|
+
const MISLEADING_IF_KEPT_ATTRIBUTE = /^routing\.http\.(response\.access_control_|request\.[a-z0-9_]+\.header_name$)/;
|
|
25286
25260
|
function loadBalancerAttributes(lb, lbArn) {
|
|
25287
25261
|
return definedAttributes({
|
|
25288
25262
|
DNSName: lb.DNSName,
|
|
@@ -25413,13 +25387,53 @@ var ELBv2Provider = class {
|
|
|
25413
25387
|
"Tags"
|
|
25414
25388
|
])]
|
|
25415
25389
|
]);
|
|
25416
|
-
removalHandledInUpdate = /* @__PURE__ */ new Map([
|
|
25417
|
-
"
|
|
25418
|
-
|
|
25419
|
-
|
|
25420
|
-
|
|
25421
|
-
|
|
25422
|
-
|
|
25390
|
+
removalHandledInUpdate = /* @__PURE__ */ new Map([
|
|
25391
|
+
["AWS::ElasticLoadBalancingV2::LoadBalancer", /* @__PURE__ */ new Set([
|
|
25392
|
+
"Name",
|
|
25393
|
+
"Scheme",
|
|
25394
|
+
"Type",
|
|
25395
|
+
"Subnets",
|
|
25396
|
+
"SubnetMappings",
|
|
25397
|
+
"SecurityGroups",
|
|
25398
|
+
"Tags",
|
|
25399
|
+
"IpAddressType",
|
|
25400
|
+
"Ipv4IpamPoolId",
|
|
25401
|
+
"MinimumLoadBalancerCapacity",
|
|
25402
|
+
"EnableCapacityReservationProvisionStabilize",
|
|
25403
|
+
"LoadBalancerAttributes",
|
|
25404
|
+
"EnablePrefixForIpv6SourceNat",
|
|
25405
|
+
"EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic"
|
|
25406
|
+
])],
|
|
25407
|
+
["AWS::ElasticLoadBalancingV2::TargetGroup", /* @__PURE__ */ new Set([
|
|
25408
|
+
"Protocol",
|
|
25409
|
+
"Port",
|
|
25410
|
+
"VpcId",
|
|
25411
|
+
"TargetType",
|
|
25412
|
+
"ProtocolVersion",
|
|
25413
|
+
"Name",
|
|
25414
|
+
"IpAddressType",
|
|
25415
|
+
"TargetControlPort",
|
|
25416
|
+
"HealthCheckPort",
|
|
25417
|
+
"Targets",
|
|
25418
|
+
"Tags",
|
|
25419
|
+
"HealthCheckProtocol",
|
|
25420
|
+
"HealthCheckPath",
|
|
25421
|
+
"HealthCheckEnabled",
|
|
25422
|
+
"HealthCheckIntervalSeconds",
|
|
25423
|
+
"HealthCheckTimeoutSeconds",
|
|
25424
|
+
"HealthyThresholdCount",
|
|
25425
|
+
"UnhealthyThresholdCount",
|
|
25426
|
+
"Matcher",
|
|
25427
|
+
"TargetGroupAttributes"
|
|
25428
|
+
])],
|
|
25429
|
+
["AWS::ElasticLoadBalancingV2::Listener", /* @__PURE__ */ new Set([
|
|
25430
|
+
"LoadBalancerArn",
|
|
25431
|
+
"DefaultActions",
|
|
25432
|
+
"ListenerAttributes",
|
|
25433
|
+
"Tags",
|
|
25434
|
+
...LISTENER_LEFT_IN_PLACE_ON_REMOVAL
|
|
25435
|
+
])]
|
|
25436
|
+
]);
|
|
25423
25437
|
lambdaClients = /* @__PURE__ */ new Map();
|
|
25424
25438
|
getClient() {
|
|
25425
25439
|
if (!this.elbv2Client) this.elbv2Client = new ElasticLoadBalancingV2Client({
|
|
@@ -25681,7 +25695,11 @@ var ELBv2Provider = class {
|
|
|
25681
25695
|
}) : "For Name / Type / Scheme re-deploy with cdkd deploy --replace, or destroy + redeploy the stack.";
|
|
25682
25696
|
throw new ResourceUpdateNotSupportedError("AWS::ElasticLoadBalancingV2::LoadBalancer", logicalId, "ELBv2 LoadBalancer Name / Type / Scheme are immutable on AWS — none of the ELBv2 Modify* / Set* APIs accept these fields; they are fixed at creation. cdkd handles LoadBalancerAttributes / Subnets / SubnetMappings / SecurityGroups / IpAddressType / Tags in-place. " + remedy);
|
|
25683
25697
|
}
|
|
25684
|
-
const
|
|
25698
|
+
const removedLogKeys = [];
|
|
25699
|
+
const submittedAttrs = this.diffAttributeBag("LoadBalancerAttributes", logicalId, properties["LoadBalancerAttributes"], previousProperties["LoadBalancerAttributes"], (key) => {
|
|
25700
|
+
if (LOG_DELIVERY_ATTRIBUTE.test(key)) removedLogKeys.push(key);
|
|
25701
|
+
return RETAIN_REMOVED_ATTRIBUTE();
|
|
25702
|
+
}, fromReadback, maskSecrets);
|
|
25685
25703
|
if (submittedAttrs.length > 0) {
|
|
25686
25704
|
await this.getClient().send(new ModifyLoadBalancerAttributesCommand({
|
|
25687
25705
|
LoadBalancerArn: physicalId,
|
|
@@ -25689,6 +25707,14 @@ var ELBv2Provider = class {
|
|
|
25689
25707
|
}));
|
|
25690
25708
|
this.logger.debug(`Applied ${submittedAttrs.length} LoadBalancerAttributes change(s) for ${logicalId}`);
|
|
25691
25709
|
}
|
|
25710
|
+
const desiredAttrs = new Map(this.normalizeAttributes(properties["LoadBalancerAttributes"]).map((a) => [a.Key, a.Value]));
|
|
25711
|
+
const exposedLogKeys = removedLogKeys.filter((key) => desiredAttrs.get(`${key.split(".")[0]}.s3.enabled`) !== "false");
|
|
25712
|
+
if (exposedLogKeys.length > 0) {
|
|
25713
|
+
const mask = maskerOrIdentity(maskSecrets);
|
|
25714
|
+
const keys = exposedLogKeys.map((key) => mask(key)).join(", ");
|
|
25715
|
+
const one = exposedLogKeys.length === 1;
|
|
25716
|
+
this.logger.warn(safeMsg`${logicalId}: LoadBalancerAttributes ${one ? "key" : "keys"} ${keys} ${one ? "is" : "are"} no longer declared and ${one ? "keeps its live value" : "keep their live values"}, as CloudFormation leaves ${one ? "it" : "them"}, so the load balancer may keep delivering logs to the bucket it names. To stop it, declare the matching '<kind>_logs.s3.enabled' key as 'false' and deploy.`);
|
|
25717
|
+
}
|
|
25692
25718
|
const newSubnets = properties["Subnets"];
|
|
25693
25719
|
const oldSubnets = previousProperties["Subnets"];
|
|
25694
25720
|
const newMappings = properties["SubnetMappings"];
|
|
@@ -25718,7 +25744,7 @@ var ELBv2Provider = class {
|
|
|
25718
25744
|
}));
|
|
25719
25745
|
this.logger.debug(`Updated SecurityGroups for ${logicalId}`);
|
|
25720
25746
|
}
|
|
25721
|
-
const newIpType = properties["IpAddressType"];
|
|
25747
|
+
const newIpType = fromReadback ? properties["IpAddressType"] : clearOnUpdateRemoval(properties["IpAddressType"], previousProperties["IpAddressType"], "ipv4");
|
|
25722
25748
|
const oldIpType = previousProperties["IpAddressType"];
|
|
25723
25749
|
if (newIpType !== void 0 && newIpType !== oldIpType) {
|
|
25724
25750
|
await this.getClient().send(new SetIpAddressTypeCommand({
|
|
@@ -25928,7 +25954,7 @@ var ELBv2Provider = class {
|
|
|
25928
25954
|
try {
|
|
25929
25955
|
const rawMatcher = properties["Matcher"];
|
|
25930
25956
|
const matcher = rawMatcher && (rawMatcher.HttpCode !== void 0 || rawMatcher.GrpcCode !== void 0) ? rawMatcher : void 0;
|
|
25931
|
-
const healthCheckPort =
|
|
25957
|
+
const healthCheckPort = clearOnUpdateRemoval(properties["HealthCheckPort"], previousProperties["HealthCheckPort"], "traffic-port");
|
|
25932
25958
|
await this.getClient().send(new ModifyTargetGroupCommand({
|
|
25933
25959
|
TargetGroupArn: physicalId,
|
|
25934
25960
|
HealthCheckProtocol: properties["HealthCheckProtocol"],
|
|
@@ -25941,14 +25967,7 @@ var ELBv2Provider = class {
|
|
|
25941
25967
|
UnhealthyThresholdCount: properties["UnhealthyThresholdCount"] !== void 0 ? Number(properties["UnhealthyThresholdCount"]) : void 0,
|
|
25942
25968
|
...matcher && { Matcher: matcher }
|
|
25943
25969
|
}));
|
|
25944
|
-
const tgAttrDiff = this.diffAttributeBag("TargetGroupAttributes", logicalId, properties["TargetGroupAttributes"], previousProperties["TargetGroupAttributes"],
|
|
25945
|
-
const fallback = Object.hasOwn(TARGET_GROUP_ATTRIBUTE_DEFAULTS, key) ? TARGET_GROUP_ATTRIBUTE_DEFAULTS[key] : void 0;
|
|
25946
|
-
if (fallback === void 0) {
|
|
25947
|
-
this.logger.warn(`TargetGroup attribute ${maskerOrIdentity(maskSecrets)(key)} was removed from the template but has no documented default cdkd can reset it to — the live value is retained. Set the attribute explicitly to change it.`);
|
|
25948
|
-
return;
|
|
25949
|
-
}
|
|
25950
|
-
return currentValue === fallback ? void 0 : fallback;
|
|
25951
|
-
}, fromReadback, maskSecrets);
|
|
25970
|
+
const tgAttrDiff = this.diffAttributeBag("TargetGroupAttributes", logicalId, properties["TargetGroupAttributes"], previousProperties["TargetGroupAttributes"], RETAIN_REMOVED_ATTRIBUTE, fromReadback, maskSecrets);
|
|
25952
25971
|
if (tgAttrDiff.length > 0) {
|
|
25953
25972
|
await this.getClient().send(new ModifyTargetGroupAttributesCommand({
|
|
25954
25973
|
TargetGroupArn: physicalId,
|
|
@@ -26115,7 +26134,11 @@ var ELBv2Provider = class {
|
|
|
26115
26134
|
...alpnPolicy && alpnPolicy.length > 0 && { AlpnPolicy: alpnPolicy },
|
|
26116
26135
|
...mutualAuth !== void 0 && { MutualAuthentication: mutualAuth }
|
|
26117
26136
|
}));
|
|
26118
|
-
const
|
|
26137
|
+
const removedMisleadingKeys = [];
|
|
26138
|
+
const submittedAttrs = this.diffAttributeBag("ListenerAttributes", logicalId, properties["ListenerAttributes"], previousProperties["ListenerAttributes"], (key) => {
|
|
26139
|
+
if (MISLEADING_IF_KEPT_ATTRIBUTE.test(key)) removedMisleadingKeys.push(key);
|
|
26140
|
+
return RETAIN_REMOVED_ATTRIBUTE();
|
|
26141
|
+
}, fromReadback, maskSecrets);
|
|
26119
26142
|
if (submittedAttrs.length > 0) {
|
|
26120
26143
|
const watch = startInterruptWatch(`ELBv2 Listener ${logicalId} attributes`);
|
|
26121
26144
|
try {
|
|
@@ -26134,6 +26157,12 @@ var ELBv2Provider = class {
|
|
|
26134
26157
|
}
|
|
26135
26158
|
await this.applyTagDiff(physicalId, resourceType, logicalId, previousProperties["Tags"], properties["Tags"], maskSecrets);
|
|
26136
26159
|
this.logger.debug(`Successfully updated Listener ${logicalId}`);
|
|
26160
|
+
if (removedMisleadingKeys.length > 0) {
|
|
26161
|
+
const mask = maskerOrIdentity(maskSecrets);
|
|
26162
|
+
const keys = removedMisleadingKeys.map((key) => mask(key)).join(", ");
|
|
26163
|
+
const one = removedMisleadingKeys.length === 1;
|
|
26164
|
+
this.logger.warn(safeMsg`${logicalId}: ListenerAttributes ${one ? "key" : "keys"} ${keys} ${one ? "is" : "are"} no longer declared and ${one ? "keeps its live value" : "keep their live values"}, as CloudFormation leaves ${one ? "it" : "them"}, so the listener may keep sending a CORS response header, or keep writing a request header under its renamed name. To change ${one ? "it" : "them"}, declare the value you want and deploy, or set ${one ? "it" : "them"} with 'aws elbv2 modify-listener-attributes'.`);
|
|
26165
|
+
}
|
|
26137
26166
|
if (leftInPlaceNames.length > 0 && !fromReadback) this.logger.warn(listenerLeftInPlaceWarning(logicalId, leftInPlaceNames, context?.replayingState ? "rollback" : "deploy"));
|
|
26138
26167
|
return {
|
|
26139
26168
|
physicalId,
|
|
@@ -26214,12 +26243,6 @@ var ELBv2Provider = class {
|
|
|
26214
26243
|
}
|
|
26215
26244
|
return submitted;
|
|
26216
26245
|
}
|
|
26217
|
-
attributeRemovalResolver(defaults) {
|
|
26218
|
-
return (key, currentValue) => {
|
|
26219
|
-
const fallback = Object.hasOwn(defaults, key) ? defaults[key] : "";
|
|
26220
|
-
return currentValue === fallback ? void 0 : fallback;
|
|
26221
|
-
};
|
|
26222
|
-
}
|
|
26223
26246
|
async readUpdateTargets(logicalId, physicalId, resourceType, desiredRaw, recordedRaw, groupPort) {
|
|
26224
26247
|
const desired = readTargets(desiredRaw, "desired");
|
|
26225
26248
|
if (desired.kind === "malformed") throw markNonRetryable(new ProvisioningError(`desired Targets of TargetGroup ${logicalId} is not a list of ${TARGETS_WHAT}${targetsSecretCause(desired)} — the target group was not updated`, resourceType, logicalId, physicalId));
|
|
@@ -34027,7 +34050,7 @@ async function refuseCatalogMove(args) {
|
|
|
34027
34050
|
try {
|
|
34028
34051
|
callerAccount = await args.callerAccountId();
|
|
34029
34052
|
} catch (error) {
|
|
34030
|
-
throw
|
|
34053
|
+
throw wrapGlueError(mask, args.debug, error, (text) => new ProvisioningError(`Could not resolve the caller's account id (sts:GetCallerIdentity) to tell whether CatalogId ${mask(literal)} is this account's default Data Catalog, so cdkd did not update Glue ${args.noun} ${args.logicalId}: ${text}`, args.resourceType, args.logicalId, void 0, error instanceof Error ? error : void 0));
|
|
34031
34054
|
}
|
|
34032
34055
|
if (literal === callerAccount) return;
|
|
34033
34056
|
}
|
|
@@ -34059,6 +34082,13 @@ function newGlueClients(region) {
|
|
|
34059
34082
|
}))
|
|
34060
34083
|
};
|
|
34061
34084
|
}
|
|
34085
|
+
function wrapGlueError(mask, debug, error, build) {
|
|
34086
|
+
const failure = describeAwsFailure(error);
|
|
34087
|
+
if (!failure.redacted) return wrapMaskedAwsError(mask, error, build);
|
|
34088
|
+
debug(mask(build(failure.detail).message));
|
|
34089
|
+
const wrapped = build(mask(failure.summary));
|
|
34090
|
+
return error instanceof Error ? markRedactedCause(wrapped) : wrapped;
|
|
34091
|
+
}
|
|
34062
34092
|
var GlueProvider = class {
|
|
34063
34093
|
client;
|
|
34064
34094
|
createClient;
|
|
@@ -34066,7 +34096,7 @@ var GlueProvider = class {
|
|
|
34066
34096
|
callerAccountId = makeCallerAccountResolver(this.providerRegion);
|
|
34067
34097
|
logger = getLogger().child("GlueProvider");
|
|
34068
34098
|
wrapMaskedError(mask, error, build) {
|
|
34069
|
-
return
|
|
34099
|
+
return wrapGlueError(mask, (message) => this.logger.debug(message), error, build);
|
|
34070
34100
|
}
|
|
34071
34101
|
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Database", /* @__PURE__ */ new Set([
|
|
34072
34102
|
"DatabaseInput",
|
|
@@ -34165,6 +34195,7 @@ var GlueProvider = class {
|
|
|
34165
34195
|
stateful: true,
|
|
34166
34196
|
callerAccountId: this.callerAccountId,
|
|
34167
34197
|
warn: log.warn,
|
|
34198
|
+
debug: log.debug,
|
|
34168
34199
|
mask: log.mask
|
|
34169
34200
|
});
|
|
34170
34201
|
const catalogId = updateCatalogId(properties["CatalogId"]);
|
|
@@ -34218,7 +34249,7 @@ var GlueProvider = class {
|
|
|
34218
34249
|
return;
|
|
34219
34250
|
}
|
|
34220
34251
|
const cause = error instanceof Error ? error : void 0;
|
|
34221
|
-
throw
|
|
34252
|
+
throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to delete Glue Database ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
34222
34253
|
}
|
|
34223
34254
|
}
|
|
34224
34255
|
async createTable(logicalId, resourceType, properties, context) {
|
|
@@ -34297,6 +34328,7 @@ var GlueProvider = class {
|
|
|
34297
34328
|
stateful: true,
|
|
34298
34329
|
callerAccountId: this.callerAccountId,
|
|
34299
34330
|
warn: log.warn,
|
|
34331
|
+
debug: log.debug,
|
|
34300
34332
|
mask: log.mask
|
|
34301
34333
|
});
|
|
34302
34334
|
const catalogId = updateCatalogId(properties["CatalogId"]);
|
|
@@ -34326,7 +34358,7 @@ var GlueProvider = class {
|
|
|
34326
34358
|
hint += live.versionId !== void 0 ? ` cdkd sent the version it read (${live.versionId}) as a precondition and AWS rejected the write, rather than let it put back the AWS-managed Parameters and StorageDescriptor members read a moment earlier — which for an Apache Iceberg table would have pinned it to an older metadata_location (an effective snapshot rollback).` : " AWS returned no VersionId on the pre-update read, so cdkd could not attach a precondition; AWS rejected the write on its own.";
|
|
34327
34359
|
hint += ` Re-run the deploy to pick up the current values.`;
|
|
34328
34360
|
}
|
|
34329
|
-
throw this.wrapMaskedError(log.mask, error, (detail) => new ProvisioningError(`Failed to update Glue Table ${logicalId}: ${detail}${hint}`, resourceType, logicalId, physicalId, cause));
|
|
34361
|
+
throw this.wrapMaskedError(log.mask, error, (detail) => new ProvisioningError(`Failed to update Glue Table ${logicalId}: ${hint ? withoutFinalPeriod(detail) : detail}${hint}`, resourceType, logicalId, physicalId, cause));
|
|
34330
34362
|
}
|
|
34331
34363
|
}
|
|
34332
34364
|
async deleteTable(logicalId, physicalId, resourceType, properties, context) {
|
|
@@ -34361,7 +34393,7 @@ var GlueProvider = class {
|
|
|
34361
34393
|
return;
|
|
34362
34394
|
}
|
|
34363
34395
|
const cause = error instanceof Error ? error : void 0;
|
|
34364
|
-
throw
|
|
34396
|
+
throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to delete Glue Table ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
34365
34397
|
}
|
|
34366
34398
|
}
|
|
34367
34399
|
preserveAwsManagedParameters(built, desiredParameters, previousParameters, liveParameters) {
|
|
@@ -34741,7 +34773,7 @@ var GlueWorkflowProvider = class {
|
|
|
34741
34773
|
providerRegion = ambientRegion();
|
|
34742
34774
|
logger = getLogger().child("GlueWorkflowProvider");
|
|
34743
34775
|
wrapMaskedError(mask, error, build) {
|
|
34744
|
-
return
|
|
34776
|
+
return wrapGlueError(mask, (message) => this.logger.debug(message), error, build);
|
|
34745
34777
|
}
|
|
34746
34778
|
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Workflow", /* @__PURE__ */ new Set([
|
|
34747
34779
|
"Name",
|
|
@@ -34820,7 +34852,7 @@ var GlueWorkflowProvider = class {
|
|
|
34820
34852
|
return;
|
|
34821
34853
|
}
|
|
34822
34854
|
const cause = error instanceof Error ? error : void 0;
|
|
34823
|
-
throw new ProvisioningError(`Failed to delete Glue Workflow ${logicalId}: ${
|
|
34855
|
+
throw this.wrapMaskedError(context?.maskSecrets ?? ((text) => text), error, (text) => new ProvisioningError(`Failed to delete Glue Workflow ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
34824
34856
|
}
|
|
34825
34857
|
}
|
|
34826
34858
|
async getAttribute(physicalId, _resourceType, attributeName) {
|
|
@@ -34896,7 +34928,7 @@ var GlueSecurityConfigurationProvider = class {
|
|
|
34896
34928
|
providerRegion = ambientRegion();
|
|
34897
34929
|
logger = getLogger().child("GlueSecurityConfigurationProvider");
|
|
34898
34930
|
wrapMaskedError(mask, error, build) {
|
|
34899
|
-
return
|
|
34931
|
+
return wrapGlueError(mask, (message) => this.logger.debug(message), error, build);
|
|
34900
34932
|
}
|
|
34901
34933
|
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::SecurityConfiguration", /* @__PURE__ */ new Set(["Name", "EncryptionConfiguration"])]]);
|
|
34902
34934
|
getClient() {
|
|
@@ -34948,7 +34980,7 @@ var GlueSecurityConfigurationProvider = class {
|
|
|
34948
34980
|
return;
|
|
34949
34981
|
}
|
|
34950
34982
|
const cause = error instanceof Error ? error : void 0;
|
|
34951
|
-
throw new ProvisioningError(`Failed to delete Glue SecurityConfiguration ${logicalId}: ${
|
|
34983
|
+
throw this.wrapMaskedError(context?.maskSecrets ?? ((text) => text), error, (text) => new ProvisioningError(`Failed to delete Glue SecurityConfiguration ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
34952
34984
|
}
|
|
34953
34985
|
}
|
|
34954
34986
|
async getAttribute(physicalId, _resourceType, attributeName) {
|
|
@@ -35089,7 +35121,7 @@ var GlueJobProvider = class {
|
|
|
35089
35121
|
providerRegion = ambientRegion();
|
|
35090
35122
|
logger = getLogger().child("GlueJobProvider");
|
|
35091
35123
|
wrapMaskedError(mask, error, build) {
|
|
35092
|
-
return
|
|
35124
|
+
return wrapGlueError(mask, (message) => this.logger.debug(message), error, build);
|
|
35093
35125
|
}
|
|
35094
35126
|
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Job", /* @__PURE__ */ new Set([
|
|
35095
35127
|
"Name",
|
|
@@ -35199,7 +35231,7 @@ var GlueJobProvider = class {
|
|
|
35199
35231
|
return;
|
|
35200
35232
|
}
|
|
35201
35233
|
const cause = error instanceof Error ? error : void 0;
|
|
35202
|
-
throw new ProvisioningError(`Failed to delete Glue Job ${logicalId}: ${
|
|
35234
|
+
throw this.wrapMaskedError(context?.maskSecrets ?? ((text) => text), error, (text) => new ProvisioningError(`Failed to delete Glue Job ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
35203
35235
|
}
|
|
35204
35236
|
}
|
|
35205
35237
|
async getAttribute(physicalId, _resourceType, attributeName) {
|
|
@@ -35335,8 +35367,11 @@ function asRecord$1(value) {
|
|
|
35335
35367
|
if (typeof value !== "object" || value === null || Array.isArray(value)) return;
|
|
35336
35368
|
return value;
|
|
35337
35369
|
}
|
|
35370
|
+
function withoutFinalPeriod(text) {
|
|
35371
|
+
return text.endsWith(".") ? text.slice(0, -1) : text;
|
|
35372
|
+
}
|
|
35338
35373
|
function preUpdateReadFailureMessage(kind, iamAction, logicalId, detail) {
|
|
35339
|
-
return `Failed to read the current Glue ${kind} ${logicalId} before update: ${detail}. cdkd reads the live ${kind.toLowerCase()} so AWS-managed Parameters (Apache Iceberg's table_type / metadata_location, a crawler's classification, Lake Formation markers) survive an update that Glue applies as a full replace. Grant ${iamAction} to the deploy identity — proceeding without the read would silently erase them.`;
|
|
35374
|
+
return `Failed to read the current Glue ${kind} ${logicalId} before update: ${withoutFinalPeriod(detail)}. cdkd reads the live ${kind.toLowerCase()} so AWS-managed Parameters (Apache Iceberg's table_type / metadata_location, a crawler's classification, Lake Formation markers) survive an update that Glue applies as a full replace. Grant ${iamAction} to the deploy identity — proceeding without the read would silently erase them.`;
|
|
35340
35375
|
}
|
|
35341
35376
|
function coerceNumber(value) {
|
|
35342
35377
|
if (typeof value === "number") return value;
|
|
@@ -35383,7 +35418,7 @@ var GlueCrawlerProvider = class {
|
|
|
35383
35418
|
providerRegion = ambientRegion();
|
|
35384
35419
|
logger = getLogger().child("GlueCrawlerProvider");
|
|
35385
35420
|
wrapMaskedError(mask, error, build) {
|
|
35386
|
-
return
|
|
35421
|
+
return wrapGlueError(mask, (message) => this.logger.debug(message), error, build);
|
|
35387
35422
|
}
|
|
35388
35423
|
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Crawler", /* @__PURE__ */ new Set([
|
|
35389
35424
|
"Name",
|
|
@@ -35490,14 +35525,23 @@ var GlueCrawlerProvider = class {
|
|
|
35490
35525
|
log.debug(`Glue Crawler ${v(physicalId)} does not exist, skipping deletion`);
|
|
35491
35526
|
return;
|
|
35492
35527
|
}
|
|
35528
|
+
let failure = error;
|
|
35493
35529
|
if (error instanceof CrawlerRunningException) {
|
|
35494
35530
|
log.debug(`Glue Crawler ${v(physicalId)} is running; stopping before delete and retrying`);
|
|
35495
|
-
|
|
35496
|
-
|
|
35497
|
-
|
|
35531
|
+
try {
|
|
35532
|
+
await this.stopCrawlerAndWait(physicalId, log);
|
|
35533
|
+
await this.getClient().send(new DeleteCrawlerCommand({ Name: physicalId }));
|
|
35534
|
+
return;
|
|
35535
|
+
} catch (retryError) {
|
|
35536
|
+
if (retryError instanceof EntityNotFoundException) {
|
|
35537
|
+
log.debug(`Glue Crawler ${v(physicalId)} does not exist, skipping deletion`);
|
|
35538
|
+
return;
|
|
35539
|
+
}
|
|
35540
|
+
failure = retryError;
|
|
35541
|
+
}
|
|
35498
35542
|
}
|
|
35499
|
-
const cause =
|
|
35500
|
-
throw
|
|
35543
|
+
const cause = failure instanceof Error ? failure : void 0;
|
|
35544
|
+
throw this.wrapMaskedError(log.mask, failure, (text) => new ProvisioningError(`Failed to delete Glue Crawler ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
35501
35545
|
}
|
|
35502
35546
|
}
|
|
35503
35547
|
async stopCrawlerAndWait(physicalId, log = {
|
|
@@ -35645,7 +35689,7 @@ var GlueConnectionProvider = class {
|
|
|
35645
35689
|
callerAccountId = makeCallerAccountResolver(this.providerRegion);
|
|
35646
35690
|
logger = getLogger().child("GlueConnectionProvider");
|
|
35647
35691
|
wrapMaskedError(mask, error, build) {
|
|
35648
|
-
return
|
|
35692
|
+
return wrapGlueError(mask, (message) => this.logger.debug(message), error, build);
|
|
35649
35693
|
}
|
|
35650
35694
|
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Connection", /* @__PURE__ */ new Set(["ConnectionInput", "CatalogId"])]]);
|
|
35651
35695
|
getClient() {
|
|
@@ -35707,6 +35751,7 @@ var GlueConnectionProvider = class {
|
|
|
35707
35751
|
stateful: false,
|
|
35708
35752
|
callerAccountId: this.callerAccountId,
|
|
35709
35753
|
warn: log.warn,
|
|
35754
|
+
debug: log.debug,
|
|
35710
35755
|
mask: log.mask
|
|
35711
35756
|
});
|
|
35712
35757
|
const catalogId = updateCatalogId(properties["CatalogId"]);
|
|
@@ -35746,7 +35791,7 @@ var GlueConnectionProvider = class {
|
|
|
35746
35791
|
return;
|
|
35747
35792
|
}
|
|
35748
35793
|
const cause = error instanceof Error ? error : void 0;
|
|
35749
|
-
throw
|
|
35794
|
+
throw this.wrapMaskedError(log.mask, error, (text) => new ProvisioningError(`Failed to delete Glue Connection ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
35750
35795
|
}
|
|
35751
35796
|
}
|
|
35752
35797
|
async getAttribute(physicalId, _resourceType, attributeName) {
|
|
@@ -35821,7 +35866,7 @@ var GlueTriggerProvider = class {
|
|
|
35821
35866
|
providerRegion = ambientRegion();
|
|
35822
35867
|
logger = getLogger().child("GlueTriggerProvider");
|
|
35823
35868
|
wrapMaskedError(mask, error, build) {
|
|
35824
|
-
return
|
|
35869
|
+
return wrapGlueError(mask, (message) => this.logger.debug(message), error, build);
|
|
35825
35870
|
}
|
|
35826
35871
|
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Trigger", /* @__PURE__ */ new Set([
|
|
35827
35872
|
"Name",
|
|
@@ -35919,7 +35964,9 @@ var GlueTriggerProvider = class {
|
|
|
35919
35964
|
await this.getClient().send(new StartTriggerCommand({ Name: physicalId }));
|
|
35920
35965
|
} catch (restartError) {
|
|
35921
35966
|
if (updateError === void 0) throw restartError;
|
|
35922
|
-
|
|
35967
|
+
const restartFailure = describeAwsFailure(restartError);
|
|
35968
|
+
log.warn(`Failed to re-activate Glue Trigger ${v(physicalId)} after a failed update: ${restartFailure.summary}`);
|
|
35969
|
+
if (restartFailure.redacted) log.debug(`Failed to re-activate Glue Trigger ${v(physicalId)} after a failed update: ${restartFailure.detail}`);
|
|
35923
35970
|
}
|
|
35924
35971
|
if (updateError !== void 0) throw updateError;
|
|
35925
35972
|
await applyGlueTagDiff(this.getClient(), () => this.resourceArn(physicalId), previousProperties["Tags"], properties["Tags"], resourceType, logicalId, log.warn);
|
|
@@ -35971,7 +36018,7 @@ var GlueTriggerProvider = class {
|
|
|
35971
36018
|
return;
|
|
35972
36019
|
}
|
|
35973
36020
|
const cause = error instanceof Error ? error : void 0;
|
|
35974
|
-
const failure = new ProvisioningError(`Failed to delete Glue Trigger ${logicalId}: ${
|
|
36021
|
+
const failure = this.wrapMaskedError(context?.maskSecrets ?? ((text) => text), error, (text) => new ProvisioningError(`Failed to delete Glue Trigger ${logicalId}: ${text}`, resourceType, logicalId, physicalId, cause));
|
|
35975
36022
|
throw stripped ? markDeleteStarted(failure) : failure;
|
|
35976
36023
|
}
|
|
35977
36024
|
}
|
|
@@ -46716,4 +46763,4 @@ var ACMCertificateProvider = class {
|
|
|
46716
46763
|
|
|
46717
46764
|
//#endregion
|
|
46718
46765
|
export { ACMCertificateProvider, ASGProvider, AgentCoreBrowserProvider, AgentCoreCodeInterpreterProvider, AgentCoreEvaluatorProvider, AgentCoreRuntimeProvider, ApiGatewayProvider, ApiGatewayV2Provider, AppSyncProvider, BudgetsBudgetProvider, CloudFrontDistributionProvider, CloudFrontOACProvider, CloudFrontOAIProvider, CloudTrailProvider, CloudWatchAlarmProvider, CloudWatchAnomalyDetectorProvider, CodeBuildProvider, CodeCommitRepositoryProvider, CognitoUserPoolProvider, DLMLifecyclePolicyProvider, DocDBProvider, DocDBSubnetGroupProvider, DynamoDBGlobalTableProvider, DynamoDBTableProvider, EC2Provider, ECRProvider, ECSProvider, EFSProvider, ELBv2Provider, EMRClusterProvider, EMRInstanceFleetConfigProvider, EMRInstanceGroupConfigProvider, ElastiCacheProvider, EventBridgeBusProvider, EventBridgeRuleProvider, FSxFileSystemProvider, FirehoseProvider, GlueConnectionProvider, GlueCrawlerProvider, GlueJobProvider, GlueProvider, GlueSecurityConfigurationProvider, GlueTriggerProvider, GlueWorkflowProvider, IAMAccessKeyProvider, IAMInstanceProfileProvider, IAMManagedPolicyProvider, IAMPolicyProvider, IAMRoleProvider, IAMUserGroupProvider, KMSProvider, KinesisStreamConsumerProvider, KinesisStreamProvider, LambdaEventInvokeConfigProvider, LambdaEventSourceMappingProvider, LambdaFunctionProvider, LambdaLayerVersionProvider, LambdaMicrovmImageProvider, LambdaNetworkConnectorProvider, LambdaPermissionProvider, LambdaUrlProvider, LambdaWebFunctionEndpointProvider, LambdaWebFunctionRevisionProvider, LogsLogGroupProvider, NeptuneProvider, NestedStackProvider, PipesPipeProvider, RDSDBProxyEndpointProvider, RDSDBProxyProvider, RDSDBProxyTargetGroupProvider, RDSProvider, Route53Provider, S3BucketPolicyProvider, S3BucketProvider, S3DirectoryBucketProvider, S3TablesProvider, S3VectorsProvider, SNSSubscriptionProvider, SNSTopicPolicyProvider, SNSTopicProvider, SQSQueuePolicyProvider, SQSQueueProvider, SSMParameterProvider, SchedulerScheduleProvider, SecretsManagerSecretProvider, ServiceDiscoveryProvider, StepFunctionsProvider, WAFv2WebACLProvider, WaitConditionHandleProvider };
|
|
46719
|
-
//# sourceMappingURL=provider-classes-
|
|
46766
|
+
//# sourceMappingURL=provider-classes-DPwEHVDJ.js.map
|