pulumi-confluentcloud 2.13.0a1735836869__py3-none-any.whl → 2.50.0a1762926155__py3-none-any.whl

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.

Potentially problematic release.


This version of pulumi-confluentcloud might be problematic. Click here for more details.

Files changed (129) hide show
  1. pulumi_confluentcloud/__init__.py +81 -1
  2. pulumi_confluentcloud/_inputs.py +4170 -2453
  3. pulumi_confluentcloud/_utilities.py +9 -5
  4. pulumi_confluentcloud/access_point.py +144 -36
  5. pulumi_confluentcloud/api_key.py +138 -272
  6. pulumi_confluentcloud/business_metadata.py +76 -73
  7. pulumi_confluentcloud/business_metadata_binding.py +101 -98
  8. pulumi_confluentcloud/byok_key.py +12 -11
  9. pulumi_confluentcloud/catalog_entity_attributes.py +133 -92
  10. pulumi_confluentcloud/catalog_integration.py +544 -0
  11. pulumi_confluentcloud/certificate_authority.py +156 -155
  12. pulumi_confluentcloud/certificate_pool.py +74 -73
  13. pulumi_confluentcloud/cluster_link.py +168 -91
  14. pulumi_confluentcloud/config/__init__.py +2 -1
  15. pulumi_confluentcloud/config/__init__.pyi +23 -2
  16. pulumi_confluentcloud/config/outputs.py +110 -0
  17. pulumi_confluentcloud/config/vars.py +50 -21
  18. pulumi_confluentcloud/connect_artifact.py +478 -0
  19. pulumi_confluentcloud/connector.py +303 -81
  20. pulumi_confluentcloud/custom_connector_plugin.py +142 -141
  21. pulumi_confluentcloud/custom_connector_plugin_version.py +614 -0
  22. pulumi_confluentcloud/dns_forwarder.py +88 -45
  23. pulumi_confluentcloud/dns_record.py +46 -45
  24. pulumi_confluentcloud/environment.py +74 -73
  25. pulumi_confluentcloud/flink_artifact.py +250 -194
  26. pulumi_confluentcloud/flink_compute_pool.py +101 -100
  27. pulumi_confluentcloud/flink_connection.py +935 -0
  28. pulumi_confluentcloud/flink_statement.py +218 -124
  29. pulumi_confluentcloud/gateway.py +44 -31
  30. pulumi_confluentcloud/get_access_point.py +36 -16
  31. pulumi_confluentcloud/get_business_metadata.py +25 -23
  32. pulumi_confluentcloud/get_business_metadata_binding.py +34 -32
  33. pulumi_confluentcloud/get_byok_key.py +11 -11
  34. pulumi_confluentcloud/get_catalog_integration.py +188 -0
  35. pulumi_confluentcloud/get_certificate_authority.py +38 -38
  36. pulumi_confluentcloud/get_certificate_pool.py +17 -17
  37. pulumi_confluentcloud/get_cluster_link.py +274 -0
  38. pulumi_confluentcloud/get_connect_artifact.py +191 -0
  39. pulumi_confluentcloud/get_dns_record.py +15 -15
  40. pulumi_confluentcloud/get_environment.py +17 -17
  41. pulumi_confluentcloud/get_environments.py +6 -6
  42. pulumi_confluentcloud/get_flink_artifact.py +59 -41
  43. pulumi_confluentcloud/get_flink_compute_pool.py +27 -27
  44. pulumi_confluentcloud/get_flink_connection.py +267 -0
  45. pulumi_confluentcloud/get_flink_region.py +24 -24
  46. pulumi_confluentcloud/get_gateway.py +45 -17
  47. pulumi_confluentcloud/get_group_mapping.py +18 -18
  48. pulumi_confluentcloud/get_identity_pool.py +21 -21
  49. pulumi_confluentcloud/get_identity_provider.py +35 -21
  50. pulumi_confluentcloud/get_invitation.py +20 -20
  51. pulumi_confluentcloud/get_ip_addresses.py +6 -6
  52. pulumi_confluentcloud/get_ip_filter.py +175 -0
  53. pulumi_confluentcloud/get_ip_group.py +133 -0
  54. pulumi_confluentcloud/get_kafka_client_quota.py +17 -17
  55. pulumi_confluentcloud/get_kafka_cluster.py +55 -41
  56. pulumi_confluentcloud/get_kafka_topic.py +22 -22
  57. pulumi_confluentcloud/get_ksql_cluster.py +33 -33
  58. pulumi_confluentcloud/get_network.py +54 -40
  59. pulumi_confluentcloud/get_network_link_endpoint.py +17 -17
  60. pulumi_confluentcloud/get_network_link_service.py +23 -17
  61. pulumi_confluentcloud/get_organization.py +6 -6
  62. pulumi_confluentcloud/get_peering.py +19 -19
  63. pulumi_confluentcloud/get_private_link_access.py +19 -19
  64. pulumi_confluentcloud/get_private_link_attachment.py +29 -27
  65. pulumi_confluentcloud/get_private_link_attachment_connection.py +24 -21
  66. pulumi_confluentcloud/get_provider_integration.py +28 -18
  67. pulumi_confluentcloud/get_role_binding.py +14 -14
  68. pulumi_confluentcloud/get_schema.py +40 -40
  69. pulumi_confluentcloud/get_schema_registry_cluster.py +51 -36
  70. pulumi_confluentcloud/get_schema_registry_cluster_config.py +16 -16
  71. pulumi_confluentcloud/get_schema_registry_cluster_mode.py +14 -14
  72. pulumi_confluentcloud/get_schema_registry_clusters.py +6 -6
  73. pulumi_confluentcloud/get_schema_registry_dek.py +42 -42
  74. pulumi_confluentcloud/get_schema_registry_kek.py +30 -30
  75. pulumi_confluentcloud/get_schemas.py +14 -14
  76. pulumi_confluentcloud/get_service_account.py +20 -20
  77. pulumi_confluentcloud/get_subject_config.py +22 -22
  78. pulumi_confluentcloud/get_subject_mode.py +20 -20
  79. pulumi_confluentcloud/get_tableflow_topic.py +360 -0
  80. pulumi_confluentcloud/get_tag.py +26 -24
  81. pulumi_confluentcloud/get_tag_binding.py +32 -30
  82. pulumi_confluentcloud/get_transit_gateway_attachment.py +17 -17
  83. pulumi_confluentcloud/get_user.py +24 -24
  84. pulumi_confluentcloud/get_users.py +6 -6
  85. pulumi_confluentcloud/group_mapping.py +54 -53
  86. pulumi_confluentcloud/identity_pool.py +74 -73
  87. pulumi_confluentcloud/identity_provider.py +138 -76
  88. pulumi_confluentcloud/invitation.py +81 -80
  89. pulumi_confluentcloud/ip_filter.py +420 -0
  90. pulumi_confluentcloud/ip_group.py +264 -0
  91. pulumi_confluentcloud/kafka_acl.py +173 -172
  92. pulumi_confluentcloud/kafka_client_quota.py +63 -62
  93. pulumi_confluentcloud/kafka_cluster.py +227 -207
  94. pulumi_confluentcloud/kafka_cluster_config.py +43 -42
  95. pulumi_confluentcloud/kafka_mirror_topic.py +46 -45
  96. pulumi_confluentcloud/kafka_topic.py +132 -131
  97. pulumi_confluentcloud/ksql_cluster.py +117 -120
  98. pulumi_confluentcloud/network.py +235 -198
  99. pulumi_confluentcloud/network_link_endpoint.py +62 -68
  100. pulumi_confluentcloud/network_link_service.py +62 -68
  101. pulumi_confluentcloud/outputs.py +3400 -2088
  102. pulumi_confluentcloud/peering.py +128 -48
  103. pulumi_confluentcloud/plugin.py +428 -0
  104. pulumi_confluentcloud/private_link_access.py +54 -60
  105. pulumi_confluentcloud/private_link_attachment.py +93 -88
  106. pulumi_confluentcloud/private_link_attachment_connection.py +70 -47
  107. pulumi_confluentcloud/provider.py +318 -192
  108. pulumi_confluentcloud/provider_integration.py +45 -34
  109. pulumi_confluentcloud/pulumi-plugin.json +1 -1
  110. pulumi_confluentcloud/role_binding.py +153 -56
  111. pulumi_confluentcloud/schema.py +188 -212
  112. pulumi_confluentcloud/schema_exporter.py +217 -164
  113. pulumi_confluentcloud/schema_registry_cluster_config.py +60 -59
  114. pulumi_confluentcloud/schema_registry_cluster_mode.py +90 -42
  115. pulumi_confluentcloud/schema_registry_dek.py +140 -146
  116. pulumi_confluentcloud/schema_registry_kek.py +148 -154
  117. pulumi_confluentcloud/service_account.py +97 -96
  118. pulumi_confluentcloud/subject_config.py +105 -76
  119. pulumi_confluentcloud/subject_mode.py +107 -59
  120. pulumi_confluentcloud/tableflow_topic.py +854 -0
  121. pulumi_confluentcloud/tag.py +82 -79
  122. pulumi_confluentcloud/tag_binding.py +121 -84
  123. pulumi_confluentcloud/tf_importer.py +39 -36
  124. pulumi_confluentcloud/transit_gateway_attachment.py +38 -44
  125. {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/METADATA +4 -4
  126. pulumi_confluentcloud-2.50.0a1762926155.dist-info/RECORD +129 -0
  127. {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/WHEEL +1 -1
  128. pulumi_confluentcloud-2.13.0a1735836869.dist-info/RECORD +0 -113
  129. {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,854 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['TableflowTopicArgs', 'TableflowTopic']
20
+
21
+ @pulumi.input_type
22
+ class TableflowTopicArgs:
23
+ def __init__(__self__, *,
24
+ display_name: pulumi.Input[_builtins.str],
25
+ environment: pulumi.Input['TableflowTopicEnvironmentArgs'],
26
+ kafka_cluster: pulumi.Input['TableflowTopicKafkaClusterArgs'],
27
+ byob_aws: Optional[pulumi.Input['TableflowTopicByobAwsArgs']] = None,
28
+ credentials: Optional[pulumi.Input['TableflowTopicCredentialsArgs']] = None,
29
+ error_handling: Optional[pulumi.Input['TableflowTopicErrorHandlingArgs']] = None,
30
+ managed_storages: Optional[pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]]] = None,
31
+ record_failure_strategy: Optional[pulumi.Input[_builtins.str]] = None,
32
+ retention_ms: Optional[pulumi.Input[_builtins.str]] = None,
33
+ table_formats: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
34
+ """
35
+ The set of arguments for constructing a TableflowTopic resource.
36
+ :param pulumi.Input[_builtins.str] display_name: The name of the Kafka topic for which Tableflow is enabled.
37
+ :param pulumi.Input['TableflowTopicEnvironmentArgs'] environment: Environment objects represent an isolated namespace for your Confluent resources for organizational purposes.
38
+ :param pulumi.Input['TableflowTopicByobAwsArgs'] byob_aws: supports the following (See [Quick Start with Custom Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html#cloud-tableflow-quick-start) for more details):
39
+ :param pulumi.Input['TableflowTopicCredentialsArgs'] credentials: The Cluster API Credentials.
40
+ :param pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]] managed_storages: The configuration of the Confluent managed storage. See [Quick Start with Managed Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-managed-storage.html#cloud-tableflow-quick-start-managed-storage) for more details.
41
+ :param pulumi.Input[_builtins.str] record_failure_strategy: The strategy to handle record failures in the Tableflow enabled topic during materialization. Accepted values are `SKIP`, `SUSPEND`. For `SKIP`, we skip the bad records and move to the next record. For `SUSPEND`, we suspend the materialization of the topic.
42
+ :param pulumi.Input[_builtins.str] retention_ms: The max age of snapshots (Iceberg) or versions (Delta) (snapshot/version expiration) to keep on the table in milliseconds for the Tableflow enabled topic.
43
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] table_formats: The supported table formats for the Tableflow-enabled topic. Accepted values are `DELTA`, `ICEBERG`.
44
+ """
45
+ pulumi.set(__self__, "display_name", display_name)
46
+ pulumi.set(__self__, "environment", environment)
47
+ pulumi.set(__self__, "kafka_cluster", kafka_cluster)
48
+ if byob_aws is not None:
49
+ pulumi.set(__self__, "byob_aws", byob_aws)
50
+ if credentials is not None:
51
+ pulumi.set(__self__, "credentials", credentials)
52
+ if error_handling is not None:
53
+ pulumi.set(__self__, "error_handling", error_handling)
54
+ if managed_storages is not None:
55
+ pulumi.set(__self__, "managed_storages", managed_storages)
56
+ if record_failure_strategy is not None:
57
+ warnings.warn("""This attribute is deprecated and will be removed in a future release.""", DeprecationWarning)
58
+ pulumi.log.warn("""record_failure_strategy is deprecated: This attribute is deprecated and will be removed in a future release.""")
59
+ if record_failure_strategy is not None:
60
+ pulumi.set(__self__, "record_failure_strategy", record_failure_strategy)
61
+ if retention_ms is not None:
62
+ pulumi.set(__self__, "retention_ms", retention_ms)
63
+ if table_formats is not None:
64
+ pulumi.set(__self__, "table_formats", table_formats)
65
+
66
+ @_builtins.property
67
+ @pulumi.getter(name="displayName")
68
+ def display_name(self) -> pulumi.Input[_builtins.str]:
69
+ """
70
+ The name of the Kafka topic for which Tableflow is enabled.
71
+ """
72
+ return pulumi.get(self, "display_name")
73
+
74
+ @display_name.setter
75
+ def display_name(self, value: pulumi.Input[_builtins.str]):
76
+ pulumi.set(self, "display_name", value)
77
+
78
+ @_builtins.property
79
+ @pulumi.getter
80
+ def environment(self) -> pulumi.Input['TableflowTopicEnvironmentArgs']:
81
+ """
82
+ Environment objects represent an isolated namespace for your Confluent resources for organizational purposes.
83
+ """
84
+ return pulumi.get(self, "environment")
85
+
86
+ @environment.setter
87
+ def environment(self, value: pulumi.Input['TableflowTopicEnvironmentArgs']):
88
+ pulumi.set(self, "environment", value)
89
+
90
+ @_builtins.property
91
+ @pulumi.getter(name="kafkaCluster")
92
+ def kafka_cluster(self) -> pulumi.Input['TableflowTopicKafkaClusterArgs']:
93
+ return pulumi.get(self, "kafka_cluster")
94
+
95
+ @kafka_cluster.setter
96
+ def kafka_cluster(self, value: pulumi.Input['TableflowTopicKafkaClusterArgs']):
97
+ pulumi.set(self, "kafka_cluster", value)
98
+
99
+ @_builtins.property
100
+ @pulumi.getter(name="byobAws")
101
+ def byob_aws(self) -> Optional[pulumi.Input['TableflowTopicByobAwsArgs']]:
102
+ """
103
+ supports the following (See [Quick Start with Custom Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html#cloud-tableflow-quick-start) for more details):
104
+ """
105
+ return pulumi.get(self, "byob_aws")
106
+
107
+ @byob_aws.setter
108
+ def byob_aws(self, value: Optional[pulumi.Input['TableflowTopicByobAwsArgs']]):
109
+ pulumi.set(self, "byob_aws", value)
110
+
111
+ @_builtins.property
112
+ @pulumi.getter
113
+ def credentials(self) -> Optional[pulumi.Input['TableflowTopicCredentialsArgs']]:
114
+ """
115
+ The Cluster API Credentials.
116
+ """
117
+ return pulumi.get(self, "credentials")
118
+
119
+ @credentials.setter
120
+ def credentials(self, value: Optional[pulumi.Input['TableflowTopicCredentialsArgs']]):
121
+ pulumi.set(self, "credentials", value)
122
+
123
+ @_builtins.property
124
+ @pulumi.getter(name="errorHandling")
125
+ def error_handling(self) -> Optional[pulumi.Input['TableflowTopicErrorHandlingArgs']]:
126
+ return pulumi.get(self, "error_handling")
127
+
128
+ @error_handling.setter
129
+ def error_handling(self, value: Optional[pulumi.Input['TableflowTopicErrorHandlingArgs']]):
130
+ pulumi.set(self, "error_handling", value)
131
+
132
+ @_builtins.property
133
+ @pulumi.getter(name="managedStorages")
134
+ def managed_storages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]]]:
135
+ """
136
+ The configuration of the Confluent managed storage. See [Quick Start with Managed Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-managed-storage.html#cloud-tableflow-quick-start-managed-storage) for more details.
137
+ """
138
+ return pulumi.get(self, "managed_storages")
139
+
140
+ @managed_storages.setter
141
+ def managed_storages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]]]):
142
+ pulumi.set(self, "managed_storages", value)
143
+
144
+ @_builtins.property
145
+ @pulumi.getter(name="recordFailureStrategy")
146
+ @_utilities.deprecated("""This attribute is deprecated and will be removed in a future release.""")
147
+ def record_failure_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
148
+ """
149
+ The strategy to handle record failures in the Tableflow enabled topic during materialization. Accepted values are `SKIP`, `SUSPEND`. For `SKIP`, we skip the bad records and move to the next record. For `SUSPEND`, we suspend the materialization of the topic.
150
+ """
151
+ return pulumi.get(self, "record_failure_strategy")
152
+
153
+ @record_failure_strategy.setter
154
+ def record_failure_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
155
+ pulumi.set(self, "record_failure_strategy", value)
156
+
157
+ @_builtins.property
158
+ @pulumi.getter(name="retentionMs")
159
+ def retention_ms(self) -> Optional[pulumi.Input[_builtins.str]]:
160
+ """
161
+ The max age of snapshots (Iceberg) or versions (Delta) (snapshot/version expiration) to keep on the table in milliseconds for the Tableflow enabled topic.
162
+ """
163
+ return pulumi.get(self, "retention_ms")
164
+
165
+ @retention_ms.setter
166
+ def retention_ms(self, value: Optional[pulumi.Input[_builtins.str]]):
167
+ pulumi.set(self, "retention_ms", value)
168
+
169
+ @_builtins.property
170
+ @pulumi.getter(name="tableFormats")
171
+ def table_formats(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
172
+ """
173
+ The supported table formats for the Tableflow-enabled topic. Accepted values are `DELTA`, `ICEBERG`.
174
+ """
175
+ return pulumi.get(self, "table_formats")
176
+
177
+ @table_formats.setter
178
+ def table_formats(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
179
+ pulumi.set(self, "table_formats", value)
180
+
181
+
182
+ @pulumi.input_type
183
+ class _TableflowTopicState:
184
+ def __init__(__self__, *,
185
+ byob_aws: Optional[pulumi.Input['TableflowTopicByobAwsArgs']] = None,
186
+ credentials: Optional[pulumi.Input['TableflowTopicCredentialsArgs']] = None,
187
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
188
+ enable_compaction: Optional[pulumi.Input[_builtins.bool]] = None,
189
+ enable_partitioning: Optional[pulumi.Input[_builtins.bool]] = None,
190
+ environment: Optional[pulumi.Input['TableflowTopicEnvironmentArgs']] = None,
191
+ error_handling: Optional[pulumi.Input['TableflowTopicErrorHandlingArgs']] = None,
192
+ kafka_cluster: Optional[pulumi.Input['TableflowTopicKafkaClusterArgs']] = None,
193
+ managed_storages: Optional[pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]]] = None,
194
+ record_failure_strategy: Optional[pulumi.Input[_builtins.str]] = None,
195
+ retention_ms: Optional[pulumi.Input[_builtins.str]] = None,
196
+ suspended: Optional[pulumi.Input[_builtins.bool]] = None,
197
+ table_formats: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
198
+ table_path: Optional[pulumi.Input[_builtins.str]] = None,
199
+ write_mode: Optional[pulumi.Input[_builtins.str]] = None):
200
+ """
201
+ Input properties used for looking up and filtering TableflowTopic resources.
202
+ :param pulumi.Input['TableflowTopicByobAwsArgs'] byob_aws: supports the following (See [Quick Start with Custom Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html#cloud-tableflow-quick-start) for more details):
203
+ :param pulumi.Input['TableflowTopicCredentialsArgs'] credentials: The Cluster API Credentials.
204
+ :param pulumi.Input[_builtins.str] display_name: The name of the Kafka topic for which Tableflow is enabled.
205
+ :param pulumi.Input[_builtins.bool] enable_compaction: (Optional Boolean) This flag determines whether to enable compaction for the Tableflow enabled topic.
206
+ :param pulumi.Input[_builtins.bool] enable_partitioning: (Optional Boolean) This flag determines whether to enable partitioning for the Tableflow enabled topic.
207
+ :param pulumi.Input['TableflowTopicEnvironmentArgs'] environment: Environment objects represent an isolated namespace for your Confluent resources for organizational purposes.
208
+ :param pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]] managed_storages: The configuration of the Confluent managed storage. See [Quick Start with Managed Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-managed-storage.html#cloud-tableflow-quick-start-managed-storage) for more details.
209
+ :param pulumi.Input[_builtins.str] record_failure_strategy: The strategy to handle record failures in the Tableflow enabled topic during materialization. Accepted values are `SKIP`, `SUSPEND`. For `SKIP`, we skip the bad records and move to the next record. For `SUSPEND`, we suspend the materialization of the topic.
210
+ :param pulumi.Input[_builtins.str] retention_ms: The max age of snapshots (Iceberg) or versions (Delta) (snapshot/version expiration) to keep on the table in milliseconds for the Tableflow enabled topic.
211
+ :param pulumi.Input[_builtins.bool] suspended: (Optional Boolean) Indicates whether the Tableflow should be suspended.
212
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] table_formats: The supported table formats for the Tableflow-enabled topic. Accepted values are `DELTA`, `ICEBERG`.
213
+ :param pulumi.Input[_builtins.str] table_path: (Optional String) The current storage path where the data and metadata is stored for this table.
214
+ :param pulumi.Input[_builtins.str] write_mode: (Optional String) Indicates the write mode of the Tableflow topic.
215
+ """
216
+ if byob_aws is not None:
217
+ pulumi.set(__self__, "byob_aws", byob_aws)
218
+ if credentials is not None:
219
+ pulumi.set(__self__, "credentials", credentials)
220
+ if display_name is not None:
221
+ pulumi.set(__self__, "display_name", display_name)
222
+ if enable_compaction is not None:
223
+ pulumi.set(__self__, "enable_compaction", enable_compaction)
224
+ if enable_partitioning is not None:
225
+ pulumi.set(__self__, "enable_partitioning", enable_partitioning)
226
+ if environment is not None:
227
+ pulumi.set(__self__, "environment", environment)
228
+ if error_handling is not None:
229
+ pulumi.set(__self__, "error_handling", error_handling)
230
+ if kafka_cluster is not None:
231
+ pulumi.set(__self__, "kafka_cluster", kafka_cluster)
232
+ if managed_storages is not None:
233
+ pulumi.set(__self__, "managed_storages", managed_storages)
234
+ if record_failure_strategy is not None:
235
+ warnings.warn("""This attribute is deprecated and will be removed in a future release.""", DeprecationWarning)
236
+ pulumi.log.warn("""record_failure_strategy is deprecated: This attribute is deprecated and will be removed in a future release.""")
237
+ if record_failure_strategy is not None:
238
+ pulumi.set(__self__, "record_failure_strategy", record_failure_strategy)
239
+ if retention_ms is not None:
240
+ pulumi.set(__self__, "retention_ms", retention_ms)
241
+ if suspended is not None:
242
+ pulumi.set(__self__, "suspended", suspended)
243
+ if table_formats is not None:
244
+ pulumi.set(__self__, "table_formats", table_formats)
245
+ if table_path is not None:
246
+ pulumi.set(__self__, "table_path", table_path)
247
+ if write_mode is not None:
248
+ pulumi.set(__self__, "write_mode", write_mode)
249
+
250
+ @_builtins.property
251
+ @pulumi.getter(name="byobAws")
252
+ def byob_aws(self) -> Optional[pulumi.Input['TableflowTopicByobAwsArgs']]:
253
+ """
254
+ supports the following (See [Quick Start with Custom Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html#cloud-tableflow-quick-start) for more details):
255
+ """
256
+ return pulumi.get(self, "byob_aws")
257
+
258
+ @byob_aws.setter
259
+ def byob_aws(self, value: Optional[pulumi.Input['TableflowTopicByobAwsArgs']]):
260
+ pulumi.set(self, "byob_aws", value)
261
+
262
+ @_builtins.property
263
+ @pulumi.getter
264
+ def credentials(self) -> Optional[pulumi.Input['TableflowTopicCredentialsArgs']]:
265
+ """
266
+ The Cluster API Credentials.
267
+ """
268
+ return pulumi.get(self, "credentials")
269
+
270
+ @credentials.setter
271
+ def credentials(self, value: Optional[pulumi.Input['TableflowTopicCredentialsArgs']]):
272
+ pulumi.set(self, "credentials", value)
273
+
274
+ @_builtins.property
275
+ @pulumi.getter(name="displayName")
276
+ def display_name(self) -> Optional[pulumi.Input[_builtins.str]]:
277
+ """
278
+ The name of the Kafka topic for which Tableflow is enabled.
279
+ """
280
+ return pulumi.get(self, "display_name")
281
+
282
+ @display_name.setter
283
+ def display_name(self, value: Optional[pulumi.Input[_builtins.str]]):
284
+ pulumi.set(self, "display_name", value)
285
+
286
+ @_builtins.property
287
+ @pulumi.getter(name="enableCompaction")
288
+ def enable_compaction(self) -> Optional[pulumi.Input[_builtins.bool]]:
289
+ """
290
+ (Optional Boolean) This flag determines whether to enable compaction for the Tableflow enabled topic.
291
+ """
292
+ return pulumi.get(self, "enable_compaction")
293
+
294
+ @enable_compaction.setter
295
+ def enable_compaction(self, value: Optional[pulumi.Input[_builtins.bool]]):
296
+ pulumi.set(self, "enable_compaction", value)
297
+
298
+ @_builtins.property
299
+ @pulumi.getter(name="enablePartitioning")
300
+ def enable_partitioning(self) -> Optional[pulumi.Input[_builtins.bool]]:
301
+ """
302
+ (Optional Boolean) This flag determines whether to enable partitioning for the Tableflow enabled topic.
303
+ """
304
+ return pulumi.get(self, "enable_partitioning")
305
+
306
+ @enable_partitioning.setter
307
+ def enable_partitioning(self, value: Optional[pulumi.Input[_builtins.bool]]):
308
+ pulumi.set(self, "enable_partitioning", value)
309
+
310
+ @_builtins.property
311
+ @pulumi.getter
312
+ def environment(self) -> Optional[pulumi.Input['TableflowTopicEnvironmentArgs']]:
313
+ """
314
+ Environment objects represent an isolated namespace for your Confluent resources for organizational purposes.
315
+ """
316
+ return pulumi.get(self, "environment")
317
+
318
+ @environment.setter
319
+ def environment(self, value: Optional[pulumi.Input['TableflowTopicEnvironmentArgs']]):
320
+ pulumi.set(self, "environment", value)
321
+
322
+ @_builtins.property
323
+ @pulumi.getter(name="errorHandling")
324
+ def error_handling(self) -> Optional[pulumi.Input['TableflowTopicErrorHandlingArgs']]:
325
+ return pulumi.get(self, "error_handling")
326
+
327
+ @error_handling.setter
328
+ def error_handling(self, value: Optional[pulumi.Input['TableflowTopicErrorHandlingArgs']]):
329
+ pulumi.set(self, "error_handling", value)
330
+
331
+ @_builtins.property
332
+ @pulumi.getter(name="kafkaCluster")
333
+ def kafka_cluster(self) -> Optional[pulumi.Input['TableflowTopicKafkaClusterArgs']]:
334
+ return pulumi.get(self, "kafka_cluster")
335
+
336
+ @kafka_cluster.setter
337
+ def kafka_cluster(self, value: Optional[pulumi.Input['TableflowTopicKafkaClusterArgs']]):
338
+ pulumi.set(self, "kafka_cluster", value)
339
+
340
+ @_builtins.property
341
+ @pulumi.getter(name="managedStorages")
342
+ def managed_storages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]]]:
343
+ """
344
+ The configuration of the Confluent managed storage. See [Quick Start with Managed Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-managed-storage.html#cloud-tableflow-quick-start-managed-storage) for more details.
345
+ """
346
+ return pulumi.get(self, "managed_storages")
347
+
348
+ @managed_storages.setter
349
+ def managed_storages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TableflowTopicManagedStorageArgs']]]]):
350
+ pulumi.set(self, "managed_storages", value)
351
+
352
+ @_builtins.property
353
+ @pulumi.getter(name="recordFailureStrategy")
354
+ @_utilities.deprecated("""This attribute is deprecated and will be removed in a future release.""")
355
+ def record_failure_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
356
+ """
357
+ The strategy to handle record failures in the Tableflow enabled topic during materialization. Accepted values are `SKIP`, `SUSPEND`. For `SKIP`, we skip the bad records and move to the next record. For `SUSPEND`, we suspend the materialization of the topic.
358
+ """
359
+ return pulumi.get(self, "record_failure_strategy")
360
+
361
+ @record_failure_strategy.setter
362
+ def record_failure_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
363
+ pulumi.set(self, "record_failure_strategy", value)
364
+
365
+ @_builtins.property
366
+ @pulumi.getter(name="retentionMs")
367
+ def retention_ms(self) -> Optional[pulumi.Input[_builtins.str]]:
368
+ """
369
+ The max age of snapshots (Iceberg) or versions (Delta) (snapshot/version expiration) to keep on the table in milliseconds for the Tableflow enabled topic.
370
+ """
371
+ return pulumi.get(self, "retention_ms")
372
+
373
+ @retention_ms.setter
374
+ def retention_ms(self, value: Optional[pulumi.Input[_builtins.str]]):
375
+ pulumi.set(self, "retention_ms", value)
376
+
377
+ @_builtins.property
378
+ @pulumi.getter
379
+ def suspended(self) -> Optional[pulumi.Input[_builtins.bool]]:
380
+ """
381
+ (Optional Boolean) Indicates whether the Tableflow should be suspended.
382
+ """
383
+ return pulumi.get(self, "suspended")
384
+
385
+ @suspended.setter
386
+ def suspended(self, value: Optional[pulumi.Input[_builtins.bool]]):
387
+ pulumi.set(self, "suspended", value)
388
+
389
+ @_builtins.property
390
+ @pulumi.getter(name="tableFormats")
391
+ def table_formats(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
392
+ """
393
+ The supported table formats for the Tableflow-enabled topic. Accepted values are `DELTA`, `ICEBERG`.
394
+ """
395
+ return pulumi.get(self, "table_formats")
396
+
397
+ @table_formats.setter
398
+ def table_formats(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
399
+ pulumi.set(self, "table_formats", value)
400
+
401
+ @_builtins.property
402
+ @pulumi.getter(name="tablePath")
403
+ def table_path(self) -> Optional[pulumi.Input[_builtins.str]]:
404
+ """
405
+ (Optional String) The current storage path where the data and metadata is stored for this table.
406
+ """
407
+ return pulumi.get(self, "table_path")
408
+
409
+ @table_path.setter
410
+ def table_path(self, value: Optional[pulumi.Input[_builtins.str]]):
411
+ pulumi.set(self, "table_path", value)
412
+
413
+ @_builtins.property
414
+ @pulumi.getter(name="writeMode")
415
+ def write_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
416
+ """
417
+ (Optional String) Indicates the write mode of the Tableflow topic.
418
+ """
419
+ return pulumi.get(self, "write_mode")
420
+
421
+ @write_mode.setter
422
+ def write_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
423
+ pulumi.set(self, "write_mode", value)
424
+
425
+
426
+ @pulumi.type_token("confluentcloud:index/tableflowTopic:TableflowTopic")
427
+ class TableflowTopic(pulumi.CustomResource):
428
+ @overload
429
+ def __init__(__self__,
430
+ resource_name: str,
431
+ opts: Optional[pulumi.ResourceOptions] = None,
432
+ byob_aws: Optional[pulumi.Input[Union['TableflowTopicByobAwsArgs', 'TableflowTopicByobAwsArgsDict']]] = None,
433
+ credentials: Optional[pulumi.Input[Union['TableflowTopicCredentialsArgs', 'TableflowTopicCredentialsArgsDict']]] = None,
434
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
435
+ environment: Optional[pulumi.Input[Union['TableflowTopicEnvironmentArgs', 'TableflowTopicEnvironmentArgsDict']]] = None,
436
+ error_handling: Optional[pulumi.Input[Union['TableflowTopicErrorHandlingArgs', 'TableflowTopicErrorHandlingArgsDict']]] = None,
437
+ kafka_cluster: Optional[pulumi.Input[Union['TableflowTopicKafkaClusterArgs', 'TableflowTopicKafkaClusterArgsDict']]] = None,
438
+ managed_storages: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TableflowTopicManagedStorageArgs', 'TableflowTopicManagedStorageArgsDict']]]]] = None,
439
+ record_failure_strategy: Optional[pulumi.Input[_builtins.str]] = None,
440
+ retention_ms: Optional[pulumi.Input[_builtins.str]] = None,
441
+ table_formats: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
442
+ __props__=None):
443
+ """
444
+ ## Example Usage
445
+
446
+ ### Option #1: Manage multiple Tableflow Topics in the same Pulumi Stack
447
+
448
+ ```python
449
+ import pulumi
450
+ import pulumi_confluentcloud as confluentcloud
451
+
452
+ example = confluentcloud.TableflowTopic("example",
453
+ managed_storages=[{}],
454
+ environment={
455
+ "id": staging["id"],
456
+ },
457
+ kafka_cluster={
458
+ "id": staging_confluent_kafka_cluster["id"],
459
+ },
460
+ display_name=orders["topicName"],
461
+ table_formats=[
462
+ "ICEBERG",
463
+ "DELTA",
464
+ ],
465
+ credentials={
466
+ "key": env_admin_tableflow_api_key["id"],
467
+ "secret": env_admin_tableflow_api_key["secret"],
468
+ })
469
+ ```
470
+
471
+ ### Option #2: Manage a single Tableflow Topic in the same Pulumi Stack
472
+
473
+ ```python
474
+ import pulumi
475
+ import pulumi_confluentcloud as confluentcloud
476
+
477
+ example = confluentcloud.TableflowTopic("example",
478
+ environment={
479
+ "id": staging["id"],
480
+ },
481
+ kafka_cluster={
482
+ "id": staging_confluent_kafka_cluster["id"],
483
+ },
484
+ display_name=orders["topicName"],
485
+ byob_aws={
486
+ "bucket_name": "bucket_1",
487
+ "provider_integration_id": main["id"],
488
+ })
489
+ ```
490
+
491
+ ## Getting Started
492
+
493
+ The following end-to-end examples might help to get started with `TableflowTopic` resource:
494
+ * confluent-managed-storage: Tableflow topic with Confluent-managed storage.
495
+ * byob-aws-storage: Tableflow topic with custom (BYOB AWS) storage.
496
+ * datagen-connector-byob-aws-storage: Datagen Source connector with a Tableflow topic with custom (BYOB AWS) storage.
497
+ * datagen-connector-confluent-managed-storage: Datagen Source connector with a Tableflow topic with Confluent-managed storage.
498
+
499
+ ## Import
500
+
501
+ You can import a Tableflow Topic by using the Tableflow Topic name, Environment ID, and Kafka Cluster ID, in the format `<Environment ID>/<Kafka Cluster ID>/<Tableflow Topic name>`, for example:
502
+
503
+ Option #1: Manage multiple Tableflow Topics in the same Pulumi Stack
504
+
505
+ $ export IMPORT_TABLEFLOW_API_KEY="<tableflow_api_key>"
506
+
507
+ $ export IMPORT_TABLEFLOW_API_SECRET="<tableflow_api_secret>"
508
+
509
+ ```sh
510
+ $ pulumi import confluentcloud:index/tableflowTopic:TableflowTopic example env-abc123/lkc-abc123/orders
511
+ ```
512
+
513
+ Option #2: Manage a single Tableflow Topic in the same Pulumi Stack
514
+
515
+ ```sh
516
+ $ pulumi import confluentcloud:index/tableflowTopic:TableflowTopic example env-abc123/lkc-abc123/orders
517
+ ```
518
+
519
+ !> **Warning:** Do not forget to delete terminal command history afterwards for security purposes.
520
+
521
+ :param str resource_name: The name of the resource.
522
+ :param pulumi.ResourceOptions opts: Options for the resource.
523
+ :param pulumi.Input[Union['TableflowTopicByobAwsArgs', 'TableflowTopicByobAwsArgsDict']] byob_aws: supports the following (See [Quick Start with Custom Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html#cloud-tableflow-quick-start) for more details):
524
+ :param pulumi.Input[Union['TableflowTopicCredentialsArgs', 'TableflowTopicCredentialsArgsDict']] credentials: The Cluster API Credentials.
525
+ :param pulumi.Input[_builtins.str] display_name: The name of the Kafka topic for which Tableflow is enabled.
526
+ :param pulumi.Input[Union['TableflowTopicEnvironmentArgs', 'TableflowTopicEnvironmentArgsDict']] environment: Environment objects represent an isolated namespace for your Confluent resources for organizational purposes.
527
+ :param pulumi.Input[Sequence[pulumi.Input[Union['TableflowTopicManagedStorageArgs', 'TableflowTopicManagedStorageArgsDict']]]] managed_storages: The configuration of the Confluent managed storage. See [Quick Start with Managed Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-managed-storage.html#cloud-tableflow-quick-start-managed-storage) for more details.
528
+ :param pulumi.Input[_builtins.str] record_failure_strategy: The strategy to handle record failures in the Tableflow enabled topic during materialization. Accepted values are `SKIP`, `SUSPEND`. For `SKIP`, we skip the bad records and move to the next record. For `SUSPEND`, we suspend the materialization of the topic.
529
+ :param pulumi.Input[_builtins.str] retention_ms: The max age of snapshots (Iceberg) or versions (Delta) (snapshot/version expiration) to keep on the table in milliseconds for the Tableflow enabled topic.
530
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] table_formats: The supported table formats for the Tableflow-enabled topic. Accepted values are `DELTA`, `ICEBERG`.
531
+ """
532
+ ...
533
+ @overload
534
+ def __init__(__self__,
535
+ resource_name: str,
536
+ args: TableflowTopicArgs,
537
+ opts: Optional[pulumi.ResourceOptions] = None):
538
+ """
539
+ ## Example Usage
540
+
541
+ ### Option #1: Manage multiple Tableflow Topics in the same Pulumi Stack
542
+
543
+ ```python
544
+ import pulumi
545
+ import pulumi_confluentcloud as confluentcloud
546
+
547
+ example = confluentcloud.TableflowTopic("example",
548
+ managed_storages=[{}],
549
+ environment={
550
+ "id": staging["id"],
551
+ },
552
+ kafka_cluster={
553
+ "id": staging_confluent_kafka_cluster["id"],
554
+ },
555
+ display_name=orders["topicName"],
556
+ table_formats=[
557
+ "ICEBERG",
558
+ "DELTA",
559
+ ],
560
+ credentials={
561
+ "key": env_admin_tableflow_api_key["id"],
562
+ "secret": env_admin_tableflow_api_key["secret"],
563
+ })
564
+ ```
565
+
566
+ ### Option #2: Manage a single Tableflow Topic in the same Pulumi Stack
567
+
568
+ ```python
569
+ import pulumi
570
+ import pulumi_confluentcloud as confluentcloud
571
+
572
+ example = confluentcloud.TableflowTopic("example",
573
+ environment={
574
+ "id": staging["id"],
575
+ },
576
+ kafka_cluster={
577
+ "id": staging_confluent_kafka_cluster["id"],
578
+ },
579
+ display_name=orders["topicName"],
580
+ byob_aws={
581
+ "bucket_name": "bucket_1",
582
+ "provider_integration_id": main["id"],
583
+ })
584
+ ```
585
+
586
+ ## Getting Started
587
+
588
+ The following end-to-end examples might help to get started with `TableflowTopic` resource:
589
+ * confluent-managed-storage: Tableflow topic with Confluent-managed storage.
590
+ * byob-aws-storage: Tableflow topic with custom (BYOB AWS) storage.
591
+ * datagen-connector-byob-aws-storage: Datagen Source connector with a Tableflow topic with custom (BYOB AWS) storage.
592
+ * datagen-connector-confluent-managed-storage: Datagen Source connector with a Tableflow topic with Confluent-managed storage.
593
+
594
+ ## Import
595
+
596
+ You can import a Tableflow Topic by using the Tableflow Topic name, Environment ID, and Kafka Cluster ID, in the format `<Environment ID>/<Kafka Cluster ID>/<Tableflow Topic name>`, for example:
597
+
598
+ Option #1: Manage multiple Tableflow Topics in the same Pulumi Stack
599
+
600
+ $ export IMPORT_TABLEFLOW_API_KEY="<tableflow_api_key>"
601
+
602
+ $ export IMPORT_TABLEFLOW_API_SECRET="<tableflow_api_secret>"
603
+
604
+ ```sh
605
+ $ pulumi import confluentcloud:index/tableflowTopic:TableflowTopic example env-abc123/lkc-abc123/orders
606
+ ```
607
+
608
+ Option #2: Manage a single Tableflow Topic in the same Pulumi Stack
609
+
610
+ ```sh
611
+ $ pulumi import confluentcloud:index/tableflowTopic:TableflowTopic example env-abc123/lkc-abc123/orders
612
+ ```
613
+
614
+ !> **Warning:** Do not forget to delete terminal command history afterwards for security purposes.
615
+
616
+ :param str resource_name: The name of the resource.
617
+ :param TableflowTopicArgs args: The arguments to use to populate this resource's properties.
618
+ :param pulumi.ResourceOptions opts: Options for the resource.
619
+ """
620
+ ...
621
+ def __init__(__self__, resource_name: str, *args, **kwargs):
622
+ resource_args, opts = _utilities.get_resource_args_opts(TableflowTopicArgs, pulumi.ResourceOptions, *args, **kwargs)
623
+ if resource_args is not None:
624
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
625
+ else:
626
+ __self__._internal_init(resource_name, *args, **kwargs)
627
+
628
+ def _internal_init(__self__,
629
+ resource_name: str,
630
+ opts: Optional[pulumi.ResourceOptions] = None,
631
+ byob_aws: Optional[pulumi.Input[Union['TableflowTopicByobAwsArgs', 'TableflowTopicByobAwsArgsDict']]] = None,
632
+ credentials: Optional[pulumi.Input[Union['TableflowTopicCredentialsArgs', 'TableflowTopicCredentialsArgsDict']]] = None,
633
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
634
+ environment: Optional[pulumi.Input[Union['TableflowTopicEnvironmentArgs', 'TableflowTopicEnvironmentArgsDict']]] = None,
635
+ error_handling: Optional[pulumi.Input[Union['TableflowTopicErrorHandlingArgs', 'TableflowTopicErrorHandlingArgsDict']]] = None,
636
+ kafka_cluster: Optional[pulumi.Input[Union['TableflowTopicKafkaClusterArgs', 'TableflowTopicKafkaClusterArgsDict']]] = None,
637
+ managed_storages: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TableflowTopicManagedStorageArgs', 'TableflowTopicManagedStorageArgsDict']]]]] = None,
638
+ record_failure_strategy: Optional[pulumi.Input[_builtins.str]] = None,
639
+ retention_ms: Optional[pulumi.Input[_builtins.str]] = None,
640
+ table_formats: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
641
+ __props__=None):
642
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
643
+ if not isinstance(opts, pulumi.ResourceOptions):
644
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
645
+ if opts.id is None:
646
+ if __props__ is not None:
647
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
648
+ __props__ = TableflowTopicArgs.__new__(TableflowTopicArgs)
649
+
650
+ __props__.__dict__["byob_aws"] = byob_aws
651
+ __props__.__dict__["credentials"] = None if credentials is None else pulumi.Output.secret(credentials)
652
+ if display_name is None and not opts.urn:
653
+ raise TypeError("Missing required property 'display_name'")
654
+ __props__.__dict__["display_name"] = display_name
655
+ if environment is None and not opts.urn:
656
+ raise TypeError("Missing required property 'environment'")
657
+ __props__.__dict__["environment"] = environment
658
+ __props__.__dict__["error_handling"] = error_handling
659
+ if kafka_cluster is None and not opts.urn:
660
+ raise TypeError("Missing required property 'kafka_cluster'")
661
+ __props__.__dict__["kafka_cluster"] = kafka_cluster
662
+ __props__.__dict__["managed_storages"] = managed_storages
663
+ __props__.__dict__["record_failure_strategy"] = record_failure_strategy
664
+ __props__.__dict__["retention_ms"] = retention_ms
665
+ __props__.__dict__["table_formats"] = table_formats
666
+ __props__.__dict__["enable_compaction"] = None
667
+ __props__.__dict__["enable_partitioning"] = None
668
+ __props__.__dict__["suspended"] = None
669
+ __props__.__dict__["table_path"] = None
670
+ __props__.__dict__["write_mode"] = None
671
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["credentials"])
672
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
673
+ super(TableflowTopic, __self__).__init__(
674
+ 'confluentcloud:index/tableflowTopic:TableflowTopic',
675
+ resource_name,
676
+ __props__,
677
+ opts)
678
+
679
+ @staticmethod
680
+ def get(resource_name: str,
681
+ id: pulumi.Input[str],
682
+ opts: Optional[pulumi.ResourceOptions] = None,
683
+ byob_aws: Optional[pulumi.Input[Union['TableflowTopicByobAwsArgs', 'TableflowTopicByobAwsArgsDict']]] = None,
684
+ credentials: Optional[pulumi.Input[Union['TableflowTopicCredentialsArgs', 'TableflowTopicCredentialsArgsDict']]] = None,
685
+ display_name: Optional[pulumi.Input[_builtins.str]] = None,
686
+ enable_compaction: Optional[pulumi.Input[_builtins.bool]] = None,
687
+ enable_partitioning: Optional[pulumi.Input[_builtins.bool]] = None,
688
+ environment: Optional[pulumi.Input[Union['TableflowTopicEnvironmentArgs', 'TableflowTopicEnvironmentArgsDict']]] = None,
689
+ error_handling: Optional[pulumi.Input[Union['TableflowTopicErrorHandlingArgs', 'TableflowTopicErrorHandlingArgsDict']]] = None,
690
+ kafka_cluster: Optional[pulumi.Input[Union['TableflowTopicKafkaClusterArgs', 'TableflowTopicKafkaClusterArgsDict']]] = None,
691
+ managed_storages: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TableflowTopicManagedStorageArgs', 'TableflowTopicManagedStorageArgsDict']]]]] = None,
692
+ record_failure_strategy: Optional[pulumi.Input[_builtins.str]] = None,
693
+ retention_ms: Optional[pulumi.Input[_builtins.str]] = None,
694
+ suspended: Optional[pulumi.Input[_builtins.bool]] = None,
695
+ table_formats: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
696
+ table_path: Optional[pulumi.Input[_builtins.str]] = None,
697
+ write_mode: Optional[pulumi.Input[_builtins.str]] = None) -> 'TableflowTopic':
698
+ """
699
+ Get an existing TableflowTopic resource's state with the given name, id, and optional extra
700
+ properties used to qualify the lookup.
701
+
702
+ :param str resource_name: The unique name of the resulting resource.
703
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
704
+ :param pulumi.ResourceOptions opts: Options for the resource.
705
+ :param pulumi.Input[Union['TableflowTopicByobAwsArgs', 'TableflowTopicByobAwsArgsDict']] byob_aws: supports the following (See [Quick Start with Custom Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html#cloud-tableflow-quick-start) for more details):
706
+ :param pulumi.Input[Union['TableflowTopicCredentialsArgs', 'TableflowTopicCredentialsArgsDict']] credentials: The Cluster API Credentials.
707
+ :param pulumi.Input[_builtins.str] display_name: The name of the Kafka topic for which Tableflow is enabled.
708
+ :param pulumi.Input[_builtins.bool] enable_compaction: (Optional Boolean) This flag determines whether to enable compaction for the Tableflow enabled topic.
709
+ :param pulumi.Input[_builtins.bool] enable_partitioning: (Optional Boolean) This flag determines whether to enable partitioning for the Tableflow enabled topic.
710
+ :param pulumi.Input[Union['TableflowTopicEnvironmentArgs', 'TableflowTopicEnvironmentArgsDict']] environment: Environment objects represent an isolated namespace for your Confluent resources for organizational purposes.
711
+ :param pulumi.Input[Sequence[pulumi.Input[Union['TableflowTopicManagedStorageArgs', 'TableflowTopicManagedStorageArgsDict']]]] managed_storages: The configuration of the Confluent managed storage. See [Quick Start with Managed Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-managed-storage.html#cloud-tableflow-quick-start-managed-storage) for more details.
712
+ :param pulumi.Input[_builtins.str] record_failure_strategy: The strategy to handle record failures in the Tableflow enabled topic during materialization. Accepted values are `SKIP`, `SUSPEND`. For `SKIP`, we skip the bad records and move to the next record. For `SUSPEND`, we suspend the materialization of the topic.
713
+ :param pulumi.Input[_builtins.str] retention_ms: The max age of snapshots (Iceberg) or versions (Delta) (snapshot/version expiration) to keep on the table in milliseconds for the Tableflow enabled topic.
714
+ :param pulumi.Input[_builtins.bool] suspended: (Optional Boolean) Indicates whether the Tableflow should be suspended.
715
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] table_formats: The supported table formats for the Tableflow-enabled topic. Accepted values are `DELTA`, `ICEBERG`.
716
+ :param pulumi.Input[_builtins.str] table_path: (Optional String) The current storage path where the data and metadata is stored for this table.
717
+ :param pulumi.Input[_builtins.str] write_mode: (Optional String) Indicates the write mode of the Tableflow topic.
718
+ """
719
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
720
+
721
+ __props__ = _TableflowTopicState.__new__(_TableflowTopicState)
722
+
723
+ __props__.__dict__["byob_aws"] = byob_aws
724
+ __props__.__dict__["credentials"] = credentials
725
+ __props__.__dict__["display_name"] = display_name
726
+ __props__.__dict__["enable_compaction"] = enable_compaction
727
+ __props__.__dict__["enable_partitioning"] = enable_partitioning
728
+ __props__.__dict__["environment"] = environment
729
+ __props__.__dict__["error_handling"] = error_handling
730
+ __props__.__dict__["kafka_cluster"] = kafka_cluster
731
+ __props__.__dict__["managed_storages"] = managed_storages
732
+ __props__.__dict__["record_failure_strategy"] = record_failure_strategy
733
+ __props__.__dict__["retention_ms"] = retention_ms
734
+ __props__.__dict__["suspended"] = suspended
735
+ __props__.__dict__["table_formats"] = table_formats
736
+ __props__.__dict__["table_path"] = table_path
737
+ __props__.__dict__["write_mode"] = write_mode
738
+ return TableflowTopic(resource_name, opts=opts, __props__=__props__)
739
+
740
+ @_builtins.property
741
+ @pulumi.getter(name="byobAws")
742
+ def byob_aws(self) -> pulumi.Output[Optional['outputs.TableflowTopicByobAws']]:
743
+ """
744
+ supports the following (See [Quick Start with Custom Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html#cloud-tableflow-quick-start) for more details):
745
+ """
746
+ return pulumi.get(self, "byob_aws")
747
+
748
+ @_builtins.property
749
+ @pulumi.getter
750
+ def credentials(self) -> pulumi.Output[Optional['outputs.TableflowTopicCredentials']]:
751
+ """
752
+ The Cluster API Credentials.
753
+ """
754
+ return pulumi.get(self, "credentials")
755
+
756
+ @_builtins.property
757
+ @pulumi.getter(name="displayName")
758
+ def display_name(self) -> pulumi.Output[_builtins.str]:
759
+ """
760
+ The name of the Kafka topic for which Tableflow is enabled.
761
+ """
762
+ return pulumi.get(self, "display_name")
763
+
764
+ @_builtins.property
765
+ @pulumi.getter(name="enableCompaction")
766
+ def enable_compaction(self) -> pulumi.Output[_builtins.bool]:
767
+ """
768
+ (Optional Boolean) This flag determines whether to enable compaction for the Tableflow enabled topic.
769
+ """
770
+ return pulumi.get(self, "enable_compaction")
771
+
772
+ @_builtins.property
773
+ @pulumi.getter(name="enablePartitioning")
774
+ def enable_partitioning(self) -> pulumi.Output[_builtins.bool]:
775
+ """
776
+ (Optional Boolean) This flag determines whether to enable partitioning for the Tableflow enabled topic.
777
+ """
778
+ return pulumi.get(self, "enable_partitioning")
779
+
780
+ @_builtins.property
781
+ @pulumi.getter
782
+ def environment(self) -> pulumi.Output['outputs.TableflowTopicEnvironment']:
783
+ """
784
+ Environment objects represent an isolated namespace for your Confluent resources for organizational purposes.
785
+ """
786
+ return pulumi.get(self, "environment")
787
+
788
+ @_builtins.property
789
+ @pulumi.getter(name="errorHandling")
790
+ def error_handling(self) -> pulumi.Output['outputs.TableflowTopicErrorHandling']:
791
+ return pulumi.get(self, "error_handling")
792
+
793
+ @_builtins.property
794
+ @pulumi.getter(name="kafkaCluster")
795
+ def kafka_cluster(self) -> pulumi.Output['outputs.TableflowTopicKafkaCluster']:
796
+ return pulumi.get(self, "kafka_cluster")
797
+
798
+ @_builtins.property
799
+ @pulumi.getter(name="managedStorages")
800
+ def managed_storages(self) -> pulumi.Output[Optional[Sequence['outputs.TableflowTopicManagedStorage']]]:
801
+ """
802
+ The configuration of the Confluent managed storage. See [Quick Start with Managed Storage](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-managed-storage.html#cloud-tableflow-quick-start-managed-storage) for more details.
803
+ """
804
+ return pulumi.get(self, "managed_storages")
805
+
806
+ @_builtins.property
807
+ @pulumi.getter(name="recordFailureStrategy")
808
+ @_utilities.deprecated("""This attribute is deprecated and will be removed in a future release.""")
809
+ def record_failure_strategy(self) -> pulumi.Output[_builtins.str]:
810
+ """
811
+ The strategy to handle record failures in the Tableflow enabled topic during materialization. Accepted values are `SKIP`, `SUSPEND`. For `SKIP`, we skip the bad records and move to the next record. For `SUSPEND`, we suspend the materialization of the topic.
812
+ """
813
+ return pulumi.get(self, "record_failure_strategy")
814
+
815
+ @_builtins.property
816
+ @pulumi.getter(name="retentionMs")
817
+ def retention_ms(self) -> pulumi.Output[Optional[_builtins.str]]:
818
+ """
819
+ The max age of snapshots (Iceberg) or versions (Delta) (snapshot/version expiration) to keep on the table in milliseconds for the Tableflow enabled topic.
820
+ """
821
+ return pulumi.get(self, "retention_ms")
822
+
823
+ @_builtins.property
824
+ @pulumi.getter
825
+ def suspended(self) -> pulumi.Output[_builtins.bool]:
826
+ """
827
+ (Optional Boolean) Indicates whether the Tableflow should be suspended.
828
+ """
829
+ return pulumi.get(self, "suspended")
830
+
831
+ @_builtins.property
832
+ @pulumi.getter(name="tableFormats")
833
+ def table_formats(self) -> pulumi.Output[Sequence[_builtins.str]]:
834
+ """
835
+ The supported table formats for the Tableflow-enabled topic. Accepted values are `DELTA`, `ICEBERG`.
836
+ """
837
+ return pulumi.get(self, "table_formats")
838
+
839
+ @_builtins.property
840
+ @pulumi.getter(name="tablePath")
841
+ def table_path(self) -> pulumi.Output[_builtins.str]:
842
+ """
843
+ (Optional String) The current storage path where the data and metadata is stored for this table.
844
+ """
845
+ return pulumi.get(self, "table_path")
846
+
847
+ @_builtins.property
848
+ @pulumi.getter(name="writeMode")
849
+ def write_mode(self) -> pulumi.Output[_builtins.str]:
850
+ """
851
+ (Optional String) Indicates the write mode of the Tableflow topic.
852
+ """
853
+ return pulumi.get(self, "write_mode")
854
+