@go-to-k/cdkd 0.248.0 → 0.249.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-Dbl1_mwT.js → asg-provider-CMWe8LlY.js} +5 -6
- package/dist/{asg-provider-Dbl1_mwT.js.map → asg-provider-CMWe8LlY.js.map} +1 -1
- package/dist/cli.js +601 -256
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-D6U-Cm8B.js → deploy-engine-DqAyGFJu.js} +1461 -272
- package/dist/deploy-engine-DqAyGFJu.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/{logger-BzO-joNR.js → logger-BYMEE-BS.js} +1 -1
- package/dist/{logger-BzO-joNR.js.map → logger-BYMEE-BS.js.map} +1 -1
- package/package.json +5 -6
- package/dist/aws-clients-B15NAPbL.js +0 -435
- package/dist/aws-clients-B15NAPbL.js.map +0 -1
- package/dist/deploy-engine-D6U-Cm8B.js.map +0 -1
- package/dist/ec2-termination-protection-q-WGWgxa.js +0 -683
- package/dist/ec2-termination-protection-q-WGWgxa.js.map +0 -1
- package/dist/expected-bucket-owner-BjEfUnkA.js +0 -87
- package/dist/expected-bucket-owner-BjEfUnkA.js.map +0 -1
- package/dist/rolldown-runtime-CjeV3_4I.js +0 -18
package/dist/cli.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { $ as getDockerCmd, A as DiffCalculator, B as buildAssetRedirectMap, C as findActionableSilentDrops, Ct as resolveBucketRegion, D as refStateLookupFromResource, E as cfnRefValueFromPhysicalId, F as rebuildClientForBucketRegion, G as BOOTSTRAP_MARKER_PREFIX, H as loadPublishableAssetManifest, I as shouldRetainResource, J as parseBootstrapMarker, K as ensureAssetStorage, L as AssetPublisher, M as TemplateParser, N as LockManager, O as WAFv2WebACLProvider, P as S3StateBackend, Q as formatDockerLoginError, R as stringifyValue, S as ProviderRegistry, T as IntrinsicFunctionResolver, U as rewriteTemplateAssetReferences, V as createAssetRedirectResolver, W as AssetModeResolver, X as validateContainerRepoName, Y as validateAssetBucketName, Z as buildDockerImage, _ as green, _t as CFN_TEMPLATE_URL_LIMIT, a as withRetry, at as synthesisStatusMessage, b as IAMRoleProvider, bt as uploadCfnTemplate, c as computeImplicitDeleteEdges, ct as resolveApp, d as isStatefulRecreateTargetSync, dt as resolveSkipPrefix, et as runDockerForeground, f as renderStatefulReason, ft as resolveStateBucketWithDefault, g as gray, gt as CFN_TEMPLATE_BODY_LIMIT, h as cyan, ht as warnDeprecatedNoPrefixCliFlag, i as withResourceDeadline, it as Synthesizer, j as DagBuilder, k as applyRoleArnIfSet, l as extractDeploymentEventError, lt as resolveAutoAssetStorage, m as bold, mt as resolveUseCdkBootstrapAssets, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as AssetManifestLoader, o as isRetryableTransientError, ot as getDefaultStateBucketName, p as formatResourceLine, pt as resolveStateBucketWithDefaultAndSource, q as getBootstrapMarkerKey, r as DeployEngine, rt as getDockerImageBySourceHash, s as IMPLICIT_DELETE_DEPENDENCIES, st as getLegacyStateBucketName, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as runDockerStreaming, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, ut as resolveCaptureObservedState, v as red, vt as MIGRATE_TMP_PREFIX, w as CloudControlProvider, x as collectInlinePolicyNamesManagedBySiblings, xt as AssemblyReader, y as yellow, yt as findLargeInlineResources, z as WorkGraph } from "./deploy-engine-D6U-Cm8B.js";
|
|
6
|
-
import { t as expectedOwnerParam } from "./expected-bucket-owner-BjEfUnkA.js";
|
|
7
|
-
import { t as ASGProvider } from "./asg-provider-Dbl1_mwT.js";
|
|
2
|
+
import { $ as ensureAssetStorage, A as WAFv2WebACLProvider, B as LockManager, Bt as LocalInvokeBuildError$1, C as findActionableSilentDrops, Ct as CFN_TEMPLATE_BODY_LIMIT, D as IntrinsicFunctionResolver, Dt as uploadCfnTemplate, E as isTerminationProtectionPropagationError, Et as findLargeInlineResources, F as assertRegionMatch, Ft as setAwsClients, G as stringifyValue, Gt as NestedStackChildDirectDestroyError, H as rebuildClientForBucketRegion, Ht as LocalStartServiceError, I as applyRoleArnIfSet, J as createAssetRedirectResolver, Jt as ResourceTimeoutError, K as WorkGraph, Kt as PartialFailureError, L as DiffCalculator, Lt as CdkdError, M as matchesCdkPath, Mt as AwsClients, N as normalizeAwsTagsToCfn, Nt as getAwsClients, O as cfnRefValueFromPhysicalId, Ot as expectedOwnerParam, P as resolveExplicitPhysicalId, Pt as resetAwsClients, Q as BOOTSTRAP_MARKER_PREFIX, R as DagBuilder, S as ProviderRegistry, St as warnDeprecatedNoPrefixCliFlag, T as disableInstanceApiTermination, Tt as MIGRATE_TMP_PREFIX, U as shouldRetainResource, V as S3StateBackend, Vt as LocalMigrateError, W as AssetPublisher, Wt as MissingCdkCliError, X as rewriteTemplateAssetReferences, Xt as StackHasActiveImportsError, Y as loadPublishableAssetManifest, Yt as ResourceUpdateNotSupportedError, Z as AssetModeResolver, Zt as StackTerminationProtectionError, _ as green, _t as resolveCaptureObservedState, a as withRetry, at as formatDockerLoginError, b as IAMRoleProvider, bt as resolveStateBucketWithDefaultAndSource, c as computeImplicitDeleteEdges, ct as runDockerStreaming, d as isStatefulRecreateTargetSync, dt as Synthesizer, et as getBootstrapMarkerKey, f as renderStatefulReason, ft as synthesisStatusMessage, g as gray, gt as resolveAutoAssetStorage, h as cyan, ht as resolveApp, i as withResourceDeadline, it as buildDockerImage, j as CDK_PATH_TAG, jt as resolveBucketRegion, k as refStateLookupFromResource, kt as AssemblyReader, l as extractDeploymentEventError, lt as AssetManifestLoader, m as bold, mt as getLegacyStateBucketName, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as normalizeAwsError, nt as validateAssetBucketName, o as isRetryableTransientError, ot as getDockerCmd, p as formatResourceLine, pt as getDefaultStateBucketName, q as buildAssetRedirectMap, qt as ProvisioningError, r as DeployEngine, rn as withErrorHandling, rt as validateContainerRepoName, s as IMPLICIT_DELETE_DEPENDENCIES, st as runDockerForeground, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as parseBootstrapMarker, u as MULTI_REGION_RECREATE_BLOCKED_TYPES, ut as getDockerImageBySourceHash, v as red, vt as resolveSkipPrefix, w as CloudControlProvider, wt as CFN_TEMPLATE_URL_LIMIT, x as collectInlinePolicyNamesManagedBySiblings, xt as resolveUseCdkBootstrapAssets, y as yellow, yt as resolveStateBucketWithDefault, z as TemplateParser } from "./deploy-engine-DqAyGFJu.js";
|
|
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-CMWe8LlY.js";
|
|
8
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
9
6
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
10
7
|
import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListBucketsCommand, ListDirectoryBucketsCommand, 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";
|
|
@@ -321,7 +318,7 @@ function validateResourceTimeouts(opts) {
|
|
|
321
318
|
} else if (typeof globalWarn === "number" && globalWarn >= 18e5) throw new Error(`--resource-warn-after (${formatMs(globalWarn)}) must be less than --resource-timeout (default ${formatMs(DEFAULT_RESOURCE_TIMEOUT_MS)}). Pass --resource-timeout <duration> alongside it to raise the deadline.`);
|
|
322
319
|
const warnPerType = opts.resourceWarnAfter?.perTypeMs ?? {};
|
|
323
320
|
const timeoutPerType = timeout?.perTypeMs ?? {};
|
|
324
|
-
const types = new Set([...Object.keys(warnPerType), ...Object.keys(timeoutPerType)]);
|
|
321
|
+
const types = /* @__PURE__ */ new Set([...Object.keys(warnPerType), ...Object.keys(timeoutPerType)]);
|
|
325
322
|
for (const t of types) {
|
|
326
323
|
const explicitPerTypeWarn = warnPerType[t];
|
|
327
324
|
const explicitPerTypeTimeout = timeoutPerType[t];
|
|
@@ -1891,7 +1888,7 @@ const FLUSH_INTERVAL_MS = 2e3;
|
|
|
1891
1888
|
const FLUSH_EVENT_THRESHOLD = 50;
|
|
1892
1889
|
/** Build-time cdkd version, with a dev fallback for non-built contexts. */
|
|
1893
1890
|
function getCdkdVersion() {
|
|
1894
|
-
return "0.
|
|
1891
|
+
return "0.249.0";
|
|
1895
1892
|
}
|
|
1896
1893
|
/**
|
|
1897
1894
|
* Generate a time-sortable unique run id, e.g.
|
|
@@ -2924,7 +2921,7 @@ function collectCrossStackRefs(node, onRef) {
|
|
|
2924
2921
|
var IAMPolicyProvider = class {
|
|
2925
2922
|
iamClient;
|
|
2926
2923
|
logger = getLogger().child("IAMPolicyProvider");
|
|
2927
|
-
handledProperties = new Map([["AWS::IAM::Policy", new Set([
|
|
2924
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::IAM::Policy", /* @__PURE__ */ new Set([
|
|
2928
2925
|
"PolicyName",
|
|
2929
2926
|
"PolicyDocument",
|
|
2930
2927
|
"Roles",
|
|
@@ -3258,7 +3255,7 @@ var IAMPolicyProvider = class {
|
|
|
3258
3255
|
var IAMManagedPolicyProvider = class {
|
|
3259
3256
|
iamClient;
|
|
3260
3257
|
logger = getLogger().child("IAMManagedPolicyProvider");
|
|
3261
|
-
handledProperties = new Map([["AWS::IAM::ManagedPolicy", new Set([
|
|
3258
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::IAM::ManagedPolicy", /* @__PURE__ */ new Set([
|
|
3262
3259
|
"ManagedPolicyName",
|
|
3263
3260
|
"Description",
|
|
3264
3261
|
"Path",
|
|
@@ -3759,7 +3756,7 @@ function derivePolicyNameFromArn(arn) {
|
|
|
3759
3756
|
var IAMInstanceProfileProvider = class {
|
|
3760
3757
|
iamClient;
|
|
3761
3758
|
logger = getLogger().child("IAMInstanceProfileProvider");
|
|
3762
|
-
handledProperties = new Map([["AWS::IAM::InstanceProfile", new Set([
|
|
3759
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::IAM::InstanceProfile", /* @__PURE__ */ new Set([
|
|
3763
3760
|
"InstanceProfileName",
|
|
3764
3761
|
"Path",
|
|
3765
3762
|
"Roles"
|
|
@@ -3979,8 +3976,8 @@ var IAMInstanceProfileProvider = class {
|
|
|
3979
3976
|
var IAMUserGroupProvider = class {
|
|
3980
3977
|
iamClient;
|
|
3981
3978
|
logger = getLogger().child("IAMUserGroupProvider");
|
|
3982
|
-
handledProperties = new Map([
|
|
3983
|
-
["AWS::IAM::User", new Set([
|
|
3979
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
3980
|
+
["AWS::IAM::User", /* @__PURE__ */ new Set([
|
|
3984
3981
|
"UserName",
|
|
3985
3982
|
"Path",
|
|
3986
3983
|
"Tags",
|
|
@@ -3990,13 +3987,13 @@ var IAMUserGroupProvider = class {
|
|
|
3990
3987
|
"Policies",
|
|
3991
3988
|
"PermissionsBoundary"
|
|
3992
3989
|
])],
|
|
3993
|
-
["AWS::IAM::Group", new Set([
|
|
3990
|
+
["AWS::IAM::Group", /* @__PURE__ */ new Set([
|
|
3994
3991
|
"GroupName",
|
|
3995
3992
|
"Path",
|
|
3996
3993
|
"ManagedPolicyArns",
|
|
3997
3994
|
"Policies"
|
|
3998
3995
|
])],
|
|
3999
|
-
["AWS::IAM::UserToGroupAddition", new Set(["GroupName", "Users"])]
|
|
3996
|
+
["AWS::IAM::UserToGroupAddition", /* @__PURE__ */ new Set(["GroupName", "Users"])]
|
|
4000
3997
|
]);
|
|
4001
3998
|
constructor() {
|
|
4002
3999
|
const awsClients = getAwsClients();
|
|
@@ -4880,7 +4877,7 @@ var IAMUserGroupProvider = class {
|
|
|
4880
4877
|
var S3BucketProvider = class {
|
|
4881
4878
|
s3Client;
|
|
4882
4879
|
logger = getLogger().child("S3BucketProvider");
|
|
4883
|
-
handledProperties = new Map([["AWS::S3::Bucket", new Set([
|
|
4880
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::S3::Bucket", /* @__PURE__ */ new Set([
|
|
4884
4881
|
"BucketName",
|
|
4885
4882
|
"VersioningConfiguration",
|
|
4886
4883
|
"Tags",
|
|
@@ -4901,7 +4898,7 @@ var S3BucketProvider = class {
|
|
|
4901
4898
|
"ObjectLockConfiguration",
|
|
4902
4899
|
"ObjectLockEnabled"
|
|
4903
4900
|
])]]);
|
|
4904
|
-
unhandledByDesign = new Map([["AWS::S3::Bucket", new Map([["AccessControl", "Legacy canned ACL; AWS disables ACLs by default since 2023-04 — use BucketOwnershipControls + BucketPolicy / PublicAccessBlockConfiguration instead"]])]]);
|
|
4901
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::S3::Bucket", /* @__PURE__ */ new Map([["AccessControl", "Legacy canned ACL; AWS disables ACLs by default since 2023-04 — use BucketOwnershipControls + BucketPolicy / PublicAccessBlockConfiguration instead"]])]]);
|
|
4905
4902
|
constructor() {
|
|
4906
4903
|
const awsClients = getAwsClients();
|
|
4907
4904
|
this.s3Client = awsClients.s3;
|
|
@@ -6460,7 +6457,7 @@ function findTemplateCanonicalUser(awsStmt, templateStmts) {
|
|
|
6460
6457
|
var S3BucketPolicyProvider = class {
|
|
6461
6458
|
s3Client;
|
|
6462
6459
|
logger = getLogger().child("S3BucketPolicyProvider");
|
|
6463
|
-
handledProperties = new Map([["AWS::S3::BucketPolicy", new Set(["Bucket", "PolicyDocument"])]]);
|
|
6460
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::S3::BucketPolicy", /* @__PURE__ */ new Set(["Bucket", "PolicyDocument"])]]);
|
|
6464
6461
|
constructor() {
|
|
6465
6462
|
const awsClients = getAwsClients();
|
|
6466
6463
|
this.s3Client = awsClients.s3;
|
|
@@ -6846,7 +6843,7 @@ var SQSQueueProvider = class {
|
|
|
6846
6843
|
sqsClient;
|
|
6847
6844
|
stsClient;
|
|
6848
6845
|
logger = getLogger().child("SQSQueueProvider");
|
|
6849
|
-
handledProperties = new Map([["AWS::SQS::Queue", new Set([
|
|
6846
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::SQS::Queue", /* @__PURE__ */ new Set([
|
|
6850
6847
|
"QueueName",
|
|
6851
6848
|
"VisibilityTimeout",
|
|
6852
6849
|
"MaximumMessageSize",
|
|
@@ -7189,7 +7186,7 @@ var SQSQueueProvider = class {
|
|
|
7189
7186
|
var SQSQueuePolicyProvider = class {
|
|
7190
7187
|
sqsClient;
|
|
7191
7188
|
logger = getLogger().child("SQSQueuePolicyProvider");
|
|
7192
|
-
handledProperties = new Map([["AWS::SQS::QueuePolicy", new Set(["Queues", "PolicyDocument"])]]);
|
|
7189
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::SQS::QueuePolicy", /* @__PURE__ */ new Set(["Queues", "PolicyDocument"])]]);
|
|
7193
7190
|
constructor() {
|
|
7194
7191
|
const awsClients = getAwsClients();
|
|
7195
7192
|
this.sqsClient = awsClients.sqs;
|
|
@@ -7396,7 +7393,7 @@ function isSqsQueueUrl(value) {
|
|
|
7396
7393
|
var SNSTopicProvider = class {
|
|
7397
7394
|
snsClient;
|
|
7398
7395
|
logger = getLogger().child("SNSTopicProvider");
|
|
7399
|
-
handledProperties = new Map([["AWS::SNS::Topic", new Set([
|
|
7396
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::SNS::Topic", /* @__PURE__ */ new Set([
|
|
7400
7397
|
"TopicName",
|
|
7401
7398
|
"FifoTopic",
|
|
7402
7399
|
"ContentBasedDeduplication",
|
|
@@ -8029,7 +8026,7 @@ function mapDeliveryStatusLogging(attrs, stateCaseMap = /* @__PURE__ */ new Map(
|
|
|
8029
8026
|
var SNSSubscriptionProvider = class {
|
|
8030
8027
|
snsClient;
|
|
8031
8028
|
logger = getLogger().child("SNSSubscriptionProvider");
|
|
8032
|
-
handledProperties = new Map([["AWS::SNS::Subscription", new Set([
|
|
8029
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::SNS::Subscription", /* @__PURE__ */ new Set([
|
|
8033
8030
|
"TopicArn",
|
|
8034
8031
|
"Protocol",
|
|
8035
8032
|
"Endpoint",
|
|
@@ -8041,7 +8038,7 @@ var SNSSubscriptionProvider = class {
|
|
|
8041
8038
|
"ReplayPolicy",
|
|
8042
8039
|
"SubscriptionRoleArn"
|
|
8043
8040
|
])]]);
|
|
8044
|
-
unhandledByDesign = new Map([["AWS::SNS::Subscription", new Map([["Region", "CFn-only cross-region subscription hint; cdkd uses the SDK client region directly and has no per-resource region override"]])]]);
|
|
8041
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::SNS::Subscription", /* @__PURE__ */ new Map([["Region", "CFn-only cross-region subscription hint; cdkd uses the SDK client region directly and has no per-resource region override"]])]]);
|
|
8045
8042
|
constructor() {
|
|
8046
8043
|
const awsClients = getAwsClients();
|
|
8047
8044
|
this.snsClient = awsClients.sns;
|
|
@@ -8210,7 +8207,7 @@ var SNSSubscriptionProvider = class {
|
|
|
8210
8207
|
*/
|
|
8211
8208
|
var SNSTopicPolicyProvider = class {
|
|
8212
8209
|
logger = getLogger().child("SNSTopicPolicyProvider");
|
|
8213
|
-
handledProperties = new Map([["AWS::SNS::TopicPolicy", new Set(["Topics", "PolicyDocument"])]]);
|
|
8210
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::SNS::TopicPolicy", /* @__PURE__ */ new Set(["Topics", "PolicyDocument"])]]);
|
|
8214
8211
|
/**
|
|
8215
8212
|
* Create an SNS topic policy
|
|
8216
8213
|
*
|
|
@@ -8446,7 +8443,7 @@ var LambdaFunctionProvider = class {
|
|
|
8446
8443
|
lambdaClient;
|
|
8447
8444
|
ec2Client;
|
|
8448
8445
|
logger = getLogger().child("LambdaFunctionProvider");
|
|
8449
|
-
handledProperties = new Map([["AWS::Lambda::Function", new Set([
|
|
8446
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Lambda::Function", /* @__PURE__ */ new Set([
|
|
8450
8447
|
"FunctionName",
|
|
8451
8448
|
"Code",
|
|
8452
8449
|
"Role",
|
|
@@ -9284,7 +9281,7 @@ var LambdaFunctionProvider = class {
|
|
|
9284
9281
|
var LambdaPermissionProvider = class {
|
|
9285
9282
|
lambdaClient;
|
|
9286
9283
|
logger = getLogger().child("LambdaPermissionProvider");
|
|
9287
|
-
handledProperties = new Map([["AWS::Lambda::Permission", new Set([
|
|
9284
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Lambda::Permission", /* @__PURE__ */ new Set([
|
|
9288
9285
|
"FunctionName",
|
|
9289
9286
|
"Action",
|
|
9290
9287
|
"Principal",
|
|
@@ -9506,7 +9503,7 @@ var LambdaPermissionProvider = class {
|
|
|
9506
9503
|
var LambdaUrlProvider = class {
|
|
9507
9504
|
lambdaClient;
|
|
9508
9505
|
logger = getLogger().child("LambdaUrlProvider");
|
|
9509
|
-
handledProperties = new Map([["AWS::Lambda::Url", new Set([
|
|
9506
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Lambda::Url", /* @__PURE__ */ new Set([
|
|
9510
9507
|
"TargetFunctionArn",
|
|
9511
9508
|
"AuthType",
|
|
9512
9509
|
"Qualifier",
|
|
@@ -9757,12 +9754,12 @@ function classifyEventSourceFromProperties(properties) {
|
|
|
9757
9754
|
DocumentDBEventSourceConfig: properties["DocumentDBEventSourceConfig"]
|
|
9758
9755
|
});
|
|
9759
9756
|
}
|
|
9760
|
-
const KINDS_WITH_FUNCTION_RESPONSE_TYPES = new Set([
|
|
9757
|
+
const KINDS_WITH_FUNCTION_RESPONSE_TYPES = /* @__PURE__ */ new Set([
|
|
9761
9758
|
"sqs",
|
|
9762
9759
|
"kinesis",
|
|
9763
9760
|
"dynamodb"
|
|
9764
9761
|
]);
|
|
9765
|
-
const KINDS_WITH_SOURCE_ACCESS_CONFIGURATIONS = new Set([
|
|
9762
|
+
const KINDS_WITH_SOURCE_ACCESS_CONFIGURATIONS = /* @__PURE__ */ new Set([
|
|
9766
9763
|
"kafka",
|
|
9767
9764
|
"mq",
|
|
9768
9765
|
"documentdb"
|
|
@@ -9775,7 +9772,7 @@ const KINDS_WITH_SOURCE_ACCESS_CONFIGURATIONS = new Set([
|
|
|
9775
9772
|
* so the removal-on-UPDATE path only restores `0` for these kinds — see the
|
|
9776
9773
|
* comment at the `MaximumBatchingWindowInSeconds` clear in `update()`.
|
|
9777
9774
|
*/
|
|
9778
|
-
const KINDS_WITH_ZERO_BATCHING_WINDOW_DEFAULT = new Set([
|
|
9775
|
+
const KINDS_WITH_ZERO_BATCHING_WINDOW_DEFAULT = /* @__PURE__ */ new Set([
|
|
9779
9776
|
"sqs",
|
|
9780
9777
|
"kinesis",
|
|
9781
9778
|
"dynamodb"
|
|
@@ -9788,7 +9785,7 @@ const KINDS_WITH_ZERO_BATCHING_WINDOW_DEFAULT = new Set([
|
|
|
9788
9785
|
* removal-on-UPDATE default-restore path is gated on this set (see the numeric
|
|
9789
9786
|
* restores in `update()`).
|
|
9790
9787
|
*/
|
|
9791
|
-
const KINDS_WITH_STREAM_NUMERICS = new Set(["kinesis", "dynamodb"]);
|
|
9788
|
+
const KINDS_WITH_STREAM_NUMERICS = /* @__PURE__ */ new Set(["kinesis", "dynamodb"]);
|
|
9792
9789
|
/**
|
|
9793
9790
|
* AWS Lambda Event Source Mapping Provider
|
|
9794
9791
|
*
|
|
@@ -9799,7 +9796,7 @@ const KINDS_WITH_STREAM_NUMERICS = new Set(["kinesis", "dynamodb"]);
|
|
|
9799
9796
|
var LambdaEventSourceMappingProvider = class {
|
|
9800
9797
|
lambdaClient;
|
|
9801
9798
|
logger = getLogger().child("LambdaEventSourceMappingProvider");
|
|
9802
|
-
handledProperties = new Map([["AWS::Lambda::EventSourceMapping", new Set([
|
|
9799
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Lambda::EventSourceMapping", /* @__PURE__ */ new Set([
|
|
9803
9800
|
"FunctionName",
|
|
9804
9801
|
"EventSourceArn",
|
|
9805
9802
|
"BatchSize",
|
|
@@ -10124,7 +10121,7 @@ var LambdaEventSourceMappingProvider = class {
|
|
|
10124
10121
|
var LambdaLayerVersionProvider = class {
|
|
10125
10122
|
lambdaClient;
|
|
10126
10123
|
logger = getLogger().child("LambdaLayerVersionProvider");
|
|
10127
|
-
handledProperties = new Map([["AWS::Lambda::LayerVersion", new Set([
|
|
10124
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Lambda::LayerVersion", /* @__PURE__ */ new Set([
|
|
10128
10125
|
"LayerName",
|
|
10129
10126
|
"Content",
|
|
10130
10127
|
"CompatibleRuntimes",
|
|
@@ -10357,7 +10354,7 @@ var LambdaLayerVersionProvider = class {
|
|
|
10357
10354
|
var LambdaEventInvokeConfigProvider = class {
|
|
10358
10355
|
lambdaClient;
|
|
10359
10356
|
logger = getLogger().child("LambdaEventInvokeConfigProvider");
|
|
10360
|
-
handledProperties = new Map([["AWS::Lambda::EventInvokeConfig", new Set([
|
|
10357
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Lambda::EventInvokeConfig", /* @__PURE__ */ new Set([
|
|
10361
10358
|
"FunctionName",
|
|
10362
10359
|
"Qualifier",
|
|
10363
10360
|
"MaximumEventAgeInSeconds",
|
|
@@ -10569,7 +10566,7 @@ function mapSSESpecification(raw) {
|
|
|
10569
10566
|
var DynamoDBTableProvider = class {
|
|
10570
10567
|
dynamoDBClient;
|
|
10571
10568
|
logger = getLogger().child("DynamoDBTableProvider");
|
|
10572
|
-
handledProperties = new Map([["AWS::DynamoDB::Table", new Set([
|
|
10569
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::DynamoDB::Table", /* @__PURE__ */ new Set([
|
|
10573
10570
|
"TableName",
|
|
10574
10571
|
"KeySchema",
|
|
10575
10572
|
"AttributeDefinitions",
|
|
@@ -10590,7 +10587,7 @@ var DynamoDBTableProvider = class {
|
|
|
10590
10587
|
"KinesisStreamSpecification",
|
|
10591
10588
|
"ContributorInsightsSpecification"
|
|
10592
10589
|
])]]);
|
|
10593
|
-
unhandledByDesign = new Map([["AWS::DynamoDB::Table", new Map([["ImportSourceSpecification", "S3 import uses the separate ImportTable API (not CreateTable) and is create-only with no readback; deferred to a dedicated import-from-S3 PR"]])]]);
|
|
10590
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::DynamoDB::Table", /* @__PURE__ */ new Map([["ImportSourceSpecification", "S3 import uses the separate ImportTable API (not CreateTable) and is create-only with no readback; deferred to a dedicated import-from-S3 PR"]])]]);
|
|
10594
10591
|
constructor() {
|
|
10595
10592
|
const awsClients = getAwsClients();
|
|
10596
10593
|
this.dynamoDBClient = awsClients.dynamoDB;
|
|
@@ -11510,7 +11507,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
11510
11507
|
* UpdateTable success.
|
|
11511
11508
|
*/
|
|
11512
11509
|
attributeCache = /* @__PURE__ */ new Map();
|
|
11513
|
-
handledProperties = new Map([["AWS::DynamoDB::GlobalTable", new Set([
|
|
11510
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::DynamoDB::GlobalTable", /* @__PURE__ */ new Set([
|
|
11514
11511
|
"TableName",
|
|
11515
11512
|
"KeySchema",
|
|
11516
11513
|
"AttributeDefinitions",
|
|
@@ -12842,7 +12839,7 @@ var LogsLogGroupProvider = class {
|
|
|
12842
12839
|
logsClient;
|
|
12843
12840
|
stsClient;
|
|
12844
12841
|
logger = getLogger().child("LogsLogGroupProvider");
|
|
12845
|
-
handledProperties = new Map([["AWS::Logs::LogGroup", new Set([
|
|
12842
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Logs::LogGroup", /* @__PURE__ */ new Set([
|
|
12846
12843
|
"LogGroupName",
|
|
12847
12844
|
"KmsKeyId",
|
|
12848
12845
|
"RetentionInDays",
|
|
@@ -13234,7 +13231,7 @@ var LogsLogGroupProvider = class {
|
|
|
13234
13231
|
var CloudWatchAlarmProvider = class {
|
|
13235
13232
|
cloudWatchClient;
|
|
13236
13233
|
logger = getLogger().child("CloudWatchAlarmProvider");
|
|
13237
|
-
handledProperties = new Map([["AWS::CloudWatch::Alarm", new Set([
|
|
13234
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CloudWatch::Alarm", /* @__PURE__ */ new Set([
|
|
13238
13235
|
"AlarmName",
|
|
13239
13236
|
"ComparisonOperator",
|
|
13240
13237
|
"EvaluationPeriods",
|
|
@@ -13272,7 +13269,7 @@ var CloudWatchAlarmProvider = class {
|
|
|
13272
13269
|
* SDK create input OR the CDK L1 is not backfillable), they are classified
|
|
13273
13270
|
* unhandled-by-design rather than left as a "not yet implemented" TODO.
|
|
13274
13271
|
*/
|
|
13275
|
-
unhandledByDesign = new Map([["AWS::CloudWatch::Alarm", new Map([["EvaluationCriteria", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."], ["EvaluationInterval", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."]])]]);
|
|
13272
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::CloudWatch::Alarm", /* @__PURE__ */ new Map([["EvaluationCriteria", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."], ["EvaluationInterval", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."]])]]);
|
|
13276
13273
|
constructor() {
|
|
13277
13274
|
const awsClients = getAwsClients();
|
|
13278
13275
|
this.cloudWatchClient = awsClients.cloudWatch;
|
|
@@ -13576,7 +13573,7 @@ var CloudWatchAlarmProvider = class {
|
|
|
13576
13573
|
var SecretsManagerSecretProvider = class {
|
|
13577
13574
|
smClient;
|
|
13578
13575
|
logger = getLogger().child("SecretsManagerSecretProvider");
|
|
13579
|
-
handledProperties = new Map([["AWS::SecretsManager::Secret", new Set([
|
|
13576
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::SecretsManager::Secret", /* @__PURE__ */ new Set([
|
|
13580
13577
|
"Name",
|
|
13581
13578
|
"GenerateSecretString",
|
|
13582
13579
|
"SecretString",
|
|
@@ -13858,7 +13855,7 @@ var SecretsManagerSecretProvider = class {
|
|
|
13858
13855
|
var SSMParameterProvider = class {
|
|
13859
13856
|
ssmClient;
|
|
13860
13857
|
logger = getLogger().child("SSMParameterProvider");
|
|
13861
|
-
handledProperties = new Map([["AWS::SSM::Parameter", new Set([
|
|
13858
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::SSM::Parameter", /* @__PURE__ */ new Set([
|
|
13862
13859
|
"Name",
|
|
13863
13860
|
"Type",
|
|
13864
13861
|
"Value",
|
|
@@ -14169,7 +14166,7 @@ var SSMParameterProvider = class {
|
|
|
14169
14166
|
var EventBridgeRuleProvider = class {
|
|
14170
14167
|
eventBridgeClient;
|
|
14171
14168
|
logger = getLogger().child("EventBridgeRuleProvider");
|
|
14172
|
-
handledProperties = new Map([["AWS::Events::Rule", new Set([
|
|
14169
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Events::Rule", /* @__PURE__ */ new Set([
|
|
14173
14170
|
"Name",
|
|
14174
14171
|
"Description",
|
|
14175
14172
|
"EventBusName",
|
|
@@ -14564,7 +14561,7 @@ function sanitizeDeadLetterConfig(value) {
|
|
|
14564
14561
|
var EventBridgeBusProvider = class {
|
|
14565
14562
|
eventBridgeClient;
|
|
14566
14563
|
logger = getLogger().child("EventBridgeBusProvider");
|
|
14567
|
-
handledProperties = new Map([["AWS::Events::EventBus", new Set([
|
|
14564
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Events::EventBus", /* @__PURE__ */ new Set([
|
|
14568
14565
|
"Name",
|
|
14569
14566
|
"Tags",
|
|
14570
14567
|
"EventSourceName",
|
|
@@ -14817,24 +14814,24 @@ var EventBridgeBusProvider = class {
|
|
|
14817
14814
|
var EC2Provider = class {
|
|
14818
14815
|
ec2Client;
|
|
14819
14816
|
logger = getLogger().child("EC2Provider");
|
|
14820
|
-
handledProperties = new Map([
|
|
14821
|
-
["AWS::EC2::VPC", new Set([
|
|
14817
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
14818
|
+
["AWS::EC2::VPC", /* @__PURE__ */ new Set([
|
|
14822
14819
|
"CidrBlock",
|
|
14823
14820
|
"InstanceTenancy",
|
|
14824
14821
|
"EnableDnsHostnames",
|
|
14825
14822
|
"EnableDnsSupport",
|
|
14826
14823
|
"Tags"
|
|
14827
14824
|
])],
|
|
14828
|
-
["AWS::EC2::Subnet", new Set([
|
|
14825
|
+
["AWS::EC2::Subnet", /* @__PURE__ */ new Set([
|
|
14829
14826
|
"VpcId",
|
|
14830
14827
|
"CidrBlock",
|
|
14831
14828
|
"AvailabilityZone",
|
|
14832
14829
|
"MapPublicIpOnLaunch",
|
|
14833
14830
|
"Tags"
|
|
14834
14831
|
])],
|
|
14835
|
-
["AWS::EC2::InternetGateway", new Set(["Tags"])],
|
|
14836
|
-
["AWS::EC2::VPCGatewayAttachment", new Set(["VpcId", "InternetGatewayId"])],
|
|
14837
|
-
["AWS::EC2::NatGateway", new Set([
|
|
14832
|
+
["AWS::EC2::InternetGateway", /* @__PURE__ */ new Set(["Tags"])],
|
|
14833
|
+
["AWS::EC2::VPCGatewayAttachment", /* @__PURE__ */ new Set(["VpcId", "InternetGatewayId"])],
|
|
14834
|
+
["AWS::EC2::NatGateway", /* @__PURE__ */ new Set([
|
|
14838
14835
|
"AllocationId",
|
|
14839
14836
|
"SubnetId",
|
|
14840
14837
|
"ConnectivityType",
|
|
@@ -14845,8 +14842,8 @@ var EC2Provider = class {
|
|
|
14845
14842
|
"MaxDrainDurationSeconds",
|
|
14846
14843
|
"Tags"
|
|
14847
14844
|
])],
|
|
14848
|
-
["AWS::EC2::RouteTable", new Set(["VpcId", "Tags"])],
|
|
14849
|
-
["AWS::EC2::Route", new Set([
|
|
14845
|
+
["AWS::EC2::RouteTable", /* @__PURE__ */ new Set(["VpcId", "Tags"])],
|
|
14846
|
+
["AWS::EC2::Route", /* @__PURE__ */ new Set([
|
|
14850
14847
|
"RouteTableId",
|
|
14851
14848
|
"DestinationCidrBlock",
|
|
14852
14849
|
"DestinationIpv6CidrBlock",
|
|
@@ -14857,8 +14854,8 @@ var EC2Provider = class {
|
|
|
14857
14854
|
"NetworkInterfaceId",
|
|
14858
14855
|
"VpcPeeringConnectionId"
|
|
14859
14856
|
])],
|
|
14860
|
-
["AWS::EC2::SubnetRouteTableAssociation", new Set(["SubnetId", "RouteTableId"])],
|
|
14861
|
-
["AWS::EC2::SecurityGroup", new Set([
|
|
14857
|
+
["AWS::EC2::SubnetRouteTableAssociation", /* @__PURE__ */ new Set(["SubnetId", "RouteTableId"])],
|
|
14858
|
+
["AWS::EC2::SecurityGroup", /* @__PURE__ */ new Set([
|
|
14862
14859
|
"GroupDescription",
|
|
14863
14860
|
"GroupName",
|
|
14864
14861
|
"VpcId",
|
|
@@ -14866,7 +14863,7 @@ var EC2Provider = class {
|
|
|
14866
14863
|
"SecurityGroupEgress",
|
|
14867
14864
|
"Tags"
|
|
14868
14865
|
])],
|
|
14869
|
-
["AWS::EC2::SecurityGroupIngress", new Set([
|
|
14866
|
+
["AWS::EC2::SecurityGroupIngress", /* @__PURE__ */ new Set([
|
|
14870
14867
|
"GroupId",
|
|
14871
14868
|
"IpProtocol",
|
|
14872
14869
|
"FromPort",
|
|
@@ -14878,7 +14875,7 @@ var EC2Provider = class {
|
|
|
14878
14875
|
"SourceSecurityGroupOwnerId",
|
|
14879
14876
|
"SourcePrefixListId"
|
|
14880
14877
|
])],
|
|
14881
|
-
["AWS::EC2::Instance", new Set([
|
|
14878
|
+
["AWS::EC2::Instance", /* @__PURE__ */ new Set([
|
|
14882
14879
|
"ImageId",
|
|
14883
14880
|
"InstanceType",
|
|
14884
14881
|
"KeyName",
|
|
@@ -14895,8 +14892,8 @@ var EC2Provider = class {
|
|
|
14895
14892
|
"EbsOptimized",
|
|
14896
14893
|
"CreditSpecification"
|
|
14897
14894
|
])],
|
|
14898
|
-
["AWS::EC2::NetworkAcl", new Set(["VpcId", "Tags"])],
|
|
14899
|
-
["AWS::EC2::NetworkAclEntry", new Set([
|
|
14895
|
+
["AWS::EC2::NetworkAcl", /* @__PURE__ */ new Set(["VpcId", "Tags"])],
|
|
14896
|
+
["AWS::EC2::NetworkAclEntry", /* @__PURE__ */ new Set([
|
|
14900
14897
|
"NetworkAclId",
|
|
14901
14898
|
"RuleNumber",
|
|
14902
14899
|
"Protocol",
|
|
@@ -14907,12 +14904,12 @@ var EC2Provider = class {
|
|
|
14907
14904
|
"PortRange",
|
|
14908
14905
|
"Icmp"
|
|
14909
14906
|
])],
|
|
14910
|
-
["AWS::EC2::SubnetNetworkAclAssociation", new Set(["SubnetId", "NetworkAclId"])]
|
|
14907
|
+
["AWS::EC2::SubnetNetworkAclAssociation", /* @__PURE__ */ new Set(["SubnetId", "NetworkAclId"])]
|
|
14911
14908
|
]);
|
|
14912
|
-
unhandledByDesign = new Map([
|
|
14913
|
-
["AWS::EC2::Instance", new Map([["ElasticGpuSpecifications", "AWS Elastic GPU end-of-life (announced 2023-11); no replacement API"], ["ElasticInferenceAccelerators", "AWS Elastic Inference end-of-life 2024-04; use AWS Inferentia / Trainium accelerator instance families instead"]])],
|
|
14914
|
-
["AWS::EC2::SecurityGroupIngress", new Map([["GroupName", "EC2-Classic-only — use GroupId for VPC security groups (EC2-Classic retired 2022-08-15)"], ["SourceSecurityGroupName", "EC2-Classic-only — use SourceSecurityGroupId for VPC peer security groups (EC2-Classic retired 2022-08-15)"]])],
|
|
14915
|
-
["AWS::EC2::NatGateway", new Map([["VpcId", "AWS derives the VPC from SubnetId; the ec2:CreateNatGateway API has no VpcId parameter"]])]
|
|
14909
|
+
unhandledByDesign = /* @__PURE__ */ new Map([
|
|
14910
|
+
["AWS::EC2::Instance", /* @__PURE__ */ new Map([["ElasticGpuSpecifications", "AWS Elastic GPU end-of-life (announced 2023-11); no replacement API"], ["ElasticInferenceAccelerators", "AWS Elastic Inference end-of-life 2024-04; use AWS Inferentia / Trainium accelerator instance families instead"]])],
|
|
14911
|
+
["AWS::EC2::SecurityGroupIngress", /* @__PURE__ */ new Map([["GroupName", "EC2-Classic-only — use GroupId for VPC security groups (EC2-Classic retired 2022-08-15)"], ["SourceSecurityGroupName", "EC2-Classic-only — use SourceSecurityGroupId for VPC peer security groups (EC2-Classic retired 2022-08-15)"]])],
|
|
14912
|
+
["AWS::EC2::NatGateway", /* @__PURE__ */ new Map([["VpcId", "AWS derives the VPC from SubnetId; the ec2:CreateNatGateway API has no VpcId parameter"]])]
|
|
14916
14913
|
]);
|
|
14917
14914
|
constructor() {
|
|
14918
14915
|
const awsClients = getAwsClients();
|
|
@@ -17283,9 +17280,9 @@ function isDefaultEgressRule(rule) {
|
|
|
17283
17280
|
var ApiGatewayProvider = class ApiGatewayProvider {
|
|
17284
17281
|
apiGatewayClient;
|
|
17285
17282
|
logger = getLogger().child("ApiGatewayProvider");
|
|
17286
|
-
handledProperties = new Map([
|
|
17287
|
-
["AWS::ApiGateway::Account", new Set(["CloudWatchRoleArn"])],
|
|
17288
|
-
["AWS::ApiGateway::Authorizer", new Set([
|
|
17283
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
17284
|
+
["AWS::ApiGateway::Account", /* @__PURE__ */ new Set(["CloudWatchRoleArn"])],
|
|
17285
|
+
["AWS::ApiGateway::Authorizer", /* @__PURE__ */ new Set([
|
|
17289
17286
|
"RestApiId",
|
|
17290
17287
|
"Name",
|
|
17291
17288
|
"Type",
|
|
@@ -17297,13 +17294,13 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
17297
17294
|
"IdentityValidationExpression",
|
|
17298
17295
|
"AuthorizerResultTtlInSeconds"
|
|
17299
17296
|
])],
|
|
17300
|
-
["AWS::ApiGateway::Resource", new Set([
|
|
17297
|
+
["AWS::ApiGateway::Resource", /* @__PURE__ */ new Set([
|
|
17301
17298
|
"RestApiId",
|
|
17302
17299
|
"ParentId",
|
|
17303
17300
|
"PathPart"
|
|
17304
17301
|
])],
|
|
17305
|
-
["AWS::ApiGateway::Deployment", new Set(["RestApiId", "Description"])],
|
|
17306
|
-
["AWS::ApiGateway::Stage", new Set([
|
|
17302
|
+
["AWS::ApiGateway::Deployment", /* @__PURE__ */ new Set(["RestApiId", "Description"])],
|
|
17303
|
+
["AWS::ApiGateway::Stage", /* @__PURE__ */ new Set([
|
|
17307
17304
|
"RestApiId",
|
|
17308
17305
|
"StageName",
|
|
17309
17306
|
"DeploymentId",
|
|
@@ -17313,7 +17310,7 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
17313
17310
|
"Variables",
|
|
17314
17311
|
"MethodSettings"
|
|
17315
17312
|
])],
|
|
17316
|
-
["AWS::ApiGateway::Method", new Set([
|
|
17313
|
+
["AWS::ApiGateway::Method", /* @__PURE__ */ new Set([
|
|
17317
17314
|
"RestApiId",
|
|
17318
17315
|
"ResourceId",
|
|
17319
17316
|
"HttpMethod",
|
|
@@ -17329,7 +17326,7 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
17329
17326
|
"MethodResponses"
|
|
17330
17327
|
])]
|
|
17331
17328
|
]);
|
|
17332
|
-
unhandledByDesign = new Map([["AWS::ApiGateway::Deployment", new Map([["StageName", "CFn-only convenience for inline-creating a Stage from a Deployment; declare AWS::ApiGateway::Stage explicitly to attach to this Deployment"], ["StageDescription", "CFn-only convenience for inline-creating a Stage; declare AWS::ApiGateway::Stage with the Description property instead"]])]]);
|
|
17329
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::ApiGateway::Deployment", /* @__PURE__ */ new Map([["StageName", "CFn-only convenience for inline-creating a Stage from a Deployment; declare AWS::ApiGateway::Stage explicitly to attach to this Deployment"], ["StageDescription", "CFn-only convenience for inline-creating a Stage; declare AWS::ApiGateway::Stage with the Description property instead"]])]]);
|
|
17333
17330
|
/** Maximum number of retries for IAM propagation delays */
|
|
17334
17331
|
static MAX_IAM_RETRIES = 3;
|
|
17335
17332
|
/** Delay between IAM propagation retries (ms) - exponential backoff */
|
|
@@ -18623,8 +18620,8 @@ var ApiGatewayV2Provider = class {
|
|
|
18623
18620
|
client;
|
|
18624
18621
|
providerRegion = process.env["AWS_REGION"];
|
|
18625
18622
|
logger = getLogger().child("ApiGatewayV2Provider");
|
|
18626
|
-
handledProperties = new Map([
|
|
18627
|
-
["AWS::ApiGatewayV2::Api", new Set([
|
|
18623
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
18624
|
+
["AWS::ApiGatewayV2::Api", /* @__PURE__ */ new Set([
|
|
18628
18625
|
"Name",
|
|
18629
18626
|
"ProtocolType",
|
|
18630
18627
|
"Description",
|
|
@@ -18636,7 +18633,7 @@ var ApiGatewayV2Provider = class {
|
|
|
18636
18633
|
"ApiKeySelectionExpression",
|
|
18637
18634
|
"IpAddressType"
|
|
18638
18635
|
])],
|
|
18639
|
-
["AWS::ApiGatewayV2::Stage", new Set([
|
|
18636
|
+
["AWS::ApiGatewayV2::Stage", /* @__PURE__ */ new Set([
|
|
18640
18637
|
"ApiId",
|
|
18641
18638
|
"StageName",
|
|
18642
18639
|
"AutoDeploy",
|
|
@@ -18645,7 +18642,7 @@ var ApiGatewayV2Provider = class {
|
|
|
18645
18642
|
"StageVariables",
|
|
18646
18643
|
"DefaultRouteSettings"
|
|
18647
18644
|
])],
|
|
18648
|
-
["AWS::ApiGatewayV2::Integration", new Set([
|
|
18645
|
+
["AWS::ApiGatewayV2::Integration", /* @__PURE__ */ new Set([
|
|
18649
18646
|
"ApiId",
|
|
18650
18647
|
"IntegrationType",
|
|
18651
18648
|
"IntegrationUri",
|
|
@@ -18655,7 +18652,7 @@ var ApiGatewayV2Provider = class {
|
|
|
18655
18652
|
"RequestParameters",
|
|
18656
18653
|
"Description"
|
|
18657
18654
|
])],
|
|
18658
|
-
["AWS::ApiGatewayV2::Route", new Set([
|
|
18655
|
+
["AWS::ApiGatewayV2::Route", /* @__PURE__ */ new Set([
|
|
18659
18656
|
"ApiId",
|
|
18660
18657
|
"RouteKey",
|
|
18661
18658
|
"Target",
|
|
@@ -18664,7 +18661,7 @@ var ApiGatewayV2Provider = class {
|
|
|
18664
18661
|
"AuthorizationScopes",
|
|
18665
18662
|
"OperationName"
|
|
18666
18663
|
])],
|
|
18667
|
-
["AWS::ApiGatewayV2::Authorizer", new Set([
|
|
18664
|
+
["AWS::ApiGatewayV2::Authorizer", /* @__PURE__ */ new Set([
|
|
18668
18665
|
"ApiId",
|
|
18669
18666
|
"AuthorizerType",
|
|
18670
18667
|
"Name",
|
|
@@ -18690,7 +18687,7 @@ var ApiGatewayV2Provider = class {
|
|
|
18690
18687
|
* Wiring them would require parsing OpenAPI semantics + a different
|
|
18691
18688
|
* mutation surface and is out of scope for the SDK-Provider safety net.
|
|
18692
18689
|
*/
|
|
18693
|
-
unhandledByDesign = new Map([["AWS::ApiGatewayV2::Api", new Map([
|
|
18690
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::ApiGatewayV2::Api", /* @__PURE__ */ new Map([
|
|
18694
18691
|
["Body", "OpenAPI/Swagger inline spec; routed through ImportApi, not the field-by-field CreateApi path."],
|
|
18695
18692
|
["BodyS3Location", "OpenAPI/Swagger spec on S3; routed through ImportApi, not the field-by-field CreateApi path."],
|
|
18696
18693
|
["FailOnWarnings", "OpenAPI-import-only flag; meaningful only on the ImportApi code path."],
|
|
@@ -19536,7 +19533,7 @@ var ApiGatewayV2Provider = class {
|
|
|
19536
19533
|
var CloudFrontOAIProvider = class {
|
|
19537
19534
|
cloudFrontClient;
|
|
19538
19535
|
logger = getLogger().child("CloudFrontOAIProvider");
|
|
19539
|
-
handledProperties = new Map([["AWS::CloudFront::CloudFrontOriginAccessIdentity", new Set(["CloudFrontOriginAccessIdentityConfig"])]]);
|
|
19536
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CloudFront::CloudFrontOriginAccessIdentity", /* @__PURE__ */ new Set(["CloudFrontOriginAccessIdentityConfig"])]]);
|
|
19540
19537
|
constructor() {
|
|
19541
19538
|
const awsClients = getAwsClients();
|
|
19542
19539
|
this.cloudFrontClient = awsClients.cloudFront;
|
|
@@ -19760,7 +19757,7 @@ const CACHE_BEHAVIOR_QUANTITY_FIELDS = [
|
|
|
19760
19757
|
var CloudFrontDistributionProvider = class {
|
|
19761
19758
|
cloudFrontClient;
|
|
19762
19759
|
logger = getLogger().child("CloudFrontDistributionProvider");
|
|
19763
|
-
handledProperties = new Map([["AWS::CloudFront::Distribution", new Set(["DistributionConfig", "Tags"])]]);
|
|
19760
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CloudFront::Distribution", /* @__PURE__ */ new Set(["DistributionConfig", "Tags"])]]);
|
|
19764
19761
|
constructor() {
|
|
19765
19762
|
const awsClients = getAwsClients();
|
|
19766
19763
|
this.cloudFrontClient = awsClients.cloudFront;
|
|
@@ -20460,7 +20457,7 @@ function camelToPascalCaseKeys(value, preserveKeys) {
|
|
|
20460
20457
|
var AgentCoreRuntimeProvider = class {
|
|
20461
20458
|
client;
|
|
20462
20459
|
logger = getLogger().child("AgentCoreRuntimeProvider");
|
|
20463
|
-
handledProperties = new Map([["AWS::BedrockAgentCore::Runtime", new Set([
|
|
20460
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::BedrockAgentCore::Runtime", /* @__PURE__ */ new Set([
|
|
20464
20461
|
"AgentRuntimeName",
|
|
20465
20462
|
"RoleArn",
|
|
20466
20463
|
"AgentRuntimeArtifact",
|
|
@@ -20695,7 +20692,7 @@ const DEFAULT_BROWSER_ID = "aws.browser.v1";
|
|
|
20695
20692
|
var AgentCoreBrowserProvider = class {
|
|
20696
20693
|
client;
|
|
20697
20694
|
logger = getLogger().child("AgentCoreBrowserProvider");
|
|
20698
|
-
handledProperties = new Map([["AWS::BedrockAgentCore::Browser", /* @__PURE__ */ new Set([])]]);
|
|
20695
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::BedrockAgentCore::Browser", /* @__PURE__ */ new Set([])]]);
|
|
20699
20696
|
constructor() {
|
|
20700
20697
|
const awsClients = getAwsClients();
|
|
20701
20698
|
this.client = awsClients.bedrockAgentCoreControl;
|
|
@@ -20810,7 +20807,7 @@ const DEFAULT_CODE_INTERPRETER_ID = "aws.codeinterpreter.v1";
|
|
|
20810
20807
|
var AgentCoreCodeInterpreterProvider = class {
|
|
20811
20808
|
client;
|
|
20812
20809
|
logger = getLogger().child("AgentCoreCodeInterpreterProvider");
|
|
20813
|
-
handledProperties = new Map([["AWS::BedrockAgentCore::CodeInterpreter", /* @__PURE__ */ new Set([])]]);
|
|
20810
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::BedrockAgentCore::CodeInterpreter", /* @__PURE__ */ new Set([])]]);
|
|
20814
20811
|
constructor() {
|
|
20815
20812
|
const awsClients = getAwsClients();
|
|
20816
20813
|
this.client = awsClients.bedrockAgentCoreControl;
|
|
@@ -20928,8 +20925,8 @@ var AgentCoreCodeInterpreterProvider = class {
|
|
|
20928
20925
|
* The `EvaluatorConfig` subtree keys whose values are free-form JSON
|
|
20929
20926
|
* documents (user/model-defined keys) that must NOT be case-converted.
|
|
20930
20927
|
*/
|
|
20931
|
-
const CFN_PRESERVE_KEYS = new Set(["AdditionalModelRequestFields"]);
|
|
20932
|
-
const SDK_PRESERVE_KEYS = new Set(["additionalModelRequestFields"]);
|
|
20928
|
+
const CFN_PRESERVE_KEYS = /* @__PURE__ */ new Set(["AdditionalModelRequestFields"]);
|
|
20929
|
+
const SDK_PRESERVE_KEYS = /* @__PURE__ */ new Set(["additionalModelRequestFields"]);
|
|
20933
20930
|
/**
|
|
20934
20931
|
* Extract the evaluator ID from an evaluator ARN
|
|
20935
20932
|
* (`arn:...:evaluator/<id>` → `<id>`). Falls back to the input verbatim
|
|
@@ -20960,7 +20957,7 @@ function tagMapToCfnList(tags) {
|
|
|
20960
20957
|
var AgentCoreEvaluatorProvider = class {
|
|
20961
20958
|
client;
|
|
20962
20959
|
logger = getLogger().child("AgentCoreEvaluatorProvider");
|
|
20963
|
-
handledProperties = new Map([["AWS::BedrockAgentCore::Evaluator", new Set([
|
|
20960
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::BedrockAgentCore::Evaluator", /* @__PURE__ */ new Set([
|
|
20964
20961
|
"EvaluatorName",
|
|
20965
20962
|
"Description",
|
|
20966
20963
|
"EvaluatorConfig",
|
|
@@ -21171,7 +21168,7 @@ var StepFunctionsProvider = class {
|
|
|
21171
21168
|
s3Client;
|
|
21172
21169
|
providerRegion = process.env["AWS_REGION"];
|
|
21173
21170
|
logger = getLogger().child("StepFunctionsProvider");
|
|
21174
|
-
handledProperties = new Map([["AWS::StepFunctions::StateMachine", new Set([
|
|
21171
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::StepFunctions::StateMachine", /* @__PURE__ */ new Set([
|
|
21175
21172
|
"StateMachineName",
|
|
21176
21173
|
"RoleArn",
|
|
21177
21174
|
"StateMachineType",
|
|
@@ -21653,8 +21650,8 @@ var ECSProvider = class {
|
|
|
21653
21650
|
ecsClient;
|
|
21654
21651
|
providerRegion = process.env["AWS_REGION"];
|
|
21655
21652
|
logger = getLogger().child("ECSProvider");
|
|
21656
|
-
handledProperties = new Map([
|
|
21657
|
-
["AWS::ECS::Cluster", new Set([
|
|
21653
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
21654
|
+
["AWS::ECS::Cluster", /* @__PURE__ */ new Set([
|
|
21658
21655
|
"ClusterName",
|
|
21659
21656
|
"CapacityProviders",
|
|
21660
21657
|
"DefaultCapacityProviderStrategy",
|
|
@@ -21663,7 +21660,7 @@ var ECSProvider = class {
|
|
|
21663
21660
|
"ServiceConnectDefaults",
|
|
21664
21661
|
"Tags"
|
|
21665
21662
|
])],
|
|
21666
|
-
["AWS::ECS::TaskDefinition", new Set([
|
|
21663
|
+
["AWS::ECS::TaskDefinition", /* @__PURE__ */ new Set([
|
|
21667
21664
|
"Family",
|
|
21668
21665
|
"ContainerDefinitions",
|
|
21669
21666
|
"Cpu",
|
|
@@ -21682,7 +21679,7 @@ var ECSProvider = class {
|
|
|
21682
21679
|
"EnableFaultInjection",
|
|
21683
21680
|
"Tags"
|
|
21684
21681
|
])],
|
|
21685
|
-
["AWS::ECS::Service", new Set([
|
|
21682
|
+
["AWS::ECS::Service", /* @__PURE__ */ new Set([
|
|
21686
21683
|
"Cluster",
|
|
21687
21684
|
"ServiceName",
|
|
21688
21685
|
"TaskDefinition",
|
|
@@ -21704,7 +21701,7 @@ var ECSProvider = class {
|
|
|
21704
21701
|
"Tags"
|
|
21705
21702
|
])]
|
|
21706
21703
|
]);
|
|
21707
|
-
unhandledByDesign = new Map([["AWS::ECS::Service", new Map([["Role", "Legacy classic-ELB service-linked-role override; AWS uses the AWSServiceRoleForECS service-linked role automatically since 2017"]])], ["AWS::ECS::TaskDefinition", new Map([["InferenceAccelerators", "AWS Elastic Inference end-of-life 2024-04; use AWS Inferentia / Trainium accelerator instance families instead"]])]]);
|
|
21704
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::ECS::Service", /* @__PURE__ */ new Map([["Role", "Legacy classic-ELB service-linked-role override; AWS uses the AWSServiceRoleForECS service-linked role automatically since 2017"]])], ["AWS::ECS::TaskDefinition", /* @__PURE__ */ new Map([["InferenceAccelerators", "AWS Elastic Inference end-of-life 2024-04; use AWS Inferentia / Trainium accelerator instance families instead"]])]]);
|
|
21708
21705
|
getClient() {
|
|
21709
21706
|
if (!this.ecsClient) this.ecsClient = new ECSClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
21710
21707
|
return this.ecsClient;
|
|
@@ -22704,8 +22701,8 @@ var ELBv2Provider = class {
|
|
|
22704
22701
|
elbv2Client;
|
|
22705
22702
|
providerRegion = process.env["AWS_REGION"];
|
|
22706
22703
|
logger = getLogger().child("ELBv2Provider");
|
|
22707
|
-
handledProperties = new Map([
|
|
22708
|
-
["AWS::ElasticLoadBalancingV2::LoadBalancer", new Set([
|
|
22704
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
22705
|
+
["AWS::ElasticLoadBalancingV2::LoadBalancer", /* @__PURE__ */ new Set([
|
|
22709
22706
|
"Name",
|
|
22710
22707
|
"Subnets",
|
|
22711
22708
|
"SubnetMappings",
|
|
@@ -22716,7 +22713,7 @@ var ELBv2Provider = class {
|
|
|
22716
22713
|
"LoadBalancerAttributes",
|
|
22717
22714
|
"Tags"
|
|
22718
22715
|
])],
|
|
22719
|
-
["AWS::ElasticLoadBalancingV2::TargetGroup", new Set([
|
|
22716
|
+
["AWS::ElasticLoadBalancingV2::TargetGroup", /* @__PURE__ */ new Set([
|
|
22720
22717
|
"Protocol",
|
|
22721
22718
|
"Port",
|
|
22722
22719
|
"VpcId",
|
|
@@ -22734,7 +22731,7 @@ var ELBv2Provider = class {
|
|
|
22734
22731
|
"Name",
|
|
22735
22732
|
"Tags"
|
|
22736
22733
|
])],
|
|
22737
|
-
["AWS::ElasticLoadBalancingV2::Listener", new Set([
|
|
22734
|
+
["AWS::ElasticLoadBalancingV2::Listener", /* @__PURE__ */ new Set([
|
|
22738
22735
|
"LoadBalancerArn",
|
|
22739
22736
|
"Certificates",
|
|
22740
22737
|
"DefaultActions",
|
|
@@ -22829,7 +22826,7 @@ var ELBv2Provider = class {
|
|
|
22829
22826
|
}
|
|
22830
22827
|
}
|
|
22831
22828
|
async updateLoadBalancer(logicalId, physicalId, _resourceType, properties, previousProperties) {
|
|
22832
|
-
const handledKeys = new Set([
|
|
22829
|
+
const handledKeys = /* @__PURE__ */ new Set([
|
|
22833
22830
|
"LoadBalancerAttributes",
|
|
22834
22831
|
"Subnets",
|
|
22835
22832
|
"SubnetMappings",
|
|
@@ -23463,14 +23460,14 @@ var RDSProvider = class {
|
|
|
23463
23460
|
rdsClient;
|
|
23464
23461
|
providerRegion = process.env["AWS_REGION"];
|
|
23465
23462
|
logger = getLogger().child("RDSProvider");
|
|
23466
|
-
handledProperties = new Map([
|
|
23467
|
-
["AWS::RDS::DBSubnetGroup", new Set([
|
|
23463
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
23464
|
+
["AWS::RDS::DBSubnetGroup", /* @__PURE__ */ new Set([
|
|
23468
23465
|
"DBSubnetGroupName",
|
|
23469
23466
|
"DBSubnetGroupDescription",
|
|
23470
23467
|
"SubnetIds",
|
|
23471
23468
|
"Tags"
|
|
23472
23469
|
])],
|
|
23473
|
-
["AWS::RDS::DBCluster", new Set([
|
|
23470
|
+
["AWS::RDS::DBCluster", /* @__PURE__ */ new Set([
|
|
23474
23471
|
"DBClusterIdentifier",
|
|
23475
23472
|
"Engine",
|
|
23476
23473
|
"EngineVersion",
|
|
@@ -23493,7 +23490,7 @@ var RDSProvider = class {
|
|
|
23493
23490
|
"EnableIAMDatabaseAuthentication",
|
|
23494
23491
|
"PubliclyAccessible"
|
|
23495
23492
|
])],
|
|
23496
|
-
["AWS::RDS::DBInstance", new Set([
|
|
23493
|
+
["AWS::RDS::DBInstance", /* @__PURE__ */ new Set([
|
|
23497
23494
|
"DBInstanceIdentifier",
|
|
23498
23495
|
"DBInstanceClass",
|
|
23499
23496
|
"Engine",
|
|
@@ -23517,7 +23514,7 @@ var RDSProvider = class {
|
|
|
23517
23514
|
"EnableIAMDatabaseAuthentication"
|
|
23518
23515
|
])]
|
|
23519
23516
|
]);
|
|
23520
|
-
unhandledByDesign = new Map([["AWS::RDS::DBCluster", new Map([["DeleteAutomatedBackups", "cdkd hardcodes SkipFinalSnapshot=true on destroy; this CFn lifecycle flag has no equivalent on the runtime path"]])], ["AWS::RDS::DBInstance", new Map([
|
|
23517
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::RDS::DBCluster", /* @__PURE__ */ new Map([["DeleteAutomatedBackups", "cdkd hardcodes SkipFinalSnapshot=true on destroy; this CFn lifecycle flag has no equivalent on the runtime path"]])], ["AWS::RDS::DBInstance", /* @__PURE__ */ new Map([
|
|
23521
23518
|
["DBSecurityGroups", "EC2-Classic-only feature retired by AWS (2022-08-15); new accounts cannot use this — use VPCSecurityGroups instead"],
|
|
23522
23519
|
["ApplyImmediately", "cdkd always applies modifications immediately (rds:ModifyDBInstance.ApplyImmediately=true is hardcoded); users wanting maintenance-window deferral should run aws rds modify-db-instance directly"],
|
|
23523
23520
|
["DeleteAutomatedBackups", "cdkd hardcodes SkipFinalSnapshot=true on destroy; this CFn lifecycle flag has no equivalent on the runtime path"]
|
|
@@ -24282,7 +24279,7 @@ var RDSDBProxyProvider = class {
|
|
|
24282
24279
|
providerRegion = process.env["AWS_REGION"];
|
|
24283
24280
|
logger = getLogger().child("RDSDBProxyProvider");
|
|
24284
24281
|
attributeCache = /* @__PURE__ */ new Map();
|
|
24285
|
-
handledProperties = new Map([["AWS::RDS::DBProxy", new Set([
|
|
24282
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::RDS::DBProxy", /* @__PURE__ */ new Set([
|
|
24286
24283
|
"DBProxyName",
|
|
24287
24284
|
"EngineFamily",
|
|
24288
24285
|
"Auth",
|
|
@@ -24639,7 +24636,7 @@ var RDSDBProxyEndpointProvider = class {
|
|
|
24639
24636
|
providerRegion = process.env["AWS_REGION"];
|
|
24640
24637
|
logger = getLogger().child("RDSDBProxyEndpointProvider");
|
|
24641
24638
|
attributeCache = /* @__PURE__ */ new Map();
|
|
24642
|
-
handledProperties = new Map([["AWS::RDS::DBProxyEndpoint", new Set([
|
|
24639
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::RDS::DBProxyEndpoint", /* @__PURE__ */ new Set([
|
|
24643
24640
|
"DBProxyEndpointName",
|
|
24644
24641
|
"DBProxyName",
|
|
24645
24642
|
"VpcSubnetIds",
|
|
@@ -24968,7 +24965,7 @@ var RDSDBProxyTargetGroupProvider = class {
|
|
|
24968
24965
|
rdsClient;
|
|
24969
24966
|
providerRegion = process.env["AWS_REGION"];
|
|
24970
24967
|
logger = getLogger().child("RDSDBProxyTargetGroupProvider");
|
|
24971
|
-
handledProperties = new Map([["AWS::RDS::DBProxyTargetGroup", new Set([
|
|
24968
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::RDS::DBProxyTargetGroup", /* @__PURE__ */ new Set([
|
|
24972
24969
|
"DBProxyName",
|
|
24973
24970
|
"TargetGroupName",
|
|
24974
24971
|
"DBClusterIdentifiers",
|
|
@@ -25252,14 +25249,14 @@ var DocDBProvider = class {
|
|
|
25252
25249
|
docdbClient;
|
|
25253
25250
|
providerRegion = process.env["AWS_REGION"];
|
|
25254
25251
|
logger = getLogger().child("DocDBProvider");
|
|
25255
|
-
handledProperties = new Map([
|
|
25256
|
-
["AWS::DocDB::DBSubnetGroup", new Set([
|
|
25252
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
25253
|
+
["AWS::DocDB::DBSubnetGroup", /* @__PURE__ */ new Set([
|
|
25257
25254
|
"DBSubnetGroupName",
|
|
25258
25255
|
"DBSubnetGroupDescription",
|
|
25259
25256
|
"SubnetIds",
|
|
25260
25257
|
"Tags"
|
|
25261
25258
|
])],
|
|
25262
|
-
["AWS::DocDB::DBCluster", new Set([
|
|
25259
|
+
["AWS::DocDB::DBCluster", /* @__PURE__ */ new Set([
|
|
25263
25260
|
"DBClusterIdentifier",
|
|
25264
25261
|
"EngineVersion",
|
|
25265
25262
|
"MasterUsername",
|
|
@@ -25276,7 +25273,7 @@ var DocDBProvider = class {
|
|
|
25276
25273
|
"DeletionProtection",
|
|
25277
25274
|
"Tags"
|
|
25278
25275
|
])],
|
|
25279
|
-
["AWS::DocDB::DBInstance", new Set([
|
|
25276
|
+
["AWS::DocDB::DBInstance", /* @__PURE__ */ new Set([
|
|
25280
25277
|
"DBInstanceIdentifier",
|
|
25281
25278
|
"DBInstanceClass",
|
|
25282
25279
|
"DBClusterIdentifier",
|
|
@@ -25914,14 +25911,14 @@ var NeptuneProvider = class {
|
|
|
25914
25911
|
neptuneClient;
|
|
25915
25912
|
providerRegion = process.env["AWS_REGION"];
|
|
25916
25913
|
logger = getLogger().child("NeptuneProvider");
|
|
25917
|
-
handledProperties = new Map([
|
|
25918
|
-
["AWS::Neptune::DBSubnetGroup", new Set([
|
|
25914
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
25915
|
+
["AWS::Neptune::DBSubnetGroup", /* @__PURE__ */ new Set([
|
|
25919
25916
|
"DBSubnetGroupName",
|
|
25920
25917
|
"DBSubnetGroupDescription",
|
|
25921
25918
|
"SubnetIds",
|
|
25922
25919
|
"Tags"
|
|
25923
25920
|
])],
|
|
25924
|
-
["AWS::Neptune::DBCluster", new Set([
|
|
25921
|
+
["AWS::Neptune::DBCluster", /* @__PURE__ */ new Set([
|
|
25925
25922
|
"DBClusterIdentifier",
|
|
25926
25923
|
"EngineVersion",
|
|
25927
25924
|
"DBPort",
|
|
@@ -25938,7 +25935,7 @@ var NeptuneProvider = class {
|
|
|
25938
25935
|
"DeletionProtection",
|
|
25939
25936
|
"Tags"
|
|
25940
25937
|
])],
|
|
25941
|
-
["AWS::Neptune::DBInstance", new Set([
|
|
25938
|
+
["AWS::Neptune::DBInstance", /* @__PURE__ */ new Set([
|
|
25942
25939
|
"DBInstanceIdentifier",
|
|
25943
25940
|
"DBInstanceClass",
|
|
25944
25941
|
"DBClusterIdentifier",
|
|
@@ -26572,14 +26569,14 @@ var Route53Provider = class {
|
|
|
26572
26569
|
route53Client;
|
|
26573
26570
|
providerRegion = process.env["AWS_REGION"];
|
|
26574
26571
|
logger = getLogger().child("Route53Provider");
|
|
26575
|
-
handledProperties = new Map([["AWS::Route53::HostedZone", new Set([
|
|
26572
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Route53::HostedZone", /* @__PURE__ */ new Set([
|
|
26576
26573
|
"Name",
|
|
26577
26574
|
"HostedZoneConfig",
|
|
26578
26575
|
"HostedZoneTags",
|
|
26579
26576
|
"VPCs",
|
|
26580
26577
|
"QueryLoggingConfig",
|
|
26581
26578
|
"HostedZoneFeatures"
|
|
26582
|
-
])], ["AWS::Route53::RecordSet", new Set([
|
|
26579
|
+
])], ["AWS::Route53::RecordSet", /* @__PURE__ */ new Set([
|
|
26583
26580
|
"HostedZoneId",
|
|
26584
26581
|
"HostedZoneName",
|
|
26585
26582
|
"Name",
|
|
@@ -26790,7 +26787,7 @@ var Route53Provider = class {
|
|
|
26790
26787
|
}
|
|
26791
26788
|
};
|
|
26792
26789
|
const deadline = Date.now() + timeoutMs;
|
|
26793
|
-
const TERMINAL_FAILED = new Set(["ENABLE_FAILED", "DISABLE_FAILED"]);
|
|
26790
|
+
const TERMINAL_FAILED = /* @__PURE__ */ new Set(["ENABLE_FAILED", "DISABLE_FAILED"]);
|
|
26794
26791
|
const waitFor = async (targets, label) => {
|
|
26795
26792
|
while (Date.now() < deadline) {
|
|
26796
26793
|
const status = await readStatus();
|
|
@@ -26811,7 +26808,7 @@ var Route53Provider = class {
|
|
|
26811
26808
|
if (TERMINAL_FAILED.has(current)) throw new ProvisioningError(`Cannot delete hosted zone ${logicalId} (${physicalId}): AcceleratedRecoveryStatus is '${current}' — operator must resolve before destroy can proceed`, "AWS::Route53::HostedZone", logicalId, physicalId);
|
|
26812
26809
|
if (current === "ENABLING" || current === "ENABLING_HOSTED_ZONE_LOCKED") {
|
|
26813
26810
|
this.logger.debug(`Hosted zone ${physicalId} is ${current} (an enabling phase); waiting for it to settle before issuing disable`);
|
|
26814
|
-
current = await waitFor(new Set(["ENABLED", "DISABLED"]), "ENABLED or DISABLED");
|
|
26811
|
+
current = await waitFor(/* @__PURE__ */ new Set(["ENABLED", "DISABLED"]), "ENABLED or DISABLED");
|
|
26815
26812
|
if (current === void 0 || current === "DISABLED") return;
|
|
26816
26813
|
}
|
|
26817
26814
|
if (current === "ENABLED") {
|
|
@@ -26821,7 +26818,7 @@ var Route53Provider = class {
|
|
|
26821
26818
|
EnableAcceleratedRecovery: false
|
|
26822
26819
|
}));
|
|
26823
26820
|
} else if (current === "DISABLING" || current === "DISABLING_HOSTED_ZONE_LOCKED") this.logger.debug(`Hosted zone ${physicalId} AcceleratedRecovery is already ${current} (a disabling phase); waiting for settle`);
|
|
26824
|
-
const settled = await waitFor(new Set(["DISABLED"]), "DISABLED");
|
|
26821
|
+
const settled = await waitFor(/* @__PURE__ */ new Set(["DISABLED"]), "DISABLED");
|
|
26825
26822
|
this.logger.debug(`Hosted zone ${physicalId} AcceleratedRecoveryStatus settled to ${settled ?? "undefined (zone gone)"}`);
|
|
26826
26823
|
}
|
|
26827
26824
|
async getHostedZoneAttribute(physicalId, attributeName) {
|
|
@@ -27328,7 +27325,7 @@ var Route53Provider = class {
|
|
|
27328
27325
|
* error (surfaced as a ProvisioningError, never a silent drop), so the failure
|
|
27329
27326
|
* is loud and the fix is to append the new name here.
|
|
27330
27327
|
*/
|
|
27331
|
-
const STANDARD_USER_POOL_ATTRIBUTES = new Set([
|
|
27328
|
+
const STANDARD_USER_POOL_ATTRIBUTES = /* @__PURE__ */ new Set([
|
|
27332
27329
|
"address",
|
|
27333
27330
|
"birthdate",
|
|
27334
27331
|
"email",
|
|
@@ -27464,7 +27461,7 @@ var CognitoUserPoolProvider = class {
|
|
|
27464
27461
|
cognitoClient;
|
|
27465
27462
|
providerRegion = process.env["AWS_REGION"];
|
|
27466
27463
|
logger = getLogger().child("CognitoUserPoolProvider");
|
|
27467
|
-
handledProperties = new Map([["AWS::Cognito::UserPool", new Set([
|
|
27464
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Cognito::UserPool", /* @__PURE__ */ new Set([
|
|
27468
27465
|
"UserPoolName",
|
|
27469
27466
|
"AutoVerifiedAttributes",
|
|
27470
27467
|
"UsernameAttributes",
|
|
@@ -27495,7 +27492,7 @@ var CognitoUserPoolProvider = class {
|
|
|
27495
27492
|
"WebAuthnRelyingPartyID",
|
|
27496
27493
|
"WebAuthnUserVerification"
|
|
27497
27494
|
])]]);
|
|
27498
|
-
unhandledByDesign = new Map([["AWS::Cognito::UserPool", new Map([["WebAuthnFactorConfiguration", "No SDK wire path: @aws-sdk/client-cognito-identity-provider has no field accepting SINGLE_FACTOR | MULTI_FACTOR_WITH_USER_VERIFICATION (not on CreateUserPool/UpdateUserPool, nor SetUserPoolMfaConfig.WebAuthnConfiguration which only carries RelyingPartyId/UserVerification); CC-API-registry-only property"]])]]);
|
|
27495
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::Cognito::UserPool", /* @__PURE__ */ new Map([["WebAuthnFactorConfiguration", "No SDK wire path: @aws-sdk/client-cognito-identity-provider has no field accepting SINGLE_FACTOR | MULTI_FACTOR_WITH_USER_VERIFICATION (not on CreateUserPool/UpdateUserPool, nor SetUserPoolMfaConfig.WebAuthnConfiguration which only carries RelyingPartyId/UserVerification); CC-API-registry-only property"]])]]);
|
|
27499
27496
|
getClient() {
|
|
27500
27497
|
if (!this.cognitoClient) this.cognitoClient = new CognitoIdentityProviderClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
27501
27498
|
return this.cognitoClient;
|
|
@@ -27900,13 +27897,13 @@ var ElastiCacheProvider = class {
|
|
|
27900
27897
|
cachedAccountId;
|
|
27901
27898
|
providerRegion = process.env["AWS_REGION"];
|
|
27902
27899
|
logger = getLogger().child("ElastiCacheProvider");
|
|
27903
|
-
handledProperties = new Map([["AWS::ElastiCache::SubnetGroup", new Set([
|
|
27900
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::ElastiCache::SubnetGroup", /* @__PURE__ */ new Set([
|
|
27904
27901
|
"CacheSubnetGroupName",
|
|
27905
27902
|
"CacheSubnetGroupDescription",
|
|
27906
27903
|
"Description",
|
|
27907
27904
|
"SubnetIds",
|
|
27908
27905
|
"Tags"
|
|
27909
|
-
])], ["AWS::ElastiCache::CacheCluster", new Set([
|
|
27906
|
+
])], ["AWS::ElastiCache::CacheCluster", /* @__PURE__ */ new Set([
|
|
27910
27907
|
"ClusterName",
|
|
27911
27908
|
"Engine",
|
|
27912
27909
|
"CacheNodeType",
|
|
@@ -27931,7 +27928,7 @@ var ElastiCacheProvider = class {
|
|
|
27931
27928
|
"IpDiscovery",
|
|
27932
27929
|
"TransitEncryptionEnabled"
|
|
27933
27930
|
])]]);
|
|
27934
|
-
unhandledByDesign = new Map([["AWS::ElastiCache::CacheCluster", new Map([["CacheSecurityGroupNames", "EC2-Classic-only — use VpcSecurityGroupIds for VPC-deployed clusters (EC2-Classic retired 2022-08-15)"]])]]);
|
|
27931
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::ElastiCache::CacheCluster", /* @__PURE__ */ new Map([["CacheSecurityGroupNames", "EC2-Classic-only — use VpcSecurityGroupIds for VPC-deployed clusters (EC2-Classic retired 2022-08-15)"]])]]);
|
|
27935
27932
|
getClient() {
|
|
27936
27933
|
if (!this.client) this.client = new ElastiCacheClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
27937
27934
|
return this.client;
|
|
@@ -28430,26 +28427,26 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
|
|
|
28430
28427
|
stsClient;
|
|
28431
28428
|
providerRegion = process.env["AWS_REGION"];
|
|
28432
28429
|
logger = getLogger().child("ServiceDiscoveryProvider");
|
|
28433
|
-
handledProperties = new Map([
|
|
28434
|
-
["AWS::ServiceDiscovery::PrivateDnsNamespace", new Set([
|
|
28430
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
28431
|
+
["AWS::ServiceDiscovery::PrivateDnsNamespace", /* @__PURE__ */ new Set([
|
|
28435
28432
|
"Name",
|
|
28436
28433
|
"Vpc",
|
|
28437
28434
|
"Description",
|
|
28438
28435
|
"Tags",
|
|
28439
28436
|
"Properties"
|
|
28440
28437
|
])],
|
|
28441
|
-
["AWS::ServiceDiscovery::HttpNamespace", new Set([
|
|
28438
|
+
["AWS::ServiceDiscovery::HttpNamespace", /* @__PURE__ */ new Set([
|
|
28442
28439
|
"Name",
|
|
28443
28440
|
"Description",
|
|
28444
28441
|
"Tags"
|
|
28445
28442
|
])],
|
|
28446
|
-
["AWS::ServiceDiscovery::PublicDnsNamespace", new Set([
|
|
28443
|
+
["AWS::ServiceDiscovery::PublicDnsNamespace", /* @__PURE__ */ new Set([
|
|
28447
28444
|
"Name",
|
|
28448
28445
|
"Description",
|
|
28449
28446
|
"Tags",
|
|
28450
28447
|
"Properties"
|
|
28451
28448
|
])],
|
|
28452
|
-
["AWS::ServiceDiscovery::Service", new Set([
|
|
28449
|
+
["AWS::ServiceDiscovery::Service", /* @__PURE__ */ new Set([
|
|
28453
28450
|
"Name",
|
|
28454
28451
|
"NamespaceId",
|
|
28455
28452
|
"DnsConfig",
|
|
@@ -29264,20 +29261,20 @@ var AppSyncProvider = class {
|
|
|
29264
29261
|
* and the old entry simply becomes unreachable.
|
|
29265
29262
|
*/
|
|
29266
29263
|
arnCache = /* @__PURE__ */ new Map();
|
|
29267
|
-
handledProperties = new Map([
|
|
29268
|
-
["AWS::AppSync::GraphQLApi", new Set([
|
|
29264
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
29265
|
+
["AWS::AppSync::GraphQLApi", /* @__PURE__ */ new Set([
|
|
29269
29266
|
"Name",
|
|
29270
29267
|
"AuthenticationType",
|
|
29271
29268
|
"XrayEnabled",
|
|
29272
29269
|
"LogConfig",
|
|
29273
29270
|
"Tags"
|
|
29274
29271
|
])],
|
|
29275
|
-
["AWS::AppSync::GraphQLSchema", new Set([
|
|
29272
|
+
["AWS::AppSync::GraphQLSchema", /* @__PURE__ */ new Set([
|
|
29276
29273
|
"ApiId",
|
|
29277
29274
|
"Definition",
|
|
29278
29275
|
"DefinitionS3Location"
|
|
29279
29276
|
])],
|
|
29280
|
-
["AWS::AppSync::DataSource", new Set([
|
|
29277
|
+
["AWS::AppSync::DataSource", /* @__PURE__ */ new Set([
|
|
29281
29278
|
"ApiId",
|
|
29282
29279
|
"Name",
|
|
29283
29280
|
"Type",
|
|
@@ -29287,7 +29284,7 @@ var AppSyncProvider = class {
|
|
|
29287
29284
|
"LambdaConfig",
|
|
29288
29285
|
"HttpConfig"
|
|
29289
29286
|
])],
|
|
29290
|
-
["AWS::AppSync::Resolver", new Set([
|
|
29287
|
+
["AWS::AppSync::Resolver", /* @__PURE__ */ new Set([
|
|
29291
29288
|
"ApiId",
|
|
29292
29289
|
"TypeName",
|
|
29293
29290
|
"FieldName",
|
|
@@ -29299,13 +29296,13 @@ var AppSyncProvider = class {
|
|
|
29299
29296
|
"Runtime",
|
|
29300
29297
|
"Code"
|
|
29301
29298
|
])],
|
|
29302
|
-
["AWS::AppSync::ApiKey", new Set([
|
|
29299
|
+
["AWS::AppSync::ApiKey", /* @__PURE__ */ new Set([
|
|
29303
29300
|
"ApiId",
|
|
29304
29301
|
"Description",
|
|
29305
29302
|
"Expires"
|
|
29306
29303
|
])]
|
|
29307
29304
|
]);
|
|
29308
|
-
unhandledByDesign = new Map([["AWS::AppSync::DataSource", new Map([["ElasticsearchConfig", "Legacy Elasticsearch alias; use OpenSearchServiceConfig (AppSync deprecated the Elasticsearch DataSource type in favor of OpenSearch)"]])]]);
|
|
29305
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::AppSync::DataSource", /* @__PURE__ */ new Map([["ElasticsearchConfig", "Legacy Elasticsearch alias; use OpenSearchServiceConfig (AppSync deprecated the Elasticsearch DataSource type in favor of OpenSearch)"]])]]);
|
|
29309
29306
|
getClient() {
|
|
29310
29307
|
if (!this.client) this.client = new AppSyncClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
29311
29308
|
return this.client;
|
|
@@ -30171,11 +30168,11 @@ var GlueProvider = class {
|
|
|
30171
30168
|
cachedAccountId;
|
|
30172
30169
|
providerRegion = process.env["AWS_REGION"];
|
|
30173
30170
|
logger = getLogger().child("GlueProvider");
|
|
30174
|
-
handledProperties = new Map([["AWS::Glue::Database", new Set([
|
|
30171
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Database", /* @__PURE__ */ new Set([
|
|
30175
30172
|
"DatabaseInput",
|
|
30176
30173
|
"DatabaseName",
|
|
30177
30174
|
"CatalogId"
|
|
30178
|
-
])], ["AWS::Glue::Table", new Set([
|
|
30175
|
+
])], ["AWS::Glue::Table", /* @__PURE__ */ new Set([
|
|
30179
30176
|
"DatabaseName",
|
|
30180
30177
|
"TableInput",
|
|
30181
30178
|
"Name",
|
|
@@ -30665,7 +30662,7 @@ var GlueWorkflowProvider = class {
|
|
|
30665
30662
|
cachedAccountId;
|
|
30666
30663
|
providerRegion = process.env["AWS_REGION"];
|
|
30667
30664
|
logger = getLogger().child("GlueWorkflowProvider");
|
|
30668
|
-
handledProperties = new Map([["AWS::Glue::Workflow", new Set([
|
|
30665
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Workflow", /* @__PURE__ */ new Set([
|
|
30669
30666
|
"Name",
|
|
30670
30667
|
"Description",
|
|
30671
30668
|
"DefaultRunProperties",
|
|
@@ -30843,7 +30840,7 @@ var GlueSecurityConfigurationProvider = class {
|
|
|
30843
30840
|
client;
|
|
30844
30841
|
providerRegion = process.env["AWS_REGION"];
|
|
30845
30842
|
logger = getLogger().child("GlueSecurityConfigurationProvider");
|
|
30846
|
-
handledProperties = new Map([["AWS::Glue::SecurityConfiguration", new Set(["Name", "EncryptionConfiguration"])]]);
|
|
30843
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::SecurityConfiguration", /* @__PURE__ */ new Set(["Name", "EncryptionConfiguration"])]]);
|
|
30847
30844
|
getClient() {
|
|
30848
30845
|
if (!this.client) this.client = new GlueClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
30849
30846
|
return this.client;
|
|
@@ -31066,7 +31063,7 @@ var GlueJobProvider = class {
|
|
|
31066
31063
|
cachedAccountId;
|
|
31067
31064
|
providerRegion = process.env["AWS_REGION"];
|
|
31068
31065
|
logger = getLogger().child("GlueJobProvider");
|
|
31069
|
-
handledProperties = new Map([["AWS::Glue::Job", new Set([
|
|
31066
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Job", /* @__PURE__ */ new Set([
|
|
31070
31067
|
"Name",
|
|
31071
31068
|
"Role",
|
|
31072
31069
|
"Command",
|
|
@@ -31372,7 +31369,7 @@ var GlueCrawlerProvider = class {
|
|
|
31372
31369
|
cachedAccountId;
|
|
31373
31370
|
providerRegion = process.env["AWS_REGION"];
|
|
31374
31371
|
logger = getLogger().child("GlueCrawlerProvider");
|
|
31375
|
-
handledProperties = new Map([["AWS::Glue::Crawler", new Set([
|
|
31372
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Crawler", /* @__PURE__ */ new Set([
|
|
31376
31373
|
"Name",
|
|
31377
31374
|
"Role",
|
|
31378
31375
|
"Targets",
|
|
@@ -31609,7 +31606,7 @@ var GlueConnectionProvider = class {
|
|
|
31609
31606
|
client;
|
|
31610
31607
|
providerRegion = process.env["AWS_REGION"];
|
|
31611
31608
|
logger = getLogger().child("GlueConnectionProvider");
|
|
31612
|
-
handledProperties = new Map([["AWS::Glue::Connection", new Set(["ConnectionInput", "CatalogId"])]]);
|
|
31609
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Connection", /* @__PURE__ */ new Set(["ConnectionInput", "CatalogId"])]]);
|
|
31613
31610
|
getClient() {
|
|
31614
31611
|
if (!this.client) this.client = new GlueClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
31615
31612
|
return this.client;
|
|
@@ -31759,7 +31756,7 @@ var GlueTriggerProvider = class {
|
|
|
31759
31756
|
cachedAccountId;
|
|
31760
31757
|
providerRegion = process.env["AWS_REGION"];
|
|
31761
31758
|
logger = getLogger().child("GlueTriggerProvider");
|
|
31762
|
-
handledProperties = new Map([["AWS::Glue::Trigger", new Set([
|
|
31759
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Glue::Trigger", /* @__PURE__ */ new Set([
|
|
31763
31760
|
"Name",
|
|
31764
31761
|
"Type",
|
|
31765
31762
|
"Schedule",
|
|
@@ -31975,7 +31972,7 @@ var KMSProvider = class {
|
|
|
31975
31972
|
client;
|
|
31976
31973
|
providerRegion = process.env["AWS_REGION"];
|
|
31977
31974
|
logger = getLogger().child("KMSProvider");
|
|
31978
|
-
handledProperties = new Map([["AWS::KMS::Key", new Set([
|
|
31975
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::KMS::Key", /* @__PURE__ */ new Set([
|
|
31979
31976
|
"Description",
|
|
31980
31977
|
"KeyPolicy",
|
|
31981
31978
|
"KeySpec",
|
|
@@ -31988,7 +31985,7 @@ var KMSProvider = class {
|
|
|
31988
31985
|
"RotationPeriodInDays",
|
|
31989
31986
|
"Origin",
|
|
31990
31987
|
"BypassPolicyLockoutSafetyCheck"
|
|
31991
|
-
])], ["AWS::KMS::Alias", new Set(["AliasName", "TargetKeyId"])]]);
|
|
31988
|
+
])], ["AWS::KMS::Alias", /* @__PURE__ */ new Set(["AliasName", "TargetKeyId"])]]);
|
|
31992
31989
|
getClient() {
|
|
31993
31990
|
if (!this.client) this.client = new KMSClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
31994
31991
|
return this.client;
|
|
@@ -32442,7 +32439,7 @@ var BudgetsBudgetProvider = class {
|
|
|
32442
32439
|
providerRegion = process.env["AWS_REGION"];
|
|
32443
32440
|
logger = getLogger().child("BudgetsBudgetProvider");
|
|
32444
32441
|
accountIdPromise;
|
|
32445
|
-
handledProperties = new Map([["AWS::Budgets::Budget", new Set([
|
|
32442
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Budgets::Budget", /* @__PURE__ */ new Set([
|
|
32446
32443
|
"Budget",
|
|
32447
32444
|
"NotificationsWithSubscribers",
|
|
32448
32445
|
"ResourceTags"
|
|
@@ -32916,7 +32913,7 @@ var KinesisStreamProvider = class {
|
|
|
32916
32913
|
client;
|
|
32917
32914
|
providerRegion = process.env["AWS_REGION"];
|
|
32918
32915
|
logger = getLogger().child("KinesisProvider");
|
|
32919
|
-
handledProperties = new Map([["AWS::Kinesis::Stream", new Set([
|
|
32916
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Kinesis::Stream", /* @__PURE__ */ new Set([
|
|
32920
32917
|
"Name",
|
|
32921
32918
|
"StreamModeDetails",
|
|
32922
32919
|
"ShardCount",
|
|
@@ -33288,7 +33285,7 @@ var KinesisStreamConsumerProvider = class {
|
|
|
33288
33285
|
client;
|
|
33289
33286
|
providerRegion = process.env["AWS_REGION"];
|
|
33290
33287
|
logger = getLogger().child("KinesisStreamConsumerProvider");
|
|
33291
|
-
handledProperties = new Map([["AWS::Kinesis::StreamConsumer", new Set([
|
|
33288
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Kinesis::StreamConsumer", /* @__PURE__ */ new Set([
|
|
33292
33289
|
"ConsumerName",
|
|
33293
33290
|
"StreamARN",
|
|
33294
33291
|
"Tags"
|
|
@@ -33555,7 +33552,7 @@ var SchedulerScheduleProvider = class {
|
|
|
33555
33552
|
client;
|
|
33556
33553
|
providerRegion = process.env["AWS_REGION"];
|
|
33557
33554
|
logger = getLogger().child("SchedulerScheduleProvider");
|
|
33558
|
-
handledProperties = new Map([["AWS::Scheduler::Schedule", new Set([
|
|
33555
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::Scheduler::Schedule", /* @__PURE__ */ new Set([
|
|
33559
33556
|
"Name",
|
|
33560
33557
|
"GroupName",
|
|
33561
33558
|
"Description",
|
|
@@ -33750,8 +33747,8 @@ var EFSProvider = class {
|
|
|
33750
33747
|
client;
|
|
33751
33748
|
providerRegion = process.env["AWS_REGION"];
|
|
33752
33749
|
logger = getLogger().child("EFSProvider");
|
|
33753
|
-
handledProperties = new Map([
|
|
33754
|
-
["AWS::EFS::FileSystem", new Set([
|
|
33750
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
33751
|
+
["AWS::EFS::FileSystem", /* @__PURE__ */ new Set([
|
|
33755
33752
|
"FileSystemTags",
|
|
33756
33753
|
"Encrypted",
|
|
33757
33754
|
"KmsKeyId",
|
|
@@ -33765,19 +33762,19 @@ var EFSProvider = class {
|
|
|
33765
33762
|
"BypassPolicyLockoutSafetyCheck",
|
|
33766
33763
|
"FileSystemProtection"
|
|
33767
33764
|
])],
|
|
33768
|
-
["AWS::EFS::MountTarget", new Set([
|
|
33765
|
+
["AWS::EFS::MountTarget", /* @__PURE__ */ new Set([
|
|
33769
33766
|
"FileSystemId",
|
|
33770
33767
|
"SubnetId",
|
|
33771
33768
|
"SecurityGroups"
|
|
33772
33769
|
])],
|
|
33773
|
-
["AWS::EFS::AccessPoint", new Set([
|
|
33770
|
+
["AWS::EFS::AccessPoint", /* @__PURE__ */ new Set([
|
|
33774
33771
|
"FileSystemId",
|
|
33775
33772
|
"PosixUser",
|
|
33776
33773
|
"RootDirectory",
|
|
33777
33774
|
"AccessPointTags"
|
|
33778
33775
|
])]
|
|
33779
33776
|
]);
|
|
33780
|
-
unhandledByDesign = new Map([["AWS::EFS::FileSystem", 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. Tracked as a follow-up to issue #609."]])], ["AWS::EFS::AccessPoint", new Map([["ClientToken", "AWS SDK manages this idempotency token internally on CreateAccessPoint; no user-supplied value is honored"]])]]);
|
|
33777
|
+
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. Tracked as a follow-up to issue #609."]])], ["AWS::EFS::AccessPoint", /* @__PURE__ */ new Map([["ClientToken", "AWS SDK manages this idempotency token internally on CreateAccessPoint; no user-supplied value is honored"]])]]);
|
|
33781
33778
|
getClient() {
|
|
33782
33779
|
if (!this.client) this.client = new EFSClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
33783
33780
|
return this.client;
|
|
@@ -34420,7 +34417,7 @@ const DEFAULT_POLL_INTERVAL_MS$1 = 15e3;
|
|
|
34420
34417
|
* subset of the CFn `LustreConfiguration` block). Everything else in the
|
|
34421
34418
|
* block is fixed at creation — FSx has no API to change it in place.
|
|
34422
34419
|
*/
|
|
34423
|
-
const LUSTRE_MUTABLE_SUBPROPS = new Set([
|
|
34420
|
+
const LUSTRE_MUTABLE_SUBPROPS = /* @__PURE__ */ new Set([
|
|
34424
34421
|
"WeeklyMaintenanceStartTime",
|
|
34425
34422
|
"DailyAutomaticBackupStartTime",
|
|
34426
34423
|
"AutomaticBackupRetentionDays",
|
|
@@ -34432,6 +34429,94 @@ const LUSTRE_MUTABLE_SUBPROPS = new Set([
|
|
|
34432
34429
|
"DataReadCacheConfiguration"
|
|
34433
34430
|
]);
|
|
34434
34431
|
/**
|
|
34432
|
+
* `WindowsConfiguration` sub-properties `UpdateFileSystem` accepts (the
|
|
34433
|
+
* mutable subset — mirrors `UpdateFileSystemWindowsConfiguration`).
|
|
34434
|
+
* Everything else in the CFn block (ActiveDirectoryId, DeploymentType,
|
|
34435
|
+
* PreferredSubnetId, Aliases, ...) is fixed at creation, so a change on one
|
|
34436
|
+
* is rejected by update() with a `--replace` pointer.
|
|
34437
|
+
*/
|
|
34438
|
+
const WINDOWS_MUTABLE_SUBPROPS = /* @__PURE__ */ new Set([
|
|
34439
|
+
"WeeklyMaintenanceStartTime",
|
|
34440
|
+
"DailyAutomaticBackupStartTime",
|
|
34441
|
+
"AutomaticBackupRetentionDays",
|
|
34442
|
+
"ThroughputCapacity",
|
|
34443
|
+
"SelfManagedActiveDirectoryConfiguration",
|
|
34444
|
+
"AuditLogConfiguration",
|
|
34445
|
+
"DiskIopsConfiguration",
|
|
34446
|
+
"FsrmConfiguration"
|
|
34447
|
+
]);
|
|
34448
|
+
/**
|
|
34449
|
+
* `OntapConfiguration` sub-properties `UpdateFileSystem` accepts (mirrors
|
|
34450
|
+
* `UpdateFileSystemOntapConfiguration`). `RouteTableIds` is mutable but the
|
|
34451
|
+
* API expresses the change as Add/Remove deltas, computed in
|
|
34452
|
+
* {@link FSxFileSystemProvider.applyOntapUpdateField}.
|
|
34453
|
+
*/
|
|
34454
|
+
const ONTAP_MUTABLE_SUBPROPS = /* @__PURE__ */ new Set([
|
|
34455
|
+
"AutomaticBackupRetentionDays",
|
|
34456
|
+
"DailyAutomaticBackupStartTime",
|
|
34457
|
+
"FsxAdminPassword",
|
|
34458
|
+
"WeeklyMaintenanceStartTime",
|
|
34459
|
+
"DiskIopsConfiguration",
|
|
34460
|
+
"ThroughputCapacity",
|
|
34461
|
+
"ThroughputCapacityPerHAPair",
|
|
34462
|
+
"HAPairs",
|
|
34463
|
+
"RouteTableIds",
|
|
34464
|
+
"EndpointIpv6AddressRange"
|
|
34465
|
+
]);
|
|
34466
|
+
/**
|
|
34467
|
+
* `OpenZFSConfiguration` sub-properties `UpdateFileSystem` accepts (mirrors
|
|
34468
|
+
* `UpdateFileSystemOpenZFSConfiguration`). `RouteTableIds` is mutable via
|
|
34469
|
+
* Add/Remove deltas (see {@link FSxFileSystemProvider.applyOpenZFSUpdateField}).
|
|
34470
|
+
* `RootVolumeConfiguration` is NOT here — its fields change through the root
|
|
34471
|
+
* volume's own `UpdateVolume` API, which `UpdateFileSystem` cannot express,
|
|
34472
|
+
* so a change is rejected with a `--replace` pointer.
|
|
34473
|
+
*/
|
|
34474
|
+
const OPENZFS_MUTABLE_SUBPROPS = /* @__PURE__ */ new Set([
|
|
34475
|
+
"AutomaticBackupRetentionDays",
|
|
34476
|
+
"CopyTagsToBackups",
|
|
34477
|
+
"CopyTagsToVolumes",
|
|
34478
|
+
"DailyAutomaticBackupStartTime",
|
|
34479
|
+
"ThroughputCapacity",
|
|
34480
|
+
"WeeklyMaintenanceStartTime",
|
|
34481
|
+
"DiskIopsConfiguration",
|
|
34482
|
+
"RouteTableIds",
|
|
34483
|
+
"ReadCacheConfiguration",
|
|
34484
|
+
"EndpointIpv6AddressRange"
|
|
34485
|
+
]);
|
|
34486
|
+
/**
|
|
34487
|
+
* The four `FileSystemType` values → their CFn variant-config property name.
|
|
34488
|
+
* Each `CreateFileSystem`/`UpdateFileSystem` call carries at most one of
|
|
34489
|
+
* these blocks (the one matching the file system's type).
|
|
34490
|
+
*/
|
|
34491
|
+
const VARIANT_CONFIG_KEY = {
|
|
34492
|
+
LUSTRE: "LustreConfiguration",
|
|
34493
|
+
WINDOWS: "WindowsConfiguration",
|
|
34494
|
+
ONTAP: "OntapConfiguration",
|
|
34495
|
+
OPENZFS: "OpenZFSConfiguration"
|
|
34496
|
+
};
|
|
34497
|
+
const VARIANT_MUTABLE_SUBPROPS = {
|
|
34498
|
+
LustreConfiguration: LUSTRE_MUTABLE_SUBPROPS,
|
|
34499
|
+
WindowsConfiguration: WINDOWS_MUTABLE_SUBPROPS,
|
|
34500
|
+
OntapConfiguration: ONTAP_MUTABLE_SUBPROPS,
|
|
34501
|
+
OpenZFSConfiguration: OPENZFS_MUTABLE_SUBPROPS
|
|
34502
|
+
};
|
|
34503
|
+
/**
|
|
34504
|
+
* Compute the Add/Remove route-table-id deltas an ONTAP / OpenZFS
|
|
34505
|
+
* `UpdateFileSystem` needs from the previous vs. next `RouteTableIds` list.
|
|
34506
|
+
* Route table membership is an unordered set, so a pure reorder yields no
|
|
34507
|
+
* delta.
|
|
34508
|
+
*/
|
|
34509
|
+
const routeTableDelta = (next, prev) => {
|
|
34510
|
+
const nextIds = new Set(next ?? []);
|
|
34511
|
+
const prevIds = new Set(prev ?? []);
|
|
34512
|
+
const add = [...nextIds].filter((id) => !prevIds.has(id));
|
|
34513
|
+
const remove = [...prevIds].filter((id) => !nextIds.has(id));
|
|
34514
|
+
return {
|
|
34515
|
+
...add.length > 0 && { add },
|
|
34516
|
+
...remove.length > 0 && { remove }
|
|
34517
|
+
};
|
|
34518
|
+
};
|
|
34519
|
+
/**
|
|
34435
34520
|
* Top-level properties that are create-only per the CFn registry schema
|
|
34436
34521
|
* (`createOnlyProperties`). A change on any of these is routed through
|
|
34437
34522
|
* DELETE+CREATE by the replacement-detection layer; if a diff somehow
|
|
@@ -34457,12 +34542,11 @@ const toBoolean$1 = (v) => {
|
|
|
34457
34542
|
* The type is `ProvisioningType: NON_PROVISIONABLE` in the CFn registry,
|
|
34458
34543
|
* so cdkd's Cloud Control fallback cannot handle it (issue #1042).
|
|
34459
34544
|
*
|
|
34460
|
-
*
|
|
34461
|
-
*
|
|
34462
|
-
*
|
|
34463
|
-
*
|
|
34464
|
-
* the
|
|
34465
|
-
* variant block, so no non-Lustre template can slip past the pre-flight).
|
|
34545
|
+
* Supported variants: **Lustre** (the CDK L2 `aws-fsx.LustreFileSystem`),
|
|
34546
|
+
* **Windows** (FSx for Windows File Server), **ONTAP** (FSx for NetApp
|
|
34547
|
+
* ONTAP), and **OpenZFS** (FSx for OpenZFS) — each carries its own
|
|
34548
|
+
* `<Variant>Configuration` block, mapped per-variant on create and diffed
|
|
34549
|
+
* against the `UpdateFileSystem` mutable surface on update (issue #1068).
|
|
34466
34550
|
*
|
|
34467
34551
|
* Lifecycle handling — every mutation is async on AWS:
|
|
34468
34552
|
* - `create` → `CreateFileSystem` (or `CreateFileSystemFromBackup` when
|
|
@@ -34500,24 +34584,23 @@ var FSxFileSystemProvider = class {
|
|
|
34500
34584
|
this.pollIntervalMs = options?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS$1;
|
|
34501
34585
|
this.maxWaitMs = options?.maxWaitMs ?? DEFAULT_MAX_WAIT_MS$1;
|
|
34502
34586
|
}
|
|
34503
|
-
handledProperties = new Map([["AWS::FSx::FileSystem", new Set([
|
|
34587
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::FSx::FileSystem", /* @__PURE__ */ new Set([
|
|
34504
34588
|
"BackupId",
|
|
34505
34589
|
"FileSystemType",
|
|
34506
34590
|
"FileSystemTypeVersion",
|
|
34507
34591
|
"KmsKeyId",
|
|
34508
34592
|
"LustreConfiguration",
|
|
34509
34593
|
"NetworkType",
|
|
34594
|
+
"OntapConfiguration",
|
|
34595
|
+
"OpenZFSConfiguration",
|
|
34510
34596
|
"SecurityGroupIds",
|
|
34511
34597
|
"StorageCapacity",
|
|
34512
34598
|
"StorageType",
|
|
34513
34599
|
"SubnetIds",
|
|
34514
|
-
"Tags"
|
|
34515
|
-
|
|
34516
|
-
unhandledByDesign = new Map([["AWS::FSx::FileSystem", new Map([
|
|
34517
|
-
["WindowsConfiguration", "FSx for Windows File Server variant — requires Active Directory wiring and Windows-specific update/delete semantics (final backups, throughput tiers) that v1 does not implement; only the Lustre variant (the CDK L2) is supported. Follow-up to issue #1042."],
|
|
34518
|
-
["OntapConfiguration", "FSx for NetApp ONTAP variant — the file system is only a container for SVMs/volumes (separate AWS::FSx::StorageVirtualMachine / AWS::FSx::Volume types, both still unsupported), so shipping it alone would be misleading; only the Lustre variant is supported in v1. Follow-up to issue #1042."],
|
|
34519
|
-
["OpenZFSConfiguration", "FSx for OpenZFS variant — root-volume semantics (RootVolumeId, child AWS::FSx::Volume trees) are not implemented in v1; only the Lustre variant is supported. Follow-up to issue #1042."]
|
|
34600
|
+
"Tags",
|
|
34601
|
+
"WindowsConfiguration"
|
|
34520
34602
|
])]]);
|
|
34603
|
+
unhandledByDesign = /* @__PURE__ */ new Map();
|
|
34521
34604
|
getClient() {
|
|
34522
34605
|
if (!this.client) this.client = new FSxClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
34523
34606
|
return this.client;
|
|
@@ -34535,7 +34618,7 @@ var FSxFileSystemProvider = class {
|
|
|
34535
34618
|
if (resourceType !== "AWS::FSx::FileSystem") throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId);
|
|
34536
34619
|
const backupId = properties["BackupId"];
|
|
34537
34620
|
const fileSystemType = properties["FileSystemType"];
|
|
34538
|
-
if (backupId === void 0 && fileSystemType !==
|
|
34621
|
+
if (backupId === void 0 && !(fileSystemType !== void 0 && fileSystemType in VARIANT_CONFIG_KEY)) throw new ProvisioningError(`AWS::FSx::FileSystem: FileSystemType '${fileSystemType ?? "(unset)"}' is not supported by cdkd — expected one of ${Object.keys(VARIANT_CONFIG_KEY).join(" / ")}.`, resourceType, logicalId);
|
|
34539
34622
|
this.logger.debug(`Creating FSx FileSystem ${logicalId}`);
|
|
34540
34623
|
const tokenHash = createHash("sha256").update([
|
|
34541
34624
|
properties["FileSystemType"],
|
|
@@ -34556,6 +34639,9 @@ var FSxFileSystemProvider = class {
|
|
|
34556
34639
|
FileSystemTypeVersion: properties["FileSystemTypeVersion"],
|
|
34557
34640
|
NetworkType: properties["NetworkType"],
|
|
34558
34641
|
LustreConfiguration: this.toCreateLustreConfiguration(properties["LustreConfiguration"]),
|
|
34642
|
+
WindowsConfiguration: this.toCreateWindowsConfiguration(properties["WindowsConfiguration"]),
|
|
34643
|
+
OntapConfiguration: this.toCreateOntapConfiguration(properties["OntapConfiguration"]),
|
|
34644
|
+
OpenZFSConfiguration: this.toCreateOpenZFSConfiguration(properties["OpenZFSConfiguration"]),
|
|
34559
34645
|
Tags: tags?.map((t) => ({
|
|
34560
34646
|
Key: t.Key,
|
|
34561
34647
|
Value: t.Value
|
|
@@ -34626,6 +34712,137 @@ var FSxFileSystemProvider = class {
|
|
|
34626
34712
|
} : void 0
|
|
34627
34713
|
};
|
|
34628
34714
|
}
|
|
34715
|
+
/** Map the CFn `WindowsConfiguration` block to the SDK create shape. */
|
|
34716
|
+
toCreateWindowsConfiguration(config) {
|
|
34717
|
+
if (!config) return void 0;
|
|
34718
|
+
return {
|
|
34719
|
+
ActiveDirectoryId: config["ActiveDirectoryId"],
|
|
34720
|
+
SelfManagedActiveDirectoryConfiguration: this.toSelfManagedAdConfiguration(config["SelfManagedActiveDirectoryConfiguration"]),
|
|
34721
|
+
DeploymentType: config["DeploymentType"],
|
|
34722
|
+
PreferredSubnetId: config["PreferredSubnetId"],
|
|
34723
|
+
ThroughputCapacity: toNumber$1(config["ThroughputCapacity"]),
|
|
34724
|
+
WeeklyMaintenanceStartTime: config["WeeklyMaintenanceStartTime"],
|
|
34725
|
+
DailyAutomaticBackupStartTime: config["DailyAutomaticBackupStartTime"],
|
|
34726
|
+
AutomaticBackupRetentionDays: toNumber$1(config["AutomaticBackupRetentionDays"]),
|
|
34727
|
+
CopyTagsToBackups: toBoolean$1(config["CopyTagsToBackups"]),
|
|
34728
|
+
Aliases: config["Aliases"],
|
|
34729
|
+
AuditLogConfiguration: this.toWindowsAuditLogConfiguration(config["AuditLogConfiguration"]),
|
|
34730
|
+
DiskIopsConfiguration: this.toDiskIopsConfiguration(config["DiskIopsConfiguration"]),
|
|
34731
|
+
FsrmConfiguration: this.toWindowsFsrmConfiguration(config["FsrmConfiguration"])
|
|
34732
|
+
};
|
|
34733
|
+
}
|
|
34734
|
+
/** Map the CFn `OntapConfiguration` block to the SDK create shape. */
|
|
34735
|
+
toCreateOntapConfiguration(config) {
|
|
34736
|
+
if (!config) return void 0;
|
|
34737
|
+
return {
|
|
34738
|
+
AutomaticBackupRetentionDays: toNumber$1(config["AutomaticBackupRetentionDays"]),
|
|
34739
|
+
DailyAutomaticBackupStartTime: config["DailyAutomaticBackupStartTime"],
|
|
34740
|
+
DeploymentType: config["DeploymentType"],
|
|
34741
|
+
EndpointIpAddressRange: config["EndpointIpAddressRange"],
|
|
34742
|
+
FsxAdminPassword: config["FsxAdminPassword"],
|
|
34743
|
+
DiskIopsConfiguration: this.toDiskIopsConfiguration(config["DiskIopsConfiguration"]),
|
|
34744
|
+
PreferredSubnetId: config["PreferredSubnetId"],
|
|
34745
|
+
RouteTableIds: config["RouteTableIds"],
|
|
34746
|
+
ThroughputCapacity: toNumber$1(config["ThroughputCapacity"]),
|
|
34747
|
+
WeeklyMaintenanceStartTime: config["WeeklyMaintenanceStartTime"],
|
|
34748
|
+
HAPairs: toNumber$1(config["HAPairs"]),
|
|
34749
|
+
ThroughputCapacityPerHAPair: toNumber$1(config["ThroughputCapacityPerHAPair"]),
|
|
34750
|
+
EndpointIpv6AddressRange: config["EndpointIpv6AddressRange"]
|
|
34751
|
+
};
|
|
34752
|
+
}
|
|
34753
|
+
/** Map the CFn `OpenZFSConfiguration` block to the SDK create shape. */
|
|
34754
|
+
toCreateOpenZFSConfiguration(config) {
|
|
34755
|
+
if (!config) return void 0;
|
|
34756
|
+
return {
|
|
34757
|
+
AutomaticBackupRetentionDays: toNumber$1(config["AutomaticBackupRetentionDays"]),
|
|
34758
|
+
CopyTagsToBackups: toBoolean$1(config["CopyTagsToBackups"]),
|
|
34759
|
+
CopyTagsToVolumes: toBoolean$1(config["CopyTagsToVolumes"]),
|
|
34760
|
+
DailyAutomaticBackupStartTime: config["DailyAutomaticBackupStartTime"],
|
|
34761
|
+
DeploymentType: config["DeploymentType"],
|
|
34762
|
+
ThroughputCapacity: toNumber$1(config["ThroughputCapacity"]),
|
|
34763
|
+
WeeklyMaintenanceStartTime: config["WeeklyMaintenanceStartTime"],
|
|
34764
|
+
DiskIopsConfiguration: this.toDiskIopsConfiguration(config["DiskIopsConfiguration"]),
|
|
34765
|
+
RootVolumeConfiguration: this.toOpenZFSRootVolumeConfiguration(config["RootVolumeConfiguration"]),
|
|
34766
|
+
PreferredSubnetId: config["PreferredSubnetId"],
|
|
34767
|
+
EndpointIpAddressRange: config["EndpointIpAddressRange"],
|
|
34768
|
+
EndpointIpv6AddressRange: config["EndpointIpv6AddressRange"],
|
|
34769
|
+
RouteTableIds: config["RouteTableIds"],
|
|
34770
|
+
ReadCacheConfiguration: this.toOpenZFSReadCacheConfiguration(config["ReadCacheConfiguration"])
|
|
34771
|
+
};
|
|
34772
|
+
}
|
|
34773
|
+
toDiskIopsConfiguration(config) {
|
|
34774
|
+
if (!config) return void 0;
|
|
34775
|
+
return {
|
|
34776
|
+
Mode: config["Mode"],
|
|
34777
|
+
Iops: toNumber$1(config["Iops"])
|
|
34778
|
+
};
|
|
34779
|
+
}
|
|
34780
|
+
toSelfManagedAdConfiguration(config) {
|
|
34781
|
+
if (!config) return void 0;
|
|
34782
|
+
return {
|
|
34783
|
+
DomainName: config["DomainName"],
|
|
34784
|
+
OrganizationalUnitDistinguishedName: config["OrganizationalUnitDistinguishedName"],
|
|
34785
|
+
FileSystemAdministratorsGroup: config["FileSystemAdministratorsGroup"],
|
|
34786
|
+
UserName: config["UserName"],
|
|
34787
|
+
Password: config["Password"],
|
|
34788
|
+
DnsIps: config["DnsIps"],
|
|
34789
|
+
DomainJoinServiceAccountSecret: config["DomainJoinServiceAccountSecret"]
|
|
34790
|
+
};
|
|
34791
|
+
}
|
|
34792
|
+
toSelfManagedAdConfigurationUpdates(config) {
|
|
34793
|
+
if (!config) return void 0;
|
|
34794
|
+
return {
|
|
34795
|
+
UserName: config["UserName"],
|
|
34796
|
+
Password: config["Password"],
|
|
34797
|
+
DnsIps: config["DnsIps"],
|
|
34798
|
+
DomainName: config["DomainName"],
|
|
34799
|
+
OrganizationalUnitDistinguishedName: config["OrganizationalUnitDistinguishedName"],
|
|
34800
|
+
FileSystemAdministratorsGroup: config["FileSystemAdministratorsGroup"],
|
|
34801
|
+
DomainJoinServiceAccountSecret: config["DomainJoinServiceAccountSecret"]
|
|
34802
|
+
};
|
|
34803
|
+
}
|
|
34804
|
+
toWindowsAuditLogConfiguration(config) {
|
|
34805
|
+
if (!config) return void 0;
|
|
34806
|
+
return {
|
|
34807
|
+
FileAccessAuditLogLevel: config["FileAccessAuditLogLevel"],
|
|
34808
|
+
FileShareAccessAuditLogLevel: config["FileShareAccessAuditLogLevel"],
|
|
34809
|
+
AuditLogDestination: config["AuditLogDestination"]
|
|
34810
|
+
};
|
|
34811
|
+
}
|
|
34812
|
+
toWindowsFsrmConfiguration(config) {
|
|
34813
|
+
if (!config) return void 0;
|
|
34814
|
+
return {
|
|
34815
|
+
FsrmServiceEnabled: toBoolean$1(config["FsrmServiceEnabled"]),
|
|
34816
|
+
EventLogDestination: config["EventLogDestination"]
|
|
34817
|
+
};
|
|
34818
|
+
}
|
|
34819
|
+
toOpenZFSRootVolumeConfiguration(config) {
|
|
34820
|
+
if (!config) return void 0;
|
|
34821
|
+
const nfsExports = config["NfsExports"];
|
|
34822
|
+
const quotas = config["UserAndGroupQuotas"];
|
|
34823
|
+
return {
|
|
34824
|
+
RecordSizeKiB: toNumber$1(config["RecordSizeKiB"]),
|
|
34825
|
+
DataCompressionType: config["DataCompressionType"],
|
|
34826
|
+
NfsExports: nfsExports?.map((exp) => ({ ClientConfigurations: (exp["ClientConfigurations"] ?? []).map((cc) => ({
|
|
34827
|
+
Clients: cc["Clients"],
|
|
34828
|
+
Options: cc["Options"]
|
|
34829
|
+
})) })),
|
|
34830
|
+
UserAndGroupQuotas: quotas?.map((q) => ({
|
|
34831
|
+
Type: q["Type"],
|
|
34832
|
+
Id: toNumber$1(q["Id"]),
|
|
34833
|
+
StorageCapacityQuotaGiB: toNumber$1(q["StorageCapacityQuotaGiB"])
|
|
34834
|
+
})),
|
|
34835
|
+
CopyTagsToSnapshots: toBoolean$1(config["CopyTagsToSnapshots"]),
|
|
34836
|
+
ReadOnly: toBoolean$1(config["ReadOnly"])
|
|
34837
|
+
};
|
|
34838
|
+
}
|
|
34839
|
+
toOpenZFSReadCacheConfiguration(config) {
|
|
34840
|
+
if (!config) return void 0;
|
|
34841
|
+
return {
|
|
34842
|
+
SizingMode: config["SizingMode"],
|
|
34843
|
+
SizeGiB: toNumber$1(config["SizeGiB"])
|
|
34844
|
+
};
|
|
34845
|
+
}
|
|
34629
34846
|
async update(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
34630
34847
|
const changed = (key) => JSON.stringify(properties[key]) !== JSON.stringify(previousProperties[key]);
|
|
34631
34848
|
for (const key of TOP_LEVEL_IMMUTABLE_PROPS) {
|
|
@@ -34633,55 +34850,17 @@ var FSxFileSystemProvider = class {
|
|
|
34633
34850
|
const prev = previousProperties[key];
|
|
34634
34851
|
if (JSON.stringify(next ?? null) !== JSON.stringify(prev ?? null)) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `AWS FSx FileSystem ${key} is immutable on AWS — UpdateFileSystem does not accept ${key}; the property is fixed at creation. Re-deploy with cdkd deploy --replace, or destroy + redeploy the stack.`);
|
|
34635
34852
|
}
|
|
34636
|
-
const
|
|
34637
|
-
const
|
|
34638
|
-
|
|
34639
|
-
|
|
34640
|
-
|
|
34641
|
-
for (const key of lustreKeys) {
|
|
34642
|
-
const next = nextLustre[key];
|
|
34643
|
-
const prev = prevLustre[key];
|
|
34644
|
-
if (JSON.stringify(next) === JSON.stringify(prev)) continue;
|
|
34645
|
-
if (!LUSTRE_MUTABLE_SUBPROPS.has(key)) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `AWS FSx FileSystem LustreConfiguration.${key} is immutable on AWS — UpdateFileSystem cannot change it after creation. Re-deploy with cdkd deploy --replace, or destroy + redeploy the stack.`);
|
|
34646
|
-
lustreHasMutableDiff = true;
|
|
34647
|
-
switch (key) {
|
|
34648
|
-
case "WeeklyMaintenanceStartTime":
|
|
34649
|
-
case "DailyAutomaticBackupStartTime":
|
|
34650
|
-
lustreMutableDiff[key] = next;
|
|
34651
|
-
break;
|
|
34652
|
-
case "AutomaticBackupRetentionDays":
|
|
34653
|
-
case "PerUnitStorageThroughput":
|
|
34654
|
-
case "ThroughputCapacity":
|
|
34655
|
-
lustreMutableDiff[key] = toNumber$1(next);
|
|
34656
|
-
break;
|
|
34657
|
-
case "AutoImportPolicy":
|
|
34658
|
-
case "DataCompressionType":
|
|
34659
|
-
lustreMutableDiff[key] = next;
|
|
34660
|
-
break;
|
|
34661
|
-
case "MetadataConfiguration": {
|
|
34662
|
-
const metadata = next;
|
|
34663
|
-
lustreMutableDiff.MetadataConfiguration = metadata ? {
|
|
34664
|
-
Mode: metadata["Mode"],
|
|
34665
|
-
Iops: toNumber$1(metadata["Iops"])
|
|
34666
|
-
} : void 0;
|
|
34667
|
-
break;
|
|
34668
|
-
}
|
|
34669
|
-
case "DataReadCacheConfiguration": {
|
|
34670
|
-
const readCache = next;
|
|
34671
|
-
lustreMutableDiff.DataReadCacheConfiguration = readCache ? {
|
|
34672
|
-
SizingMode: readCache["SizingMode"],
|
|
34673
|
-
SizeGiB: toNumber$1(readCache["SizeGiB"])
|
|
34674
|
-
} : void 0;
|
|
34675
|
-
break;
|
|
34676
|
-
}
|
|
34677
|
-
}
|
|
34678
|
-
}
|
|
34853
|
+
const variantConfigKey = this.detectVariantConfigKey(properties, previousProperties);
|
|
34854
|
+
const { diff: variantDiff, hasMutableDiff: variantHasMutableDiff } = variantConfigKey ? this.computeVariantConfigDiff(resourceType, logicalId, variantConfigKey, properties[variantConfigKey] ?? {}, previousProperties[variantConfigKey] ?? {}) : {
|
|
34855
|
+
diff: {},
|
|
34856
|
+
hasMutableDiff: false
|
|
34857
|
+
};
|
|
34679
34858
|
const storageCapacityChanged = changed("StorageCapacity");
|
|
34680
34859
|
const storageTypeChanged = changed("StorageType");
|
|
34681
34860
|
const typeVersionChanged = changed("FileSystemTypeVersion");
|
|
34682
34861
|
const networkTypeChanged = changed("NetworkType");
|
|
34683
34862
|
const tagsChanged = changed("Tags");
|
|
34684
|
-
if (!
|
|
34863
|
+
if (!variantHasMutableDiff && !storageCapacityChanged && !storageTypeChanged && !typeVersionChanged && !networkTypeChanged && !tagsChanged) {
|
|
34685
34864
|
this.logger.debug(`No mutable diff for FSx FileSystem ${logicalId}, skipping update`);
|
|
34686
34865
|
return {
|
|
34687
34866
|
physicalId,
|
|
@@ -34690,7 +34869,7 @@ var FSxFileSystemProvider = class {
|
|
|
34690
34869
|
}
|
|
34691
34870
|
this.logger.debug(`Updating FSx FileSystem ${logicalId}: ${physicalId}`);
|
|
34692
34871
|
try {
|
|
34693
|
-
const needsUpdateCall =
|
|
34872
|
+
const needsUpdateCall = variantHasMutableDiff || storageCapacityChanged || storageTypeChanged || typeVersionChanged || networkTypeChanged;
|
|
34694
34873
|
let updatedFs;
|
|
34695
34874
|
if (needsUpdateCall) {
|
|
34696
34875
|
const callTimeMs = Date.now();
|
|
@@ -34700,7 +34879,7 @@ var FSxFileSystemProvider = class {
|
|
|
34700
34879
|
...storageTypeChanged && { StorageType: properties["StorageType"] },
|
|
34701
34880
|
...typeVersionChanged && { FileSystemTypeVersion: properties["FileSystemTypeVersion"] },
|
|
34702
34881
|
...networkTypeChanged && { NetworkType: properties["NetworkType"] },
|
|
34703
|
-
...
|
|
34882
|
+
...variantHasMutableDiff && variantConfigKey ? { [variantConfigKey]: variantDiff } : {}
|
|
34704
34883
|
}))).FileSystem?.AdministrativeActions ?? []).filter((a) => a.AdministrativeActionType === "FILE_SYSTEM_UPDATE" && (a.Status === "PENDING" || a.Status === "IN_PROGRESS"));
|
|
34705
34884
|
const requestTimes = respPendingActions.map((a) => a.RequestTime?.getTime()).filter((t) => t !== void 0);
|
|
34706
34885
|
const actionThresholdMs = requestTimes.length > 0 ? Math.min(...requestTimes) : callTimeMs - 6e4;
|
|
@@ -34725,6 +34904,156 @@ var FSxFileSystemProvider = class {
|
|
|
34725
34904
|
}
|
|
34726
34905
|
}
|
|
34727
34906
|
/**
|
|
34907
|
+
* Which `<Variant>Configuration` block (if any) is present on either side
|
|
34908
|
+
* of the update. At most one is expected — the file system's type never
|
|
34909
|
+
* changes (FileSystemType is registry-createOnly, guarded above).
|
|
34910
|
+
*/
|
|
34911
|
+
detectVariantConfigKey(properties, previousProperties) {
|
|
34912
|
+
for (const key of Object.values(VARIANT_CONFIG_KEY)) if (properties[key] !== void 0 || previousProperties[key] !== void 0) return key;
|
|
34913
|
+
}
|
|
34914
|
+
/**
|
|
34915
|
+
* Diff a variant config block's sub-properties into the SDK
|
|
34916
|
+
* `UpdateFileSystem<Variant>Configuration` shape. A changed sub-field that
|
|
34917
|
+
* is NOT in the variant's mutable set is rejected with a `--replace`
|
|
34918
|
+
* pointer (UpdateFileSystem cannot express it).
|
|
34919
|
+
*/
|
|
34920
|
+
computeVariantConfigDiff(resourceType, logicalId, configKey, next, prev) {
|
|
34921
|
+
const mutable = VARIANT_MUTABLE_SUBPROPS[configKey] ?? /* @__PURE__ */ new Set();
|
|
34922
|
+
const keys = /* @__PURE__ */ new Set([...Object.keys(next), ...Object.keys(prev)]);
|
|
34923
|
+
const diff = {};
|
|
34924
|
+
let hasMutableDiff = false;
|
|
34925
|
+
for (const key of keys) {
|
|
34926
|
+
const nextVal = next[key];
|
|
34927
|
+
const prevVal = prev[key];
|
|
34928
|
+
if (JSON.stringify(nextVal) === JSON.stringify(prevVal)) continue;
|
|
34929
|
+
if (!mutable.has(key)) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `AWS FSx FileSystem ${configKey}.${key} is immutable on AWS — UpdateFileSystem cannot change it after creation. Re-deploy with cdkd deploy --replace, or destroy + redeploy the stack.`);
|
|
34930
|
+
if (configKey === "LustreConfiguration" ? this.applyLustreUpdateField(key, nextVal, diff) : configKey === "WindowsConfiguration" ? this.applyWindowsUpdateField(key, nextVal, diff) : configKey === "OntapConfiguration" ? this.applyOntapUpdateField(key, nextVal, prevVal, diff) : this.applyOpenZFSUpdateField(key, nextVal, prevVal, diff)) hasMutableDiff = true;
|
|
34931
|
+
}
|
|
34932
|
+
return {
|
|
34933
|
+
diff,
|
|
34934
|
+
hasMutableDiff
|
|
34935
|
+
};
|
|
34936
|
+
}
|
|
34937
|
+
applyLustreUpdateField(key, next, diff) {
|
|
34938
|
+
const out = diff;
|
|
34939
|
+
switch (key) {
|
|
34940
|
+
case "WeeklyMaintenanceStartTime":
|
|
34941
|
+
case "DailyAutomaticBackupStartTime":
|
|
34942
|
+
diff[key] = next;
|
|
34943
|
+
break;
|
|
34944
|
+
case "AutomaticBackupRetentionDays":
|
|
34945
|
+
case "PerUnitStorageThroughput":
|
|
34946
|
+
case "ThroughputCapacity":
|
|
34947
|
+
diff[key] = toNumber$1(next);
|
|
34948
|
+
break;
|
|
34949
|
+
case "AutoImportPolicy":
|
|
34950
|
+
case "DataCompressionType":
|
|
34951
|
+
diff[key] = next;
|
|
34952
|
+
break;
|
|
34953
|
+
case "MetadataConfiguration": {
|
|
34954
|
+
const metadata = next;
|
|
34955
|
+
out.MetadataConfiguration = metadata ? {
|
|
34956
|
+
Mode: metadata["Mode"],
|
|
34957
|
+
Iops: toNumber$1(metadata["Iops"])
|
|
34958
|
+
} : void 0;
|
|
34959
|
+
break;
|
|
34960
|
+
}
|
|
34961
|
+
case "DataReadCacheConfiguration": {
|
|
34962
|
+
const readCache = next;
|
|
34963
|
+
out.DataReadCacheConfiguration = readCache ? {
|
|
34964
|
+
SizingMode: readCache["SizingMode"],
|
|
34965
|
+
SizeGiB: toNumber$1(readCache["SizeGiB"])
|
|
34966
|
+
} : void 0;
|
|
34967
|
+
break;
|
|
34968
|
+
}
|
|
34969
|
+
}
|
|
34970
|
+
return true;
|
|
34971
|
+
}
|
|
34972
|
+
applyWindowsUpdateField(key, next, diff) {
|
|
34973
|
+
const out = diff;
|
|
34974
|
+
switch (key) {
|
|
34975
|
+
case "WeeklyMaintenanceStartTime":
|
|
34976
|
+
case "DailyAutomaticBackupStartTime":
|
|
34977
|
+
diff[key] = next;
|
|
34978
|
+
break;
|
|
34979
|
+
case "AutomaticBackupRetentionDays":
|
|
34980
|
+
case "ThroughputCapacity":
|
|
34981
|
+
diff[key] = toNumber$1(next);
|
|
34982
|
+
break;
|
|
34983
|
+
case "SelfManagedActiveDirectoryConfiguration":
|
|
34984
|
+
out.SelfManagedActiveDirectoryConfiguration = this.toSelfManagedAdConfigurationUpdates(next);
|
|
34985
|
+
break;
|
|
34986
|
+
case "AuditLogConfiguration":
|
|
34987
|
+
out.AuditLogConfiguration = this.toWindowsAuditLogConfiguration(next);
|
|
34988
|
+
break;
|
|
34989
|
+
case "DiskIopsConfiguration":
|
|
34990
|
+
out.DiskIopsConfiguration = this.toDiskIopsConfiguration(next);
|
|
34991
|
+
break;
|
|
34992
|
+
case "FsrmConfiguration":
|
|
34993
|
+
out.FsrmConfiguration = this.toWindowsFsrmConfiguration(next);
|
|
34994
|
+
break;
|
|
34995
|
+
}
|
|
34996
|
+
return true;
|
|
34997
|
+
}
|
|
34998
|
+
applyOntapUpdateField(key, next, prev, diff) {
|
|
34999
|
+
const out = diff;
|
|
35000
|
+
switch (key) {
|
|
35001
|
+
case "DailyAutomaticBackupStartTime":
|
|
35002
|
+
case "WeeklyMaintenanceStartTime":
|
|
35003
|
+
case "FsxAdminPassword":
|
|
35004
|
+
case "EndpointIpv6AddressRange":
|
|
35005
|
+
diff[key] = next;
|
|
35006
|
+
break;
|
|
35007
|
+
case "AutomaticBackupRetentionDays":
|
|
35008
|
+
case "ThroughputCapacity":
|
|
35009
|
+
case "ThroughputCapacityPerHAPair":
|
|
35010
|
+
case "HAPairs":
|
|
35011
|
+
diff[key] = toNumber$1(next);
|
|
35012
|
+
break;
|
|
35013
|
+
case "DiskIopsConfiguration":
|
|
35014
|
+
out.DiskIopsConfiguration = this.toDiskIopsConfiguration(next);
|
|
35015
|
+
break;
|
|
35016
|
+
case "RouteTableIds": {
|
|
35017
|
+
const { add, remove } = routeTableDelta(next, prev);
|
|
35018
|
+
if (add) out.AddRouteTableIds = add;
|
|
35019
|
+
if (remove) out.RemoveRouteTableIds = remove;
|
|
35020
|
+
return add !== void 0 || remove !== void 0;
|
|
35021
|
+
}
|
|
35022
|
+
}
|
|
35023
|
+
return true;
|
|
35024
|
+
}
|
|
35025
|
+
applyOpenZFSUpdateField(key, next, prev, diff) {
|
|
35026
|
+
const out = diff;
|
|
35027
|
+
switch (key) {
|
|
35028
|
+
case "DailyAutomaticBackupStartTime":
|
|
35029
|
+
case "WeeklyMaintenanceStartTime":
|
|
35030
|
+
case "EndpointIpv6AddressRange":
|
|
35031
|
+
diff[key] = next;
|
|
35032
|
+
break;
|
|
35033
|
+
case "CopyTagsToBackups":
|
|
35034
|
+
case "CopyTagsToVolumes":
|
|
35035
|
+
diff[key] = toBoolean$1(next);
|
|
35036
|
+
break;
|
|
35037
|
+
case "AutomaticBackupRetentionDays":
|
|
35038
|
+
case "ThroughputCapacity":
|
|
35039
|
+
diff[key] = toNumber$1(next);
|
|
35040
|
+
break;
|
|
35041
|
+
case "DiskIopsConfiguration":
|
|
35042
|
+
out.DiskIopsConfiguration = this.toDiskIopsConfiguration(next);
|
|
35043
|
+
break;
|
|
35044
|
+
case "ReadCacheConfiguration":
|
|
35045
|
+
out.ReadCacheConfiguration = this.toOpenZFSReadCacheConfiguration(next);
|
|
35046
|
+
break;
|
|
35047
|
+
case "RouteTableIds": {
|
|
35048
|
+
const { add, remove } = routeTableDelta(next, prev);
|
|
35049
|
+
if (add) out.AddRouteTableIds = add;
|
|
35050
|
+
if (remove) out.RemoveRouteTableIds = remove;
|
|
35051
|
+
return add !== void 0 || remove !== void 0;
|
|
35052
|
+
}
|
|
35053
|
+
}
|
|
35054
|
+
return true;
|
|
35055
|
+
}
|
|
35056
|
+
/**
|
|
34728
35057
|
* Apply a `Tags` diff via `TagResource` / `UntagResource` (the FSx
|
|
34729
35058
|
* `UpdateFileSystem` API does not accept tags). Needs the ARN — resolve
|
|
34730
35059
|
* it from `DescribeFileSystems`.
|
|
@@ -34878,6 +35207,7 @@ var FSxFileSystemProvider = class {
|
|
|
34878
35207
|
if (fs.ResourceARN !== void 0) attributes["ResourceARN"] = fs.ResourceARN;
|
|
34879
35208
|
if (fs.DNSName !== void 0) attributes["DNSName"] = fs.DNSName;
|
|
34880
35209
|
if (fs.LustreConfiguration?.MountName !== void 0) attributes["LustreMountName"] = fs.LustreConfiguration.MountName;
|
|
35210
|
+
if (fs.OpenZFSConfiguration?.RootVolumeId !== void 0) attributes["RootVolumeId"] = fs.OpenZFSConfiguration.RootVolumeId;
|
|
34881
35211
|
if (fs.FileSystemId !== void 0) attributes["FileSystemId"] = fs.FileSystemId;
|
|
34882
35212
|
return attributes;
|
|
34883
35213
|
}
|
|
@@ -34899,10 +35229,23 @@ var FSxFileSystemProvider = class {
|
|
|
34899
35229
|
* interface ids, never the original security group list.
|
|
34900
35230
|
* - `BackupId` — creation-source input, not surfaced on the deployed
|
|
34901
35231
|
* file system.
|
|
35232
|
+
* - `WindowsConfiguration` / `OntapConfiguration` / `OpenZFSConfiguration`
|
|
35233
|
+
* — `readCurrentState` maps only the Lustre block back to CFn shape
|
|
35234
|
+
* today, so drift on the non-Lustre variant blocks is not yet computed;
|
|
35235
|
+
* marking them unknown avoids a guaranteed false positive on every run
|
|
35236
|
+
* (variant-config drift is a follow-up). Only the block matching the
|
|
35237
|
+
* file system's type is ever present in state, so listing all three is
|
|
35238
|
+
* harmless.
|
|
34902
35239
|
*/
|
|
34903
35240
|
getDriftUnknownPaths(resourceType) {
|
|
34904
35241
|
if (resourceType !== "AWS::FSx::FileSystem") return [];
|
|
34905
|
-
return [
|
|
35242
|
+
return [
|
|
35243
|
+
"SecurityGroupIds",
|
|
35244
|
+
"BackupId",
|
|
35245
|
+
"WindowsConfiguration",
|
|
35246
|
+
"OntapConfiguration",
|
|
35247
|
+
"OpenZFSConfiguration"
|
|
35248
|
+
];
|
|
34906
35249
|
}
|
|
34907
35250
|
/**
|
|
34908
35251
|
* Read the AWS-current file system configuration in CFn-property shape
|
|
@@ -35013,13 +35356,13 @@ var FSxFileSystemProvider = class {
|
|
|
35013
35356
|
const DEFAULT_MAX_WAIT_MS = 3600 * 1e3;
|
|
35014
35357
|
const DEFAULT_POLL_INTERVAL_MS = 15e3;
|
|
35015
35358
|
/** Cluster states that mean "create succeeded, the cluster is up". */
|
|
35016
|
-
const CREATE_READY_STATES = new Set(["WAITING", "RUNNING"]);
|
|
35359
|
+
const CREATE_READY_STATES = /* @__PURE__ */ new Set(["WAITING", "RUNNING"]);
|
|
35017
35360
|
/**
|
|
35018
35361
|
* Cluster states that mean "the cluster is gone" (for delete polling and
|
|
35019
35362
|
* delete idempotency). `TERMINATED_WITH_ERRORS` still counts as gone — the
|
|
35020
35363
|
* cluster no longer bills — but is logged so a failed terminate is visible.
|
|
35021
35364
|
*/
|
|
35022
|
-
const TERMINAL_STATES = new Set(["TERMINATED", "TERMINATED_WITH_ERRORS"]);
|
|
35365
|
+
const TERMINAL_STATES = /* @__PURE__ */ new Set(["TERMINATED", "TERMINATED_WITH_ERRORS"]);
|
|
35023
35366
|
/**
|
|
35024
35367
|
* Cluster states that mean "the cluster is alive" — the `ListClusters` filter
|
|
35025
35368
|
* used by `import()` discovery so a long-gone `TERMINATED*` cluster is never
|
|
@@ -35038,7 +35381,7 @@ const NON_TERMINATED_STATES = [
|
|
|
35038
35381
|
* replacement-detection layer) or lives inside the `Instances` block (handled
|
|
35039
35382
|
* specially in `update()` — only `TerminationProtected` is mutable there).
|
|
35040
35383
|
*/
|
|
35041
|
-
const MUTABLE_TOP_LEVEL_PROPS = new Set([
|
|
35384
|
+
const MUTABLE_TOP_LEVEL_PROPS = /* @__PURE__ */ new Set([
|
|
35042
35385
|
"Tags",
|
|
35043
35386
|
"VisibleToAllUsers",
|
|
35044
35387
|
"StepConcurrencyLevel",
|
|
@@ -35104,7 +35447,7 @@ var EMRClusterProvider = class {
|
|
|
35104
35447
|
this.pollIntervalMs = options?.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
35105
35448
|
this.maxWaitMs = options?.maxWaitMs ?? DEFAULT_MAX_WAIT_MS;
|
|
35106
35449
|
}
|
|
35107
|
-
handledProperties = new Map([["AWS::EMR::Cluster", new Set([
|
|
35450
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::EMR::Cluster", /* @__PURE__ */ new Set([
|
|
35108
35451
|
"AdditionalInfo",
|
|
35109
35452
|
"Applications",
|
|
35110
35453
|
"AutoScalingRole",
|
|
@@ -35313,7 +35656,7 @@ var EMRClusterProvider = class {
|
|
|
35313
35656
|
const prevInstances = previousProperties["Instances"] ?? {};
|
|
35314
35657
|
let terminationProtectedChanged = false;
|
|
35315
35658
|
if (changed("Instances")) {
|
|
35316
|
-
const instanceKeys = new Set([...Object.keys(nextInstances), ...Object.keys(prevInstances)]);
|
|
35659
|
+
const instanceKeys = /* @__PURE__ */ new Set([...Object.keys(nextInstances), ...Object.keys(prevInstances)]);
|
|
35317
35660
|
for (const key of instanceKeys) {
|
|
35318
35661
|
if (jsonEqual(nextInstances[key], prevInstances[key])) continue;
|
|
35319
35662
|
if (key === "TerminationProtected") {
|
|
@@ -35818,7 +36161,7 @@ var EMRClusterProvider = class {
|
|
|
35818
36161
|
* Membership grows as each follow-up PR lands. Keep alphabetical
|
|
35819
36162
|
* to minimize merge conflicts when multiple follow-ups race.
|
|
35820
36163
|
*/
|
|
35821
|
-
const SUPPORTED_UPDATE_DESTINATIONS = new Set([
|
|
36164
|
+
const SUPPORTED_UPDATE_DESTINATIONS = /* @__PURE__ */ new Set([
|
|
35822
36165
|
"AmazonOpenSearchServerlessDestinationConfiguration",
|
|
35823
36166
|
"AmazonopensearchserviceDestinationConfiguration",
|
|
35824
36167
|
"ElasticsearchDestinationConfiguration",
|
|
@@ -35842,7 +36185,7 @@ var FirehoseProvider = class {
|
|
|
35842
36185
|
client;
|
|
35843
36186
|
providerRegion = process.env["AWS_REGION"];
|
|
35844
36187
|
logger = getLogger().child("FirehoseProvider");
|
|
35845
|
-
handledProperties = new Map([["AWS::KinesisFirehose::DeliveryStream", new Set([
|
|
36188
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::KinesisFirehose::DeliveryStream", /* @__PURE__ */ new Set([
|
|
35846
36189
|
"DeliveryStreamName",
|
|
35847
36190
|
"DeliveryStreamType",
|
|
35848
36191
|
"S3DestinationConfiguration",
|
|
@@ -37088,7 +37431,7 @@ var CloudTrailProvider = class {
|
|
|
37088
37431
|
client;
|
|
37089
37432
|
providerRegion = process.env["AWS_REGION"];
|
|
37090
37433
|
logger = getLogger().child("CloudTrailProvider");
|
|
37091
|
-
handledProperties = new Map([["AWS::CloudTrail::Trail", new Set([
|
|
37434
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CloudTrail::Trail", /* @__PURE__ */ new Set([
|
|
37092
37435
|
"S3BucketName",
|
|
37093
37436
|
"TrailName",
|
|
37094
37437
|
"S3KeyPrefix",
|
|
@@ -37431,7 +37774,7 @@ var CodeBuildProvider = class {
|
|
|
37431
37774
|
client;
|
|
37432
37775
|
providerRegion = process.env["AWS_REGION"];
|
|
37433
37776
|
logger = getLogger().child("CodeBuildProvider");
|
|
37434
|
-
handledProperties = new Map([["AWS::CodeBuild::Project", new Set([
|
|
37777
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CodeBuild::Project", /* @__PURE__ */ new Set([
|
|
37435
37778
|
"Name",
|
|
37436
37779
|
"Source",
|
|
37437
37780
|
"Environment",
|
|
@@ -37963,7 +38306,7 @@ var CodeCommitRepositoryProvider = class {
|
|
|
37963
38306
|
s3Client;
|
|
37964
38307
|
providerRegion = process.env["AWS_REGION"];
|
|
37965
38308
|
logger = getLogger().child("CodeCommitRepositoryProvider");
|
|
37966
|
-
handledProperties = new Map([["AWS::CodeCommit::Repository", new Set([
|
|
38309
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CodeCommit::Repository", /* @__PURE__ */ new Set([
|
|
37967
38310
|
"RepositoryName",
|
|
37968
38311
|
"RepositoryDescription",
|
|
37969
38312
|
"KmsKeyId",
|
|
@@ -38415,7 +38758,7 @@ var DLMLifecyclePolicyProvider = class {
|
|
|
38415
38758
|
client;
|
|
38416
38759
|
providerRegion = process.env["AWS_REGION"];
|
|
38417
38760
|
logger = getLogger().child("DLMLifecyclePolicyProvider");
|
|
38418
|
-
handledProperties = new Map([["AWS::DLM::LifecyclePolicy", new Set([
|
|
38761
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::DLM::LifecyclePolicy", /* @__PURE__ */ new Set([
|
|
38419
38762
|
"Description",
|
|
38420
38763
|
"ExecutionRoleArn",
|
|
38421
38764
|
"State",
|
|
@@ -38665,7 +39008,7 @@ var S3VectorsProvider = class {
|
|
|
38665
39008
|
client;
|
|
38666
39009
|
providerRegion = process.env["AWS_REGION"];
|
|
38667
39010
|
logger = getLogger().child("S3VectorsProvider");
|
|
38668
|
-
handledProperties = new Map([["AWS::S3Vectors::VectorBucket", new Set([
|
|
39011
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::S3Vectors::VectorBucket", /* @__PURE__ */ new Set([
|
|
38669
39012
|
"VectorBucketName",
|
|
38670
39013
|
"EncryptionConfiguration",
|
|
38671
39014
|
"Tags"
|
|
@@ -38926,7 +39269,7 @@ var S3DirectoryBucketProvider = class {
|
|
|
38926
39269
|
s3Client;
|
|
38927
39270
|
stsClient;
|
|
38928
39271
|
logger = getLogger().child("S3DirectoryBucketProvider");
|
|
38929
|
-
handledProperties = new Map([["AWS::S3Express::DirectoryBucket", new Set([
|
|
39272
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::S3Express::DirectoryBucket", /* @__PURE__ */ new Set([
|
|
38930
39273
|
"DataRedundancy",
|
|
38931
39274
|
"LocationName",
|
|
38932
39275
|
"BucketName"
|
|
@@ -39173,10 +39516,10 @@ var S3TablesProvider = class {
|
|
|
39173
39516
|
client;
|
|
39174
39517
|
providerRegion = process.env["AWS_REGION"];
|
|
39175
39518
|
logger = getLogger().child("S3TablesProvider");
|
|
39176
|
-
handledProperties = new Map([
|
|
39177
|
-
["AWS::S3Tables::TableBucket", new Set(["TableBucketName", "Tags"])],
|
|
39178
|
-
["AWS::S3Tables::Namespace", new Set(["TableBucketARN", "Namespace"])],
|
|
39179
|
-
["AWS::S3Tables::Table", new Set([
|
|
39519
|
+
handledProperties = /* @__PURE__ */ new Map([
|
|
39520
|
+
["AWS::S3Tables::TableBucket", /* @__PURE__ */ new Set(["TableBucketName", "Tags"])],
|
|
39521
|
+
["AWS::S3Tables::Namespace", /* @__PURE__ */ new Set(["TableBucketARN", "Namespace"])],
|
|
39522
|
+
["AWS::S3Tables::Table", /* @__PURE__ */ new Set([
|
|
39180
39523
|
"TableBucketARN",
|
|
39181
39524
|
"Namespace",
|
|
39182
39525
|
"TableName",
|
|
@@ -39793,7 +40136,7 @@ var ECRProvider = class {
|
|
|
39793
40136
|
client;
|
|
39794
40137
|
providerRegion = process.env["AWS_REGION"];
|
|
39795
40138
|
logger = getLogger().child("ECRProvider");
|
|
39796
|
-
handledProperties = new Map([["AWS::ECR::Repository", new Set([
|
|
40139
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::ECR::Repository", /* @__PURE__ */ new Set([
|
|
39797
40140
|
"RepositoryName",
|
|
39798
40141
|
"ImageScanningConfiguration",
|
|
39799
40142
|
"ImageTagMutability",
|
|
@@ -40140,8 +40483,8 @@ const PROTECTION_PROPERTY_BY_TYPE = {
|
|
|
40140
40483
|
* (boolean `true`).
|
|
40141
40484
|
*/
|
|
40142
40485
|
const PROTECTION_ACTIVE_VALUES_BY_TYPE = {
|
|
40143
|
-
"AWS::Cognito::UserPool": new Set(["ACTIVE"]),
|
|
40144
|
-
"AWS::AutoScaling::AutoScalingGroup": new Set(["prevent-force-deletion", "prevent-all-deletion"])
|
|
40486
|
+
"AWS::Cognito::UserPool": /* @__PURE__ */ new Set(["ACTIVE"]),
|
|
40487
|
+
"AWS::AutoScaling::AutoScalingGroup": /* @__PURE__ */ new Set(["prevent-force-deletion", "prevent-all-deletion"])
|
|
40145
40488
|
};
|
|
40146
40489
|
/**
|
|
40147
40490
|
* Count how many resources in a stack's recorded state appear to have
|
|
@@ -40675,7 +41018,7 @@ var NestedStackProvider = class {
|
|
|
40675
41018
|
* parameter map forwarded as `DeployEngineOptions.parameters` to the
|
|
40676
41019
|
* child engine.
|
|
40677
41020
|
*/
|
|
40678
|
-
handledProperties = new Map([["AWS::CloudFormation::Stack", new Set(["TemplateURL", "Parameters"])]]);
|
|
41021
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CloudFormation::Stack", /* @__PURE__ */ new Set(["TemplateURL", "Parameters"])]]);
|
|
40679
41022
|
/**
|
|
40680
41023
|
* Every other property on `AWS::CloudFormation::Stack` is intentionally
|
|
40681
41024
|
* not threaded through — cdkd does not go through CloudFormation, so
|
|
@@ -40687,7 +41030,7 @@ var NestedStackProvider = class {
|
|
|
40687
41030
|
* `<parent>~<logicalId>` key per design §3, and `TemplateBody` is
|
|
40688
41031
|
* superseded by the local `Metadata['aws:asset:path']` lookup.
|
|
40689
41032
|
*/
|
|
40690
|
-
unhandledByDesign = new Map([["AWS::CloudFormation::Stack", new Map([
|
|
41033
|
+
unhandledByDesign = /* @__PURE__ */ new Map([["AWS::CloudFormation::Stack", /* @__PURE__ */ new Map([
|
|
40691
41034
|
["TemplateBody", "CFn-only inline template — cdkd reads the child template from the synth output via Metadata['aws:asset:path'] instead of accepting it inline"],
|
|
40692
41035
|
["Capabilities", "CFn-only IAM capability declaration — cdkd does not go through CloudFormation so capabilities have no equivalent"],
|
|
40693
41036
|
["Description", "CFn-only informational — no semantic effect on the recursive deploy"],
|
|
@@ -40880,7 +41223,7 @@ var NestedStackProvider = class {
|
|
|
40880
41223
|
*/
|
|
40881
41224
|
var WaitConditionHandleProvider = class {
|
|
40882
41225
|
logger = getLogger().child("WaitConditionHandleProvider");
|
|
40883
|
-
handledProperties = new Map([["AWS::CloudFormation::WaitConditionHandle", /* @__PURE__ */ new Set([])]]);
|
|
41226
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CloudFormation::WaitConditionHandle", /* @__PURE__ */ new Set([])]]);
|
|
40884
41227
|
/**
|
|
40885
41228
|
* "Create" the handle: synthesize a unique placeholder physical id.
|
|
40886
41229
|
* `Ref` on the handle resolves to this id. It is deliberately NOT
|
|
@@ -40976,7 +41319,7 @@ var ACMCertificateProvider = class {
|
|
|
40976
41319
|
constructor() {
|
|
40977
41320
|
this.acmClient = getAwsClients().acm;
|
|
40978
41321
|
}
|
|
40979
|
-
handledProperties = new Map([["AWS::CertificateManager::Certificate", new Set([
|
|
41322
|
+
handledProperties = /* @__PURE__ */ new Map([["AWS::CertificateManager::Certificate", /* @__PURE__ */ new Set([
|
|
40980
41323
|
"DomainName",
|
|
40981
41324
|
"ValidationMethod",
|
|
40982
41325
|
"SubjectAlternativeNames",
|
|
@@ -41954,7 +42297,7 @@ function createDeployCommand() {
|
|
|
41954
42297
|
* `cdkd import --migrate-from-cloudformation` retirement flow
|
|
41955
42298
|
* (`src/cli/commands/retire-cfn-stack.ts`).
|
|
41956
42299
|
*/
|
|
41957
|
-
const STABLE_TERMINAL_STATUSES = new Set([
|
|
42300
|
+
const STABLE_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
|
|
41958
42301
|
"CREATE_COMPLETE",
|
|
41959
42302
|
"UPDATE_COMPLETE",
|
|
41960
42303
|
"UPDATE_ROLLBACK_COMPLETE",
|
|
@@ -43084,7 +43427,7 @@ function diffTreeToJson(node) {
|
|
|
43084
43427
|
children: node.children.map(diffTreeToJson)
|
|
43085
43428
|
};
|
|
43086
43429
|
}
|
|
43087
|
-
const INTRINSIC_KEYS = new Set([
|
|
43430
|
+
const INTRINSIC_KEYS = /* @__PURE__ */ new Set([
|
|
43088
43431
|
"Ref",
|
|
43089
43432
|
"Fn::Sub",
|
|
43090
43433
|
"Fn::GetAtt",
|
|
@@ -43494,7 +43837,7 @@ function isIgnoredPath(path, ignorePaths) {
|
|
|
43494
43837
|
function diffAt(path, stateValue, awsValue, out, ignorePaths, unionWalkObjects) {
|
|
43495
43838
|
if (deepEqual(stateValue, awsValue)) return;
|
|
43496
43839
|
if (isPlainObject(stateValue) && isPlainObject(awsValue) && !Array.isArray(stateValue) && !Array.isArray(awsValue)) {
|
|
43497
|
-
const keys = unionWalkObjects ? new Set([...Object.keys(stateValue), ...Object.keys(awsValue)]) : Object.keys(stateValue);
|
|
43840
|
+
const keys = unionWalkObjects ? /* @__PURE__ */ new Set([...Object.keys(stateValue), ...Object.keys(awsValue)]) : Object.keys(stateValue);
|
|
43498
43841
|
for (const key of keys) {
|
|
43499
43842
|
const childPath = `${path}.${key}`;
|
|
43500
43843
|
if (isIgnoredPath(childPath, ignorePaths)) continue;
|
|
@@ -43624,7 +43967,7 @@ const CC_API_FALLBACK_DENY_LIST = {
|
|
|
43624
43967
|
* managed field — the deny-list catches per-type structural divergence;
|
|
43625
43968
|
* this helper catches generic noise.
|
|
43626
43969
|
*/
|
|
43627
|
-
const ALWAYS_STRIPPED_FIELDS = new Set([
|
|
43970
|
+
const ALWAYS_STRIPPED_FIELDS = /* @__PURE__ */ new Set([
|
|
43628
43971
|
"CreationDate",
|
|
43629
43972
|
"CreationTime",
|
|
43630
43973
|
"CreatedTime",
|
|
@@ -46736,7 +47079,7 @@ function stackTreeToJson(roots) {
|
|
|
46736
47079
|
* support for import are surfaced as errors by the CreateChangeSet call
|
|
46737
47080
|
* itself; we do not try to maintain a closed allowlist here.
|
|
46738
47081
|
*/
|
|
46739
|
-
const NEVER_IMPORTABLE_TYPES = new Set(["AWS::CDK::Metadata"]);
|
|
47082
|
+
const NEVER_IMPORTABLE_TYPES = /* @__PURE__ */ new Set(["AWS::CDK::Metadata"]);
|
|
46740
47083
|
/**
|
|
46741
47084
|
* Per-non-root-child lock-acquisition retry budget for the nested-stack
|
|
46742
47085
|
* export loop (`runPerStackImportLoop`). `acquireLockWithRetry` retries
|
|
@@ -46887,7 +47230,7 @@ function readStringProperty(properties, key, resourceType) {
|
|
|
46887
47230
|
* (no `read` / `list` — inline policy attachments have no first-class
|
|
46888
47231
|
* AWS resource id). See the per-entry comment for each addition.
|
|
46889
47232
|
*/
|
|
46890
|
-
const IMPORT_UNSUPPORTED_RECREATABLE_TYPES = new Set(["AWS::ApiGatewayV2::Stage", "AWS::IAM::Policy"]);
|
|
47233
|
+
const IMPORT_UNSUPPORTED_RECREATABLE_TYPES = /* @__PURE__ */ new Set(["AWS::ApiGatewayV2::Stage", "AWS::IAM::Policy"]);
|
|
46891
47234
|
const PRE_DELETE_HANDLERS = {
|
|
46892
47235
|
"AWS::ApiGatewayV2::Stage": async (entry) => {
|
|
46893
47236
|
const { ApiGatewayV2Client, DeleteStageCommand, NotFoundException } = await import("@aws-sdk/client-apigatewayv2");
|
|
@@ -53054,7 +53397,7 @@ async function runDetached(opts) {
|
|
|
53054
53397
|
const ro = mount.readOnly ? ":ro" : "";
|
|
53055
53398
|
args.push("-v", `${mount.hostPath}:${mount.containerPath}${ro}`);
|
|
53056
53399
|
}
|
|
53057
|
-
const sensitiveKeys = opts.sensitiveEnvKeys && opts.sensitiveEnvKeys.size > 0 ? new Set([...SENSITIVE_ENV_KEYS, ...opts.sensitiveEnvKeys]) : SENSITIVE_ENV_KEYS;
|
|
53400
|
+
const sensitiveKeys = opts.sensitiveEnvKeys && opts.sensitiveEnvKeys.size > 0 ? /* @__PURE__ */ new Set([...SENSITIVE_ENV_KEYS, ...opts.sensitiveEnvKeys]) : SENSITIVE_ENV_KEYS;
|
|
53058
53401
|
const passthroughEnv = {};
|
|
53059
53402
|
for (const [k, v] of Object.entries(opts.env)) if (sensitiveKeys.has(k)) {
|
|
53060
53403
|
args.push("-e", k);
|
|
@@ -53178,7 +53521,7 @@ function pickFreePort() {
|
|
|
53178
53521
|
* into stdout / log files. Only the matching `-e <KEY>=<value>` pair is
|
|
53179
53522
|
* redacted; non-credential `-e KEY=val` entries pass through unchanged.
|
|
53180
53523
|
*/
|
|
53181
|
-
const REDACTED_ENV_KEYS = new Set([
|
|
53524
|
+
const REDACTED_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
53182
53525
|
"AWS_ACCESS_KEY_ID",
|
|
53183
53526
|
"AWS_SECRET_ACCESS_KEY",
|
|
53184
53527
|
"AWS_SESSION_TOKEN"
|
|
@@ -53194,7 +53537,7 @@ const REDACTED_ENV_KEYS = new Set([
|
|
|
53194
53537
|
* AgentCore local-invoke path to keep decrypted `--from-cfn-stack`
|
|
53195
53538
|
* SecureString SSM values off the argv).
|
|
53196
53539
|
*/
|
|
53197
|
-
const SENSITIVE_ENV_KEYS = new Set([
|
|
53540
|
+
const SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
|
|
53198
53541
|
"AWS_ACCESS_KEY_ID",
|
|
53199
53542
|
"AWS_SECRET_ACCESS_KEY",
|
|
53200
53543
|
"AWS_SESSION_TOKEN"
|
|
@@ -56838,7 +57181,7 @@ function buildDockerRunArgs(opts) {
|
|
|
56838
57181
|
args.push("--network", network);
|
|
56839
57182
|
args.push("--network-alias", container.name);
|
|
56840
57183
|
if (opts.networkAliases && opts.networkAliases.length > 0) {
|
|
56841
|
-
const seen = new Set([container.name]);
|
|
57184
|
+
const seen = /* @__PURE__ */ new Set([container.name]);
|
|
56842
57185
|
for (const a of opts.networkAliases) if (!seen.has(a)) {
|
|
56843
57186
|
args.push("--network-alias", a);
|
|
56844
57187
|
seen.add(a);
|
|
@@ -59661,7 +60004,7 @@ function compareSemver(a, b) {
|
|
|
59661
60004
|
* - `Custom::*` — any user-defined Custom Resource type prefix.
|
|
59662
60005
|
* Same rationale as `AWS::CloudFormation::CustomResource`.
|
|
59663
60006
|
*/
|
|
59664
|
-
const HARD_REJECT_RESOURCE_TYPES = new Set(["AWS::CloudFormation::CustomResource", "AWS::CloudFormation::Stack"]);
|
|
60007
|
+
const HARD_REJECT_RESOURCE_TYPES = /* @__PURE__ */ new Set(["AWS::CloudFormation::CustomResource", "AWS::CloudFormation::Stack"]);
|
|
59665
60008
|
/**
|
|
59666
60009
|
* Fetch the source CFn stack's current state + resources + transform
|
|
59667
60010
|
* info. Issues 3 read-only AWS API calls (`DescribeStacks`,
|
|
@@ -59862,7 +60205,8 @@ async function spawnCdkMigrate(opts) {
|
|
|
59862
60205
|
]
|
|
59863
60206
|
});
|
|
59864
60207
|
} catch (err) {
|
|
59865
|
-
|
|
60208
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
60209
|
+
rejectPromise(new LocalMigrateError(`Failed to spawn '${cdkBin} migrate': ${detail}`, err instanceof Error ? err : void 0));
|
|
59866
60210
|
return;
|
|
59867
60211
|
}
|
|
59868
60212
|
child.stdout?.on("data", (chunk) => {
|
|
@@ -59889,7 +60233,8 @@ async function spawnCdkMigrate(opts) {
|
|
|
59889
60233
|
});
|
|
59890
60234
|
return;
|
|
59891
60235
|
}
|
|
59892
|
-
|
|
60236
|
+
const exitDetail = signal !== null ? `killed by signal ${signal}` : code !== null ? `exited with code ${code}` : "process closed without a code or signal";
|
|
60237
|
+
rejectPromise(new LocalMigrateError(`'${cdkBin} migrate' ${exitDetail}.\n--- stdout ---\n${stdout || "(empty)"}\n--- stderr ---\n${stderr || "(empty)"}\n`));
|
|
59893
60238
|
});
|
|
59894
60239
|
});
|
|
59895
60240
|
}
|
|
@@ -60655,7 +61000,7 @@ function installPipeCloseHandler(streams = [process.stdout, process.stderr], exi
|
|
|
60655
61000
|
|
|
60656
61001
|
//#endregion
|
|
60657
61002
|
//#region src/cli/index.ts
|
|
60658
|
-
const SUBCOMMANDS = new Set([
|
|
61003
|
+
const SUBCOMMANDS = /* @__PURE__ */ new Set([
|
|
60659
61004
|
"bootstrap",
|
|
60660
61005
|
"synth",
|
|
60661
61006
|
"list",
|
|
@@ -60697,7 +61042,7 @@ function reorderArgs(argv) {
|
|
|
60697
61042
|
async function main() {
|
|
60698
61043
|
installPipeCloseHandler();
|
|
60699
61044
|
const program = new Command();
|
|
60700
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.
|
|
61045
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.249.0");
|
|
60701
61046
|
program.addCommand(createBootstrapCommand());
|
|
60702
61047
|
program.addCommand(createSynthCommand());
|
|
60703
61048
|
program.addCommand(createListCommand());
|