@pulumi/confluentcloud 2.67.0-alpha.1777530259 → 2.67.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/types/output.d.ts CHANGED
@@ -592,6 +592,187 @@ export interface FlinkConnectionOrganization {
592
592
  export interface FlinkConnectionPrincipal {
593
593
  id: string;
594
594
  }
595
+ export interface FlinkMaterializedTableColumn {
596
+ /**
597
+ * Computed column definitions. Each block supports:
598
+ */
599
+ columnsComputeds?: outputs.FlinkMaterializedTableColumnColumnsComputed[];
600
+ /**
601
+ * Metadata column definitions. Each block supports:
602
+ */
603
+ columnsMetadatas?: outputs.FlinkMaterializedTableColumnColumnsMetadata[];
604
+ /**
605
+ * Physical column definitions. Each block supports:
606
+ */
607
+ columnsPhysicals?: outputs.FlinkMaterializedTableColumnColumnsPhysical[];
608
+ }
609
+ export interface FlinkMaterializedTableColumnColumnsComputed {
610
+ /**
611
+ * Comment for the computed column.
612
+ */
613
+ columnComputedComment?: string;
614
+ /**
615
+ * Expression of the computed column.
616
+ */
617
+ columnComputedExpression?: string;
618
+ /**
619
+ * Kind of the computed column.
620
+ */
621
+ columnComputedKind?: string;
622
+ /**
623
+ * Name of the computed column.
624
+ */
625
+ columnComputedName?: string;
626
+ /**
627
+ * Type of the computed column.
628
+ */
629
+ columnComputedType?: string;
630
+ /**
631
+ * Whether the computed column is virtual. Defaults to `false`.
632
+ */
633
+ columnComputedVirtual?: boolean;
634
+ }
635
+ export interface FlinkMaterializedTableColumnColumnsMetadata {
636
+ /**
637
+ * Comment for the metadata column.
638
+ */
639
+ columnMetadataComment?: string;
640
+ /**
641
+ * Metadata key of the metadata column.
642
+ */
643
+ columnMetadataKey?: string;
644
+ /**
645
+ * Kind of the metadata column.
646
+ */
647
+ columnMetadataKind?: string;
648
+ /**
649
+ * Name of the metadata column.
650
+ */
651
+ columnMetadataName?: string;
652
+ /**
653
+ * Type of the metadata column.
654
+ */
655
+ columnMetadataType?: string;
656
+ /**
657
+ * Whether the metadata column is virtual. Defaults to `false`.
658
+ *
659
+ * > **Note:** A Flink API key consists of a key and a secret. Flink API keys are required to interact with Flink Materialized Tables in Confluent Cloud. Each Flink API key is valid for one specific Flink Region.
660
+ *
661
+ * > **Note:** Use Option #2 to simplify the key rotation process. When using Option #1, to rotate a Flink API key, create a new Flink API key, update the `credentials` block in all configuration files to use the new Flink API key, run `pulumi up -target="confluent_flink_materialized_table.example"`, and remove the old Flink API key. Alternatively, in case the old Flink API Key was deleted already, you might need to run `pulumi preview -refresh=false -target="confluent_flink_materialized_table.example" -out=rotate-flink-api-key` and `pulumi up rotate-flink-api-key` instead.
662
+ *
663
+ * !> **Warning:** Use Option #2 to avoid exposing sensitive `credentials` value in a state file. When using Option #1, Terraform doesn't encrypt the sensitive `credentials` value of the `confluentcloud.FlinkMaterializedTable` resource, so you must keep your state file secure to avoid exposing it. Refer to the Terraform documentation to learn more about securing your state file.
664
+ *
665
+ * > **Note:** When using OAuth to authenticate a Flink Materialized Table, if the intended `principal.id` is a service account instead of an Identity Pool, make sure the Identity Pool has an `Assigner` role binding on the service account. Otherwise, you may encounter a 403 Forbidden error. For example:
666
+ *
667
+ * ```typescript
668
+ * import * as pulumi from "@pulumi/pulumi";
669
+ * import * as confluentcloud from "@pulumi/confluentcloud";
670
+ *
671
+ * const identity_pool_assigner = new confluentcloud.RoleBinding("identity-pool-assigner", {
672
+ * principal: "User:pool-abc123",
673
+ * roleName: "Assigner",
674
+ * crnPattern: `${main.resourceName}/service-account=sa-def456`,
675
+ * });
676
+ * ```
677
+ */
678
+ columnMetadataVirtual?: boolean;
679
+ }
680
+ export interface FlinkMaterializedTableColumnColumnsPhysical {
681
+ /**
682
+ * Comment for the physical column.
683
+ */
684
+ columnPhysicalComment?: string;
685
+ /**
686
+ * Kind of the physical column.
687
+ */
688
+ columnPhysicalKind?: string;
689
+ /**
690
+ * Name of the physical column.
691
+ */
692
+ columnPhysicalName?: string;
693
+ /**
694
+ * Type of the physical column.
695
+ */
696
+ columnPhysicalType?: string;
697
+ }
698
+ export interface FlinkMaterializedTableComputePool {
699
+ /**
700
+ * The ID of the Flink Compute Pool, for example, `lfcp-abc123`.
701
+ */
702
+ id: string;
703
+ }
704
+ export interface FlinkMaterializedTableConstraint {
705
+ /**
706
+ * The column names of the constraint.
707
+ */
708
+ columns?: string[];
709
+ /**
710
+ * Whether the constraint is enforced. Defaults to `false`.
711
+ */
712
+ enforced?: boolean;
713
+ /**
714
+ * The name of the constraint, for example, `pkOrders`.
715
+ */
716
+ name?: string;
717
+ /**
718
+ * The type of the constraint, for example, `PRIMARY_KEY`.
719
+ */
720
+ type?: string;
721
+ }
722
+ export interface FlinkMaterializedTableCredentials {
723
+ /**
724
+ * The Flink API Key.
725
+ */
726
+ key: string;
727
+ /**
728
+ * The Flink API Secret.
729
+ */
730
+ secret: string;
731
+ }
732
+ export interface FlinkMaterializedTableDistribution {
733
+ /**
734
+ * The number of buckets the table is distributed by.
735
+ */
736
+ bucketCount?: number;
737
+ /**
738
+ * The names of the columns the table is distributed by.
739
+ */
740
+ keys?: string[];
741
+ }
742
+ export interface FlinkMaterializedTableEnvironment {
743
+ /**
744
+ * The ID of the Environment, for example, `env-abc123`.
745
+ */
746
+ id: string;
747
+ }
748
+ export interface FlinkMaterializedTableKafkaCluster {
749
+ /**
750
+ * The ID of the Kafka Cluster hosting the Materialized Table's topic, for example, `lkc-abc123`.
751
+ */
752
+ id: string;
753
+ }
754
+ export interface FlinkMaterializedTableOrganization {
755
+ /**
756
+ * The ID of the Organization, for example, `1111aaaa-11aa-11aa-11aa-111111aaaaaa`.
757
+ */
758
+ id: string;
759
+ }
760
+ export interface FlinkMaterializedTablePrincipal {
761
+ /**
762
+ * The ID of the Principal the Flink Materialized Table runs as, for example, `sa-abc123`.
763
+ */
764
+ id: string;
765
+ }
766
+ export interface FlinkMaterializedTableWatermark {
767
+ /**
768
+ * The name of the watermark column.
769
+ */
770
+ column?: string;
771
+ /**
772
+ * The watermark expression, for example, `eventTime - INTERVAL '5' SECOND`.
773
+ */
774
+ expression?: string;
775
+ }
595
776
  export interface FlinkStatementComputePool {
596
777
  /**
597
778
  * The ID of the Flink Compute Pool, for example, `lfcp-abc123`.
@@ -1190,6 +1371,176 @@ export interface GetFlinkConnectionPrincipal {
1190
1371
  */
1191
1372
  id: string;
1192
1373
  }
1374
+ export interface GetFlinkMaterializedTableColumn {
1375
+ columnsComputeds: outputs.GetFlinkMaterializedTableColumnColumnsComputed[];
1376
+ columnsMetadatas: outputs.GetFlinkMaterializedTableColumnColumnsMetadata[];
1377
+ columnsPhysicals: outputs.GetFlinkMaterializedTableColumnColumnsPhysical[];
1378
+ }
1379
+ export interface GetFlinkMaterializedTableColumnColumnsComputed {
1380
+ /**
1381
+ * Comment for the computed column.
1382
+ */
1383
+ columnComputedComment: string;
1384
+ /**
1385
+ * Expression of the computed column.
1386
+ */
1387
+ columnComputedExpression: string;
1388
+ /**
1389
+ * Kind of the computed column.
1390
+ */
1391
+ columnComputedKind: string;
1392
+ /**
1393
+ * Name of the computed column.
1394
+ */
1395
+ columnComputedName: string;
1396
+ /**
1397
+ * Type of the computed column.
1398
+ */
1399
+ columnComputedType: string;
1400
+ /**
1401
+ * Whether computed column is virtual.
1402
+ */
1403
+ columnComputedVirtual: boolean;
1404
+ }
1405
+ export interface GetFlinkMaterializedTableColumnColumnsMetadata {
1406
+ /**
1407
+ * Comment for the metadata column.
1408
+ */
1409
+ columnMetadataComment: string;
1410
+ /**
1411
+ * Metadata key of the metadata column.
1412
+ */
1413
+ columnMetadataKey: string;
1414
+ /**
1415
+ * Kind of the metadata column.
1416
+ */
1417
+ columnMetadataKind: string;
1418
+ /**
1419
+ * Name of the metadata column.
1420
+ */
1421
+ columnMetadataName: string;
1422
+ /**
1423
+ * Type of the metadata column.
1424
+ */
1425
+ columnMetadataType: string;
1426
+ /**
1427
+ * Whether metadata column is virtual.
1428
+ */
1429
+ columnMetadataVirtual: boolean;
1430
+ }
1431
+ export interface GetFlinkMaterializedTableColumnColumnsPhysical {
1432
+ /**
1433
+ * Comment for the physical column.
1434
+ */
1435
+ columnPhysicalComment: string;
1436
+ /**
1437
+ * Kind of the physical column.
1438
+ */
1439
+ columnPhysicalKind: string;
1440
+ /**
1441
+ * Name of the physical column.
1442
+ */
1443
+ columnPhysicalName: string;
1444
+ /**
1445
+ * Type of the physical column.
1446
+ */
1447
+ columnPhysicalType: string;
1448
+ }
1449
+ export interface GetFlinkMaterializedTableComputePool {
1450
+ /**
1451
+ * The ID of the Flink Compute Pool, for example, `lfcp-abc123`.
1452
+ */
1453
+ id: string;
1454
+ }
1455
+ export interface GetFlinkMaterializedTableConstraint {
1456
+ /**
1457
+ * (Set of Strings) The column names of the constraint.
1458
+ */
1459
+ columns: string[];
1460
+ /**
1461
+ * (Boolean) Whether the constraint is enforced.
1462
+ */
1463
+ enforced: boolean;
1464
+ /**
1465
+ * (String) The name of the constraint, for example, `pkOrders`.
1466
+ */
1467
+ name: string;
1468
+ /**
1469
+ * (String) The type of the constraint, for example, `PRIMARY_KEY`.
1470
+ */
1471
+ type: string;
1472
+ }
1473
+ export interface GetFlinkMaterializedTableCredentials {
1474
+ /**
1475
+ * The Flink API Key.
1476
+ */
1477
+ key: string;
1478
+ /**
1479
+ * The Flink API Secret.
1480
+ *
1481
+ * > **Note:** A Flink API key consists of a key and a secret. Flink API keys are required to interact with Flink Materialized Tables in Confluent Cloud. Each Flink API key is valid for one specific Flink Region.
1482
+ *
1483
+ * > **Note:** Use Option #2 to simplify the key rotation process. When using Option #1, to rotate a Flink API key, create a new Flink API key, update the `credentials` block in all configuration files to use the new Flink API key, run `pulumi up -target="confluent_flink_materialized_table.example"`, and remove the old Flink API key. Alternatively, in case the old Flink API Key was deleted already, you might need to run `pulumi preview -refresh=false -target="confluent_flink_materialized_table.example" -out=rotate-flink-api-key` and `pulumi up rotate-flink-api-key` instead.
1484
+ *
1485
+ * > **Note:** When using OAuth to authenticate a Flink Materialized Table, if the intended `principal.id` is a service account instead of an Identity Pool, make sure the Identity Pool has an `Assigner` role binding on the service account. Otherwise, you may encounter a 403 Forbidden error. For example:
1486
+ *
1487
+ * ```typescript
1488
+ * import * as pulumi from "@pulumi/pulumi";
1489
+ * import * as confluentcloud from "@pulumi/confluentcloud";
1490
+ *
1491
+ * const identity_pool_assigner = new confluentcloud.RoleBinding("identity-pool-assigner", {
1492
+ * principal: "User:pool-abc123",
1493
+ * roleName: "Assigner",
1494
+ * crnPattern: `${main.resourceName}/service-account=sa-def456`,
1495
+ * });
1496
+ * ```
1497
+ */
1498
+ secret: string;
1499
+ }
1500
+ export interface GetFlinkMaterializedTableDistribution {
1501
+ /**
1502
+ * (Integer) The number of buckets the table is distributed by.
1503
+ */
1504
+ bucketCount: number;
1505
+ /**
1506
+ * (Set of Strings) The names of the columns the table is distributed by.
1507
+ */
1508
+ keys: string[];
1509
+ }
1510
+ export interface GetFlinkMaterializedTableEnvironment {
1511
+ /**
1512
+ * The ID of the Environment, for example, `env-abc123`.
1513
+ */
1514
+ id: string;
1515
+ }
1516
+ export interface GetFlinkMaterializedTableKafkaCluster {
1517
+ /**
1518
+ * (String) The ID of the Kafka Cluster hosting the Materialized Table's topic, for example, `lkc-abc123`.
1519
+ */
1520
+ id: string;
1521
+ }
1522
+ export interface GetFlinkMaterializedTableOrganization {
1523
+ /**
1524
+ * The ID of the Organization, for example, `1111aaaa-11aa-11aa-11aa-111111aaaaaa`.
1525
+ */
1526
+ id: string;
1527
+ }
1528
+ export interface GetFlinkMaterializedTablePrincipal {
1529
+ /**
1530
+ * The ID of the Principal the Flink Materialized Table runs as, for example, `sa-abc123`.
1531
+ */
1532
+ id: string;
1533
+ }
1534
+ export interface GetFlinkMaterializedTableWatermark {
1535
+ /**
1536
+ * (String) The name of the watermark column.
1537
+ */
1538
+ column: string;
1539
+ /**
1540
+ * (String) The watermark expression.
1541
+ */
1542
+ expression: string;
1543
+ }
1193
1544
  export interface GetGatewayAwsEgressPrivateLinkGateway {
1194
1545
  /**
1195
1546
  * (Required String) The principal ARN used by the AWS Egress Private Link Gateway.
@@ -2303,6 +2654,10 @@ export interface GetSchemaRuleset {
2303
2654
  * (Optional List of Blocks) supports the following:
2304
2655
  */
2305
2656
  domainRules?: outputs.GetSchemaRulesetDomainRule[];
2657
+ /**
2658
+ * (Optional List of Blocks) supports the following:
2659
+ */
2660
+ encodingRules?: outputs.GetSchemaRulesetEncodingRule[];
2306
2661
  /**
2307
2662
  * (Optional List of Blocks) supports the following:
2308
2663
  */
@@ -2352,7 +2707,55 @@ export interface GetSchemaRulesetDomainRule {
2352
2707
  */
2353
2708
  tags: string[];
2354
2709
  /**
2355
- * (Required String) The type of rule, which invokes a specific rule executor that that will run the rule. Google Common Expression Language (`CEL`) is used for data quality and transformation rules, Confluent `ENCRYPT` is used for data encryption rules, and `JSONata` is used for migration rules.
2710
+ * (Required String) The type of rule, which invokes a specific rule executor that will run the rule. Google Common Expression Language (`CEL`) is used for data quality and transformation rules, Confluent `ENCRYPT` is used for data encryption rules, and `JSONata` is used for migration rules.
2711
+ */
2712
+ type: string;
2713
+ }
2714
+ export interface GetSchemaRulesetEncodingRule {
2715
+ /**
2716
+ * (Optional Boolean) The boolean flag to control whether the rule should be disabled.
2717
+ */
2718
+ disabled?: boolean;
2719
+ /**
2720
+ * (Optional String) An optional description of the rule.
2721
+ */
2722
+ doc?: string;
2723
+ /**
2724
+ * (Optional String) The rule body. Data quality and transformation rules use `CEL` language expressions, data migration rules use `JSONata` expressions. Defaults to "".
2725
+ */
2726
+ expr?: string;
2727
+ /**
2728
+ * (Required String) The kind of the rule. Accepted values are `CONDITION` and `TRANSFORM`. `CONDITION` - validate the value of a field, `TRANSFORM` - transform the value of a field. Data quality rules use `CONDITION` kind, data transformation, encryption and migration rules use `TRANSFORM` kind.
2729
+ */
2730
+ kind: string;
2731
+ /**
2732
+ * (Required String) The mode of the rule. Accepted values are `UPGRADE`, `DOWNGRADE`, `UPDOWN`, `WRITE`, `READ`, and `WRITEREAD`.
2733
+ */
2734
+ mode: string;
2735
+ /**
2736
+ * (Required String) A user-defined name that can be used to reference the rule.
2737
+ */
2738
+ name: string;
2739
+ /**
2740
+ * (Optional String) An optional action to execute if the rule fails, otherwise the built-in action type `ERROR` is used. For `UPDOWN` and `WRITEREAD` rules, one can specify two actions separated by commas, as mentioned above.
2741
+ */
2742
+ onFailure?: string;
2743
+ /**
2744
+ * (Optional String) An optional action to execute if the rule succeeds, otherwise the built-in action type `NONE` is used. For `UPDOWN` and `WRITEREAD` rules, one can specify two actions separated by commas, such as `NONE,ERROR` for a `WRITEREAD` rule. In this case `NONE` applies to `WRITE` and `ERROR` applies to `READ`.
2745
+ */
2746
+ onSuccess?: string;
2747
+ /**
2748
+ * (Optional Configuration Block) A set of static parameters for the rule, which is optional. These are key-value pairs that are passed to the rule.
2749
+ */
2750
+ params: {
2751
+ [key: string]: string;
2752
+ };
2753
+ /**
2754
+ * (Optional String List) The tags to which the rule applies, if any.
2755
+ */
2756
+ tags: string[];
2757
+ /**
2758
+ * (Required String) The type of rule, which invokes a specific rule executor that will run the rule. Google Common Expression Language (`CEL`) is used for data quality and transformation rules, Confluent `ENCRYPT` is used for data encryption rules, and `JSONata` is used for migration rules.
2356
2759
  */
2357
2760
  type: string;
2358
2761
  }
@@ -2400,7 +2803,7 @@ export interface GetSchemaRulesetMigrationRule {
2400
2803
  */
2401
2804
  tags: string[];
2402
2805
  /**
2403
- * (Required String) The type of rule, which invokes a specific rule executor that that will run the rule. Google Common Expression Language (`CEL`) is used for data quality and transformation rules, Confluent `ENCRYPT` is used for data encryption rules, and `JSONata` is used for migration rules.
2806
+ * (Required String) The type of rule, which invokes a specific rule executor that will run the rule. Google Common Expression Language (`CEL`) is used for data quality and transformation rules, Confluent `ENCRYPT` is used for data encryption rules, and `JSONata` is used for migration rules.
2404
2807
  */
2405
2808
  type: string;
2406
2809
  }
@@ -3394,6 +3797,10 @@ export interface SchemaRuleset {
3394
3797
  * supports the following:
3395
3798
  */
3396
3799
  domainRules?: outputs.SchemaRulesetDomainRule[];
3800
+ /**
3801
+ * supports the following:
3802
+ */
3803
+ encodingRules?: outputs.SchemaRulesetEncodingRule[];
3397
3804
  /**
3398
3805
  * supports the following:
3399
3806
  */
@@ -3414,6 +3821,21 @@ export interface SchemaRulesetDomainRule {
3414
3821
  tags: string[];
3415
3822
  type: string;
3416
3823
  }
3824
+ export interface SchemaRulesetEncodingRule {
3825
+ disabled?: boolean;
3826
+ doc?: string;
3827
+ expr?: string;
3828
+ kind: string;
3829
+ mode: string;
3830
+ name: string;
3831
+ onFailure?: string;
3832
+ onSuccess?: string;
3833
+ params: {
3834
+ [key: string]: string;
3835
+ };
3836
+ tags: string[];
3837
+ type: string;
3838
+ }
3417
3839
  export interface SchemaRulesetMigrationRule {
3418
3840
  disabled?: boolean;
3419
3841
  doc?: string;