@go-to-k/cdkd 0.280.0 → 0.280.2
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-XOMGgJrK.js → asg-provider-CwKNCS78.js} +2 -2
- package/dist/{asg-provider-XOMGgJrK.js.map → asg-provider-CwKNCS78.js.map} +1 -1
- package/dist/cli.js +101 -24
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-DRLo8PHT.js → deploy-engine-DK0y5OP8.js} +3 -3
- package/dist/{deploy-engine-DRLo8PHT.js.map → deploy-engine-DK0y5OP8.js.map} +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as DiffCalculator, $t as resolveBucketRegion, A as red, At as getDockerImageBySourceHash, B as isTerminationProtectionPropagationError, Bt as resolveStateBucketWithDefaultAndSource, C as isStatefulRecreateTargetSync, Ct as validateContainerRepoName, D as cyan, Dt as runDockerForeground, E as bold, En as withErrorHandling, Et as getDockerCmd, F as ProviderRegistry, Ft as resolveApp, G as normalizeAwsTagsToCfn, Gt as CFN_TEMPLATE_URL_LIMIT, H as cfnRefValueFromPhysicalId, Ht as stateBucketExistenceConfirmed, I as findActionableSilentDrops, It as resolveAutoAssetStorage, J as readConfigString, Jt as uploadCfnTemplate, K as resolveExplicitPhysicalId, Kt as MIGRATE_TMP_PREFIX, L as CloudControlProvider, Lt as resolveCaptureObservedState, M as IAMRoleProvider, Mt as synthesisStatusMessage, N as collectInlinePolicyNamesManagedBySiblings, Nt as getDefaultStateBucketName, O as gray, Ot as runDockerStreaming, P as clearOnUpdateRemoval, Pt as getLegacyStateBucketName, Q as applyRoleArnIfSet, R as slowCcOperationTimeoutMs, Rt as resolveSkipPrefix, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as validateAssetBucketName, T as formatResourceLine, Tn as normalizeAwsError, Tt as formatDockerLoginError, U as refStateLookupFromResource, Ut as warnDeprecatedNoPrefixCliFlag, V as IntrinsicFunctionResolver, Vt as resolveUseCdkBootstrapAssets, W as WAFv2WebACLProvider, Wt as CFN_TEMPLATE_BODY_LIMIT, X as requireConfigArray, Xt as AssemblyReader, Y as replayWarn, Yt as expectedOwnerParam, Z as requireConfigString, Zt as processStackMessages, _ as createPreDeleteFinalSnapshot, _n as ResourceTimeoutError, _t as AssetModeResolver, a as DeploymentEventsStore, an as CdkdError, at as TemplateParser, b as unsupportedFinalSnapshotError, bn as StackTerminationProtectionError, bt as getBootstrapMarkerKey, c as replayFailedOperations, cn as DeployCancelledError, ct as rebuildClientForBucketRegion, d as IMPLICIT_DELETE_DEPENDENCIES, dn as LocalStartServiceError, dt as stringifyValue, en as AwsClients, et as describeTypeWithThrottleRetry, f as computeImplicitDeleteEdges, ft as WorkGraph, g as ccRoutedFinalSnapshotError, gn as ProvisioningError, gt as rewriteTemplateAssetReferences, h as buildFinalSnapshotIdentifier, hn as PartialFailureError, ht as loadPublishableAssetManifest, i as DeploymentEventsReader, it as DagBuilder, j as yellow, jt as Synthesizer, k as green, kt as AssetManifestLoader, l as replayRollback, ln as LocalInvokeBuildError$1, lt as shouldRetainResource, m as PRE_DELETE_SNAPSHOT_TYPES, mn as NestedStackChildDirectDestroyError, mt as createAssetRedirectResolver, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resetAwsClients, nt as isRetryableTransientError, o as planFailedOps, ot as LockManager, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as MissingCdkCliError, pt as buildAssetRedirectMap, q as assertRegionMatch, qt as findLargeInlineResources, r as DeployEngine, rn as setAwsClients, rt as isThrottlingError, s as planRollback, st as S3StateBackend, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as getAwsClients, tt as withRetry, u as withResourceDeadline, un as LocalMigrateError, ut as AssetPublisher, v as isFinalSnapshotError, vn as ResourceUpdateNotSupportedError, vt as BOOTSTRAP_MARKER_PREFIX, w as renderStatefulReason, wt as buildDockerImage, x as extractDeploymentEventError, xt as parseBootstrapMarker, y as refusesFinalSnapshot, yn as StackHasActiveImportsError, yt as ensureAssetStorage, z as disableInstanceApiTermination, zt as resolveStateBucketWithDefault } from "./deploy-engine-
|
|
2
|
+
import { $ as DiffCalculator, $t as resolveBucketRegion, A as red, At as getDockerImageBySourceHash, B as isTerminationProtectionPropagationError, Bt as resolveStateBucketWithDefaultAndSource, C as isStatefulRecreateTargetSync, Ct as validateContainerRepoName, D as cyan, Dt as runDockerForeground, E as bold, En as withErrorHandling, Et as getDockerCmd, F as ProviderRegistry, Ft as resolveApp, G as normalizeAwsTagsToCfn, Gt as CFN_TEMPLATE_URL_LIMIT, H as cfnRefValueFromPhysicalId, Ht as stateBucketExistenceConfirmed, I as findActionableSilentDrops, It as resolveAutoAssetStorage, J as readConfigString, Jt as uploadCfnTemplate, K as resolveExplicitPhysicalId, Kt as MIGRATE_TMP_PREFIX, L as CloudControlProvider, Lt as resolveCaptureObservedState, M as IAMRoleProvider, Mt as synthesisStatusMessage, N as collectInlinePolicyNamesManagedBySiblings, Nt as getDefaultStateBucketName, O as gray, Ot as runDockerStreaming, P as clearOnUpdateRemoval, Pt as getLegacyStateBucketName, Q as applyRoleArnIfSet, R as slowCcOperationTimeoutMs, Rt as resolveSkipPrefix, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as validateAssetBucketName, T as formatResourceLine, Tn as normalizeAwsError, Tt as formatDockerLoginError, U as refStateLookupFromResource, Ut as warnDeprecatedNoPrefixCliFlag, V as IntrinsicFunctionResolver, Vt as resolveUseCdkBootstrapAssets, W as WAFv2WebACLProvider, Wt as CFN_TEMPLATE_BODY_LIMIT, X as requireConfigArray, Xt as AssemblyReader, Y as replayWarn, Yt as expectedOwnerParam, Z as requireConfigString, Zt as processStackMessages, _ as createPreDeleteFinalSnapshot, _n as ResourceTimeoutError, _t as AssetModeResolver, a as DeploymentEventsStore, an as CdkdError, at as TemplateParser, b as unsupportedFinalSnapshotError, bn as StackTerminationProtectionError, bt as getBootstrapMarkerKey, c as replayFailedOperations, cn as DeployCancelledError, ct as rebuildClientForBucketRegion, d as IMPLICIT_DELETE_DEPENDENCIES, dn as LocalStartServiceError, dt as stringifyValue, en as AwsClients, et as describeTypeWithThrottleRetry, f as computeImplicitDeleteEdges, ft as WorkGraph, g as ccRoutedFinalSnapshotError, gn as ProvisioningError, gt as rewriteTemplateAssetReferences, h as buildFinalSnapshotIdentifier, hn as PartialFailureError, ht as loadPublishableAssetManifest, i as DeploymentEventsReader, it as DagBuilder, j as yellow, jt as Synthesizer, k as green, kt as AssetManifestLoader, l as replayRollback, ln as LocalInvokeBuildError$1, lt as shouldRetainResource, m as PRE_DELETE_SNAPSHOT_TYPES, mn as NestedStackChildDirectDestroyError, mt as createAssetRedirectResolver, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resetAwsClients, nt as isRetryableTransientError, o as planFailedOps, ot as LockManager, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as MissingCdkCliError, pt as buildAssetRedirectMap, q as assertRegionMatch, qt as findLargeInlineResources, r as DeployEngine, rn as setAwsClients, rt as isThrottlingError, s as planRollback, st as S3StateBackend, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as getAwsClients, tt as withRetry, u as withResourceDeadline, un as LocalMigrateError, ut as AssetPublisher, v as isFinalSnapshotError, vn as ResourceUpdateNotSupportedError, vt as BOOTSTRAP_MARKER_PREFIX, w as renderStatefulReason, wt as buildDockerImage, x as extractDeploymentEventError, xt as parseBootstrapMarker, y as refusesFinalSnapshot, yn as StackHasActiveImportsError, yt as ensureAssetStorage, z as disableInstanceApiTermination, zt as resolveStateBucketWithDefault } from "./deploy-engine-DK0y5OP8.js";
|
|
3
3
|
import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as withSkipPrefix, i as runStackBuffered, n as getLogger, o as PATTERN_B_NAME_OPTIONS, p as withStackName, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-BYMEE-BS.js";
|
|
4
|
-
import { t as ASGProvider } from "./asg-provider-
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-CwKNCS78.js";
|
|
5
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
6
6
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
7
7
|
import { CopyObjectCommand, 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, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -4863,7 +4863,7 @@ function s3BucketDestinationPath(dest, destinationPath) {
|
|
|
4863
4863
|
* exported from there because `resolveS3BucketDestination` is S3-specific
|
|
4864
4864
|
* branch selection, not a shared shape guard — the two only share the wording.
|
|
4865
4865
|
*/
|
|
4866
|
-
function describeValue(value) {
|
|
4866
|
+
function describeValue$1(value) {
|
|
4867
4867
|
if (value === null) return "null";
|
|
4868
4868
|
if (Array.isArray(value)) return "an array";
|
|
4869
4869
|
if (typeof value === "string") return `a string ${JSON.stringify(value)}`;
|
|
@@ -5433,11 +5433,11 @@ var S3BucketProvider = class S3BucketProvider {
|
|
|
5433
5433
|
throw new Error(message);
|
|
5434
5434
|
};
|
|
5435
5435
|
if (dest === void 0 || dest === null) return;
|
|
5436
|
-
if (!isPlainObject$1(dest)) return drop(`${destinationPath} must be an object (got ${describeValue(dest)}) — check for an unresolved intrinsic or a mis-nested template value; the destination would otherwise be dropped from the request with no error`);
|
|
5436
|
+
if (!isPlainObject$1(dest)) return drop(`${destinationPath} must be an object (got ${describeValue$1(dest)}) — check for an unresolved intrinsic or a mis-nested template value; the destination would otherwise be dropped from the request with no error`);
|
|
5437
5437
|
const bag = isFlattenedDestination(dest) ? dest : dest["S3BucketDestination"];
|
|
5438
|
-
if (bag === void 0 || bag === null) return drop(`${destinationPath} carries neither a bucket (BucketArn / Bucket) nor a nested S3BucketDestination object (got ${describeValue(dest)}) — the destination would otherwise be dropped from the request with no error`);
|
|
5439
|
-
if (!isPlainObject$1(bag)) return drop(`${nestedPath} must be an object (got ${describeValue(bag)}) — check for an unresolved intrinsic or a mis-nested template value; the destination would otherwise be dropped from the request with no error`);
|
|
5440
|
-
if (!bag["BucketArn"] && !bag["Bucket"]) return drop(`${bag === dest ? destinationPath : nestedPath} has no destination bucket (BucketArn / Bucket) (got ${describeValue(bag)}) — the request would be rejected by S3, or silently carry no destination`);
|
|
5438
|
+
if (bag === void 0 || bag === null) return drop(`${destinationPath} carries neither a bucket (BucketArn / Bucket) nor a nested S3BucketDestination object (got ${describeValue$1(dest)}) — the destination would otherwise be dropped from the request with no error`);
|
|
5439
|
+
if (!isPlainObject$1(bag)) return drop(`${nestedPath} must be an object (got ${describeValue$1(bag)}) — check for an unresolved intrinsic or a mis-nested template value; the destination would otherwise be dropped from the request with no error`);
|
|
5440
|
+
if (!bag["BucketArn"] && !bag["Bucket"]) return drop(`${bag === dest ? destinationPath : nestedPath} has no destination bucket (BucketArn / Bucket) (got ${describeValue$1(bag)}) — the request would be rejected by S3, or silently carry no destination`);
|
|
5441
5441
|
return bag;
|
|
5442
5442
|
}
|
|
5443
5443
|
/**
|
|
@@ -43326,6 +43326,87 @@ const DEFAULT_EVENT_SELECTORS = Object.freeze([Object.freeze({
|
|
|
43326
43326
|
IncludeManagementEvents: true
|
|
43327
43327
|
})]);
|
|
43328
43328
|
/**
|
|
43329
|
+
* `undefined` for an absent / null / EMPTY optional string field.
|
|
43330
|
+
*
|
|
43331
|
+
* Module-scoped since issue #1565 so `create()` can use it too: an always-emit
|
|
43332
|
+
* placeholder can reach `create()` — `drift --accept` falls back to mutating
|
|
43333
|
+
* `properties` when `observedProperties` is absent, and the rollback executor
|
|
43334
|
+
* replays `previousState.properties` through `create()` on a reverse
|
|
43335
|
+
* replacement — and `CreateTrail` with `CloudWatchLogsLogGroupArn: ''` is an
|
|
43336
|
+
* UNPROBED shape that may 400 on ARN format. `''` there means "not
|
|
43337
|
+
* configured", which is exactly what omitting the field says.
|
|
43338
|
+
*
|
|
43339
|
+
* The update path is where the distinction between absent and `''` matters
|
|
43340
|
+
* (see {@link resolveCloudWatchLogsPair}); on create there is no previous
|
|
43341
|
+
* value to clear, so both collapse to "omit".
|
|
43342
|
+
*/
|
|
43343
|
+
function emptyToUndefined(v) {
|
|
43344
|
+
if (v === void 0 || v === null || v === "") return void 0;
|
|
43345
|
+
return v;
|
|
43346
|
+
}
|
|
43347
|
+
/**
|
|
43348
|
+
* Resolve the `CloudWatchLogsLogGroupArn` / `CloudWatchLogsRoleArn` pair for an
|
|
43349
|
+
* `UpdateTrail`, distinguishing an ABSENT desired side from an explicit `''`.
|
|
43350
|
+
*
|
|
43351
|
+
* The pair is all-or-nothing on AWS, so the two fields are decided TOGETHER —
|
|
43352
|
+
* the caller cannot build the half-configured request AWS rejects.
|
|
43353
|
+
*
|
|
43354
|
+
* - ABSENT (`undefined` / `null`) on BOTH sides -> send neither. The template
|
|
43355
|
+
* never declared them, and the live CFn A/B (2026-08-10) measured a template
|
|
43356
|
+
* removal as RETAINED, so sending nothing IS the parity behavior. `null`
|
|
43357
|
+
* counts as absent because a JSON state round-trip can produce one where the
|
|
43358
|
+
* template had nothing.
|
|
43359
|
+
* - BOTH `''` -> send both. `''` is the clear, which is what makes a
|
|
43360
|
+
* `drift --revert` of a console-side enable actually revert (issue #1565).
|
|
43361
|
+
* On an already-unwired trail that re-asserts a null field, which AWS accepts
|
|
43362
|
+
* as the no-op it is, and it rides an `UpdateTrail` this method issues
|
|
43363
|
+
* anyway. Deliberately NOT gated on "differs from the previous side": that
|
|
43364
|
+
* gate would also stop forwarding an UNCHANGED populated pair, which
|
|
43365
|
+
* `cloudtrail-provider-roundtrip.test.ts` pins as a wire-layer guarantee.
|
|
43366
|
+
* - BOTH populated -> send both verbatim.
|
|
43367
|
+
* - Anything else — a non-string value, or exactly ONE half populated -> send
|
|
43368
|
+
* NEITHER, and report it. Both shapes are unusable rather than meaningful:
|
|
43369
|
+
* coercing them would send `''` next to a real ARN (the request AWS rejects)
|
|
43370
|
+
* or, worse, read a malformed `null` as a CLEAR and silently disable a live
|
|
43371
|
+
* trail's CloudWatch Logs delivery — the
|
|
43372
|
+
* `malformed-value-must-not-read-as-removal` class this same file already
|
|
43373
|
+
* guards for `EventSelectors`. Leaving the pair alone is the non-destructive
|
|
43374
|
+
* reading, and the caller warns so the divergence is loud.
|
|
43375
|
+
*
|
|
43376
|
+
* Only the DESIRED side decides, which keeps the guard-the-desired-side-only
|
|
43377
|
+
* rule intact.
|
|
43378
|
+
*/
|
|
43379
|
+
function resolveCloudWatchLogsPair(properties) {
|
|
43380
|
+
const desiredGroup = properties["CloudWatchLogsLogGroupArn"];
|
|
43381
|
+
const desiredRole = properties["CloudWatchLogsRoleArn"];
|
|
43382
|
+
if (desiredGroup == null && desiredRole == null) return {
|
|
43383
|
+
logGroupArn: void 0,
|
|
43384
|
+
roleArn: void 0
|
|
43385
|
+
};
|
|
43386
|
+
if (typeof desiredGroup !== "string" || typeof desiredRole !== "string") return {
|
|
43387
|
+
logGroupArn: void 0,
|
|
43388
|
+
roleArn: void 0,
|
|
43389
|
+
unusable: `CloudWatchLogsLogGroupArn / CloudWatchLogsRoleArn must both be strings (got ${describeValue(desiredGroup)} / ${describeValue(desiredRole)}) — check for an unresolved intrinsic or a half-written state record`
|
|
43390
|
+
};
|
|
43391
|
+
if (desiredGroup === "" !== (desiredRole === "")) return {
|
|
43392
|
+
logGroupArn: void 0,
|
|
43393
|
+
roleArn: void 0,
|
|
43394
|
+
unusable: "CloudWatchLogsLogGroupArn / CloudWatchLogsRoleArn are all-or-nothing on AWS, but only one of them carries a value — sending the pair would be rejected"
|
|
43395
|
+
};
|
|
43396
|
+
return {
|
|
43397
|
+
logGroupArn: desiredGroup,
|
|
43398
|
+
roleArn: desiredRole
|
|
43399
|
+
};
|
|
43400
|
+
}
|
|
43401
|
+
/** Human-readable type for a warning, without echoing user data. */
|
|
43402
|
+
function describeValue(value) {
|
|
43403
|
+
if (value === null) return "null";
|
|
43404
|
+
if (value === void 0) return "nothing";
|
|
43405
|
+
if (Array.isArray(value)) return "an array";
|
|
43406
|
+
if (typeof value === "string") return value === "" ? "''" : "a string";
|
|
43407
|
+
return `a ${typeof value}`;
|
|
43408
|
+
}
|
|
43409
|
+
/**
|
|
43329
43410
|
* SDK Provider for AWS CloudTrail resources
|
|
43330
43411
|
*
|
|
43331
43412
|
* Supports:
|
|
@@ -43364,16 +43445,16 @@ var CloudTrailProvider = class {
|
|
|
43364
43445
|
const s3BucketName = properties["S3BucketName"];
|
|
43365
43446
|
if (!s3BucketName) throw new ProvisioningError(`S3BucketName is required for CloudTrail Trail ${logicalId}`, resourceType, logicalId);
|
|
43366
43447
|
const trailName = properties["TrailName"];
|
|
43367
|
-
const s3KeyPrefix = properties["S3KeyPrefix"];
|
|
43448
|
+
const s3KeyPrefix = emptyToUndefined(properties["S3KeyPrefix"]);
|
|
43368
43449
|
const isMultiRegionTrail = properties["IsMultiRegionTrail"];
|
|
43369
43450
|
const includeGlobalServiceEvents = properties["IncludeGlobalServiceEvents"];
|
|
43370
43451
|
const enableLogFileValidation = properties["EnableLogFileValidation"];
|
|
43371
43452
|
const isLogging = properties["IsLogging"];
|
|
43372
43453
|
const tags = properties["Tags"];
|
|
43373
|
-
const cloudWatchLogsLogGroupArn = properties["CloudWatchLogsLogGroupArn"];
|
|
43374
|
-
const cloudWatchLogsRoleArn = properties["CloudWatchLogsRoleArn"];
|
|
43375
|
-
const kmsKeyId = properties["KMSKeyId"];
|
|
43376
|
-
const snsTopicName = properties["SnsTopicName"];
|
|
43454
|
+
const cloudWatchLogsLogGroupArn = emptyToUndefined(properties["CloudWatchLogsLogGroupArn"]);
|
|
43455
|
+
const cloudWatchLogsRoleArn = emptyToUndefined(properties["CloudWatchLogsRoleArn"]);
|
|
43456
|
+
const kmsKeyId = emptyToUndefined(properties["KMSKeyId"]);
|
|
43457
|
+
const snsTopicName = emptyToUndefined(properties["SnsTopicName"]);
|
|
43377
43458
|
const isOrganizationTrail = properties["IsOrganizationTrail"];
|
|
43378
43459
|
const eventSelectors = properties["EventSelectors"];
|
|
43379
43460
|
const insightSelectors = properties["InsightSelectors"];
|
|
@@ -43425,19 +43506,17 @@ var CloudTrailProvider = class {
|
|
|
43425
43506
|
}
|
|
43426
43507
|
async update(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
43427
43508
|
this.logger.debug(`Updating CloudTrail Trail ${logicalId}: ${physicalId}`);
|
|
43428
|
-
const emptyToUndefined = (v) => {
|
|
43429
|
-
if (v === void 0 || v === null || v === "") return void 0;
|
|
43430
|
-
return v;
|
|
43431
|
-
};
|
|
43432
43509
|
const s3BucketName = properties["S3BucketName"];
|
|
43433
43510
|
const s3KeyPrefix = clearOnUpdateRemoval(emptyToUndefined(properties["S3KeyPrefix"]), emptyToUndefined(previousProperties["S3KeyPrefix"]), "");
|
|
43434
43511
|
const isMultiRegionTrail = clearOnUpdateRemoval(properties["IsMultiRegionTrail"], previousProperties["IsMultiRegionTrail"], false);
|
|
43435
43512
|
const includeGlobalServiceEvents = isMultiRegionTrail === false ? clearOnUpdateRemoval(properties["IncludeGlobalServiceEvents"], previousProperties["IncludeGlobalServiceEvents"], false) : properties["IncludeGlobalServiceEvents"];
|
|
43436
43513
|
const enableLogFileValidation = clearOnUpdateRemoval(properties["EnableLogFileValidation"], previousProperties["EnableLogFileValidation"], false);
|
|
43437
43514
|
const isLogging = properties["IsLogging"];
|
|
43438
|
-
const
|
|
43439
|
-
|
|
43440
|
-
const
|
|
43515
|
+
const cwPair = resolveCloudWatchLogsPair(properties);
|
|
43516
|
+
if (cwPair.unusable !== void 0) this.logger.warn(`CloudTrail Trail ${logicalId}: ${cwPair.unusable}. The trail's existing CloudWatch Logs wiring is left untouched for this update.`);
|
|
43517
|
+
const cloudWatchLogsLogGroupArn = cwPair.logGroupArn;
|
|
43518
|
+
const cloudWatchLogsRoleArn = cwPair.roleArn;
|
|
43519
|
+
const kmsKeyId = clearOnUpdateRemoval(emptyToUndefined(properties["KMSKeyId"]), emptyToUndefined(previousProperties["KMSKeyId"]), "");
|
|
43441
43520
|
const snsTopicName = clearOnUpdateRemoval(emptyToUndefined(properties["SnsTopicName"]), emptyToUndefined(previousProperties["SnsTopicName"]), "");
|
|
43442
43521
|
const isOrganizationTrail = properties["IsOrganizationTrail"];
|
|
43443
43522
|
try {
|
|
@@ -43618,10 +43697,8 @@ var CloudTrailProvider = class {
|
|
|
43618
43697
|
result["IsMultiRegionTrail"] = trail.IsMultiRegionTrail ?? false;
|
|
43619
43698
|
result["IncludeGlobalServiceEvents"] = trail.IncludeGlobalServiceEvents ?? true;
|
|
43620
43699
|
result["EnableLogFileValidation"] = trail.LogFileValidationEnabled ?? false;
|
|
43621
|
-
|
|
43622
|
-
|
|
43623
|
-
result["CloudWatchLogsRoleArn"] = trail.CloudWatchLogsRoleArn;
|
|
43624
|
-
}
|
|
43700
|
+
result["CloudWatchLogsLogGroupArn"] = trail.CloudWatchLogsLogGroupArn ?? "";
|
|
43701
|
+
result["CloudWatchLogsRoleArn"] = trail.CloudWatchLogsRoleArn ?? "";
|
|
43625
43702
|
result["KMSKeyId"] = trail.KmsKeyId ?? "";
|
|
43626
43703
|
result["SnsTopicName"] = trail.SnsTopicName ?? "";
|
|
43627
43704
|
result["IsOrganizationTrail"] = trail.IsOrganizationTrail ?? false;
|
|
@@ -68288,7 +68365,7 @@ function createMigrateCommand() {
|
|
|
68288
68365
|
*/
|
|
68289
68366
|
function buildProgram() {
|
|
68290
68367
|
const program = new Command();
|
|
68291
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.280.
|
|
68368
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.280.2");
|
|
68292
68369
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
68293
68370
|
const { profile } = actionCommand.optsWithGlobals();
|
|
68294
68371
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|