@go-to-k/cdkd 0.296.31 → 0.297.0
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-Ca7cV9tM.js → asg-provider-D9Po293s.js} +3 -3
- package/dist/{asg-provider-Ca7cV9tM.js.map → asg-provider-D9Po293s.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-5FFXg6ih.js → deploy-engine-dvf1UDuo.js} +521 -55
- package/dist/deploy-engine-dvf1UDuo.js.map +1 -0
- package/dist/{iam-role-provider-syetbMnw.js → iam-role-provider--5HuX51Z.js} +2 -2
- package/dist/{iam-role-provider-syetbMnw.js.map → iam-role-provider--5HuX51Z.js.map} +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-B1D2CFBs.js → neptune-provider-xROL9y31.js} +2 -2
- package/dist/{neptune-provider-B1D2CFBs.js.map → neptune-provider-xROL9y31.js.map} +1 -1
- package/dist/{program-Db1eBDeq.js → program-NRnM6vPK.js} +347 -42
- package/dist/program-NRnM6vPK.js.map +1 -0
- package/dist/{provider-classes-B7Z4-Zsc.js → provider-classes-uUFRfL9s.js} +20 -20
- package/dist/{provider-classes-B7Z4-Zsc.js.map → provider-classes-uUFRfL9s.js.map} +1 -1
- package/dist/{rds-provider-B4sFJ8YW.js → rds-provider-CU0LZr05.js} +4 -4
- package/dist/{rds-provider-B4sFJ8YW.js.map → rds-provider-CU0LZr05.js.map} +1 -1
- package/dist/{version-D0cK9V1A.js → version-DE-djeB0.js} +2 -2
- package/dist/{version-D0cK9V1A.js.map → version-DE-djeB0.js.map} +1 -1
- package/package.json +2 -1
- package/dist/deploy-engine-5FFXg6ih.js.map +0 -1
- package/dist/program-Db1eBDeq.js.map +0 -1
|
@@ -2,12 +2,12 @@ import { r as getAwsClients } from "./aws-clients-CnmtbrxD.js";
|
|
|
2
2
|
import { F as displayStackName, I as isPasteableIdent, N as displayIdent, O as SECRET_REF_MAX_CODE_POINTS, P as displaySafe, R as plainIdentOr, a as getLogger, b as generateResourceNameWithFallback, n as isAwsAuthoredFailure, r as safeStringify, t as describeAwsFailure, y as generateResourceName, z as safeMsg } from "./aws-failure-text-BaWeCWRz.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-Cz2tPxXk.js";
|
|
4
4
|
import { s as ambientRegion } from "./aws-client-defaults-D0q0z4dG.js";
|
|
5
|
-
import { $ as getPriorAttempts, $a 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 getPriorAttempts, $a as isWarmThroughputDecrease, $c as derivePartitionAndUrlSuffix, $n as reserveStackCreateToken, Ao as passedNoEchoParametersOf, Ar as deleteSkipReason, B as beginDeleteWait, Ba as findSilentDropProperties, Dt as withNestedStackContext, Ea as refuseMalformedResourcesForDestroy, Er as unchangedBehindSecretReference, Et as getCurrentNestedStackContext, Fr as ec2InstanceProtectionSite, G as DELETE_INDEX_WAIT_PROCEED_NOTE, H as deleteBudgetKey, Ha as withoutSilentDropProperties, Ir as isTerminationProtectionPropagationError, J as waitForIndexesSettled, Jo as markSameGenerationBag, K as INDEX_SETTLE_POLL_INTERVAL_MS, Lo as hasMaskableValues, Lr as observeThenDisableInstanceApiTermination, Lt as awaitInFlightSibling, Mr as isWaitAbandonedError, Nr as markWaitAbandoned, Q as isTruthyCfnBoolean, Qa as coerceWarmThroughput$1, Qc as canonicalizeRegion, Qo as dynamicReferenceTokens, R as DynamoDBGlobalTableProvider, Ra as withheldAccountClause, Rr as reDisableInstanceApiTermination, Si as parseWebACLArn, St as revertNestedChildFromJournal, Ti as passedParameterClassesOf, Tr as slowCcOperationTimeoutMs, U as resolveDynamoDbDeleteBudgetClock, V as compensateRemovedDeletionProtection, W as resolveDynamoDbDeleteBudgetMs, Ws as stringifyValue, X as S3_AUTO_DELETE_OBJECTS_TAG, Y as ECR_AUTO_DELETE_IMAGES_TAG, Yc as decodeListingKey, Yo as redactSecretsForState, Ys as rewriteTemplateAssetReferences, Z as hasCdkAutoDeleteTag, Za as WARM_THROUGHPUT_MEMBERS, Zn as earliestDefined, _o as lambdaFunctionNameForMask, a as findNestedTemplateTreeDefect, ai as s3BucketDomainName, an as redactedDeleteAddressFields, ao as configIntegerRefusal, ar as readTagList, as as carriesSecretMask, b as lookupEachName, c as renderNestedTemplateTreeDefect, ci as s3BucketWebsiteUrl, co as replayWarn, cr as tagPlanWarning, dl as renderAssemblyPathEscape, do as requireConfigString, eo as toCfnInteger, et as markRefusedBeforeApplying, fi as getAccountInfo, fl as resolveAssemblyPath, go as canonicalLambdaFunctionName, ho as withRetry, ii as s3BucketArn, in as isRedactedRecordedValue, io as configBooleanRefusal, ir as planTagDiff, is as recoverMaskedOutput, ji as accountArgs, jr as withIndeterminateGuard, ll as describeFileReadFailure, lo as requireConfigArray, lr as definedAttributes, no as coerceCfnBoolean, nr as DBPROXY_TAGS_WHAT, o as isAbsoluteAssetPath, oa as refuseMalformedNestedChildOutputs, oi as s3BucketDualStackDomainName, on as redactedDeleteAddressSkip, oo as configStringRefusal, or as refuseMalformedDesiredTags, q as deleteTableWithIndexBusyRetry, ri as isSettledInstanceState, rn as REDACTED_DELETE_ADDRESS_SKIP_REASON, ro as coerceCfnInteger, rr as DBPROXY_TAG_OPTIONS, s as listNestedTemplateRows, si as s3BucketRegionalDomainName, so as readConfigString, sr as tagMapAsList, t as DeployEngine, tn as getCurrentProducerRegions, to as toFiniteNumber, tr as acquireIdempotencyToken, ul as displayAssemblyPath, uo as requireConfigObject, ur as stringifyIfAssigned, v as chunks, vo as sameLambdaFunctionAddress, x as withApiLimit, y as isAccessDeniedError, yr as getCurrentResourceSecrets, yt as getNestedRevertRun, z as DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS, zr as reEnableInstanceApiTermination, zt as getStackRecords } from "./deploy-engine-dvf1UDuo.js";
|
|
6
|
+
import { n as collectInlinePolicyNamesManagedBySiblings, r as IamCreateClientCache, t as IAMRoleProvider } from "./iam-role-provider--5HuX51Z.js";
|
|
7
|
+
import { a as canonicalizeIpProtocolValue, i as resolveSecretDerivedPrincipals, n as runDestroyForStack, o as resolvedResourceTimeoutMs, r as isResolvableSecretPrincipalList, t as canonicalizeIpv4Cidr } from "./program-NRnM6vPK.js";
|
|
8
|
+
import { RDSProvider } from "./rds-provider-CU0LZr05.js";
|
|
9
|
+
import { NeptuneProvider } from "./neptune-provider-xROL9y31.js";
|
|
10
|
+
import { ASGProvider } from "./asg-provider-D9Po293s.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";
|
|
@@ -8653,7 +8653,7 @@ function declaredConsumptionMode(properties) {
|
|
|
8653
8653
|
return config[KAFKA_CONSUMPTION_MODE_KEY];
|
|
8654
8654
|
}
|
|
8655
8655
|
function consumptionModeRefusalMessage(logicalId, mode) {
|
|
8656
|
-
return `AWS::Lambda::EventSourceMapping ${logicalId}: SelfManagedKafkaEventSourceConfig.${KAFKA_CONSUMPTION_MODE_KEY} cannot be sent by cdkd yet — the AWS SDK for JavaScript does not model the member, so it would be dropped from the ${mode === "create" ? "CreateEventSourceMapping" : "UpdateEventSourceMapping"} request without an error
|
|
8656
|
+
return `AWS::Lambda::EventSourceMapping ${logicalId}: SelfManagedKafkaEventSourceConfig.${KAFKA_CONSUMPTION_MODE_KEY} cannot be sent by cdkd yet — the AWS SDK for JavaScript does not model the member, so it would be dropped from the ${mode === "create" ? "CreateEventSourceMapping" : "UpdateEventSourceMapping"} request without an error. Remove ${KAFKA_CONSUMPTION_MODE_KEY} from SelfManagedKafkaEventSourceConfig to deploy the mapping without it.`;
|
|
8657
8657
|
}
|
|
8658
8658
|
function kafkaConfigForUpdate(desired, previous, options) {
|
|
8659
8659
|
const asObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v) ? v : void 0;
|
|
@@ -10701,7 +10701,7 @@ var DynamoDBTableProvider = class {
|
|
|
10701
10701
|
gsiHandledByBillingFlip.add(indexName);
|
|
10702
10702
|
}
|
|
10703
10703
|
if (indexUpdates.length > 0) updateInput.GlobalSecondaryIndexUpdates = indexUpdates;
|
|
10704
|
-
if (unspecified.length > 0) warn(`AWS::DynamoDB::Table ${logicalId}: flipping BillingMode to PROVISIONED, but the template declares no usable ProvisionedThroughput for live index(es) ${unspecified.map((n) => maskSecrets(n)).join(", ")}. AWS requires per-index capacity in the same UpdateTable and will reject the flip naming them. Declare GlobalSecondaryIndexes[].ProvisionedThroughput (both ReadCapacityUnits and WriteCapacityUnits) for each. An index this deploy REMOVES is deleted BEFORE the flip automatically
|
|
10704
|
+
if (unspecified.length > 0) warn(`AWS::DynamoDB::Table ${logicalId}: flipping BillingMode to PROVISIONED, but the template declares no usable ProvisionedThroughput for live index(es) ${unspecified.map((n) => maskSecrets(n)).join(", ")}. AWS requires per-index capacity in the same UpdateTable and will reject the flip naming them. Declare GlobalSecondaryIndexes[].ProvisionedThroughput (both ReadCapacityUnits and WriteCapacityUnits) for each. An index this deploy REMOVES is deleted BEFORE the flip automatically, so a name here is one the template still keeps, one that exists in AWS but in neither the template nor cdkd state (created out of band), or one whose pre-flip removal was skipped for the reason warned above.`);
|
|
10705
10705
|
}
|
|
10706
10706
|
await this.dynamoDBClient.send(new UpdateTableCommand(updateInput));
|
|
10707
10707
|
if (billingMode !== liveBillingMode) await this.waitForTableAndIndexesActive(physicalId, BILLING_FLIP_ACTIVE_WAIT_ATTEMPTS);
|
|
@@ -11381,7 +11381,7 @@ var DynamoDBTableProvider = class {
|
|
|
11381
11381
|
}
|
|
11382
11382
|
warnUnusableOnDemandCeiling(scope, member, raw, maskSecrets) {
|
|
11383
11383
|
const warn = (message) => this.logger.warn(maskSecrets(message));
|
|
11384
|
-
warn(`${scope}: OnDemandThroughput.${member} ${JSON.stringify(maskLeafValue(raw, maskSecrets))} is not an Integer CloudFormation accepts (an optional sign and decimal digits only — no surrounding whitespace, hex, exponent or decimal point), so it was NOT sent and NO ceiling was substituted for it. Both OnDemandThroughput members are OPTIONAL to DynamoDB, so — unlike a ProvisionedThroughput member — AWS does not necessarily reject the request, and what happens next depends on the path: a CREATE gets no maximum for this half; an UPDATE KEEPS whatever maximum the table already carries, since only an explicit -1 removes one; and if NEITHER member was usable the block is sent EMPTY, which AWS ACCEPTS
|
|
11384
|
+
warn(`${scope}: OnDemandThroughput.${member} ${JSON.stringify(maskLeafValue(raw, maskSecrets))} is not an Integer CloudFormation accepts (an optional sign and decimal digits only — no surrounding whitespace, hex, exponent or decimal point), so it was NOT sent and NO ceiling was substituted for it. Both OnDemandThroughput members are OPTIONAL to DynamoDB, so — unlike a ProvisionedThroughput member — AWS does not necessarily reject the request, and what happens next depends on the path: a CREATE gets no maximum for this half; an UPDATE KEEPS whatever maximum the table already carries, since only an explicit -1 removes one; and if NEITHER member was usable the block is sent EMPTY, which AWS ACCEPTS and stores as no maximum at all, so the deploy SUCCEEDS with no ceiling applied. cdkd's state keeps the value the template declared and \`cdkd drift\` reports the difference until the template is corrected; CloudFormation is expected to refuse the same template at properties validation. Check for an unresolved intrinsic, or spell the value as a decimal integer (\`-1\` removes an existing maximum).`);
|
|
11385
11385
|
}
|
|
11386
11386
|
warnUnusableProvisionedCapacity(scope, member, raw, maskSecrets) {
|
|
11387
11387
|
const warn = (message) => this.logger.warn(maskSecrets(message));
|
|
@@ -11395,7 +11395,7 @@ var DynamoDBTableProvider = class {
|
|
|
11395
11395
|
skipZeroCapacityIndexUpdate(indexName, physicalId, requested, maskSecrets) {
|
|
11396
11396
|
if (!isZeroCapacityPlaceholder(requested)) return false;
|
|
11397
11397
|
const warn = (message) => this.logger.warn(maskSecrets(message));
|
|
11398
|
-
warn(`${this.indexScopeAt(indexName, physicalId, maskSecrets)}: the requested ProvisionedThroughput is {ReadCapacityUnits: 0, WriteCapacityUnits: 0}, which is AWS's on-demand placeholder rather than a capacity DynamoDB accepts (the minimum is 1), so no per-index throughput update was sent. This usually means the value came from a
|
|
11398
|
+
warn(`${this.indexScopeAt(indexName, physicalId, maskSecrets)}: the requested ProvisionedThroughput is {ReadCapacityUnits: 0, WriteCapacityUnits: 0}, which is AWS's on-demand placeholder rather than a capacity DynamoDB accepts (the minimum is 1), so no per-index throughput update was sent. This usually means the value came from a state record an older cdkd release wrote — a \`cdkd drift --revert\` of such a record, or a rollback replaying it. Re-run \`cdkd deploy\` (or \`cdkd drift --accept\`) to refresh the record.`);
|
|
11399
11399
|
return true;
|
|
11400
11400
|
}
|
|
11401
11401
|
warmThroughputOpFor(indexName, physicalId, desired, previous, live, maskSecrets) {
|
|
@@ -14906,7 +14906,7 @@ var EC2Provider = class {
|
|
|
14906
14906
|
}
|
|
14907
14907
|
if (attempt < maxAttempts) await this.sleep(100 * 2 ** (attempt - 1));
|
|
14908
14908
|
}
|
|
14909
|
-
this.logger.debug(`MapPublicIpOnLaunch=${expected} not yet visible on ${subnetId} after ${maxAttempts} reads — the observed-state capture may record the stale value
|
|
14909
|
+
this.logger.debug(`MapPublicIpOnLaunch=${expected} not yet visible on ${subnetId} after ${maxAttempts} reads — the observed-state capture may record the stale value`);
|
|
14910
14910
|
}
|
|
14911
14911
|
async deleteSubnet(logicalId, physicalId, resourceType, context) {
|
|
14912
14912
|
this.logger.debug(`Deleting Subnet ${logicalId}: ${physicalId}`);
|
|
@@ -20208,7 +20208,7 @@ var ApiGatewayV2Provider = class {
|
|
|
20208
20208
|
return merged;
|
|
20209
20209
|
}
|
|
20210
20210
|
warnTlsConfigIgnoredIfPublic(logicalId, properties, log) {
|
|
20211
|
-
if (properties["TlsConfig"] != null && properties["ConnectionType"] !== "VPC_LINK") log.warn(`AWS::ApiGatewayV2::Integration ${logicalId}: TlsConfig is only honored on a VPC_LINK (private) integration — AWS silently ignores it on a public one, and the value will never be readable back from AWS
|
|
20211
|
+
if (properties["TlsConfig"] != null && properties["ConnectionType"] !== "VPC_LINK") log.warn(`AWS::ApiGatewayV2::Integration ${logicalId}: TlsConfig is only honored on a VPC_LINK (private) integration — AWS silently ignores it on a public one, and the value will never be readable back from AWS.`);
|
|
20212
20212
|
}
|
|
20213
20213
|
toSdkResponseParameters(value, log) {
|
|
20214
20214
|
const maskSecrets = log.mask;
|
|
@@ -28726,7 +28726,7 @@ var CognitoUserPoolProvider = class {
|
|
|
28726
28726
|
if (!sendsPoliciesSubKey(previousProperties, subKey)) continue;
|
|
28727
28727
|
if (sendsPoliciesSubKey(properties, subKey)) continue;
|
|
28728
28728
|
const { label, reset } = POLICIES_SUB_KEY_ANNOUNCEMENT[subKey];
|
|
28729
|
-
this.logger.warn(`UserPool ${physicalId}: the desired configuration no longer declares Policies.${subKey}, and no UpdateUserPool input can express that removal — omitting the sub-key PRESERVES the live value
|
|
28729
|
+
this.logger.warn(`UserPool ${physicalId}: the desired configuration no longer declares Policies.${subKey}, and no UpdateUserPool input can express that removal — omitting the sub-key PRESERVES the live value, so the pool keeps its current ${label}. CloudFormation is the same no-op on the identical template edit, so cdkd deliberately sends no reset. To change the live value, declare Policies.${subKey} explicitly with the intended configuration (${reset}).`);
|
|
28730
28730
|
}
|
|
28731
28731
|
}
|
|
28732
28732
|
async update(logicalId, physicalId, resourceType, properties, previousProperties, context) {
|
|
@@ -32169,7 +32169,7 @@ function refuseNestedRename(args) {
|
|
|
32169
32169
|
const remedyFlags = args.stateful ? "--replace --force-stateful-recreation" : "--replace";
|
|
32170
32170
|
const shownRecorded = mask(recordedName);
|
|
32171
32171
|
const shownDesired = mask(desiredName);
|
|
32172
|
-
throw new ResourceUpdateNotSupportedError(args.resourceType, args.logicalId, `${args.field} changed from '${shownRecorded}' to '${shownDesired}', and cdkd cannot rename a Glue ${args.noun} in place — ${args.consequence(shownDesired)}. To rename it, re-deploy with ${remedyFlags}, which DELETEs the ${args.noun} '${shownRecorded}' and then CREATEs '${shownDesired}' (under UpdateReplacePolicy: Retain the old one is kept instead); the CREATE fails if a ${args.noun} named '${shownDesired}' already exists, after the DELETE. If the template did not change this name, the state record was left by an earlier deploy that wrote to '${shownDesired}'
|
|
32172
|
+
throw new ResourceUpdateNotSupportedError(args.resourceType, args.logicalId, `${args.field} changed from '${shownRecorded}' to '${shownDesired}', and cdkd cannot rename a Glue ${args.noun} in place — ${args.consequence(shownDesired)}. To rename it, re-deploy with ${remedyFlags}, which DELETEs the ${args.noun} '${shownRecorded}' and then CREATEs '${shownDesired}' (under UpdateReplacePolicy: Retain the old one is kept instead); the CREATE fails if a ${args.noun} named '${shownDesired}' already exists, after the DELETE. If the template did not change this name, the state record was left by an earlier deploy that wrote to '${shownDesired}': check that ${args.noun} before re-deploying. Otherwise keep the name '${shownRecorded}'`);
|
|
32173
32173
|
}
|
|
32174
32174
|
function secretNamePairs(values) {
|
|
32175
32175
|
return values.map((value) => [value, typeof value === "string" ? value : void 0]);
|
|
@@ -33200,7 +33200,7 @@ function enforceIcebergTableInputAbsent(logicalId, resourceType, properties, opt
|
|
|
33200
33200
|
throw new ProvisioningError(icebergTableInputRefusalMessage(logicalId, key, "create"), resourceType, logicalId);
|
|
33201
33201
|
}
|
|
33202
33202
|
function icebergTableInputRefusalMessage(logicalId, key, mode) {
|
|
33203
|
-
return `AWS::Glue::Table ${logicalId}: OpenTableFormatInput.IcebergInput.${key} ${mode === "create" ? `cannot be deployed by AWS in any shape, so cdkd refuses it before calling Glue
|
|
33203
|
+
return `AWS::Glue::Table ${logicalId}: OpenTableFormatInput.IcebergInput.${key} ${mode === "create" ? `cannot be deployed by AWS in any shape, so cdkd refuses it before calling Glue.` : mode === "create-replay" ? "cannot be deployed by AWS in any shape, so cdkd normally refuses it before calling Glue — but this create is REPLAYING a historical cdkd STATE record (a rollback reverse-replacement re-creating the OLD table), not your template, and refusing would leave that table unrestorable with no template-side remedy, only a hand-edit of state.json. cdkd therefore warns and proceeds. The re-created table is DEGRADED exactly as the original was: under the CFn spelling IcebergTableInput the AWS SDK serializer drops the unknown member, so the table comes back without its Iceberg metadata; under the SDK spelling CreateIcebergTableInput the value IS sent and Glue rejects the call, failing this one rollback operation. Either way, fix it forward with 'cdkd deploy' using the working shape below." : "cannot be deployed by AWS in any shape and is IGNORED on update — cdkd does not wire Glue's update-only UpdateOpenTableFormatInput shape, so it forwards nothing here and only warns. A CREATE of this table would be refused outright."}\n Measured against AWS: glue:CreateTable — the API cdkd calls — rejects every Iceberg table spec ("Location information cannot be null while creating an iceberg table" without a TableInput.StorageDescriptor, "Table metadata information present at multiple parts of input request" with one), and CloudFormation rolls the same template back with "Table metadata is expected only via TableInput or via IcebergTableInputProperties inside OpenTableFormatInput" — a property name that exists in neither the CFn registry schema (IcebergInput.IcebergTableInput) nor @aws-sdk/client-glue (IcebergInput.CreateIcebergTableInput).\n Working shape — put the table metadata in TableInput and leave IcebergInput carrying only the create-time directive:\n TableInput: { Name, TableType: 'EXTERNAL_TABLE', StorageDescriptor: { Location: 's3://your-bucket/prefix/', Columns: [...] } }\n OpenTableFormatInput: { IcebergInput: { MetadataOperation: 'CREATE' } } // Version: '2' is also accepted\n Glue then writes the Iceberg metadata itself — the created table comes back with Parameters.table_type = ICEBERG and a populated Parameters.metadata_location.`;
|
|
33204
33204
|
}
|
|
33205
33205
|
function buildEncryptionConfiguration(input) {
|
|
33206
33206
|
const result = {};
|
|
@@ -37024,7 +37024,7 @@ var EFSProvider = class {
|
|
|
37024
37024
|
"AccessPointTags"
|
|
37025
37025
|
])]
|
|
37026
37026
|
]);
|
|
37027
|
-
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::EFS::FileSystem", /* @__PURE__ */ new Map([["ReplicationConfiguration", "Cross-region EFS replication (CreateReplicationConfiguration) provisions a separate destination file system in another region with its own lifecycle, KMS key, and availability-zone placement; replicating + then tearing down the destination on destroy is a multi-resource, cross-region orchestration that is out of scope for the single-resource SDK provider.
|
|
37027
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::EFS::FileSystem", /* @__PURE__ */ new Map([["ReplicationConfiguration", "Cross-region EFS replication (CreateReplicationConfiguration) provisions a separate destination file system in another region with its own lifecycle, KMS key, and availability-zone placement; replicating + then tearing down the destination on destroy is a multi-resource, cross-region orchestration that is out of scope for the single-resource SDK provider."]])], ["AWS::EFS::AccessPoint", /* @__PURE__ */ new Map([["ClientToken", "cdkd supplies its own retry-stable ClientToken on CreateAccessPoint, so a template-supplied value would be overwritten. The SDK does not own this field either: an omitted ClientToken is auto-filled with a FRESH uuid per attempt, which leaves a retried 500 free to mint a second access point, while a caller-supplied value goes on the wire verbatim."]])]]);
|
|
37028
37028
|
getClient() {
|
|
37029
37029
|
if (!this.client) {
|
|
37030
37030
|
this.client = new EFSClient({
|
|
@@ -40355,7 +40355,7 @@ var FirehoseProvider = class {
|
|
|
40355
40355
|
if (activeDest && !SUPPORTED_UPDATE_DESTINATIONS.has(activeDest)) {
|
|
40356
40356
|
const nextDest = properties[activeDest] ?? {};
|
|
40357
40357
|
const prevDest = previousProperties[activeDest] ?? {};
|
|
40358
|
-
if (JSON.stringify(nextDest) !== JSON.stringify(prevDest)) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `In-place update for '${activeDest}' on AWS::KinesisFirehose::DeliveryStream is not yet implemented in cdkd (AWS exposes UpdateDestination for it
|
|
40358
|
+
if (JSON.stringify(nextDest) !== JSON.stringify(prevDest)) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `In-place update for '${activeDest}' on AWS::KinesisFirehose::DeliveryStream is not yet implemented in cdkd (AWS exposes UpdateDestination for it). Re-deploy with cdkd deploy --replace.`);
|
|
40359
40359
|
}
|
|
40360
40360
|
const nextTagsOk = isReadableTagList(properties["Tags"]);
|
|
40361
40361
|
const prevTagsOk = isReadableTagList(previousProperties["Tags"]);
|
|
@@ -44069,14 +44069,14 @@ var NestedStackProvider = class {
|
|
|
44069
44069
|
["Description", "CFn-only informational — no semantic effect on the recursive deploy"],
|
|
44070
44070
|
["DisableRollback", "CFn-only — cdkd controls rollback via the top-level deploy-engine --no-rollback flag, not per nested stack"],
|
|
44071
44071
|
["EnableTerminationProtection", "CFn-only per-nested-stack flag — cdkd records stack-level terminationProtection at CDK synth time (parent only) and `cdkd destroy` consults that for refusal"],
|
|
44072
|
-
["NotificationARNs", "CFn-only SNS-on-stack-event surface — cdkd has no equivalent
|
|
44072
|
+
["NotificationARNs", "CFn-only SNS-on-stack-event surface — cdkd has no equivalent"],
|
|
44073
44073
|
["RoleARN", "CFn-only role-assumption — cdkd uses the caller credentials directly, no per-resource role assumption"],
|
|
44074
44074
|
["StackName", "cdkd derives the child stack name as `<parent>~<logicalId>` per design §3 (state-key uniqueness); a user-provided StackName has no effect"],
|
|
44075
44075
|
["StackPolicyBody", "CFn-only stack-update policy — cdkd has no equivalent (per-resource diff replaces stack-level policy)"],
|
|
44076
44076
|
["StackPolicyURL", "CFn-only stack-update policy URL — cdkd has no equivalent"],
|
|
44077
44077
|
["StackStatusReason", "CFn-only read-only output — never a real input property"],
|
|
44078
44078
|
["Tags", "CFn-only — cdkd does not tag the synthesized \"stack\" (the parent's synthesized ARN is a cdkd-local placeholder, not a real AWS resource)"],
|
|
44079
|
-
["TimeoutInMinutes", "CFn-only stack-create deadline — cdkd uses per-resource --resource-timeout instead
|
|
44079
|
+
["TimeoutInMinutes", "CFn-only stack-create deadline — cdkd uses per-resource --resource-timeout instead"]
|
|
44080
44080
|
])]]);
|
|
44081
44081
|
async create(logicalId, resourceType, properties, context) {
|
|
44082
44082
|
const ctx = this.requireContext();
|
|
@@ -44764,4 +44764,4 @@ var ACMCertificateProvider = class {
|
|
|
44764
44764
|
|
|
44765
44765
|
//#endregion
|
|
44766
44766
|
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 };
|
|
44767
|
-
//# sourceMappingURL=provider-classes-
|
|
44767
|
+
//# sourceMappingURL=provider-classes-uUFRfL9s.js.map
|