@go-to-k/cdkd 0.50.8 → 0.50.10
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/cli.js +176 -67
- package/dist/cli.js.map +2 -2
- package/dist/go-to-k-cdkd-0.50.10.tgz +0 -0
- package/package.json +1 -1
- package/dist/go-to-k-cdkd-0.50.8.tgz +0 -0
package/dist/cli.js
CHANGED
|
@@ -16755,23 +16755,28 @@ var DynamoDBTableProvider = class {
|
|
|
16755
16755
|
WriteCapacityUnits: table.ProvisionedThroughput.WriteCapacityUnits
|
|
16756
16756
|
};
|
|
16757
16757
|
}
|
|
16758
|
-
if (table.StreamSpecification) {
|
|
16758
|
+
if (table.StreamSpecification?.StreamEnabled && table.StreamSpecification.StreamViewType) {
|
|
16759
16759
|
result["StreamSpecification"] = {
|
|
16760
|
-
StreamEnabled:
|
|
16760
|
+
StreamEnabled: true,
|
|
16761
16761
|
StreamViewType: table.StreamSpecification.StreamViewType
|
|
16762
16762
|
};
|
|
16763
16763
|
}
|
|
16764
|
-
|
|
16765
|
-
|
|
16766
|
-
|
|
16767
|
-
|
|
16768
|
-
|
|
16769
|
-
|
|
16770
|
-
|
|
16764
|
+
if (table.GlobalSecondaryIndexes && table.GlobalSecondaryIndexes.length > 0) {
|
|
16765
|
+
result["GlobalSecondaryIndexes"] = table.GlobalSecondaryIndexes;
|
|
16766
|
+
}
|
|
16767
|
+
if (table.LocalSecondaryIndexes && table.LocalSecondaryIndexes.length > 0) {
|
|
16768
|
+
result["LocalSecondaryIndexes"] = table.LocalSecondaryIndexes;
|
|
16769
|
+
}
|
|
16770
|
+
if (table.SSEDescription?.Status === "ENABLED") {
|
|
16771
|
+
const sse = { SSEEnabled: true };
|
|
16772
|
+
if (table.SSEDescription.KMSMasterKeyArn !== void 0) {
|
|
16773
|
+
sse["KMSMasterKeyId"] = table.SSEDescription.KMSMasterKeyArn;
|
|
16774
|
+
}
|
|
16775
|
+
if (table.SSEDescription.SSEType !== void 0) {
|
|
16776
|
+
sse["SSEType"] = table.SSEDescription.SSEType;
|
|
16777
|
+
}
|
|
16778
|
+
result["SSESpecification"] = sse;
|
|
16771
16779
|
}
|
|
16772
|
-
if (table.SSEDescription?.SSEType !== void 0)
|
|
16773
|
-
sse["SSEType"] = table.SSEDescription.SSEType;
|
|
16774
|
-
result["SSESpecification"] = sse;
|
|
16775
16780
|
if (table.DeletionProtectionEnabled !== void 0) {
|
|
16776
16781
|
result["DeletionProtectionEnabled"] = table.DeletionProtectionEnabled;
|
|
16777
16782
|
}
|
|
@@ -17724,9 +17729,9 @@ var SecretsManagerSecretProvider = class {
|
|
|
17724
17729
|
};
|
|
17725
17730
|
if (secretString)
|
|
17726
17731
|
updateParams.SecretString = secretString;
|
|
17727
|
-
if (properties["Description"])
|
|
17732
|
+
if (properties["Description"] !== void 0)
|
|
17728
17733
|
updateParams.Description = properties["Description"];
|
|
17729
|
-
if (properties["KmsKeyId"])
|
|
17734
|
+
if (properties["KmsKeyId"] !== void 0 && properties["KmsKeyId"] !== "")
|
|
17730
17735
|
updateParams.KmsKeyId = properties["KmsKeyId"];
|
|
17731
17736
|
await this.smClient.send(new UpdateSecretCommand(updateParams));
|
|
17732
17737
|
const newTags = properties["Tags"];
|
|
@@ -19407,7 +19412,11 @@ var EC2Provider = class {
|
|
|
19407
19412
|
case "AWS::EC2::NetworkAcl":
|
|
19408
19413
|
case "AWS::EC2::NetworkAclEntry":
|
|
19409
19414
|
case "AWS::EC2::SubnetNetworkAclAssociation":
|
|
19410
|
-
|
|
19415
|
+
throw new ResourceUpdateNotSupportedError(
|
|
19416
|
+
resourceType,
|
|
19417
|
+
logicalId,
|
|
19418
|
+
"destroy + redeploy. The property surface for this resource type is effectively immutable in cdkd today."
|
|
19419
|
+
);
|
|
19411
19420
|
default:
|
|
19412
19421
|
throw new ProvisioningError(
|
|
19413
19422
|
`Unsupported resource type: ${resourceType}`,
|
|
@@ -19552,21 +19561,28 @@ var EC2Provider = class {
|
|
|
19552
19561
|
async updateVpc(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
19553
19562
|
this.logger.debug(`Updating VPC ${logicalId}: ${physicalId}`);
|
|
19554
19563
|
try {
|
|
19555
|
-
|
|
19556
|
-
|
|
19564
|
+
const asBool = (v) => {
|
|
19565
|
+
if (v === void 0)
|
|
19566
|
+
return void 0;
|
|
19567
|
+
return v === true || v === "true";
|
|
19568
|
+
};
|
|
19569
|
+
const newDnsHostnames = asBool(properties["EnableDnsHostnames"]);
|
|
19570
|
+
const oldDnsHostnames = asBool(previousProperties["EnableDnsHostnames"]);
|
|
19571
|
+
if (newDnsHostnames !== void 0 && newDnsHostnames !== oldDnsHostnames) {
|
|
19557
19572
|
await this.ec2Client.send(
|
|
19558
19573
|
new ModifyVpcAttributeCommand({
|
|
19559
19574
|
VpcId: physicalId,
|
|
19560
|
-
EnableDnsHostnames: { Value:
|
|
19575
|
+
EnableDnsHostnames: { Value: newDnsHostnames }
|
|
19561
19576
|
})
|
|
19562
19577
|
);
|
|
19563
19578
|
}
|
|
19564
|
-
|
|
19565
|
-
|
|
19579
|
+
const newDnsSupport = asBool(properties["EnableDnsSupport"]);
|
|
19580
|
+
const oldDnsSupport = asBool(previousProperties["EnableDnsSupport"]);
|
|
19581
|
+
if (newDnsSupport !== void 0 && newDnsSupport !== oldDnsSupport) {
|
|
19566
19582
|
await this.ec2Client.send(
|
|
19567
19583
|
new ModifyVpcAttributeCommand({
|
|
19568
19584
|
VpcId: physicalId,
|
|
19569
|
-
EnableDnsSupport: { Value:
|
|
19585
|
+
EnableDnsSupport: { Value: newDnsSupport }
|
|
19570
19586
|
})
|
|
19571
19587
|
);
|
|
19572
19588
|
}
|
|
@@ -19749,8 +19765,13 @@ var EC2Provider = class {
|
|
|
19749
19765
|
}
|
|
19750
19766
|
}
|
|
19751
19767
|
updateSubnet(logicalId, physicalId) {
|
|
19752
|
-
|
|
19753
|
-
|
|
19768
|
+
return Promise.reject(
|
|
19769
|
+
new ResourceUpdateNotSupportedError(
|
|
19770
|
+
"AWS::EC2::Subnet",
|
|
19771
|
+
logicalId,
|
|
19772
|
+
"destroy + redeploy the Subnet (and the resources that depend on it). Subnet properties are immutable in AWS."
|
|
19773
|
+
)
|
|
19774
|
+
);
|
|
19754
19775
|
}
|
|
19755
19776
|
async deleteSubnet(logicalId, physicalId, resourceType, context) {
|
|
19756
19777
|
this.logger.debug(`Deleting Subnet ${logicalId}: ${physicalId}`);
|
|
@@ -19885,8 +19906,13 @@ var EC2Provider = class {
|
|
|
19885
19906
|
}
|
|
19886
19907
|
}
|
|
19887
19908
|
updateInternetGateway(logicalId, physicalId) {
|
|
19888
|
-
|
|
19889
|
-
|
|
19909
|
+
return Promise.reject(
|
|
19910
|
+
new ResourceUpdateNotSupportedError(
|
|
19911
|
+
"AWS::EC2::InternetGateway",
|
|
19912
|
+
logicalId,
|
|
19913
|
+
"destroy + redeploy the InternetGateway. IGW properties are immutable in AWS."
|
|
19914
|
+
)
|
|
19915
|
+
);
|
|
19890
19916
|
}
|
|
19891
19917
|
async deleteInternetGateway(logicalId, physicalId, resourceType, context) {
|
|
19892
19918
|
this.logger.debug(`Deleting InternetGateway ${logicalId}: ${physicalId}`);
|
|
@@ -19955,8 +19981,13 @@ var EC2Provider = class {
|
|
|
19955
19981
|
}
|
|
19956
19982
|
}
|
|
19957
19983
|
updateVpcGatewayAttachment(logicalId, physicalId) {
|
|
19958
|
-
|
|
19959
|
-
|
|
19984
|
+
return Promise.reject(
|
|
19985
|
+
new ResourceUpdateNotSupportedError(
|
|
19986
|
+
"AWS::EC2::VPCGatewayAttachment",
|
|
19987
|
+
logicalId,
|
|
19988
|
+
"destroy + redeploy the VPCGatewayAttachment. The (VpcId, InternetGatewayId) pair is immutable."
|
|
19989
|
+
)
|
|
19990
|
+
);
|
|
19960
19991
|
}
|
|
19961
19992
|
async deleteVpcGatewayAttachment(logicalId, physicalId, resourceType, context) {
|
|
19962
19993
|
this.logger.debug(`Deleting VPCGatewayAttachment ${logicalId}: ${physicalId}`);
|
|
@@ -20071,8 +20102,13 @@ var EC2Provider = class {
|
|
|
20071
20102
|
}
|
|
20072
20103
|
}
|
|
20073
20104
|
updateNatGateway(logicalId, physicalId) {
|
|
20074
|
-
|
|
20075
|
-
|
|
20105
|
+
return Promise.reject(
|
|
20106
|
+
new ResourceUpdateNotSupportedError(
|
|
20107
|
+
"AWS::EC2::NatGateway",
|
|
20108
|
+
logicalId,
|
|
20109
|
+
"destroy + redeploy the NatGateway (and the dependent Routes). NAT Gateway properties are immutable in AWS."
|
|
20110
|
+
)
|
|
20111
|
+
);
|
|
20076
20112
|
}
|
|
20077
20113
|
async deleteNatGateway(logicalId, physicalId, resourceType, context) {
|
|
20078
20114
|
this.logger.debug(`Deleting NatGateway ${logicalId}: ${physicalId}`);
|
|
@@ -20147,8 +20183,13 @@ var EC2Provider = class {
|
|
|
20147
20183
|
}
|
|
20148
20184
|
}
|
|
20149
20185
|
updateRouteTable(logicalId, physicalId) {
|
|
20150
|
-
|
|
20151
|
-
|
|
20186
|
+
return Promise.reject(
|
|
20187
|
+
new ResourceUpdateNotSupportedError(
|
|
20188
|
+
"AWS::EC2::RouteTable",
|
|
20189
|
+
logicalId,
|
|
20190
|
+
"destroy + redeploy the RouteTable (and its associated Routes / SubnetRouteTableAssociations). VpcId is immutable."
|
|
20191
|
+
)
|
|
20192
|
+
);
|
|
20152
20193
|
}
|
|
20153
20194
|
async deleteRouteTable(logicalId, physicalId, resourceType, context) {
|
|
20154
20195
|
this.logger.debug(`Deleting RouteTable ${logicalId}: ${physicalId}`);
|
|
@@ -20223,8 +20264,11 @@ var EC2Provider = class {
|
|
|
20223
20264
|
);
|
|
20224
20265
|
}
|
|
20225
20266
|
}
|
|
20226
|
-
async updateRoute(logicalId, physicalId, resourceType, properties,
|
|
20267
|
+
async updateRoute(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
20227
20268
|
this.logger.debug(`Updating Route ${logicalId}: ${physicalId}`);
|
|
20269
|
+
if (JSON.stringify(properties) === JSON.stringify(previousProperties)) {
|
|
20270
|
+
return { physicalId, wasReplaced: false };
|
|
20271
|
+
}
|
|
20228
20272
|
try {
|
|
20229
20273
|
await this.deleteRoute(logicalId, physicalId, resourceType);
|
|
20230
20274
|
const createResult = await this.createRoute(logicalId, resourceType, properties);
|
|
@@ -20327,10 +20371,13 @@ var EC2Provider = class {
|
|
|
20327
20371
|
}
|
|
20328
20372
|
}
|
|
20329
20373
|
updateSubnetRouteTableAssociation(logicalId, physicalId) {
|
|
20330
|
-
|
|
20331
|
-
|
|
20374
|
+
return Promise.reject(
|
|
20375
|
+
new ResourceUpdateNotSupportedError(
|
|
20376
|
+
"AWS::EC2::SubnetRouteTableAssociation",
|
|
20377
|
+
logicalId,
|
|
20378
|
+
"destroy + redeploy the association. (SubnetId, RouteTableId) is immutable."
|
|
20379
|
+
)
|
|
20332
20380
|
);
|
|
20333
|
-
return Promise.resolve({ physicalId, wasReplaced: false });
|
|
20334
20381
|
}
|
|
20335
20382
|
async deleteSubnetRouteTableAssociation(logicalId, physicalId, resourceType, context) {
|
|
20336
20383
|
this.logger.debug(`Deleting SubnetRouteTableAssociation ${logicalId}: ${physicalId}`);
|
|
@@ -20628,6 +20675,9 @@ var EC2Provider = class {
|
|
|
20628
20675
|
}
|
|
20629
20676
|
async updateSecurityGroupIngress(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
20630
20677
|
this.logger.debug(`Updating SecurityGroupIngress ${logicalId}: ${physicalId}`);
|
|
20678
|
+
if (JSON.stringify(properties) === JSON.stringify(previousProperties)) {
|
|
20679
|
+
return { physicalId, wasReplaced: false };
|
|
20680
|
+
}
|
|
20631
20681
|
try {
|
|
20632
20682
|
await this.deleteSecurityGroupIngress(
|
|
20633
20683
|
logicalId,
|
|
@@ -23901,6 +23951,24 @@ var CloudFrontOAIProvider = class {
|
|
|
23901
23951
|
throw err;
|
|
23902
23952
|
}
|
|
23903
23953
|
}
|
|
23954
|
+
/**
|
|
23955
|
+
* State property paths the comparator must skip during drift detection.
|
|
23956
|
+
*
|
|
23957
|
+
* `CloudFrontOriginAccessIdentityConfig.CallerReference` is set by cdkd
|
|
23958
|
+
* to `logicalId` at create time regardless of what the CDK template
|
|
23959
|
+
* specified, so it ends up in `state.properties` (from the resolved
|
|
23960
|
+
* template) but is intentionally not surfaced by `readCurrentState`. A
|
|
23961
|
+
* keys-from-state walk would otherwise compare `state.CallerReference`
|
|
23962
|
+
* against `aws=undefined` and fire a guaranteed false positive on every
|
|
23963
|
+
* clean run for any stack whose template templated CallerReference.
|
|
23964
|
+
*
|
|
23965
|
+
* The field is also immutable in AWS — the OAI's CallerReference cannot
|
|
23966
|
+
* change post-create — so omitting it from drift is also semantically
|
|
23967
|
+
* correct.
|
|
23968
|
+
*/
|
|
23969
|
+
getDriftUnknownPaths() {
|
|
23970
|
+
return ["CloudFrontOriginAccessIdentityConfig.CallerReference"];
|
|
23971
|
+
}
|
|
23904
23972
|
/**
|
|
23905
23973
|
* Adopt an existing CloudFront Origin Access Identity into cdkd state.
|
|
23906
23974
|
*
|
|
@@ -26544,7 +26612,8 @@ var ELBv2Provider = class {
|
|
|
26544
26612
|
async updateTargetGroup(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
26545
26613
|
this.logger.debug(`Updating TargetGroup ${logicalId}: ${physicalId}`);
|
|
26546
26614
|
try {
|
|
26547
|
-
const
|
|
26615
|
+
const rawMatcher = properties["Matcher"];
|
|
26616
|
+
const matcher = rawMatcher && (rawMatcher.HttpCode !== void 0 || rawMatcher.GrpcCode !== void 0) ? rawMatcher : void 0;
|
|
26548
26617
|
await this.getClient().send(
|
|
26549
26618
|
new ModifyTargetGroupCommand({
|
|
26550
26619
|
TargetGroupArn: physicalId,
|
|
@@ -27250,13 +27319,14 @@ var RDSProvider = class {
|
|
|
27250
27319
|
async updateDBSubnetGroup(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
27251
27320
|
this.logger.debug(`Updating DBSubnetGroup ${logicalId}: ${physicalId}`);
|
|
27252
27321
|
try {
|
|
27253
|
-
|
|
27254
|
-
|
|
27255
|
-
|
|
27256
|
-
|
|
27257
|
-
|
|
27258
|
-
}
|
|
27259
|
-
|
|
27322
|
+
const subnetIds = properties["SubnetIds"];
|
|
27323
|
+
const sendSubnetIds = subnetIds !== void 0 && subnetIds.length > 0;
|
|
27324
|
+
const modifyInput = {
|
|
27325
|
+
DBSubnetGroupName: physicalId,
|
|
27326
|
+
DBSubnetGroupDescription: properties["DBSubnetGroupDescription"],
|
|
27327
|
+
...sendSubnetIds && { SubnetIds: subnetIds }
|
|
27328
|
+
};
|
|
27329
|
+
await this.getClient().send(new ModifyDBSubnetGroupCommand(modifyInput));
|
|
27260
27330
|
const desc = await this.getClient().send(
|
|
27261
27331
|
new DescribeDBSubnetGroupsCommand({ DBSubnetGroupName: physicalId })
|
|
27262
27332
|
);
|
|
@@ -27386,16 +27456,19 @@ var RDSProvider = class {
|
|
|
27386
27456
|
this.logger.debug(`Updating DBCluster ${logicalId}: ${physicalId}`);
|
|
27387
27457
|
try {
|
|
27388
27458
|
const serverlessV2Config = properties["ServerlessV2ScalingConfiguration"];
|
|
27459
|
+
const hasServerlessV2 = serverlessV2Config !== void 0 && (serverlessV2Config.MinCapacity !== void 0 || serverlessV2Config.MaxCapacity !== void 0);
|
|
27460
|
+
const vpcSgIds = properties["VpcSecurityGroupIds"];
|
|
27461
|
+
const sendVpcSgIds = vpcSgIds !== void 0 && vpcSgIds.length > 0;
|
|
27389
27462
|
await this.getClient().send(
|
|
27390
27463
|
new ModifyDBClusterCommand({
|
|
27391
27464
|
DBClusterIdentifier: physicalId,
|
|
27392
27465
|
EngineVersion: properties["EngineVersion"],
|
|
27393
27466
|
DeletionProtection: properties["DeletionProtection"],
|
|
27394
27467
|
BackupRetentionPeriod: properties["BackupRetentionPeriod"] != null ? Number(properties["BackupRetentionPeriod"]) : void 0,
|
|
27395
|
-
VpcSecurityGroupIds:
|
|
27468
|
+
...sendVpcSgIds && { VpcSecurityGroupIds: vpcSgIds },
|
|
27396
27469
|
MasterUserPassword: properties["MasterUserPassword"],
|
|
27397
27470
|
Port: properties["Port"] != null ? Number(properties["Port"]) : void 0,
|
|
27398
|
-
...
|
|
27471
|
+
...hasServerlessV2 && {
|
|
27399
27472
|
ServerlessV2ScalingConfiguration: {
|
|
27400
27473
|
MinCapacity: serverlessV2Config.MinCapacity,
|
|
27401
27474
|
MaxCapacity: serverlessV2Config.MaxCapacity
|
|
@@ -27894,7 +27967,7 @@ var RDSProvider = class {
|
|
|
27894
27967
|
if (cluster.DeletionProtection !== void 0) {
|
|
27895
27968
|
result["DeletionProtection"] = cluster.DeletionProtection;
|
|
27896
27969
|
}
|
|
27897
|
-
{
|
|
27970
|
+
if (cluster.ServerlessV2ScalingConfiguration?.MinCapacity !== void 0 || cluster.ServerlessV2ScalingConfiguration?.MaxCapacity !== void 0) {
|
|
27898
27971
|
const sc = {};
|
|
27899
27972
|
if (cluster.ServerlessV2ScalingConfiguration?.MinCapacity !== void 0) {
|
|
27900
27973
|
sc["MinCapacity"] = cluster.ServerlessV2ScalingConfiguration.MinCapacity;
|
|
@@ -28518,7 +28591,7 @@ var Route53Provider = class {
|
|
|
28518
28591
|
}
|
|
28519
28592
|
}
|
|
28520
28593
|
const setIdentifier = properties["SetIdentifier"];
|
|
28521
|
-
if (setIdentifier) {
|
|
28594
|
+
if (setIdentifier !== void 0) {
|
|
28522
28595
|
recordSet.SetIdentifier = setIdentifier;
|
|
28523
28596
|
}
|
|
28524
28597
|
const weight = properties["Weight"];
|
|
@@ -28526,11 +28599,11 @@ var Route53Provider = class {
|
|
|
28526
28599
|
recordSet.Weight = Number(weight);
|
|
28527
28600
|
}
|
|
28528
28601
|
const region = properties["Region"];
|
|
28529
|
-
if (region) {
|
|
28602
|
+
if (region !== void 0) {
|
|
28530
28603
|
recordSet.Region = region;
|
|
28531
28604
|
}
|
|
28532
28605
|
const failover = properties["Failover"];
|
|
28533
|
-
if (failover) {
|
|
28606
|
+
if (failover !== void 0) {
|
|
28534
28607
|
recordSet.Failover = failover;
|
|
28535
28608
|
}
|
|
28536
28609
|
const multiValueAnswer = properties["MultiValueAnswer"];
|
|
@@ -28538,15 +28611,15 @@ var Route53Provider = class {
|
|
|
28538
28611
|
recordSet.MultiValueAnswer = typeof multiValueAnswer === "string" ? multiValueAnswer.toLowerCase() === "true" : multiValueAnswer;
|
|
28539
28612
|
}
|
|
28540
28613
|
const healthCheckId = properties["HealthCheckId"];
|
|
28541
|
-
if (healthCheckId) {
|
|
28614
|
+
if (healthCheckId !== void 0) {
|
|
28542
28615
|
recordSet.HealthCheckId = healthCheckId;
|
|
28543
28616
|
}
|
|
28544
28617
|
const geoLocation = properties["GeoLocation"];
|
|
28545
28618
|
if (geoLocation) {
|
|
28546
28619
|
recordSet.GeoLocation = {
|
|
28547
|
-
...geoLocation["ContinentCode"] ? { ContinentCode: geoLocation["ContinentCode"] } : {},
|
|
28548
|
-
...geoLocation["CountryCode"] ? { CountryCode: geoLocation["CountryCode"] } : {},
|
|
28549
|
-
...geoLocation["SubdivisionCode"] ? { SubdivisionCode: geoLocation["SubdivisionCode"] } : {}
|
|
28620
|
+
...geoLocation["ContinentCode"] !== void 0 ? { ContinentCode: geoLocation["ContinentCode"] } : {},
|
|
28621
|
+
...geoLocation["CountryCode"] !== void 0 ? { CountryCode: geoLocation["CountryCode"] } : {},
|
|
28622
|
+
...geoLocation["SubdivisionCode"] !== void 0 ? { SubdivisionCode: geoLocation["SubdivisionCode"] } : {}
|
|
28550
28623
|
};
|
|
28551
28624
|
}
|
|
28552
28625
|
return recordSet;
|
|
@@ -28776,14 +28849,16 @@ var Route53Provider = class {
|
|
|
28776
28849
|
}
|
|
28777
28850
|
result["HostedZoneConfig"] = cfg;
|
|
28778
28851
|
}
|
|
28779
|
-
|
|
28780
|
-
|
|
28781
|
-
|
|
28782
|
-
|
|
28783
|
-
|
|
28784
|
-
|
|
28785
|
-
|
|
28786
|
-
|
|
28852
|
+
if (resp.HostedZone.Config?.PrivateZone === true) {
|
|
28853
|
+
result["VPCs"] = (resp.VPCs ?? []).map((v) => {
|
|
28854
|
+
const out = {};
|
|
28855
|
+
if (v.VPCId !== void 0)
|
|
28856
|
+
out["VPCId"] = v.VPCId;
|
|
28857
|
+
if (v.VPCRegion !== void 0)
|
|
28858
|
+
out["VPCRegion"] = v.VPCRegion;
|
|
28859
|
+
return out;
|
|
28860
|
+
});
|
|
28861
|
+
}
|
|
28787
28862
|
const idTail = physicalId.replace(/^\/hostedzone\//, "");
|
|
28788
28863
|
try {
|
|
28789
28864
|
const tagsResp = await this.getClient().send(
|
|
@@ -28828,9 +28903,11 @@ var Route53Provider = class {
|
|
|
28828
28903
|
Name: name,
|
|
28829
28904
|
Type: type
|
|
28830
28905
|
};
|
|
28831
|
-
if (recordSet.
|
|
28832
|
-
|
|
28833
|
-
|
|
28906
|
+
if (!recordSet.AliasTarget) {
|
|
28907
|
+
if (recordSet.TTL !== void 0)
|
|
28908
|
+
result["TTL"] = recordSet.TTL;
|
|
28909
|
+
result["ResourceRecords"] = (recordSet.ResourceRecords ?? []).map((r) => r.Value).filter((v) => typeof v === "string");
|
|
28910
|
+
}
|
|
28834
28911
|
if (recordSet.AliasTarget) {
|
|
28835
28912
|
const at = {};
|
|
28836
28913
|
if (recordSet.AliasTarget.HostedZoneId !== void 0) {
|
|
@@ -30084,11 +30161,13 @@ var ElastiCacheProvider = class {
|
|
|
30084
30161
|
async updateCacheCluster(logicalId, physicalId, resourceType, properties, previousProperties) {
|
|
30085
30162
|
this.logger.debug(`Updating CacheCluster ${logicalId}: ${physicalId}`);
|
|
30086
30163
|
try {
|
|
30164
|
+
const rawSgIds = properties["VpcSecurityGroupIds"];
|
|
30165
|
+
const sgIds = rawSgIds && rawSgIds.length > 0 ? rawSgIds : void 0;
|
|
30087
30166
|
await this.getClient().send(
|
|
30088
30167
|
new ModifyCacheClusterCommand({
|
|
30089
30168
|
CacheClusterId: physicalId,
|
|
30090
30169
|
NumCacheNodes: properties["NumCacheNodes"] != null ? Number(properties["NumCacheNodes"]) : void 0,
|
|
30091
|
-
SecurityGroupIds:
|
|
30170
|
+
SecurityGroupIds: sgIds,
|
|
30092
30171
|
CacheParameterGroupName: properties["CacheParameterGroupName"],
|
|
30093
30172
|
EngineVersion: properties["EngineVersion"],
|
|
30094
30173
|
PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
|
|
@@ -30366,7 +30445,7 @@ var ElastiCacheProvider = class {
|
|
|
30366
30445
|
result["IpDiscovery"] = cluster.IpDiscovery;
|
|
30367
30446
|
if (cluster.NetworkType !== void 0)
|
|
30368
30447
|
result["NetworkType"] = cluster.NetworkType;
|
|
30369
|
-
if (cluster.TransitEncryptionEnabled !== void 0) {
|
|
30448
|
+
if (cluster.Engine === "redis" && cluster.TransitEncryptionEnabled !== void 0) {
|
|
30370
30449
|
result["TransitEncryptionEnabled"] = cluster.TransitEncryptionEnabled;
|
|
30371
30450
|
}
|
|
30372
30451
|
if (cluster.CacheNodes?.[0]?.Endpoint?.Port !== void 0) {
|
|
@@ -33008,6 +33087,36 @@ var KMSProvider = class {
|
|
|
33008
33087
|
}
|
|
33009
33088
|
return result;
|
|
33010
33089
|
}
|
|
33090
|
+
/**
|
|
33091
|
+
* Declare state property paths cdkd cannot round-trip from AWS, so the
|
|
33092
|
+
* drift comparator skips them instead of firing guaranteed false-
|
|
33093
|
+
* positive drift on every clean run.
|
|
33094
|
+
*
|
|
33095
|
+
* - `KeyPolicy`: cdkd does NOT call `GetKeyPolicy` in `readCurrentState`.
|
|
33096
|
+
* The policy body needs JSON parsing for comparison and a separate
|
|
33097
|
+
* SDK call; deferred to a follow-up. Until then, any user who
|
|
33098
|
+
* templates `KeyPolicy` would see guaranteed drift.
|
|
33099
|
+
* - `EnableKeyRotation` / `RotationPeriodInDays`: cdkd does NOT call
|
|
33100
|
+
* `GetKeyRotationStatus`. Same reason — deferred to a follow-up.
|
|
33101
|
+
* `EnableKeyRotation` is also a Class 1 candidate (only valid for
|
|
33102
|
+
* `KeySpec=SYMMETRIC_DEFAULT`); when we lift this gap the read side
|
|
33103
|
+
* must gate the emit on the discriminator.
|
|
33104
|
+
* - `BypassPolicyLockoutSafetyCheck` / `PendingWindowInDays`: not part
|
|
33105
|
+
* of the persisted AWS state visible via `DescribeKey` — both are
|
|
33106
|
+
* create / delete-time-only inputs.
|
|
33107
|
+
*/
|
|
33108
|
+
getDriftUnknownPaths(resourceType) {
|
|
33109
|
+
if (resourceType === "AWS::KMS::Key") {
|
|
33110
|
+
return [
|
|
33111
|
+
"KeyPolicy",
|
|
33112
|
+
"EnableKeyRotation",
|
|
33113
|
+
"RotationPeriodInDays",
|
|
33114
|
+
"BypassPolicyLockoutSafetyCheck",
|
|
33115
|
+
"PendingWindowInDays"
|
|
33116
|
+
];
|
|
33117
|
+
}
|
|
33118
|
+
return [];
|
|
33119
|
+
}
|
|
33011
33120
|
async readCurrentStateAlias(physicalId) {
|
|
33012
33121
|
let marker;
|
|
33013
33122
|
do {
|
|
@@ -43628,7 +43737,7 @@ function reorderArgs(argv) {
|
|
|
43628
43737
|
}
|
|
43629
43738
|
async function main() {
|
|
43630
43739
|
const program = new Command14();
|
|
43631
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.50.
|
|
43740
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.50.10");
|
|
43632
43741
|
program.addCommand(createBootstrapCommand());
|
|
43633
43742
|
program.addCommand(createSynthCommand());
|
|
43634
43743
|
program.addCommand(createListCommand());
|