@go-to-k/cdkd 0.278.41 → 0.278.42
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-CoBHZKJt.js → asg-provider-mwqciloR.js} +2 -2
- package/dist/{asg-provider-CoBHZKJt.js.map → asg-provider-mwqciloR.js.map} +1 -1
- package/dist/cli.js +52 -30
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-CiMIsVFt.js → deploy-engine-DxexHYwK.js} +73 -15
- package/dist/deploy-engine-DxexHYwK.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-CiMIsVFt.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as
|
|
2
|
+
import { $ as DiffCalculator, $t as resolveBucketRegion, A as red, At as getDockerImageBySourceHash, B as isTerminationProtectionPropagationError, Bt as resolveStateBucketWithDefaultAndSource, C as isStatefulRecreateTargetSync, Ct as validateContainerRepoName, D as cyan, Dt as runDockerForeground, E as bold, En as withErrorHandling, Et as getDockerCmd, F as ProviderRegistry, Ft as resolveApp, G as normalizeAwsTagsToCfn, Gt as CFN_TEMPLATE_URL_LIMIT, H as cfnRefValueFromPhysicalId, Ht as stateBucketExistenceConfirmed, I as findActionableSilentDrops, It as resolveAutoAssetStorage, J as readConfigString, Jt as uploadCfnTemplate, K as resolveExplicitPhysicalId, Kt as MIGRATE_TMP_PREFIX, L as CloudControlProvider, Lt as resolveCaptureObservedState, M as IAMRoleProvider, Mt as synthesisStatusMessage, N as collectInlinePolicyNamesManagedBySiblings, Nt as getDefaultStateBucketName, O as gray, Ot as runDockerStreaming, P as clearOnUpdateRemoval, Pt as getLegacyStateBucketName, Q as applyRoleArnIfSet, R as slowCcOperationTimeoutMs, Rt as resolveSkipPrefix, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as validateAssetBucketName, T as formatResourceLine, Tn as normalizeAwsError, Tt as formatDockerLoginError, U as refStateLookupFromResource, Ut as warnDeprecatedNoPrefixCliFlag, V as IntrinsicFunctionResolver, Vt as resolveUseCdkBootstrapAssets, W as WAFv2WebACLProvider, Wt as CFN_TEMPLATE_BODY_LIMIT, X as requireConfigArray, Xt as AssemblyReader, Y as replayWarn, Yt as expectedOwnerParam, Z as requireConfigString, Zt as processStackMessages, _ as createPreDeleteFinalSnapshot, _n as ResourceTimeoutError, _t as AssetModeResolver, a as DeploymentEventsStore, an as CdkdError, at as TemplateParser, b as unsupportedFinalSnapshotError, bn as StackTerminationProtectionError, bt as getBootstrapMarkerKey, c as replayFailedOperations, cn as DeployCancelledError, ct as rebuildClientForBucketRegion, d as IMPLICIT_DELETE_DEPENDENCIES, dn as LocalStartServiceError, dt as stringifyValue, en as AwsClients, et as describeTypeWithThrottleRetry, f as computeImplicitDeleteEdges, ft as WorkGraph, g as ccRoutedFinalSnapshotError, gn as ProvisioningError, gt as rewriteTemplateAssetReferences, h as buildFinalSnapshotIdentifier, hn as PartialFailureError, ht as loadPublishableAssetManifest, i as DeploymentEventsReader, it as DagBuilder, j as yellow, jt as Synthesizer, k as green, kt as AssetManifestLoader, l as replayRollback, ln as LocalInvokeBuildError$1, lt as shouldRetainResource, m as PRE_DELETE_SNAPSHOT_TYPES, mn as NestedStackChildDirectDestroyError, mt as createAssetRedirectResolver, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resetAwsClients, nt as isRetryableTransientError, o as planFailedOps, ot as LockManager, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as MissingCdkCliError, pt as buildAssetRedirectMap, q as assertRegionMatch, qt as findLargeInlineResources, r as DeployEngine, rn as setAwsClients, rt as isThrottlingError, s as planRollback, st as S3StateBackend, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as getAwsClients, tt as withRetry, u as withResourceDeadline, un as LocalMigrateError, ut as AssetPublisher, v as isFinalSnapshotError, vn as ResourceUpdateNotSupportedError, vt as BOOTSTRAP_MARKER_PREFIX, w as renderStatefulReason, wt as buildDockerImage, x as extractDeploymentEventError, xt as parseBootstrapMarker, y as refusesFinalSnapshot, yn as StackHasActiveImportsError, yt as ensureAssetStorage, z as disableInstanceApiTermination, zt as resolveStateBucketWithDefault } from "./deploy-engine-DxexHYwK.js";
|
|
3
3
|
import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as withSkipPrefix, i as runStackBuffered, n as getLogger, o as PATTERN_B_NAME_OPTIONS, p as withStackName, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-BYMEE-BS.js";
|
|
4
|
-
import { t as ASGProvider } from "./asg-provider-
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-mwqciloR.js";
|
|
5
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
6
6
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
7
7
|
import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -3688,11 +3688,11 @@ var IAMAccessKeyProvider = class {
|
|
|
3688
3688
|
* exist on AWS without a cdkd state record, and the next deploy's re-CREATE
|
|
3689
3689
|
* would burn the user's 2-keys-per-user quota.
|
|
3690
3690
|
*/
|
|
3691
|
-
async create(logicalId, resourceType, properties) {
|
|
3691
|
+
async create(logicalId, resourceType, properties, context) {
|
|
3692
3692
|
this.logger.debug(`Creating IAM access key ${logicalId}`);
|
|
3693
3693
|
const userName = properties["UserName"];
|
|
3694
3694
|
if (!userName) throw new ProvisioningError(`AccessKey ${logicalId} requires UserName`, resourceType, logicalId);
|
|
3695
|
-
const status = properties["Status"]
|
|
3695
|
+
const status = requireConfigString(properties["Status"], "Active", "AWS::IAM::AccessKey Status", replayWarn(this.logger, context));
|
|
3696
3696
|
try {
|
|
3697
3697
|
const response = await this.iamClient.send(new CreateAccessKeyCommand({ UserName: userName }));
|
|
3698
3698
|
const accessKeyId = response.AccessKey?.AccessKeyId;
|
|
@@ -3747,10 +3747,11 @@ var IAMAccessKeyProvider = class {
|
|
|
3747
3747
|
* that REMOVES `Status` resets to the CFn default `Active` (absent-field
|
|
3748
3748
|
* removal semantics), so the desired status is always sent explicitly.
|
|
3749
3749
|
*/
|
|
3750
|
-
async update(logicalId, physicalId, resourceType, properties,
|
|
3750
|
+
async update(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
3751
3751
|
this.logger.debug(`Updating IAM access key ${logicalId}: ${physicalId}`);
|
|
3752
3752
|
const userName = properties["UserName"];
|
|
3753
|
-
const
|
|
3753
|
+
const previousStatus = previousProperties["Status"] === "Inactive" ? "Inactive" : "Active";
|
|
3754
|
+
const status = properties["Status"] === void 0 ? "Active" : requireConfigString(properties["Status"], previousStatus, "AWS::IAM::AccessKey Status", { onUnusable: (message) => this.logger.warn(message) });
|
|
3754
3755
|
try {
|
|
3755
3756
|
await this.iamClient.send(new UpdateAccessKeyCommand({
|
|
3756
3757
|
UserName: userName,
|
|
@@ -10792,7 +10793,10 @@ var LambdaEventInvokeConfigProvider = class {
|
|
|
10792
10793
|
}
|
|
10793
10794
|
buildPutInput(properties) {
|
|
10794
10795
|
const functionName = properties["FunctionName"];
|
|
10795
|
-
const qualifier = properties["Qualifier"]
|
|
10796
|
+
const qualifier = requireConfigString(properties["Qualifier"], "$LATEST", "AWS::Lambda::EventInvokeConfig Qualifier", {
|
|
10797
|
+
coerceNumber: true,
|
|
10798
|
+
onUnusable: (message) => this.logger.warn(message)
|
|
10799
|
+
});
|
|
10796
10800
|
const input = { FunctionName: functionName };
|
|
10797
10801
|
if (qualifier !== "$LATEST") input.Qualifier = qualifier;
|
|
10798
10802
|
if (properties["MaximumEventAgeInSeconds"] !== void 0) input.MaximumEventAgeInSeconds = Number(properties["MaximumEventAgeInSeconds"]);
|
|
@@ -10801,11 +10805,14 @@ var LambdaEventInvokeConfigProvider = class {
|
|
|
10801
10805
|
if (dest) input.DestinationConfig = dest;
|
|
10802
10806
|
return input;
|
|
10803
10807
|
}
|
|
10804
|
-
async create(logicalId, resourceType, properties) {
|
|
10808
|
+
async create(logicalId, resourceType, properties, context) {
|
|
10805
10809
|
this.logger.debug(`Creating Lambda EventInvokeConfig ${logicalId}`);
|
|
10806
10810
|
const functionName = properties["FunctionName"];
|
|
10807
10811
|
if (!functionName) throw new ProvisioningError(`FunctionName is required for Lambda EventInvokeConfig ${logicalId}`, resourceType, logicalId);
|
|
10808
|
-
const qualifier = properties["Qualifier"]
|
|
10812
|
+
const qualifier = requireConfigString(properties["Qualifier"], "$LATEST", "AWS::Lambda::EventInvokeConfig Qualifier", {
|
|
10813
|
+
coerceNumber: true,
|
|
10814
|
+
...replayWarn(this.logger, context)
|
|
10815
|
+
});
|
|
10809
10816
|
try {
|
|
10810
10817
|
await this.lambdaClient.send(new PutFunctionEventInvokeConfigCommand(this.buildPutInput(properties)));
|
|
10811
10818
|
const physicalId = this.buildPhysicalId(functionName, qualifier);
|
|
@@ -17241,20 +17248,20 @@ var EC2Provider = class {
|
|
|
17241
17248
|
const awsClients = getAwsClients();
|
|
17242
17249
|
this.ec2Client = awsClients.ec2;
|
|
17243
17250
|
}
|
|
17244
|
-
async create(logicalId, resourceType, properties) {
|
|
17251
|
+
async create(logicalId, resourceType, properties, context) {
|
|
17245
17252
|
switch (resourceType) {
|
|
17246
17253
|
case "AWS::EC2::VPC": return this.createVpc(logicalId, resourceType, properties);
|
|
17247
17254
|
case "AWS::EC2::Subnet": return this.createSubnet(logicalId, resourceType, properties);
|
|
17248
17255
|
case "AWS::EC2::InternetGateway": return this.createInternetGateway(logicalId, resourceType, properties);
|
|
17249
|
-
case "AWS::EC2::EIP": return this.createEip(logicalId, resourceType, properties);
|
|
17256
|
+
case "AWS::EC2::EIP": return this.createEip(logicalId, resourceType, properties, context);
|
|
17250
17257
|
case "AWS::EC2::VPCGatewayAttachment": return this.createVpcGatewayAttachment(logicalId, resourceType, properties);
|
|
17251
17258
|
case "AWS::EC2::NatGateway": return this.createNatGateway(logicalId, resourceType, properties);
|
|
17252
17259
|
case "AWS::EC2::RouteTable": return this.createRouteTable(logicalId, resourceType, properties);
|
|
17253
17260
|
case "AWS::EC2::Route": return this.createRoute(logicalId, resourceType, properties);
|
|
17254
17261
|
case "AWS::EC2::SubnetRouteTableAssociation": return this.createSubnetRouteTableAssociation(logicalId, resourceType, properties);
|
|
17255
17262
|
case "AWS::EC2::SecurityGroup": return this.createSecurityGroup(logicalId, resourceType, properties);
|
|
17256
|
-
case "AWS::EC2::SecurityGroupIngress": return this.createSecurityGroupIngress(logicalId, resourceType, properties);
|
|
17257
|
-
case "AWS::EC2::Instance": return this.createInstance(logicalId, resourceType, properties);
|
|
17263
|
+
case "AWS::EC2::SecurityGroupIngress": return this.createSecurityGroupIngress(logicalId, resourceType, properties, context?.replayingState === true ? (message) => this.logger.warn(message) : void 0);
|
|
17264
|
+
case "AWS::EC2::Instance": return this.createInstance(logicalId, resourceType, properties, context);
|
|
17258
17265
|
case "AWS::EC2::NetworkAcl": return this.createNetworkAcl(logicalId, resourceType, properties);
|
|
17259
17266
|
case "AWS::EC2::NetworkAclEntry": return this.createNetworkAclEntry(logicalId, resourceType, properties);
|
|
17260
17267
|
case "AWS::EC2::SubnetNetworkAclAssociation": return this.createSubnetNetworkAclAssociation(logicalId, resourceType, properties);
|
|
@@ -17702,11 +17709,11 @@ var EC2Provider = class {
|
|
|
17702
17709
|
if (physicalId.startsWith("eipalloc-")) return { allocationId: physicalId };
|
|
17703
17710
|
return { publicIp: physicalId };
|
|
17704
17711
|
}
|
|
17705
|
-
async createEip(logicalId, resourceType, properties) {
|
|
17712
|
+
async createEip(logicalId, resourceType, properties, context) {
|
|
17706
17713
|
this.logger.debug(`Creating EIP ${logicalId}`);
|
|
17707
17714
|
try {
|
|
17708
17715
|
const response = await this.ec2Client.send(new AllocateAddressCommand({
|
|
17709
|
-
Domain: properties["Domain"]
|
|
17716
|
+
Domain: requireConfigString(properties["Domain"], "vpc", "AWS::EC2::EIP Domain", replayWarn(this.logger, context)),
|
|
17710
17717
|
NetworkBorderGroup: properties["NetworkBorderGroup"],
|
|
17711
17718
|
PublicIpv4Pool: properties["PublicIpv4Pool"]
|
|
17712
17719
|
}));
|
|
@@ -18254,17 +18261,32 @@ var EC2Provider = class {
|
|
|
18254
18261
|
return;
|
|
18255
18262
|
}
|
|
18256
18263
|
}
|
|
18257
|
-
|
|
18264
|
+
/**
|
|
18265
|
+
* @param onUnusableProtocol When supplied, a malformed `IpProtocol` WARNS and
|
|
18266
|
+
* defaults instead of throwing. Passed by `updateSecurityGroupIngress`,
|
|
18267
|
+
* which reaches this method as the re-create half of a delete-then-create
|
|
18268
|
+
* replacement: by then `RevokeSecurityGroupIngress` has already committed,
|
|
18269
|
+
* so a refusal would leave the rule deleted from AWS with the op failed —
|
|
18270
|
+
* and on a rollback replay the value comes from a STATE record, which no
|
|
18271
|
+
* template edit can fix. Absent (the plain CREATE dispatch) it throws.
|
|
18272
|
+
*/
|
|
18273
|
+
async createSecurityGroupIngress(logicalId, resourceType, properties, onUnusableProtocol) {
|
|
18258
18274
|
this.logger.debug(`Creating SecurityGroupIngress ${logicalId}`);
|
|
18259
18275
|
const groupId = properties["GroupId"];
|
|
18260
18276
|
if (!groupId) throw new ProvisioningError(`GroupId is required for SecurityGroupIngress ${logicalId}`, resourceType, logicalId);
|
|
18261
|
-
const ipProtocol = properties["IpProtocol"]
|
|
18277
|
+
const ipProtocol = requireConfigString(properties["IpProtocol"], "-1", "AWS::EC2::SecurityGroupIngress IpProtocol", {
|
|
18278
|
+
coerceNumber: true,
|
|
18279
|
+
...onUnusableProtocol && { onUnusable: onUnusableProtocol }
|
|
18280
|
+
});
|
|
18262
18281
|
const fromPort = properties["FromPort"];
|
|
18263
18282
|
const toPort = properties["ToPort"];
|
|
18264
18283
|
try {
|
|
18265
18284
|
await this.ec2Client.send(new AuthorizeSecurityGroupIngressCommand({
|
|
18266
18285
|
GroupId: groupId,
|
|
18267
|
-
IpPermissions: [
|
|
18286
|
+
IpPermissions: [{
|
|
18287
|
+
...this.buildIpPermission(properties),
|
|
18288
|
+
IpProtocol: ipProtocol
|
|
18289
|
+
}]
|
|
18268
18290
|
}));
|
|
18269
18291
|
const physicalId = `${groupId}|${ipProtocol}|${fromPort ?? "-1"}|${toPort ?? "-1"}`;
|
|
18270
18292
|
this.logger.debug(`Successfully created SecurityGroupIngress ${logicalId}: ${physicalId}`);
|
|
@@ -18293,7 +18315,7 @@ var EC2Provider = class {
|
|
|
18293
18315
|
};
|
|
18294
18316
|
try {
|
|
18295
18317
|
await this.deleteSecurityGroupIngress(logicalId, physicalId, resourceType, previousProperties);
|
|
18296
|
-
const createResult = await this.createSecurityGroupIngress(logicalId, resourceType, properties);
|
|
18318
|
+
const createResult = await this.createSecurityGroupIngress(logicalId, resourceType, properties, (message) => this.logger.warn(message));
|
|
18297
18319
|
return {
|
|
18298
18320
|
physicalId: createResult.physicalId,
|
|
18299
18321
|
wasReplaced: true,
|
|
@@ -18331,11 +18353,11 @@ var EC2Provider = class {
|
|
|
18331
18353
|
throw new ProvisioningError(`Failed to delete SecurityGroupIngress ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
|
|
18332
18354
|
}
|
|
18333
18355
|
}
|
|
18334
|
-
async createInstance(logicalId, resourceType, properties) {
|
|
18356
|
+
async createInstance(logicalId, resourceType, properties, context) {
|
|
18335
18357
|
this.logger.debug(`Creating EC2 Instance ${logicalId}`);
|
|
18336
18358
|
const imageId = properties["ImageId"];
|
|
18337
18359
|
if (!imageId) throw new ProvisioningError(`ImageId is required for EC2 Instance ${logicalId}`, resourceType, logicalId);
|
|
18338
|
-
const instanceType = properties["InstanceType"]
|
|
18360
|
+
const instanceType = requireConfigString(properties["InstanceType"], "t3.micro", "AWS::EC2::Instance InstanceType", replayWarn(this.logger, context));
|
|
18339
18361
|
try {
|
|
18340
18362
|
const securityGroupIds = properties["SecurityGroupIds"];
|
|
18341
18363
|
const securityGroups = properties["SecurityGroups"];
|
|
@@ -19988,14 +20010,14 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
19988
20010
|
/**
|
|
19989
20011
|
* Create a resource
|
|
19990
20012
|
*/
|
|
19991
|
-
async create(logicalId, resourceType, properties) {
|
|
20013
|
+
async create(logicalId, resourceType, properties, context) {
|
|
19992
20014
|
switch (resourceType) {
|
|
19993
20015
|
case "AWS::ApiGateway::Account": return this.createAccount(logicalId, resourceType, properties);
|
|
19994
20016
|
case "AWS::ApiGateway::Authorizer": return this.createAuthorizer(logicalId, resourceType, properties);
|
|
19995
20017
|
case "AWS::ApiGateway::Resource": return this.createResource(logicalId, resourceType, properties);
|
|
19996
20018
|
case "AWS::ApiGateway::Deployment": return this.createDeployment(logicalId, resourceType, properties);
|
|
19997
20019
|
case "AWS::ApiGateway::Stage": return this.createStage(logicalId, resourceType, properties);
|
|
19998
|
-
case "AWS::ApiGateway::Method": return this.createMethod(logicalId, resourceType, properties);
|
|
20020
|
+
case "AWS::ApiGateway::Method": return this.createMethod(logicalId, resourceType, properties, context);
|
|
19999
20021
|
default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId);
|
|
20000
20022
|
}
|
|
20001
20023
|
}
|
|
@@ -20623,12 +20645,12 @@ var ApiGatewayProvider = class ApiGatewayProvider {
|
|
|
20623
20645
|
* fixed in PR #373; this cleanup makes any future shape of
|
|
20624
20646
|
* post-`PutMethod` failure self-healing on the next redeploy.
|
|
20625
20647
|
*/
|
|
20626
|
-
async createMethod(logicalId, resourceType, properties) {
|
|
20648
|
+
async createMethod(logicalId, resourceType, properties, context) {
|
|
20627
20649
|
this.logger.debug(`Creating API Gateway Method ${logicalId}`);
|
|
20628
20650
|
const restApiId = properties["RestApiId"];
|
|
20629
20651
|
const resourceId = properties["ResourceId"];
|
|
20630
20652
|
const httpMethod = properties["HttpMethod"];
|
|
20631
|
-
const authorizationType = properties["AuthorizationType"]
|
|
20653
|
+
const authorizationType = requireConfigString(properties["AuthorizationType"], "NONE", "AWS::ApiGateway::Method AuthorizationType", replayWarn(this.logger, context));
|
|
20632
20654
|
const authorizerId = properties["AuthorizerId"];
|
|
20633
20655
|
const apiKeyRequired = properties["ApiKeyRequired"];
|
|
20634
20656
|
const operationName = properties["OperationName"];
|
|
@@ -28690,10 +28712,10 @@ var RDSDBProxyTargetGroupProvider = class {
|
|
|
28690
28712
|
if (!this.rdsClient) this.rdsClient = new RDSClient(this.providerRegion ? { region: this.providerRegion } : {});
|
|
28691
28713
|
return this.rdsClient;
|
|
28692
28714
|
}
|
|
28693
|
-
async create(logicalId, resourceType, properties) {
|
|
28715
|
+
async create(logicalId, resourceType, properties, context) {
|
|
28694
28716
|
const dbProxyName = properties["DBProxyName"];
|
|
28695
28717
|
if (!dbProxyName) throw new ProvisioningError(`DBProxyName is required for AWS::RDS::DBProxyTargetGroup ${logicalId}`, resourceType, logicalId);
|
|
28696
|
-
const targetGroupName = properties["TargetGroupName"]
|
|
28718
|
+
const targetGroupName = requireConfigString(properties["TargetGroupName"], "default", "AWS::RDS::DBProxyTargetGroup TargetGroupName", replayWarn(this.logger, context));
|
|
28697
28719
|
const dbClusterIdentifiers = properties["DBClusterIdentifiers"];
|
|
28698
28720
|
const dbInstanceIdentifiers = properties["DBInstanceIdentifiers"];
|
|
28699
28721
|
const connectionPoolConfig = properties["ConnectionPoolConfigurationInfo"];
|
|
@@ -28752,10 +28774,10 @@ var RDSDBProxyTargetGroupProvider = class {
|
|
|
28752
28774
|
async update(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
28753
28775
|
const dbProxyName = properties["DBProxyName"];
|
|
28754
28776
|
if (!dbProxyName) throw new ProvisioningError(`DBProxyName is required for AWS::RDS::DBProxyTargetGroup ${logicalId} update`, resourceType, logicalId, physicalId);
|
|
28755
|
-
const targetGroupName = properties["TargetGroupName"]
|
|
28777
|
+
const targetGroupName = requireConfigString(properties["TargetGroupName"], "default", "AWS::RDS::DBProxyTargetGroup TargetGroupName", { onUnusable: (message) => this.logger.warn(message) });
|
|
28756
28778
|
for (const field of ["DBProxyName", "TargetGroupName"]) {
|
|
28757
28779
|
const oldVal = previousProperties[field];
|
|
28758
|
-
const newVal = properties[field];
|
|
28780
|
+
const newVal = field === "TargetGroupName" ? targetGroupName : properties[field];
|
|
28759
28781
|
const normalize = (v) => field === "TargetGroupName" && (v === void 0 || v === "default") ? "default" : v;
|
|
28760
28782
|
if (JSON.stringify(normalize(oldVal)) !== JSON.stringify(normalize(newVal))) throw new ResourceUpdateNotSupportedError(resourceType, logicalId, `${field} is immutable on AWS::RDS::DBProxyTargetGroup — destroy + redeploy to change it`);
|
|
28761
28783
|
}
|
|
@@ -67329,7 +67351,7 @@ function createMigrateCommand() {
|
|
|
67329
67351
|
*/
|
|
67330
67352
|
function buildProgram() {
|
|
67331
67353
|
const program = new Command();
|
|
67332
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.
|
|
67354
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.42");
|
|
67333
67355
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
67334
67356
|
const { profile } = actionCommand.optsWithGlobals();
|
|
67335
67357
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|