@go-to-k/cdkd 0.51.2 → 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 CHANGED
@@ -35218,20 +35218,26 @@ var FirehoseProvider = class {
35218
35218
  * `KinesisStreamSourceConfiguration` parent fields when present (the
35219
35219
  * `DescribeDeliveryStream` response splits source under `Source.KinesisStreamSourceDescription`).
35220
35220
  *
35221
- * Destination configurations (`*DestinationConfiguration` in CFn vs.
35222
- * `*DestinationDescription` in `DescribeDeliveryStream`) are intentionally
35223
- * not re-shaped here. Their nested fields are large and the description
35224
- * vs. configuration shape divergence (extra metadata, write-only fields
35225
- * like `Password` redacted) makes a clean comparator surface impossible
35226
- * for v1. We do surface the destination *kind* under a stable key so
35227
- * users at least see destination drift across types, but not the inner
35228
- * fields. Drift on destination contents is best chased manually via
35229
- * `aws firehose describe-delivery-stream` for now.
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.
35230
35237
  *
35231
35238
  * Tags are surfaced via a follow-up `ListTagsForDeliveryStream` call
35232
- * with `aws:*` filtered out and the result key omitted when empty.
35233
- * `DeliveryStreamEncryptionConfigurationInput` is still skipped (shape
35234
- * decision deferred).
35239
+ * with `aws:*` filtered out and always emitted as `[]` placeholder when
35240
+ * no user tags remain.
35235
35241
  *
35236
35242
  * Returns `undefined` when the stream is gone (`ResourceNotFoundException`).
35237
35243
  */
@@ -35267,6 +35273,60 @@ var FirehoseProvider = class {
35267
35273
  result["KinesisStreamSourceConfiguration"] = srcOut;
35268
35274
  }
35269
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
+ }
35270
35330
  try {
35271
35331
  const tagsResp = await this.getClient().send(
35272
35332
  new ListTagsForDeliveryStreamCommand({ DeliveryStreamName: physicalId })
@@ -35282,6 +35342,45 @@ var FirehoseProvider = class {
35282
35342
  }
35283
35343
  return result;
35284
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
+ }
35285
35384
  async import(input) {
35286
35385
  const explicit = resolveExplicitPhysicalId(input, "DeliveryStreamName");
35287
35386
  if (explicit) {
@@ -44482,7 +44581,7 @@ function reorderArgs(argv) {
44482
44581
  }
44483
44582
  async function main() {
44484
44583
  const program = new Command14();
44485
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.51.2");
44584
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.51.3");
44486
44585
  program.addCommand(createBootstrapCommand());
44487
44586
  program.addCommand(createSynthCommand());
44488
44587
  program.addCommand(createListCommand());