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.
- pulumi_confluentcloud/__init__.py +81 -1
- pulumi_confluentcloud/_inputs.py +4170 -2453
- pulumi_confluentcloud/_utilities.py +9 -5
- pulumi_confluentcloud/access_point.py +144 -36
- pulumi_confluentcloud/api_key.py +138 -272
- pulumi_confluentcloud/business_metadata.py +76 -73
- pulumi_confluentcloud/business_metadata_binding.py +101 -98
- pulumi_confluentcloud/byok_key.py +12 -11
- pulumi_confluentcloud/catalog_entity_attributes.py +133 -92
- pulumi_confluentcloud/catalog_integration.py +544 -0
- pulumi_confluentcloud/certificate_authority.py +156 -155
- pulumi_confluentcloud/certificate_pool.py +74 -73
- pulumi_confluentcloud/cluster_link.py +168 -91
- pulumi_confluentcloud/config/__init__.py +2 -1
- pulumi_confluentcloud/config/__init__.pyi +23 -2
- pulumi_confluentcloud/config/outputs.py +110 -0
- pulumi_confluentcloud/config/vars.py +50 -21
- pulumi_confluentcloud/connect_artifact.py +478 -0
- pulumi_confluentcloud/connector.py +303 -81
- pulumi_confluentcloud/custom_connector_plugin.py +142 -141
- pulumi_confluentcloud/custom_connector_plugin_version.py +614 -0
- pulumi_confluentcloud/dns_forwarder.py +88 -45
- pulumi_confluentcloud/dns_record.py +46 -45
- pulumi_confluentcloud/environment.py +74 -73
- pulumi_confluentcloud/flink_artifact.py +250 -194
- pulumi_confluentcloud/flink_compute_pool.py +101 -100
- pulumi_confluentcloud/flink_connection.py +935 -0
- pulumi_confluentcloud/flink_statement.py +218 -124
- pulumi_confluentcloud/gateway.py +44 -31
- pulumi_confluentcloud/get_access_point.py +36 -16
- pulumi_confluentcloud/get_business_metadata.py +25 -23
- pulumi_confluentcloud/get_business_metadata_binding.py +34 -32
- pulumi_confluentcloud/get_byok_key.py +11 -11
- pulumi_confluentcloud/get_catalog_integration.py +188 -0
- pulumi_confluentcloud/get_certificate_authority.py +38 -38
- pulumi_confluentcloud/get_certificate_pool.py +17 -17
- pulumi_confluentcloud/get_cluster_link.py +274 -0
- pulumi_confluentcloud/get_connect_artifact.py +191 -0
- pulumi_confluentcloud/get_dns_record.py +15 -15
- pulumi_confluentcloud/get_environment.py +17 -17
- pulumi_confluentcloud/get_environments.py +6 -6
- pulumi_confluentcloud/get_flink_artifact.py +59 -41
- pulumi_confluentcloud/get_flink_compute_pool.py +27 -27
- pulumi_confluentcloud/get_flink_connection.py +267 -0
- pulumi_confluentcloud/get_flink_region.py +24 -24
- pulumi_confluentcloud/get_gateway.py +45 -17
- pulumi_confluentcloud/get_group_mapping.py +18 -18
- pulumi_confluentcloud/get_identity_pool.py +21 -21
- pulumi_confluentcloud/get_identity_provider.py +35 -21
- pulumi_confluentcloud/get_invitation.py +20 -20
- pulumi_confluentcloud/get_ip_addresses.py +6 -6
- pulumi_confluentcloud/get_ip_filter.py +175 -0
- pulumi_confluentcloud/get_ip_group.py +133 -0
- pulumi_confluentcloud/get_kafka_client_quota.py +17 -17
- pulumi_confluentcloud/get_kafka_cluster.py +55 -41
- pulumi_confluentcloud/get_kafka_topic.py +22 -22
- pulumi_confluentcloud/get_ksql_cluster.py +33 -33
- pulumi_confluentcloud/get_network.py +54 -40
- pulumi_confluentcloud/get_network_link_endpoint.py +17 -17
- pulumi_confluentcloud/get_network_link_service.py +23 -17
- pulumi_confluentcloud/get_organization.py +6 -6
- pulumi_confluentcloud/get_peering.py +19 -19
- pulumi_confluentcloud/get_private_link_access.py +19 -19
- pulumi_confluentcloud/get_private_link_attachment.py +29 -27
- pulumi_confluentcloud/get_private_link_attachment_connection.py +24 -21
- pulumi_confluentcloud/get_provider_integration.py +28 -18
- pulumi_confluentcloud/get_role_binding.py +14 -14
- pulumi_confluentcloud/get_schema.py +40 -40
- pulumi_confluentcloud/get_schema_registry_cluster.py +51 -36
- pulumi_confluentcloud/get_schema_registry_cluster_config.py +16 -16
- pulumi_confluentcloud/get_schema_registry_cluster_mode.py +14 -14
- pulumi_confluentcloud/get_schema_registry_clusters.py +6 -6
- pulumi_confluentcloud/get_schema_registry_dek.py +42 -42
- pulumi_confluentcloud/get_schema_registry_kek.py +30 -30
- pulumi_confluentcloud/get_schemas.py +14 -14
- pulumi_confluentcloud/get_service_account.py +20 -20
- pulumi_confluentcloud/get_subject_config.py +22 -22
- pulumi_confluentcloud/get_subject_mode.py +20 -20
- pulumi_confluentcloud/get_tableflow_topic.py +360 -0
- pulumi_confluentcloud/get_tag.py +26 -24
- pulumi_confluentcloud/get_tag_binding.py +32 -30
- pulumi_confluentcloud/get_transit_gateway_attachment.py +17 -17
- pulumi_confluentcloud/get_user.py +24 -24
- pulumi_confluentcloud/get_users.py +6 -6
- pulumi_confluentcloud/group_mapping.py +54 -53
- pulumi_confluentcloud/identity_pool.py +74 -73
- pulumi_confluentcloud/identity_provider.py +138 -76
- pulumi_confluentcloud/invitation.py +81 -80
- pulumi_confluentcloud/ip_filter.py +420 -0
- pulumi_confluentcloud/ip_group.py +264 -0
- pulumi_confluentcloud/kafka_acl.py +173 -172
- pulumi_confluentcloud/kafka_client_quota.py +63 -62
- pulumi_confluentcloud/kafka_cluster.py +227 -207
- pulumi_confluentcloud/kafka_cluster_config.py +43 -42
- pulumi_confluentcloud/kafka_mirror_topic.py +46 -45
- pulumi_confluentcloud/kafka_topic.py +132 -131
- pulumi_confluentcloud/ksql_cluster.py +117 -120
- pulumi_confluentcloud/network.py +235 -198
- pulumi_confluentcloud/network_link_endpoint.py +62 -68
- pulumi_confluentcloud/network_link_service.py +62 -68
- pulumi_confluentcloud/outputs.py +3400 -2088
- pulumi_confluentcloud/peering.py +128 -48
- pulumi_confluentcloud/plugin.py +428 -0
- pulumi_confluentcloud/private_link_access.py +54 -60
- pulumi_confluentcloud/private_link_attachment.py +93 -88
- pulumi_confluentcloud/private_link_attachment_connection.py +70 -47
- pulumi_confluentcloud/provider.py +318 -192
- pulumi_confluentcloud/provider_integration.py +45 -34
- pulumi_confluentcloud/pulumi-plugin.json +1 -1
- pulumi_confluentcloud/role_binding.py +153 -56
- pulumi_confluentcloud/schema.py +188 -212
- pulumi_confluentcloud/schema_exporter.py +217 -164
- pulumi_confluentcloud/schema_registry_cluster_config.py +60 -59
- pulumi_confluentcloud/schema_registry_cluster_mode.py +90 -42
- pulumi_confluentcloud/schema_registry_dek.py +140 -146
- pulumi_confluentcloud/schema_registry_kek.py +148 -154
- pulumi_confluentcloud/service_account.py +97 -96
- pulumi_confluentcloud/subject_config.py +105 -76
- pulumi_confluentcloud/subject_mode.py +107 -59
- pulumi_confluentcloud/tableflow_topic.py +854 -0
- pulumi_confluentcloud/tag.py +82 -79
- pulumi_confluentcloud/tag_binding.py +121 -84
- pulumi_confluentcloud/tf_importer.py +39 -36
- pulumi_confluentcloud/transit_gateway_attachment.py +38 -44
- {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/METADATA +4 -4
- pulumi_confluentcloud-2.50.0a1762926155.dist-info/RECORD +129 -0
- {pulumi_confluentcloud-2.13.0a1735836869.dist-info → pulumi_confluentcloud-2.50.0a1762926155.dist-info}/WHEEL +1 -1
- pulumi_confluentcloud-2.13.0a1735836869.dist-info/RECORD +0 -113
- {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
|
+
|