@go-to-k/cdkd 0.51.1 → 0.51.3
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 +328 -46
- package/dist/cli.js.map +3 -3
- package/dist/go-to-k-cdkd-0.51.3.tgz +0 -0
- package/package.json +1 -1
- package/dist/go-to-k-cdkd-0.51.1.tgz +0 -0
package/dist/cli.js
CHANGED
|
@@ -15839,6 +15839,7 @@ import {
|
|
|
15839
15839
|
DeleteEventSourceMappingCommand,
|
|
15840
15840
|
UpdateEventSourceMappingCommand,
|
|
15841
15841
|
GetEventSourceMappingCommand,
|
|
15842
|
+
ListTagsCommand as ListTagsCommand2,
|
|
15842
15843
|
TagResourceCommand as TagResourceCommand3,
|
|
15843
15844
|
UntagResourceCommand as UntagResourceCommand3,
|
|
15844
15845
|
ResourceNotFoundException as ResourceNotFoundException4
|
|
@@ -16152,21 +16153,24 @@ var LambdaEventSourceMappingProvider = class {
|
|
|
16152
16153
|
* `LastProcessingResult`, `State`, `StateTransitionReason`,
|
|
16153
16154
|
* `EventSourceMappingArn`) are filtered at the wire layer.
|
|
16154
16155
|
*
|
|
16155
|
-
* `FunctionName
|
|
16156
|
-
*
|
|
16157
|
-
*
|
|
16158
|
-
*
|
|
16159
|
-
*
|
|
16156
|
+
* `FunctionName`: AWS's `GetEventSourceMapping` always returns the
|
|
16157
|
+
* resolved ARN. cdkd state typically holds the same ARN after intrinsic
|
|
16158
|
+
* resolution, but a hand-authored state might carry the bare function
|
|
16159
|
+
* name. We surface the form that matches state when possible: if the
|
|
16160
|
+
* `properties?.FunctionName` is the bare name AND the AWS-current
|
|
16161
|
+
* ARN's last segment matches that name, emit the bare name; otherwise
|
|
16162
|
+
* emit the ARN. (The two forms address the same Lambda function — the
|
|
16163
|
+
* shape-mismatch was the only reason a clean run fired drift.)
|
|
16160
16164
|
*
|
|
16161
|
-
* `Tags`
|
|
16162
|
-
*
|
|
16163
|
-
*
|
|
16164
|
-
*
|
|
16165
|
+
* `Tags` are surfaced via a follow-up `ListTags(Resource=<ESM ARN>)`
|
|
16166
|
+
* call. Always-emit `[]` so a console-side tag ADD on a previously-
|
|
16167
|
+
* untagged event source mapping is detectable on the v3
|
|
16168
|
+
* observedProperties baseline.
|
|
16165
16169
|
*
|
|
16166
16170
|
* Returns `undefined` when the mapping is gone
|
|
16167
16171
|
* (`ResourceNotFoundException`).
|
|
16168
16172
|
*/
|
|
16169
|
-
async readCurrentState(physicalId, _logicalId, _resourceType) {
|
|
16173
|
+
async readCurrentState(physicalId, _logicalId, _resourceType, properties) {
|
|
16170
16174
|
let resp;
|
|
16171
16175
|
try {
|
|
16172
16176
|
resp = await this.lambdaClient.send(new GetEventSourceMappingCommand({ UUID: physicalId }));
|
|
@@ -16176,8 +16180,15 @@ var LambdaEventSourceMappingProvider = class {
|
|
|
16176
16180
|
throw err;
|
|
16177
16181
|
}
|
|
16178
16182
|
const result = {};
|
|
16179
|
-
if (resp.FunctionArn !== void 0)
|
|
16180
|
-
|
|
16183
|
+
if (resp.FunctionArn !== void 0) {
|
|
16184
|
+
const stateFn = properties?.["FunctionName"];
|
|
16185
|
+
const arnTail = resp.FunctionArn.split(":").pop();
|
|
16186
|
+
if (typeof stateFn === "string" && !stateFn.includes(":") && stateFn === arnTail) {
|
|
16187
|
+
result["FunctionName"] = stateFn;
|
|
16188
|
+
} else {
|
|
16189
|
+
result["FunctionName"] = resp.FunctionArn;
|
|
16190
|
+
}
|
|
16191
|
+
}
|
|
16181
16192
|
if (resp.EventSourceArn !== void 0)
|
|
16182
16193
|
result["EventSourceArn"] = resp.EventSourceArn;
|
|
16183
16194
|
if (resp.BatchSize !== void 0)
|
|
@@ -16236,6 +16247,20 @@ var LambdaEventSourceMappingProvider = class {
|
|
|
16236
16247
|
const enabled = resp.State === "Enabled" || resp.State === "Enabling" || resp.State === "Updating";
|
|
16237
16248
|
result["Enabled"] = enabled;
|
|
16238
16249
|
}
|
|
16250
|
+
let tags = [];
|
|
16251
|
+
if (resp.EventSourceMappingArn) {
|
|
16252
|
+
try {
|
|
16253
|
+
const tagsResp = await this.lambdaClient.send(
|
|
16254
|
+
new ListTagsCommand2({ Resource: resp.EventSourceMappingArn })
|
|
16255
|
+
);
|
|
16256
|
+
const tagMap = tagsResp.Tags ?? {};
|
|
16257
|
+
tags = Object.entries(tagMap).filter(([k]) => !k.startsWith("aws:")).map(([Key, Value]) => ({ Key, Value })).sort((a, b) => a.Key.localeCompare(b.Key));
|
|
16258
|
+
} catch (err) {
|
|
16259
|
+
if (err instanceof ResourceNotFoundException4)
|
|
16260
|
+
return void 0;
|
|
16261
|
+
}
|
|
16262
|
+
}
|
|
16263
|
+
result["Tags"] = tags;
|
|
16239
16264
|
return result;
|
|
16240
16265
|
}
|
|
16241
16266
|
/**
|
|
@@ -16267,7 +16292,7 @@ import {
|
|
|
16267
16292
|
DeleteLayerVersionCommand,
|
|
16268
16293
|
GetLayerVersionByArnCommand,
|
|
16269
16294
|
ListLayersCommand,
|
|
16270
|
-
ListTagsCommand as
|
|
16295
|
+
ListTagsCommand as ListTagsCommand3,
|
|
16271
16296
|
ResourceNotFoundException as ResourceNotFoundException5
|
|
16272
16297
|
} from "@aws-sdk/client-lambda";
|
|
16273
16298
|
init_aws_clients();
|
|
@@ -16526,7 +16551,7 @@ var LambdaLayerVersionProvider = class {
|
|
|
16526
16551
|
continue;
|
|
16527
16552
|
try {
|
|
16528
16553
|
const tagsResp = await this.lambdaClient.send(
|
|
16529
|
-
new
|
|
16554
|
+
new ListTagsCommand3({ Resource: layer.LayerArn })
|
|
16530
16555
|
);
|
|
16531
16556
|
if (tagsResp.Tags?.[CDK_PATH_TAG] === input.cdkPath) {
|
|
16532
16557
|
return {
|
|
@@ -17005,6 +17030,7 @@ var DynamoDBTableProvider = class {
|
|
|
17005
17030
|
import {
|
|
17006
17031
|
CreateLogGroupCommand,
|
|
17007
17032
|
DeleteLogGroupCommand,
|
|
17033
|
+
DescribeIndexPoliciesCommand,
|
|
17008
17034
|
DescribeLogGroupsCommand,
|
|
17009
17035
|
GetDataProtectionPolicyCommand,
|
|
17010
17036
|
ListTagsForResourceCommand as ListTagsForResourceCommand2,
|
|
@@ -17258,16 +17284,26 @@ var LogsLogGroupProvider = class {
|
|
|
17258
17284
|
* `RetentionInDays`).
|
|
17259
17285
|
*
|
|
17260
17286
|
* Coverage: `LogGroupName`, `KmsKeyId`, `RetentionInDays`,
|
|
17261
|
-
* `LogGroupClass`, `Tags`,
|
|
17287
|
+
* `LogGroupClass`, `Tags`, `DataProtectionPolicy` (via
|
|
17262
17288
|
* `GetDataProtectionPolicy`, JSON-parsed back to the object form
|
|
17263
|
-
* cdkd state holds)
|
|
17264
|
-
*
|
|
17289
|
+
* cdkd state holds), `DeletionProtectionEnabled` and
|
|
17290
|
+
* `BearerTokenAuthenticationEnabled` (both surfaced directly from
|
|
17291
|
+
* `DescribeLogGroups` — the SDK's LogGroup type carries them as
|
|
17292
|
+
* `deletionProtectionEnabled` / `bearerTokenAuthenticationEnabled`),
|
|
17293
|
+
* and `FieldIndexPolicies` (via `DescribeIndexPolicies`, filtered to
|
|
17294
|
+
* log-group-level policies and JSON-parsed). Still out of scope:
|
|
17265
17295
|
* `ResourcePolicyDocument` (managed by the separate
|
|
17266
17296
|
* `AWS::Logs::ResourcePolicy` resource type — account-wide, not
|
|
17267
|
-
* per-log-group)
|
|
17268
|
-
*
|
|
17269
|
-
* `
|
|
17270
|
-
*
|
|
17297
|
+
* per-log-group).
|
|
17298
|
+
*
|
|
17299
|
+
* Known limitation: cdkd's `create()` / `update()` flows do NOT yet
|
|
17300
|
+
* apply `FieldIndexPolicies` / `DeletionProtectionEnabled` /
|
|
17301
|
+
* `BearerTokenAuthenticationEnabled` — they're in `handledProperties`
|
|
17302
|
+
* to prevent CC API fallback but no actual `PutIndexPolicy` /
|
|
17303
|
+
* `PutLogGroupDeletionProtection` / `PutBearerTokenAuthentication`
|
|
17304
|
+
* calls fire. Surfacing these in `readCurrentState` means a user
|
|
17305
|
+
* who templates them will see drift on the first run; a follow-up
|
|
17306
|
+
* needs to wire the create/update flow.
|
|
17271
17307
|
*
|
|
17272
17308
|
* Tags are read via `ListTagsForResource` (using the log-group ARN from
|
|
17273
17309
|
* the same `DescribeLogGroups` response). CDK's `aws:*` auto-tags are
|
|
@@ -17291,6 +17327,8 @@ var LogsLogGroupProvider = class {
|
|
|
17291
17327
|
result["RetentionInDays"] = found.retentionInDays ?? 0;
|
|
17292
17328
|
if (found.logGroupClass !== void 0)
|
|
17293
17329
|
result["LogGroupClass"] = found.logGroupClass;
|
|
17330
|
+
result["DeletionProtectionEnabled"] = found.deletionProtectionEnabled ?? false;
|
|
17331
|
+
result["BearerTokenAuthenticationEnabled"] = found.bearerTokenAuthenticationEnabled ?? false;
|
|
17294
17332
|
let tags = [];
|
|
17295
17333
|
if (found.arn) {
|
|
17296
17334
|
const arnForTags = found.arn.replace(/:\*$/, "");
|
|
@@ -17321,6 +17359,24 @@ var LogsLogGroupProvider = class {
|
|
|
17321
17359
|
} catch {
|
|
17322
17360
|
}
|
|
17323
17361
|
result["DataProtectionPolicy"] = dpp;
|
|
17362
|
+
let fieldIndexPolicies = [];
|
|
17363
|
+
try {
|
|
17364
|
+
const idxResp = await this.logsClient.send(
|
|
17365
|
+
new DescribeIndexPoliciesCommand({ logGroupIdentifiers: [physicalId] })
|
|
17366
|
+
);
|
|
17367
|
+
const logGroupLevel = (idxResp.indexPolicies ?? []).filter((p) => p.source !== "ACCOUNT");
|
|
17368
|
+
fieldIndexPolicies = logGroupLevel.map((p) => {
|
|
17369
|
+
if (!p.policyDocument)
|
|
17370
|
+
return void 0;
|
|
17371
|
+
try {
|
|
17372
|
+
return JSON.parse(p.policyDocument);
|
|
17373
|
+
} catch {
|
|
17374
|
+
return p.policyDocument;
|
|
17375
|
+
}
|
|
17376
|
+
}).filter((p) => p !== void 0);
|
|
17377
|
+
} catch {
|
|
17378
|
+
}
|
|
17379
|
+
result["FieldIndexPolicies"] = fieldIndexPolicies;
|
|
17324
17380
|
return result;
|
|
17325
17381
|
} catch (err) {
|
|
17326
17382
|
if (err instanceof ResourceNotFoundException7)
|
|
@@ -18394,10 +18450,21 @@ var SSMParameterProvider = class {
|
|
|
18394
18450
|
*
|
|
18395
18451
|
* `Name` is set to the physical id. `Tags` is surfaced via a follow-up
|
|
18396
18452
|
* `ListTagsForResource(ResourceType=Parameter)` call, with CDK's `aws:*`
|
|
18397
|
-
* auto-tags filtered out.
|
|
18398
|
-
*
|
|
18399
|
-
*
|
|
18400
|
-
*
|
|
18453
|
+
* auto-tags filtered out.
|
|
18454
|
+
*
|
|
18455
|
+
* `Policies` is surfaced from the same `DescribeParameters` response.
|
|
18456
|
+
* AWS returns `Parameters[0].Policies` as
|
|
18457
|
+
* `[{PolicyText, PolicyType, PolicyStatus}]`; cdkd state holds a JSON
|
|
18458
|
+
* string of the user-templated policy array (CFn's documented shape).
|
|
18459
|
+
* To compare cleanly we parse each `PolicyText` (itself JSON) into
|
|
18460
|
+
* objects, drop the AWS-managed `PolicyStatus` (Pending / InSync /
|
|
18461
|
+
* Expired), and emit the parsed object array. On the v3
|
|
18462
|
+
* `observedProperties` baseline this matches `observedProperties` (which
|
|
18463
|
+
* stored our parsed output at deploy time) exactly. On the v2 fallback
|
|
18464
|
+
* baseline (state.properties = JSON string) the comparator reports a
|
|
18465
|
+
* one-time drift on first run; users resolve via
|
|
18466
|
+
* `cdkd state refresh-observed`. Always-emit `[]` placeholder for
|
|
18467
|
+
* console-side ADD detection.
|
|
18401
18468
|
*
|
|
18402
18469
|
* **Note**: For `SecureString` parameters, AWS returns the encrypted
|
|
18403
18470
|
* blob in `Value` (we pass `WithDecryption: false`). cdkd state usually
|
|
@@ -18429,6 +18496,7 @@ var SSMParameterProvider = class {
|
|
|
18429
18496
|
result["Value"] = param.Value;
|
|
18430
18497
|
if (param.DataType !== void 0)
|
|
18431
18498
|
result["DataType"] = param.DataType;
|
|
18499
|
+
let policiesEmitted = false;
|
|
18432
18500
|
try {
|
|
18433
18501
|
const desc = await this.ssmClient.send(
|
|
18434
18502
|
new DescribeParametersCommand({
|
|
@@ -18441,8 +18509,22 @@ var SSMParameterProvider = class {
|
|
|
18441
18509
|
if (meta?.Tier !== void 0) {
|
|
18442
18510
|
result["Tier"] = meta.Tier;
|
|
18443
18511
|
}
|
|
18512
|
+
const parsedPolicies = [];
|
|
18513
|
+
for (const p of meta?.Policies ?? []) {
|
|
18514
|
+
if (!p.PolicyText)
|
|
18515
|
+
continue;
|
|
18516
|
+
try {
|
|
18517
|
+
parsedPolicies.push(JSON.parse(p.PolicyText));
|
|
18518
|
+
} catch {
|
|
18519
|
+
parsedPolicies.push(p.PolicyText);
|
|
18520
|
+
}
|
|
18521
|
+
}
|
|
18522
|
+
result["Policies"] = parsedPolicies;
|
|
18523
|
+
policiesEmitted = true;
|
|
18444
18524
|
} catch {
|
|
18445
18525
|
}
|
|
18526
|
+
if (!policiesEmitted)
|
|
18527
|
+
result["Policies"] = [];
|
|
18446
18528
|
try {
|
|
18447
18529
|
const tagsResp = await this.ssmClient.send(
|
|
18448
18530
|
new ListTagsForResourceCommand4({
|
|
@@ -24930,10 +25012,13 @@ var AgentCoreRuntimeProvider = class {
|
|
|
24930
25012
|
*
|
|
24931
25013
|
* `ProtocolConfiguration` parity: `create()` accepts a CFn-style string
|
|
24932
25014
|
* (`"HTTP"`) and converts it to `{serverProtocol: "HTTP"}` for the SDK.
|
|
24933
|
-
* The SDK returns the object form. We surface the
|
|
24934
|
-
*
|
|
24935
|
-
*
|
|
24936
|
-
*
|
|
25015
|
+
* The SDK returns the object form. We surface the **string form** here
|
|
25016
|
+
* (extract `serverProtocol` from the SDK object) since CFn's
|
|
25017
|
+
* `AWS::BedrockAgentCore::Runtime.ProtocolConfiguration` is documented
|
|
25018
|
+
* as a string and that's what cdkd state typically holds after CDK
|
|
25019
|
+
* synth. If state happens to carry the object form (legacy / hand-
|
|
25020
|
+
* authored), the comparator will report a one-time drift the user can
|
|
25021
|
+
* resolve via `cdkd state refresh-observed`.
|
|
24937
25022
|
*
|
|
24938
25023
|
* `ClientToken` is omitted: AWS does not surface it back via
|
|
24939
25024
|
* `GetAgentRuntime` (it's an idempotency token only meaningful at create
|
|
@@ -24968,7 +25053,13 @@ var AgentCoreRuntimeProvider = class {
|
|
|
24968
25053
|
result["AuthorizerConfiguration"] = camelToPascalCaseKeys(resp.authorizerConfiguration);
|
|
24969
25054
|
}
|
|
24970
25055
|
if (resp.protocolConfiguration !== void 0) {
|
|
24971
|
-
|
|
25056
|
+
const proto = resp.protocolConfiguration;
|
|
25057
|
+
const keys = Object.keys(proto);
|
|
25058
|
+
if (keys.length === 1 && keys[0] === "serverProtocol" && typeof proto["serverProtocol"] === "string") {
|
|
25059
|
+
result["ProtocolConfiguration"] = proto["serverProtocol"];
|
|
25060
|
+
} else {
|
|
25061
|
+
result["ProtocolConfiguration"] = camelToPascalCaseKeys(resp.protocolConfiguration);
|
|
25062
|
+
}
|
|
24972
25063
|
}
|
|
24973
25064
|
if (resp.lifecycleConfiguration !== void 0) {
|
|
24974
25065
|
result["LifecycleConfiguration"] = camelToPascalCaseKeys(resp.lifecycleConfiguration);
|
|
@@ -35127,20 +35218,26 @@ var FirehoseProvider = class {
|
|
|
35127
35218
|
* `KinesisStreamSourceConfiguration` parent fields when present (the
|
|
35128
35219
|
* `DescribeDeliveryStream` response splits source under `Source.KinesisStreamSourceDescription`).
|
|
35129
35220
|
*
|
|
35130
|
-
* Destination configurations
|
|
35131
|
-
*
|
|
35132
|
-
* not
|
|
35133
|
-
*
|
|
35134
|
-
*
|
|
35135
|
-
*
|
|
35136
|
-
*
|
|
35137
|
-
*
|
|
35138
|
-
* `
|
|
35221
|
+
* **Destination configurations**: partial coverage. AWS returns destination
|
|
35222
|
+
* config under `Destinations[0].*DestinationDescription` (note:
|
|
35223
|
+
* `Description`, not `Configuration`). For S3 / ExtendedS3 destinations
|
|
35224
|
+
* the top-level fields with a clean reverse-mapping are surfaced —
|
|
35225
|
+
* `BucketARN`, `RoleARN`, `Prefix`, `ErrorOutputPrefix`, `BufferingHints`,
|
|
35226
|
+
* `CompressionFormat`, plus `S3BackupMode` for Extended. Inner nested
|
|
35227
|
+
* fields (`EncryptionConfiguration`, `CloudWatchLoggingOptions`,
|
|
35228
|
+
* `ProcessingConfiguration`, `DataFormatConversionConfiguration`,
|
|
35229
|
+
* `DynamicPartitioningConfiguration`, `S3BackupConfiguration`) are not
|
|
35230
|
+
* re-shaped — AWS auto-defaults / extra-metadata / write-only redaction
|
|
35231
|
+
* (`Password`) make the round-trip unsafe; they're declared via
|
|
35232
|
+
* `getDriftUnknownPaths()` so the comparator skips them instead of firing
|
|
35233
|
+
* false drift. Non-S3 destination types
|
|
35234
|
+
* (`Redshift`/`Elasticsearch`/`Amazonopensearchservice`/`Splunk`/`HttpEndpoint`/`AmazonOpenSearchServerless`)
|
|
35235
|
+
* stay drift-unknown for v1 — same shape-divergence problem at scale.
|
|
35236
|
+
* `DeliveryStreamEncryptionConfigurationInput` also drift-unknown.
|
|
35139
35237
|
*
|
|
35140
35238
|
* Tags are surfaced via a follow-up `ListTagsForDeliveryStream` call
|
|
35141
|
-
* with `aws:*` filtered out and
|
|
35142
|
-
*
|
|
35143
|
-
* decision deferred).
|
|
35239
|
+
* with `aws:*` filtered out and always emitted as `[]` placeholder when
|
|
35240
|
+
* no user tags remain.
|
|
35144
35241
|
*
|
|
35145
35242
|
* Returns `undefined` when the stream is gone (`ResourceNotFoundException`).
|
|
35146
35243
|
*/
|
|
@@ -35176,6 +35273,60 @@ var FirehoseProvider = class {
|
|
|
35176
35273
|
result["KinesisStreamSourceConfiguration"] = srcOut;
|
|
35177
35274
|
}
|
|
35178
35275
|
}
|
|
35276
|
+
const dest = desc.Destinations?.[0];
|
|
35277
|
+
if (dest?.ExtendedS3DestinationDescription) {
|
|
35278
|
+
const ext = dest.ExtendedS3DestinationDescription;
|
|
35279
|
+
const out = {};
|
|
35280
|
+
if (ext.BucketARN !== void 0)
|
|
35281
|
+
out["BucketARN"] = ext.BucketARN;
|
|
35282
|
+
if (ext.RoleARN !== void 0)
|
|
35283
|
+
out["RoleARN"] = ext.RoleARN;
|
|
35284
|
+
if (ext.Prefix !== void 0)
|
|
35285
|
+
out["Prefix"] = ext.Prefix;
|
|
35286
|
+
if (ext.ErrorOutputPrefix !== void 0)
|
|
35287
|
+
out["ErrorOutputPrefix"] = ext.ErrorOutputPrefix;
|
|
35288
|
+
if (ext.CompressionFormat !== void 0)
|
|
35289
|
+
out["CompressionFormat"] = ext.CompressionFormat;
|
|
35290
|
+
if (ext.BufferingHints) {
|
|
35291
|
+
const hints = {};
|
|
35292
|
+
if (ext.BufferingHints.SizeInMBs !== void 0)
|
|
35293
|
+
hints["SizeInMBs"] = ext.BufferingHints.SizeInMBs;
|
|
35294
|
+
if (ext.BufferingHints.IntervalInSeconds !== void 0)
|
|
35295
|
+
hints["IntervalInSeconds"] = ext.BufferingHints.IntervalInSeconds;
|
|
35296
|
+
if (Object.keys(hints).length > 0)
|
|
35297
|
+
out["BufferingHints"] = hints;
|
|
35298
|
+
}
|
|
35299
|
+
if (ext.S3BackupMode !== void 0)
|
|
35300
|
+
out["S3BackupMode"] = ext.S3BackupMode;
|
|
35301
|
+
if (Object.keys(out).length > 0) {
|
|
35302
|
+
result["ExtendedS3DestinationConfiguration"] = out;
|
|
35303
|
+
}
|
|
35304
|
+
} else if (dest?.S3DestinationDescription) {
|
|
35305
|
+
const s3 = dest.S3DestinationDescription;
|
|
35306
|
+
const out = {};
|
|
35307
|
+
if (s3.BucketARN !== void 0)
|
|
35308
|
+
out["BucketARN"] = s3.BucketARN;
|
|
35309
|
+
if (s3.RoleARN !== void 0)
|
|
35310
|
+
out["RoleARN"] = s3.RoleARN;
|
|
35311
|
+
if (s3.Prefix !== void 0)
|
|
35312
|
+
out["Prefix"] = s3.Prefix;
|
|
35313
|
+
if (s3.ErrorOutputPrefix !== void 0)
|
|
35314
|
+
out["ErrorOutputPrefix"] = s3.ErrorOutputPrefix;
|
|
35315
|
+
if (s3.CompressionFormat !== void 0)
|
|
35316
|
+
out["CompressionFormat"] = s3.CompressionFormat;
|
|
35317
|
+
if (s3.BufferingHints) {
|
|
35318
|
+
const hints = {};
|
|
35319
|
+
if (s3.BufferingHints.SizeInMBs !== void 0)
|
|
35320
|
+
hints["SizeInMBs"] = s3.BufferingHints.SizeInMBs;
|
|
35321
|
+
if (s3.BufferingHints.IntervalInSeconds !== void 0)
|
|
35322
|
+
hints["IntervalInSeconds"] = s3.BufferingHints.IntervalInSeconds;
|
|
35323
|
+
if (Object.keys(hints).length > 0)
|
|
35324
|
+
out["BufferingHints"] = hints;
|
|
35325
|
+
}
|
|
35326
|
+
if (Object.keys(out).length > 0) {
|
|
35327
|
+
result["S3DestinationConfiguration"] = out;
|
|
35328
|
+
}
|
|
35329
|
+
}
|
|
35179
35330
|
try {
|
|
35180
35331
|
const tagsResp = await this.getClient().send(
|
|
35181
35332
|
new ListTagsForDeliveryStreamCommand({ DeliveryStreamName: physicalId })
|
|
@@ -35191,6 +35342,45 @@ var FirehoseProvider = class {
|
|
|
35191
35342
|
}
|
|
35192
35343
|
return result;
|
|
35193
35344
|
}
|
|
35345
|
+
/**
|
|
35346
|
+
* Drift-unknown paths for `AWS::KinesisFirehose::DeliveryStream`.
|
|
35347
|
+
*
|
|
35348
|
+
* The drift comparator skips these state property paths so they never
|
|
35349
|
+
* fire false-positive drift on every run. See the `readCurrentState`
|
|
35350
|
+
* docstring for the full rationale per category.
|
|
35351
|
+
*
|
|
35352
|
+
* Categories:
|
|
35353
|
+
* - Inner nested fields under S3 / ExtendedS3 destinations: shape
|
|
35354
|
+
* divergence between `Configuration` (CFn input) and `Description`
|
|
35355
|
+
* (AWS read), AWS auto-defaults, write-only fields.
|
|
35356
|
+
* - Non-S3 destination types: same shape-divergence problem at scale,
|
|
35357
|
+
* deferred to a follow-up.
|
|
35358
|
+
* - `DeliveryStreamEncryptionConfigurationInput`: input-only shape
|
|
35359
|
+
* (`KeyARN` + `KeyType`) vs. read-side `DeliveryStreamEncryptionConfiguration`
|
|
35360
|
+
* (extra status / failure fields); not yet round-tripped.
|
|
35361
|
+
*/
|
|
35362
|
+
getDriftUnknownPaths() {
|
|
35363
|
+
return [
|
|
35364
|
+
// S3 / ExtendedS3 nested fields with shape divergence
|
|
35365
|
+
"S3DestinationConfiguration.EncryptionConfiguration",
|
|
35366
|
+
"S3DestinationConfiguration.CloudWatchLoggingOptions",
|
|
35367
|
+
"ExtendedS3DestinationConfiguration.EncryptionConfiguration",
|
|
35368
|
+
"ExtendedS3DestinationConfiguration.CloudWatchLoggingOptions",
|
|
35369
|
+
"ExtendedS3DestinationConfiguration.ProcessingConfiguration",
|
|
35370
|
+
"ExtendedS3DestinationConfiguration.DataFormatConversionConfiguration",
|
|
35371
|
+
"ExtendedS3DestinationConfiguration.DynamicPartitioningConfiguration",
|
|
35372
|
+
"ExtendedS3DestinationConfiguration.S3BackupConfiguration",
|
|
35373
|
+
// Non-S3 destinations (drift-unknown for v1)
|
|
35374
|
+
"RedshiftDestinationConfiguration",
|
|
35375
|
+
"ElasticsearchDestinationConfiguration",
|
|
35376
|
+
"AmazonopensearchserviceDestinationConfiguration",
|
|
35377
|
+
"SplunkDestinationConfiguration",
|
|
35378
|
+
"HttpEndpointDestinationConfiguration",
|
|
35379
|
+
"AmazonOpenSearchServerlessDestinationConfiguration",
|
|
35380
|
+
// Encryption input shape (deferred)
|
|
35381
|
+
"DeliveryStreamEncryptionConfigurationInput"
|
|
35382
|
+
];
|
|
35383
|
+
}
|
|
35194
35384
|
async import(input) {
|
|
35195
35385
|
const explicit = resolveExplicitPhysicalId(input, "DeliveryStreamName");
|
|
35196
35386
|
if (explicit) {
|
|
@@ -35270,7 +35460,7 @@ import {
|
|
|
35270
35460
|
GetEventSelectorsCommand,
|
|
35271
35461
|
GetInsightSelectorsCommand,
|
|
35272
35462
|
ListTrailsCommand,
|
|
35273
|
-
ListTagsCommand as
|
|
35463
|
+
ListTagsCommand as ListTagsCommand4,
|
|
35274
35464
|
AddTagsCommand as AddTagsCommand2,
|
|
35275
35465
|
RemoveTagsCommand as RemoveTagsCommand2,
|
|
35276
35466
|
TrailNotFoundException
|
|
@@ -35647,7 +35837,7 @@ var CloudTrailProvider = class {
|
|
|
35647
35837
|
if (trail.TrailARN) {
|
|
35648
35838
|
try {
|
|
35649
35839
|
const tagsResp = await this.getClient().send(
|
|
35650
|
-
new
|
|
35840
|
+
new ListTagsCommand4({ ResourceIdList: [trail.TrailARN] })
|
|
35651
35841
|
);
|
|
35652
35842
|
tags = normalizeAwsTagsToCfn(tagsResp.ResourceTagList?.[0]?.TagsList);
|
|
35653
35843
|
} catch (err) {
|
|
@@ -35683,7 +35873,7 @@ var CloudTrailProvider = class {
|
|
|
35683
35873
|
continue;
|
|
35684
35874
|
try {
|
|
35685
35875
|
const tagsResp = await this.getClient().send(
|
|
35686
|
-
new
|
|
35876
|
+
new ListTagsCommand4({ ResourceIdList: [trail.TrailARN] })
|
|
35687
35877
|
);
|
|
35688
35878
|
const list2 = tagsResp.ResourceTagList?.[0];
|
|
35689
35879
|
if (matchesCdkPath(list2?.TagsList, input.cdkPath)) {
|
|
@@ -36160,6 +36350,98 @@ var CodeBuildProvider = class {
|
|
|
36160
36350
|
cache2["Modes"] = project.cache.modes;
|
|
36161
36351
|
result["Cache"] = cache2;
|
|
36162
36352
|
}
|
|
36353
|
+
result["SecondarySources"] = (project.secondarySources ?? []).map((s) => {
|
|
36354
|
+
const out = {};
|
|
36355
|
+
if (s.type !== void 0)
|
|
36356
|
+
out["Type"] = s.type;
|
|
36357
|
+
if (s.location !== void 0)
|
|
36358
|
+
out["Location"] = s.location;
|
|
36359
|
+
if (s.buildspec !== void 0)
|
|
36360
|
+
out["BuildSpec"] = s.buildspec;
|
|
36361
|
+
if (s.gitCloneDepth !== void 0)
|
|
36362
|
+
out["GitCloneDepth"] = s.gitCloneDepth;
|
|
36363
|
+
if (s.insecureSsl !== void 0)
|
|
36364
|
+
out["InsecureSsl"] = s.insecureSsl;
|
|
36365
|
+
if (s.reportBuildStatus !== void 0)
|
|
36366
|
+
out["ReportBuildStatus"] = s.reportBuildStatus;
|
|
36367
|
+
if (s.sourceIdentifier !== void 0)
|
|
36368
|
+
out["SourceIdentifier"] = s.sourceIdentifier;
|
|
36369
|
+
return out;
|
|
36370
|
+
});
|
|
36371
|
+
result["SecondaryArtifacts"] = (project.secondaryArtifacts ?? []).map((a) => {
|
|
36372
|
+
const out = {};
|
|
36373
|
+
if (a.type !== void 0)
|
|
36374
|
+
out["Type"] = a.type;
|
|
36375
|
+
if (a.location !== void 0)
|
|
36376
|
+
out["Location"] = a.location;
|
|
36377
|
+
if (a.path !== void 0)
|
|
36378
|
+
out["Path"] = a.path;
|
|
36379
|
+
if (a.name !== void 0)
|
|
36380
|
+
out["Name"] = a.name;
|
|
36381
|
+
if (a.namespaceType !== void 0)
|
|
36382
|
+
out["NamespaceType"] = a.namespaceType;
|
|
36383
|
+
if (a.packaging !== void 0)
|
|
36384
|
+
out["Packaging"] = a.packaging;
|
|
36385
|
+
if (a.encryptionDisabled !== void 0)
|
|
36386
|
+
out["EncryptionDisabled"] = a.encryptionDisabled;
|
|
36387
|
+
if (a.overrideArtifactName !== void 0) {
|
|
36388
|
+
out["OverrideArtifactName"] = a.overrideArtifactName;
|
|
36389
|
+
}
|
|
36390
|
+
if (a.artifactIdentifier !== void 0)
|
|
36391
|
+
out["ArtifactIdentifier"] = a.artifactIdentifier;
|
|
36392
|
+
return out;
|
|
36393
|
+
});
|
|
36394
|
+
result["SecondarySourceVersions"] = (project.secondarySourceVersions ?? []).map((v) => {
|
|
36395
|
+
const out = {};
|
|
36396
|
+
if (v.sourceIdentifier !== void 0)
|
|
36397
|
+
out["SourceIdentifier"] = v.sourceIdentifier;
|
|
36398
|
+
if (v.sourceVersion !== void 0)
|
|
36399
|
+
out["SourceVersion"] = v.sourceVersion;
|
|
36400
|
+
return out;
|
|
36401
|
+
});
|
|
36402
|
+
result["FileSystemLocations"] = (project.fileSystemLocations ?? []).map((f) => {
|
|
36403
|
+
const out = {};
|
|
36404
|
+
if (f.type !== void 0)
|
|
36405
|
+
out["Type"] = f.type;
|
|
36406
|
+
if (f.location !== void 0)
|
|
36407
|
+
out["Location"] = f.location;
|
|
36408
|
+
if (f.mountPoint !== void 0)
|
|
36409
|
+
out["MountPoint"] = f.mountPoint;
|
|
36410
|
+
if (f.identifier !== void 0)
|
|
36411
|
+
out["Identifier"] = f.identifier;
|
|
36412
|
+
if (f.mountOptions !== void 0)
|
|
36413
|
+
out["MountOptions"] = f.mountOptions;
|
|
36414
|
+
return out;
|
|
36415
|
+
});
|
|
36416
|
+
if (project.buildBatchConfig) {
|
|
36417
|
+
const bbc = {};
|
|
36418
|
+
if (project.buildBatchConfig.serviceRole !== void 0) {
|
|
36419
|
+
bbc["ServiceRole"] = project.buildBatchConfig.serviceRole;
|
|
36420
|
+
}
|
|
36421
|
+
if (project.buildBatchConfig.restrictions !== void 0) {
|
|
36422
|
+
const r = {};
|
|
36423
|
+
if (project.buildBatchConfig.restrictions.maximumBuildsAllowed !== void 0) {
|
|
36424
|
+
r["MaximumBuildsAllowed"] = project.buildBatchConfig.restrictions.maximumBuildsAllowed;
|
|
36425
|
+
}
|
|
36426
|
+
if (project.buildBatchConfig.restrictions.computeTypesAllowed !== void 0) {
|
|
36427
|
+
r["ComputeTypesAllowed"] = project.buildBatchConfig.restrictions.computeTypesAllowed;
|
|
36428
|
+
}
|
|
36429
|
+
bbc["Restrictions"] = r;
|
|
36430
|
+
}
|
|
36431
|
+
if (project.buildBatchConfig.timeoutInMins !== void 0) {
|
|
36432
|
+
bbc["TimeoutInMins"] = project.buildBatchConfig.timeoutInMins;
|
|
36433
|
+
}
|
|
36434
|
+
if (project.buildBatchConfig.batchReportMode !== void 0) {
|
|
36435
|
+
bbc["BatchReportMode"] = project.buildBatchConfig.batchReportMode;
|
|
36436
|
+
}
|
|
36437
|
+
if (project.buildBatchConfig.combineArtifacts !== void 0) {
|
|
36438
|
+
bbc["CombineArtifacts"] = project.buildBatchConfig.combineArtifacts;
|
|
36439
|
+
}
|
|
36440
|
+
result["BuildBatchConfig"] = bbc;
|
|
36441
|
+
} else {
|
|
36442
|
+
result["BuildBatchConfig"] = {};
|
|
36443
|
+
}
|
|
36444
|
+
result["ResourceAccessRole"] = project.resourceAccessRole ?? "";
|
|
36163
36445
|
const tags = normalizeAwsTagsToCfn(project.tags);
|
|
36164
36446
|
result["Tags"] = tags;
|
|
36165
36447
|
return result;
|
|
@@ -44299,7 +44581,7 @@ function reorderArgs(argv) {
|
|
|
44299
44581
|
}
|
|
44300
44582
|
async function main() {
|
|
44301
44583
|
const program = new Command14();
|
|
44302
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.51.
|
|
44584
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.51.3");
|
|
44303
44585
|
program.addCommand(createBootstrapCommand());
|
|
44304
44586
|
program.addCommand(createSynthCommand());
|
|
44305
44587
|
program.addCommand(createListCommand());
|