pulumi-digitalocean 4.27.0a1710332933__py3-none-any.whl → 4.39.0a1736833057__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-digitalocean might be problematic. Click here for more details.

Files changed (107) hide show
  1. pulumi_digitalocean/__init__.py +75 -0
  2. pulumi_digitalocean/_enums.py +131 -52
  3. pulumi_digitalocean/_inputs.py +5767 -399
  4. pulumi_digitalocean/_utilities.py +41 -5
  5. pulumi_digitalocean/app.py +199 -67
  6. pulumi_digitalocean/cdn.py +20 -23
  7. pulumi_digitalocean/certificate.py +45 -42
  8. pulumi_digitalocean/config/__init__.pyi +5 -0
  9. pulumi_digitalocean/config/vars.py +5 -0
  10. pulumi_digitalocean/container_registry.py +11 -6
  11. pulumi_digitalocean/container_registry_docker_credentials.py +53 -12
  12. pulumi_digitalocean/custom_image.py +13 -8
  13. pulumi_digitalocean/database_cluster.py +298 -120
  14. pulumi_digitalocean/database_connection_pool.py +15 -10
  15. pulumi_digitalocean/database_db.py +19 -12
  16. pulumi_digitalocean/database_firewall.py +78 -75
  17. pulumi_digitalocean/database_kafka_config.py +1040 -0
  18. pulumi_digitalocean/database_kafka_topic.py +66 -61
  19. pulumi_digitalocean/database_mongodb_config.py +452 -0
  20. pulumi_digitalocean/database_mysql_config.py +15 -12
  21. pulumi_digitalocean/database_opensearch_config.py +2069 -0
  22. pulumi_digitalocean/database_postgresql_config.py +2614 -0
  23. pulumi_digitalocean/database_redis_config.py +29 -12
  24. pulumi_digitalocean/database_replica.py +29 -24
  25. pulumi_digitalocean/database_user.py +90 -75
  26. pulumi_digitalocean/dns_record.py +13 -8
  27. pulumi_digitalocean/domain.py +7 -6
  28. pulumi_digitalocean/droplet.py +89 -31
  29. pulumi_digitalocean/droplet_autoscale.py +474 -0
  30. pulumi_digitalocean/droplet_snapshot.py +23 -14
  31. pulumi_digitalocean/firewall.py +118 -106
  32. pulumi_digitalocean/floating_ip.py +19 -16
  33. pulumi_digitalocean/floating_ip_assignment.py +19 -16
  34. pulumi_digitalocean/get_account.py +18 -9
  35. pulumi_digitalocean/get_app.py +57 -10
  36. pulumi_digitalocean/get_certificate.py +19 -9
  37. pulumi_digitalocean/get_container_registry.py +19 -9
  38. pulumi_digitalocean/get_database_ca.py +14 -9
  39. pulumi_digitalocean/get_database_cluster.py +119 -11
  40. pulumi_digitalocean/get_database_connection_pool.py +25 -9
  41. pulumi_digitalocean/get_database_replica.py +29 -9
  42. pulumi_digitalocean/get_database_user.py +21 -9
  43. pulumi_digitalocean/get_domain.py +16 -9
  44. pulumi_digitalocean/get_domains.py +34 -27
  45. pulumi_digitalocean/get_droplet.py +66 -23
  46. pulumi_digitalocean/get_droplet_autoscale.py +197 -0
  47. pulumi_digitalocean/get_droplet_snapshot.py +36 -23
  48. pulumi_digitalocean/get_droplets.py +80 -54
  49. pulumi_digitalocean/get_firewall.py +29 -13
  50. pulumi_digitalocean/get_floating_ip.py +16 -9
  51. pulumi_digitalocean/get_image.py +42 -27
  52. pulumi_digitalocean/get_images.py +56 -53
  53. pulumi_digitalocean/get_kubernetes_cluster.py +53 -6
  54. pulumi_digitalocean/get_kubernetes_versions.py +43 -41
  55. pulumi_digitalocean/get_load_balancer.py +81 -17
  56. pulumi_digitalocean/get_project.py +23 -9
  57. pulumi_digitalocean/get_projects.py +56 -53
  58. pulumi_digitalocean/get_record.py +23 -9
  59. pulumi_digitalocean/get_records.py +62 -13
  60. pulumi_digitalocean/get_region.py +17 -9
  61. pulumi_digitalocean/get_regions.py +56 -53
  62. pulumi_digitalocean/get_reserved_ip.py +16 -9
  63. pulumi_digitalocean/get_reserved_ipv6.py +118 -0
  64. pulumi_digitalocean/get_sizes.py +24 -13
  65. pulumi_digitalocean/get_spaces_bucket.py +18 -9
  66. pulumi_digitalocean/get_spaces_bucket_object.py +41 -14
  67. pulumi_digitalocean/get_spaces_bucket_objects.py +26 -5
  68. pulumi_digitalocean/get_spaces_buckets.py +48 -45
  69. pulumi_digitalocean/get_ssh_key.py +27 -19
  70. pulumi_digitalocean/get_ssh_keys.py +40 -37
  71. pulumi_digitalocean/get_tag.py +31 -19
  72. pulumi_digitalocean/get_tags.py +32 -25
  73. pulumi_digitalocean/get_volume.py +35 -23
  74. pulumi_digitalocean/get_volume_snapshot.py +35 -21
  75. pulumi_digitalocean/get_vpc.py +33 -23
  76. pulumi_digitalocean/get_vpc_peering.py +244 -0
  77. pulumi_digitalocean/kubernetes_cluster.py +86 -35
  78. pulumi_digitalocean/kubernetes_node_pool.py +46 -43
  79. pulumi_digitalocean/load_balancer.py +320 -157
  80. pulumi_digitalocean/monitor_alert.py +17 -12
  81. pulumi_digitalocean/outputs.py +3419 -344
  82. pulumi_digitalocean/project.py +19 -16
  83. pulumi_digitalocean/project_resources.py +11 -8
  84. pulumi_digitalocean/provider.py +5 -0
  85. pulumi_digitalocean/pulumi-plugin.json +2 -1
  86. pulumi_digitalocean/reserved_ip.py +19 -16
  87. pulumi_digitalocean/reserved_ip_assignment.py +19 -16
  88. pulumi_digitalocean/reserved_ipv6.py +232 -0
  89. pulumi_digitalocean/reserved_ipv6_assignment.py +171 -0
  90. pulumi_digitalocean/spaces_bucket.py +70 -79
  91. pulumi_digitalocean/spaces_bucket_cors_configuration.py +30 -25
  92. pulumi_digitalocean/spaces_bucket_object.py +11 -12
  93. pulumi_digitalocean/spaces_bucket_policy.py +21 -16
  94. pulumi_digitalocean/ssh_key.py +19 -10
  95. pulumi_digitalocean/tag.py +13 -10
  96. pulumi_digitalocean/uptime_alert.py +10 -5
  97. pulumi_digitalocean/uptime_check.py +5 -0
  98. pulumi_digitalocean/volume.py +47 -50
  99. pulumi_digitalocean/volume_attachment.py +25 -20
  100. pulumi_digitalocean/volume_snapshot.py +17 -10
  101. pulumi_digitalocean/vpc.py +27 -22
  102. pulumi_digitalocean/vpc_peering.py +378 -0
  103. {pulumi_digitalocean-4.27.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/METADATA +7 -6
  104. pulumi_digitalocean-4.39.0a1736833057.dist-info/RECORD +108 -0
  105. {pulumi_digitalocean-4.27.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/WHEEL +1 -1
  106. pulumi_digitalocean-4.27.0a1710332933.dist-info/RECORD +0 -97
  107. {pulumi_digitalocean-4.27.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1040 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
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
+
17
+ __all__ = ['DatabaseKafkaConfigArgs', 'DatabaseKafkaConfig']
18
+
19
+ @pulumi.input_type
20
+ class DatabaseKafkaConfigArgs:
21
+ def __init__(__self__, *,
22
+ cluster_id: pulumi.Input[str],
23
+ auto_create_topics_enable: Optional[pulumi.Input[bool]] = None,
24
+ group_initial_rebalance_delay_ms: Optional[pulumi.Input[int]] = None,
25
+ group_max_session_timeout_ms: Optional[pulumi.Input[int]] = None,
26
+ group_min_session_timeout_ms: Optional[pulumi.Input[int]] = None,
27
+ log_cleaner_delete_retention_ms: Optional[pulumi.Input[int]] = None,
28
+ log_cleaner_min_compaction_lag_ms: Optional[pulumi.Input[str]] = None,
29
+ log_flush_interval_ms: Optional[pulumi.Input[str]] = None,
30
+ log_index_interval_bytes: Optional[pulumi.Input[int]] = None,
31
+ log_message_downconversion_enable: Optional[pulumi.Input[bool]] = None,
32
+ log_message_timestamp_difference_max_ms: Optional[pulumi.Input[str]] = None,
33
+ log_preallocate: Optional[pulumi.Input[bool]] = None,
34
+ log_retention_bytes: Optional[pulumi.Input[str]] = None,
35
+ log_retention_hours: Optional[pulumi.Input[int]] = None,
36
+ log_retention_ms: Optional[pulumi.Input[str]] = None,
37
+ log_roll_jitter_ms: Optional[pulumi.Input[str]] = None,
38
+ log_segment_delete_delay_ms: Optional[pulumi.Input[int]] = None,
39
+ message_max_bytes: Optional[pulumi.Input[int]] = None):
40
+ """
41
+ The set of arguments for constructing a DatabaseKafkaConfig resource.
42
+ :param pulumi.Input[str] cluster_id: The ID of the target Kafka cluster.
43
+ :param pulumi.Input[bool] auto_create_topics_enable: Enable auto creation of topics.
44
+ :param pulumi.Input[int] group_initial_rebalance_delay_ms: The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
45
+ :param pulumi.Input[int] group_max_session_timeout_ms: The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
46
+ :param pulumi.Input[int] group_min_session_timeout_ms: The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
47
+ :param pulumi.Input[int] log_cleaner_delete_retention_ms: How long are delete records retained?
48
+ :param pulumi.Input[str] log_cleaner_min_compaction_lag_ms: The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
49
+ :param pulumi.Input[str] log_flush_interval_ms: The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used.
50
+ :param pulumi.Input[int] log_index_interval_bytes: The interval with which Kafka adds an entry to the offset index.
51
+ :param pulumi.Input[bool] log_message_downconversion_enable: This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
52
+ :param pulumi.Input[str] log_message_timestamp_difference_max_ms: The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message.
53
+ :param pulumi.Input[bool] log_preallocate: Controls whether to preallocate a file when creating a new segment.
54
+ :param pulumi.Input[str] log_retention_bytes: The maximum size of the log before deleting messages.
55
+ :param pulumi.Input[int] log_retention_hours: The number of hours to keep a log file before deleting it.
56
+ :param pulumi.Input[str] log_retention_ms: The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
57
+ :param pulumi.Input[str] log_roll_jitter_ms: The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used.
58
+ :param pulumi.Input[int] log_segment_delete_delay_ms: The amount of time to wait before deleting a file from the filesystem.
59
+ :param pulumi.Input[int] message_max_bytes: The maximum size of message that the server can receive.
60
+ """
61
+ pulumi.set(__self__, "cluster_id", cluster_id)
62
+ if auto_create_topics_enable is not None:
63
+ pulumi.set(__self__, "auto_create_topics_enable", auto_create_topics_enable)
64
+ if group_initial_rebalance_delay_ms is not None:
65
+ pulumi.set(__self__, "group_initial_rebalance_delay_ms", group_initial_rebalance_delay_ms)
66
+ if group_max_session_timeout_ms is not None:
67
+ pulumi.set(__self__, "group_max_session_timeout_ms", group_max_session_timeout_ms)
68
+ if group_min_session_timeout_ms is not None:
69
+ pulumi.set(__self__, "group_min_session_timeout_ms", group_min_session_timeout_ms)
70
+ if log_cleaner_delete_retention_ms is not None:
71
+ pulumi.set(__self__, "log_cleaner_delete_retention_ms", log_cleaner_delete_retention_ms)
72
+ if log_cleaner_min_compaction_lag_ms is not None:
73
+ pulumi.set(__self__, "log_cleaner_min_compaction_lag_ms", log_cleaner_min_compaction_lag_ms)
74
+ if log_flush_interval_ms is not None:
75
+ pulumi.set(__self__, "log_flush_interval_ms", log_flush_interval_ms)
76
+ if log_index_interval_bytes is not None:
77
+ pulumi.set(__self__, "log_index_interval_bytes", log_index_interval_bytes)
78
+ if log_message_downconversion_enable is not None:
79
+ pulumi.set(__self__, "log_message_downconversion_enable", log_message_downconversion_enable)
80
+ if log_message_timestamp_difference_max_ms is not None:
81
+ pulumi.set(__self__, "log_message_timestamp_difference_max_ms", log_message_timestamp_difference_max_ms)
82
+ if log_preallocate is not None:
83
+ pulumi.set(__self__, "log_preallocate", log_preallocate)
84
+ if log_retention_bytes is not None:
85
+ pulumi.set(__self__, "log_retention_bytes", log_retention_bytes)
86
+ if log_retention_hours is not None:
87
+ pulumi.set(__self__, "log_retention_hours", log_retention_hours)
88
+ if log_retention_ms is not None:
89
+ pulumi.set(__self__, "log_retention_ms", log_retention_ms)
90
+ if log_roll_jitter_ms is not None:
91
+ pulumi.set(__self__, "log_roll_jitter_ms", log_roll_jitter_ms)
92
+ if log_segment_delete_delay_ms is not None:
93
+ pulumi.set(__self__, "log_segment_delete_delay_ms", log_segment_delete_delay_ms)
94
+ if message_max_bytes is not None:
95
+ pulumi.set(__self__, "message_max_bytes", message_max_bytes)
96
+
97
+ @property
98
+ @pulumi.getter(name="clusterId")
99
+ def cluster_id(self) -> pulumi.Input[str]:
100
+ """
101
+ The ID of the target Kafka cluster.
102
+ """
103
+ return pulumi.get(self, "cluster_id")
104
+
105
+ @cluster_id.setter
106
+ def cluster_id(self, value: pulumi.Input[str]):
107
+ pulumi.set(self, "cluster_id", value)
108
+
109
+ @property
110
+ @pulumi.getter(name="autoCreateTopicsEnable")
111
+ def auto_create_topics_enable(self) -> Optional[pulumi.Input[bool]]:
112
+ """
113
+ Enable auto creation of topics.
114
+ """
115
+ return pulumi.get(self, "auto_create_topics_enable")
116
+
117
+ @auto_create_topics_enable.setter
118
+ def auto_create_topics_enable(self, value: Optional[pulumi.Input[bool]]):
119
+ pulumi.set(self, "auto_create_topics_enable", value)
120
+
121
+ @property
122
+ @pulumi.getter(name="groupInitialRebalanceDelayMs")
123
+ def group_initial_rebalance_delay_ms(self) -> Optional[pulumi.Input[int]]:
124
+ """
125
+ The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
126
+ """
127
+ return pulumi.get(self, "group_initial_rebalance_delay_ms")
128
+
129
+ @group_initial_rebalance_delay_ms.setter
130
+ def group_initial_rebalance_delay_ms(self, value: Optional[pulumi.Input[int]]):
131
+ pulumi.set(self, "group_initial_rebalance_delay_ms", value)
132
+
133
+ @property
134
+ @pulumi.getter(name="groupMaxSessionTimeoutMs")
135
+ def group_max_session_timeout_ms(self) -> Optional[pulumi.Input[int]]:
136
+ """
137
+ The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
138
+ """
139
+ return pulumi.get(self, "group_max_session_timeout_ms")
140
+
141
+ @group_max_session_timeout_ms.setter
142
+ def group_max_session_timeout_ms(self, value: Optional[pulumi.Input[int]]):
143
+ pulumi.set(self, "group_max_session_timeout_ms", value)
144
+
145
+ @property
146
+ @pulumi.getter(name="groupMinSessionTimeoutMs")
147
+ def group_min_session_timeout_ms(self) -> Optional[pulumi.Input[int]]:
148
+ """
149
+ The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
150
+ """
151
+ return pulumi.get(self, "group_min_session_timeout_ms")
152
+
153
+ @group_min_session_timeout_ms.setter
154
+ def group_min_session_timeout_ms(self, value: Optional[pulumi.Input[int]]):
155
+ pulumi.set(self, "group_min_session_timeout_ms", value)
156
+
157
+ @property
158
+ @pulumi.getter(name="logCleanerDeleteRetentionMs")
159
+ def log_cleaner_delete_retention_ms(self) -> Optional[pulumi.Input[int]]:
160
+ """
161
+ How long are delete records retained?
162
+ """
163
+ return pulumi.get(self, "log_cleaner_delete_retention_ms")
164
+
165
+ @log_cleaner_delete_retention_ms.setter
166
+ def log_cleaner_delete_retention_ms(self, value: Optional[pulumi.Input[int]]):
167
+ pulumi.set(self, "log_cleaner_delete_retention_ms", value)
168
+
169
+ @property
170
+ @pulumi.getter(name="logCleanerMinCompactionLagMs")
171
+ def log_cleaner_min_compaction_lag_ms(self) -> Optional[pulumi.Input[str]]:
172
+ """
173
+ The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
174
+ """
175
+ return pulumi.get(self, "log_cleaner_min_compaction_lag_ms")
176
+
177
+ @log_cleaner_min_compaction_lag_ms.setter
178
+ def log_cleaner_min_compaction_lag_ms(self, value: Optional[pulumi.Input[str]]):
179
+ pulumi.set(self, "log_cleaner_min_compaction_lag_ms", value)
180
+
181
+ @property
182
+ @pulumi.getter(name="logFlushIntervalMs")
183
+ def log_flush_interval_ms(self) -> Optional[pulumi.Input[str]]:
184
+ """
185
+ The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used.
186
+ """
187
+ return pulumi.get(self, "log_flush_interval_ms")
188
+
189
+ @log_flush_interval_ms.setter
190
+ def log_flush_interval_ms(self, value: Optional[pulumi.Input[str]]):
191
+ pulumi.set(self, "log_flush_interval_ms", value)
192
+
193
+ @property
194
+ @pulumi.getter(name="logIndexIntervalBytes")
195
+ def log_index_interval_bytes(self) -> Optional[pulumi.Input[int]]:
196
+ """
197
+ The interval with which Kafka adds an entry to the offset index.
198
+ """
199
+ return pulumi.get(self, "log_index_interval_bytes")
200
+
201
+ @log_index_interval_bytes.setter
202
+ def log_index_interval_bytes(self, value: Optional[pulumi.Input[int]]):
203
+ pulumi.set(self, "log_index_interval_bytes", value)
204
+
205
+ @property
206
+ @pulumi.getter(name="logMessageDownconversionEnable")
207
+ def log_message_downconversion_enable(self) -> Optional[pulumi.Input[bool]]:
208
+ """
209
+ This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
210
+ """
211
+ return pulumi.get(self, "log_message_downconversion_enable")
212
+
213
+ @log_message_downconversion_enable.setter
214
+ def log_message_downconversion_enable(self, value: Optional[pulumi.Input[bool]]):
215
+ pulumi.set(self, "log_message_downconversion_enable", value)
216
+
217
+ @property
218
+ @pulumi.getter(name="logMessageTimestampDifferenceMaxMs")
219
+ def log_message_timestamp_difference_max_ms(self) -> Optional[pulumi.Input[str]]:
220
+ """
221
+ The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message.
222
+ """
223
+ return pulumi.get(self, "log_message_timestamp_difference_max_ms")
224
+
225
+ @log_message_timestamp_difference_max_ms.setter
226
+ def log_message_timestamp_difference_max_ms(self, value: Optional[pulumi.Input[str]]):
227
+ pulumi.set(self, "log_message_timestamp_difference_max_ms", value)
228
+
229
+ @property
230
+ @pulumi.getter(name="logPreallocate")
231
+ def log_preallocate(self) -> Optional[pulumi.Input[bool]]:
232
+ """
233
+ Controls whether to preallocate a file when creating a new segment.
234
+ """
235
+ return pulumi.get(self, "log_preallocate")
236
+
237
+ @log_preallocate.setter
238
+ def log_preallocate(self, value: Optional[pulumi.Input[bool]]):
239
+ pulumi.set(self, "log_preallocate", value)
240
+
241
+ @property
242
+ @pulumi.getter(name="logRetentionBytes")
243
+ def log_retention_bytes(self) -> Optional[pulumi.Input[str]]:
244
+ """
245
+ The maximum size of the log before deleting messages.
246
+ """
247
+ return pulumi.get(self, "log_retention_bytes")
248
+
249
+ @log_retention_bytes.setter
250
+ def log_retention_bytes(self, value: Optional[pulumi.Input[str]]):
251
+ pulumi.set(self, "log_retention_bytes", value)
252
+
253
+ @property
254
+ @pulumi.getter(name="logRetentionHours")
255
+ def log_retention_hours(self) -> Optional[pulumi.Input[int]]:
256
+ """
257
+ The number of hours to keep a log file before deleting it.
258
+ """
259
+ return pulumi.get(self, "log_retention_hours")
260
+
261
+ @log_retention_hours.setter
262
+ def log_retention_hours(self, value: Optional[pulumi.Input[int]]):
263
+ pulumi.set(self, "log_retention_hours", value)
264
+
265
+ @property
266
+ @pulumi.getter(name="logRetentionMs")
267
+ def log_retention_ms(self) -> Optional[pulumi.Input[str]]:
268
+ """
269
+ The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
270
+ """
271
+ return pulumi.get(self, "log_retention_ms")
272
+
273
+ @log_retention_ms.setter
274
+ def log_retention_ms(self, value: Optional[pulumi.Input[str]]):
275
+ pulumi.set(self, "log_retention_ms", value)
276
+
277
+ @property
278
+ @pulumi.getter(name="logRollJitterMs")
279
+ def log_roll_jitter_ms(self) -> Optional[pulumi.Input[str]]:
280
+ """
281
+ The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used.
282
+ """
283
+ return pulumi.get(self, "log_roll_jitter_ms")
284
+
285
+ @log_roll_jitter_ms.setter
286
+ def log_roll_jitter_ms(self, value: Optional[pulumi.Input[str]]):
287
+ pulumi.set(self, "log_roll_jitter_ms", value)
288
+
289
+ @property
290
+ @pulumi.getter(name="logSegmentDeleteDelayMs")
291
+ def log_segment_delete_delay_ms(self) -> Optional[pulumi.Input[int]]:
292
+ """
293
+ The amount of time to wait before deleting a file from the filesystem.
294
+ """
295
+ return pulumi.get(self, "log_segment_delete_delay_ms")
296
+
297
+ @log_segment_delete_delay_ms.setter
298
+ def log_segment_delete_delay_ms(self, value: Optional[pulumi.Input[int]]):
299
+ pulumi.set(self, "log_segment_delete_delay_ms", value)
300
+
301
+ @property
302
+ @pulumi.getter(name="messageMaxBytes")
303
+ def message_max_bytes(self) -> Optional[pulumi.Input[int]]:
304
+ """
305
+ The maximum size of message that the server can receive.
306
+ """
307
+ return pulumi.get(self, "message_max_bytes")
308
+
309
+ @message_max_bytes.setter
310
+ def message_max_bytes(self, value: Optional[pulumi.Input[int]]):
311
+ pulumi.set(self, "message_max_bytes", value)
312
+
313
+
314
+ @pulumi.input_type
315
+ class _DatabaseKafkaConfigState:
316
+ def __init__(__self__, *,
317
+ auto_create_topics_enable: Optional[pulumi.Input[bool]] = None,
318
+ cluster_id: Optional[pulumi.Input[str]] = None,
319
+ group_initial_rebalance_delay_ms: Optional[pulumi.Input[int]] = None,
320
+ group_max_session_timeout_ms: Optional[pulumi.Input[int]] = None,
321
+ group_min_session_timeout_ms: Optional[pulumi.Input[int]] = None,
322
+ log_cleaner_delete_retention_ms: Optional[pulumi.Input[int]] = None,
323
+ log_cleaner_min_compaction_lag_ms: Optional[pulumi.Input[str]] = None,
324
+ log_flush_interval_ms: Optional[pulumi.Input[str]] = None,
325
+ log_index_interval_bytes: Optional[pulumi.Input[int]] = None,
326
+ log_message_downconversion_enable: Optional[pulumi.Input[bool]] = None,
327
+ log_message_timestamp_difference_max_ms: Optional[pulumi.Input[str]] = None,
328
+ log_preallocate: Optional[pulumi.Input[bool]] = None,
329
+ log_retention_bytes: Optional[pulumi.Input[str]] = None,
330
+ log_retention_hours: Optional[pulumi.Input[int]] = None,
331
+ log_retention_ms: Optional[pulumi.Input[str]] = None,
332
+ log_roll_jitter_ms: Optional[pulumi.Input[str]] = None,
333
+ log_segment_delete_delay_ms: Optional[pulumi.Input[int]] = None,
334
+ message_max_bytes: Optional[pulumi.Input[int]] = None):
335
+ """
336
+ Input properties used for looking up and filtering DatabaseKafkaConfig resources.
337
+ :param pulumi.Input[bool] auto_create_topics_enable: Enable auto creation of topics.
338
+ :param pulumi.Input[str] cluster_id: The ID of the target Kafka cluster.
339
+ :param pulumi.Input[int] group_initial_rebalance_delay_ms: The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
340
+ :param pulumi.Input[int] group_max_session_timeout_ms: The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
341
+ :param pulumi.Input[int] group_min_session_timeout_ms: The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
342
+ :param pulumi.Input[int] log_cleaner_delete_retention_ms: How long are delete records retained?
343
+ :param pulumi.Input[str] log_cleaner_min_compaction_lag_ms: The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
344
+ :param pulumi.Input[str] log_flush_interval_ms: The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used.
345
+ :param pulumi.Input[int] log_index_interval_bytes: The interval with which Kafka adds an entry to the offset index.
346
+ :param pulumi.Input[bool] log_message_downconversion_enable: This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
347
+ :param pulumi.Input[str] log_message_timestamp_difference_max_ms: The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message.
348
+ :param pulumi.Input[bool] log_preallocate: Controls whether to preallocate a file when creating a new segment.
349
+ :param pulumi.Input[str] log_retention_bytes: The maximum size of the log before deleting messages.
350
+ :param pulumi.Input[int] log_retention_hours: The number of hours to keep a log file before deleting it.
351
+ :param pulumi.Input[str] log_retention_ms: The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
352
+ :param pulumi.Input[str] log_roll_jitter_ms: The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used.
353
+ :param pulumi.Input[int] log_segment_delete_delay_ms: The amount of time to wait before deleting a file from the filesystem.
354
+ :param pulumi.Input[int] message_max_bytes: The maximum size of message that the server can receive.
355
+ """
356
+ if auto_create_topics_enable is not None:
357
+ pulumi.set(__self__, "auto_create_topics_enable", auto_create_topics_enable)
358
+ if cluster_id is not None:
359
+ pulumi.set(__self__, "cluster_id", cluster_id)
360
+ if group_initial_rebalance_delay_ms is not None:
361
+ pulumi.set(__self__, "group_initial_rebalance_delay_ms", group_initial_rebalance_delay_ms)
362
+ if group_max_session_timeout_ms is not None:
363
+ pulumi.set(__self__, "group_max_session_timeout_ms", group_max_session_timeout_ms)
364
+ if group_min_session_timeout_ms is not None:
365
+ pulumi.set(__self__, "group_min_session_timeout_ms", group_min_session_timeout_ms)
366
+ if log_cleaner_delete_retention_ms is not None:
367
+ pulumi.set(__self__, "log_cleaner_delete_retention_ms", log_cleaner_delete_retention_ms)
368
+ if log_cleaner_min_compaction_lag_ms is not None:
369
+ pulumi.set(__self__, "log_cleaner_min_compaction_lag_ms", log_cleaner_min_compaction_lag_ms)
370
+ if log_flush_interval_ms is not None:
371
+ pulumi.set(__self__, "log_flush_interval_ms", log_flush_interval_ms)
372
+ if log_index_interval_bytes is not None:
373
+ pulumi.set(__self__, "log_index_interval_bytes", log_index_interval_bytes)
374
+ if log_message_downconversion_enable is not None:
375
+ pulumi.set(__self__, "log_message_downconversion_enable", log_message_downconversion_enable)
376
+ if log_message_timestamp_difference_max_ms is not None:
377
+ pulumi.set(__self__, "log_message_timestamp_difference_max_ms", log_message_timestamp_difference_max_ms)
378
+ if log_preallocate is not None:
379
+ pulumi.set(__self__, "log_preallocate", log_preallocate)
380
+ if log_retention_bytes is not None:
381
+ pulumi.set(__self__, "log_retention_bytes", log_retention_bytes)
382
+ if log_retention_hours is not None:
383
+ pulumi.set(__self__, "log_retention_hours", log_retention_hours)
384
+ if log_retention_ms is not None:
385
+ pulumi.set(__self__, "log_retention_ms", log_retention_ms)
386
+ if log_roll_jitter_ms is not None:
387
+ pulumi.set(__self__, "log_roll_jitter_ms", log_roll_jitter_ms)
388
+ if log_segment_delete_delay_ms is not None:
389
+ pulumi.set(__self__, "log_segment_delete_delay_ms", log_segment_delete_delay_ms)
390
+ if message_max_bytes is not None:
391
+ pulumi.set(__self__, "message_max_bytes", message_max_bytes)
392
+
393
+ @property
394
+ @pulumi.getter(name="autoCreateTopicsEnable")
395
+ def auto_create_topics_enable(self) -> Optional[pulumi.Input[bool]]:
396
+ """
397
+ Enable auto creation of topics.
398
+ """
399
+ return pulumi.get(self, "auto_create_topics_enable")
400
+
401
+ @auto_create_topics_enable.setter
402
+ def auto_create_topics_enable(self, value: Optional[pulumi.Input[bool]]):
403
+ pulumi.set(self, "auto_create_topics_enable", value)
404
+
405
+ @property
406
+ @pulumi.getter(name="clusterId")
407
+ def cluster_id(self) -> Optional[pulumi.Input[str]]:
408
+ """
409
+ The ID of the target Kafka cluster.
410
+ """
411
+ return pulumi.get(self, "cluster_id")
412
+
413
+ @cluster_id.setter
414
+ def cluster_id(self, value: Optional[pulumi.Input[str]]):
415
+ pulumi.set(self, "cluster_id", value)
416
+
417
+ @property
418
+ @pulumi.getter(name="groupInitialRebalanceDelayMs")
419
+ def group_initial_rebalance_delay_ms(self) -> Optional[pulumi.Input[int]]:
420
+ """
421
+ The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
422
+ """
423
+ return pulumi.get(self, "group_initial_rebalance_delay_ms")
424
+
425
+ @group_initial_rebalance_delay_ms.setter
426
+ def group_initial_rebalance_delay_ms(self, value: Optional[pulumi.Input[int]]):
427
+ pulumi.set(self, "group_initial_rebalance_delay_ms", value)
428
+
429
+ @property
430
+ @pulumi.getter(name="groupMaxSessionTimeoutMs")
431
+ def group_max_session_timeout_ms(self) -> Optional[pulumi.Input[int]]:
432
+ """
433
+ The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
434
+ """
435
+ return pulumi.get(self, "group_max_session_timeout_ms")
436
+
437
+ @group_max_session_timeout_ms.setter
438
+ def group_max_session_timeout_ms(self, value: Optional[pulumi.Input[int]]):
439
+ pulumi.set(self, "group_max_session_timeout_ms", value)
440
+
441
+ @property
442
+ @pulumi.getter(name="groupMinSessionTimeoutMs")
443
+ def group_min_session_timeout_ms(self) -> Optional[pulumi.Input[int]]:
444
+ """
445
+ The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
446
+ """
447
+ return pulumi.get(self, "group_min_session_timeout_ms")
448
+
449
+ @group_min_session_timeout_ms.setter
450
+ def group_min_session_timeout_ms(self, value: Optional[pulumi.Input[int]]):
451
+ pulumi.set(self, "group_min_session_timeout_ms", value)
452
+
453
+ @property
454
+ @pulumi.getter(name="logCleanerDeleteRetentionMs")
455
+ def log_cleaner_delete_retention_ms(self) -> Optional[pulumi.Input[int]]:
456
+ """
457
+ How long are delete records retained?
458
+ """
459
+ return pulumi.get(self, "log_cleaner_delete_retention_ms")
460
+
461
+ @log_cleaner_delete_retention_ms.setter
462
+ def log_cleaner_delete_retention_ms(self, value: Optional[pulumi.Input[int]]):
463
+ pulumi.set(self, "log_cleaner_delete_retention_ms", value)
464
+
465
+ @property
466
+ @pulumi.getter(name="logCleanerMinCompactionLagMs")
467
+ def log_cleaner_min_compaction_lag_ms(self) -> Optional[pulumi.Input[str]]:
468
+ """
469
+ The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
470
+ """
471
+ return pulumi.get(self, "log_cleaner_min_compaction_lag_ms")
472
+
473
+ @log_cleaner_min_compaction_lag_ms.setter
474
+ def log_cleaner_min_compaction_lag_ms(self, value: Optional[pulumi.Input[str]]):
475
+ pulumi.set(self, "log_cleaner_min_compaction_lag_ms", value)
476
+
477
+ @property
478
+ @pulumi.getter(name="logFlushIntervalMs")
479
+ def log_flush_interval_ms(self) -> Optional[pulumi.Input[str]]:
480
+ """
481
+ The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used.
482
+ """
483
+ return pulumi.get(self, "log_flush_interval_ms")
484
+
485
+ @log_flush_interval_ms.setter
486
+ def log_flush_interval_ms(self, value: Optional[pulumi.Input[str]]):
487
+ pulumi.set(self, "log_flush_interval_ms", value)
488
+
489
+ @property
490
+ @pulumi.getter(name="logIndexIntervalBytes")
491
+ def log_index_interval_bytes(self) -> Optional[pulumi.Input[int]]:
492
+ """
493
+ The interval with which Kafka adds an entry to the offset index.
494
+ """
495
+ return pulumi.get(self, "log_index_interval_bytes")
496
+
497
+ @log_index_interval_bytes.setter
498
+ def log_index_interval_bytes(self, value: Optional[pulumi.Input[int]]):
499
+ pulumi.set(self, "log_index_interval_bytes", value)
500
+
501
+ @property
502
+ @pulumi.getter(name="logMessageDownconversionEnable")
503
+ def log_message_downconversion_enable(self) -> Optional[pulumi.Input[bool]]:
504
+ """
505
+ This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
506
+ """
507
+ return pulumi.get(self, "log_message_downconversion_enable")
508
+
509
+ @log_message_downconversion_enable.setter
510
+ def log_message_downconversion_enable(self, value: Optional[pulumi.Input[bool]]):
511
+ pulumi.set(self, "log_message_downconversion_enable", value)
512
+
513
+ @property
514
+ @pulumi.getter(name="logMessageTimestampDifferenceMaxMs")
515
+ def log_message_timestamp_difference_max_ms(self) -> Optional[pulumi.Input[str]]:
516
+ """
517
+ The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message.
518
+ """
519
+ return pulumi.get(self, "log_message_timestamp_difference_max_ms")
520
+
521
+ @log_message_timestamp_difference_max_ms.setter
522
+ def log_message_timestamp_difference_max_ms(self, value: Optional[pulumi.Input[str]]):
523
+ pulumi.set(self, "log_message_timestamp_difference_max_ms", value)
524
+
525
+ @property
526
+ @pulumi.getter(name="logPreallocate")
527
+ def log_preallocate(self) -> Optional[pulumi.Input[bool]]:
528
+ """
529
+ Controls whether to preallocate a file when creating a new segment.
530
+ """
531
+ return pulumi.get(self, "log_preallocate")
532
+
533
+ @log_preallocate.setter
534
+ def log_preallocate(self, value: Optional[pulumi.Input[bool]]):
535
+ pulumi.set(self, "log_preallocate", value)
536
+
537
+ @property
538
+ @pulumi.getter(name="logRetentionBytes")
539
+ def log_retention_bytes(self) -> Optional[pulumi.Input[str]]:
540
+ """
541
+ The maximum size of the log before deleting messages.
542
+ """
543
+ return pulumi.get(self, "log_retention_bytes")
544
+
545
+ @log_retention_bytes.setter
546
+ def log_retention_bytes(self, value: Optional[pulumi.Input[str]]):
547
+ pulumi.set(self, "log_retention_bytes", value)
548
+
549
+ @property
550
+ @pulumi.getter(name="logRetentionHours")
551
+ def log_retention_hours(self) -> Optional[pulumi.Input[int]]:
552
+ """
553
+ The number of hours to keep a log file before deleting it.
554
+ """
555
+ return pulumi.get(self, "log_retention_hours")
556
+
557
+ @log_retention_hours.setter
558
+ def log_retention_hours(self, value: Optional[pulumi.Input[int]]):
559
+ pulumi.set(self, "log_retention_hours", value)
560
+
561
+ @property
562
+ @pulumi.getter(name="logRetentionMs")
563
+ def log_retention_ms(self) -> Optional[pulumi.Input[str]]:
564
+ """
565
+ The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
566
+ """
567
+ return pulumi.get(self, "log_retention_ms")
568
+
569
+ @log_retention_ms.setter
570
+ def log_retention_ms(self, value: Optional[pulumi.Input[str]]):
571
+ pulumi.set(self, "log_retention_ms", value)
572
+
573
+ @property
574
+ @pulumi.getter(name="logRollJitterMs")
575
+ def log_roll_jitter_ms(self) -> Optional[pulumi.Input[str]]:
576
+ """
577
+ The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used.
578
+ """
579
+ return pulumi.get(self, "log_roll_jitter_ms")
580
+
581
+ @log_roll_jitter_ms.setter
582
+ def log_roll_jitter_ms(self, value: Optional[pulumi.Input[str]]):
583
+ pulumi.set(self, "log_roll_jitter_ms", value)
584
+
585
+ @property
586
+ @pulumi.getter(name="logSegmentDeleteDelayMs")
587
+ def log_segment_delete_delay_ms(self) -> Optional[pulumi.Input[int]]:
588
+ """
589
+ The amount of time to wait before deleting a file from the filesystem.
590
+ """
591
+ return pulumi.get(self, "log_segment_delete_delay_ms")
592
+
593
+ @log_segment_delete_delay_ms.setter
594
+ def log_segment_delete_delay_ms(self, value: Optional[pulumi.Input[int]]):
595
+ pulumi.set(self, "log_segment_delete_delay_ms", value)
596
+
597
+ @property
598
+ @pulumi.getter(name="messageMaxBytes")
599
+ def message_max_bytes(self) -> Optional[pulumi.Input[int]]:
600
+ """
601
+ The maximum size of message that the server can receive.
602
+ """
603
+ return pulumi.get(self, "message_max_bytes")
604
+
605
+ @message_max_bytes.setter
606
+ def message_max_bytes(self, value: Optional[pulumi.Input[int]]):
607
+ pulumi.set(self, "message_max_bytes", value)
608
+
609
+
610
+ class DatabaseKafkaConfig(pulumi.CustomResource):
611
+ @overload
612
+ def __init__(__self__,
613
+ resource_name: str,
614
+ opts: Optional[pulumi.ResourceOptions] = None,
615
+ auto_create_topics_enable: Optional[pulumi.Input[bool]] = None,
616
+ cluster_id: Optional[pulumi.Input[str]] = None,
617
+ group_initial_rebalance_delay_ms: Optional[pulumi.Input[int]] = None,
618
+ group_max_session_timeout_ms: Optional[pulumi.Input[int]] = None,
619
+ group_min_session_timeout_ms: Optional[pulumi.Input[int]] = None,
620
+ log_cleaner_delete_retention_ms: Optional[pulumi.Input[int]] = None,
621
+ log_cleaner_min_compaction_lag_ms: Optional[pulumi.Input[str]] = None,
622
+ log_flush_interval_ms: Optional[pulumi.Input[str]] = None,
623
+ log_index_interval_bytes: Optional[pulumi.Input[int]] = None,
624
+ log_message_downconversion_enable: Optional[pulumi.Input[bool]] = None,
625
+ log_message_timestamp_difference_max_ms: Optional[pulumi.Input[str]] = None,
626
+ log_preallocate: Optional[pulumi.Input[bool]] = None,
627
+ log_retention_bytes: Optional[pulumi.Input[str]] = None,
628
+ log_retention_hours: Optional[pulumi.Input[int]] = None,
629
+ log_retention_ms: Optional[pulumi.Input[str]] = None,
630
+ log_roll_jitter_ms: Optional[pulumi.Input[str]] = None,
631
+ log_segment_delete_delay_ms: Optional[pulumi.Input[int]] = None,
632
+ message_max_bytes: Optional[pulumi.Input[int]] = None,
633
+ __props__=None):
634
+ """
635
+ Provides a virtual resource that can be used to change advanced configuration
636
+ options for a DigitalOcean managed Kafka database cluster.
637
+
638
+ > **Note** Kafka configurations are only removed from state when destroyed. The remote configuration is not unset.
639
+
640
+ ## Example Usage
641
+
642
+ ```python
643
+ import pulumi
644
+ import pulumi_digitalocean as digitalocean
645
+
646
+ example_database_cluster = digitalocean.DatabaseCluster("example",
647
+ name="example-kafka-cluster",
648
+ engine="kafka",
649
+ version="3.7",
650
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
651
+ region=digitalocean.Region.NYC3,
652
+ node_count=3)
653
+ example = digitalocean.DatabaseKafkaConfig("example",
654
+ cluster_id=example_database_cluster.id,
655
+ group_initial_rebalance_delay_ms=3000,
656
+ group_min_session_timeout_ms=6000,
657
+ group_max_session_timeout_ms=1800000,
658
+ message_max_bytes=1048588,
659
+ log_cleaner_delete_retention_ms=86400000,
660
+ log_cleaner_min_compaction_lag_ms="0",
661
+ log_flush_interval_ms="9223372036854775807",
662
+ log_index_interval_bytes=4096,
663
+ log_message_downconversion_enable=True,
664
+ log_message_timestamp_difference_max_ms="9223372036854775807",
665
+ log_preallocate=False,
666
+ log_retention_bytes="-1",
667
+ log_retention_hours=168,
668
+ log_retention_ms="604800000",
669
+ log_roll_jitter_ms="0",
670
+ log_segment_delete_delay_ms=60000,
671
+ auto_create_topics_enable=True)
672
+ ```
673
+
674
+ ## Import
675
+
676
+ A Kafka database cluster's configuration can be imported using the `id` the parent cluster, e.g.
677
+
678
+ ```sh
679
+ $ pulumi import digitalocean:index/databaseKafkaConfig:DatabaseKafkaConfig example 4b62829a-9c42-465b-aaa3-84051048e712
680
+ ```
681
+
682
+ :param str resource_name: The name of the resource.
683
+ :param pulumi.ResourceOptions opts: Options for the resource.
684
+ :param pulumi.Input[bool] auto_create_topics_enable: Enable auto creation of topics.
685
+ :param pulumi.Input[str] cluster_id: The ID of the target Kafka cluster.
686
+ :param pulumi.Input[int] group_initial_rebalance_delay_ms: The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
687
+ :param pulumi.Input[int] group_max_session_timeout_ms: The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
688
+ :param pulumi.Input[int] group_min_session_timeout_ms: The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
689
+ :param pulumi.Input[int] log_cleaner_delete_retention_ms: How long are delete records retained?
690
+ :param pulumi.Input[str] log_cleaner_min_compaction_lag_ms: The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
691
+ :param pulumi.Input[str] log_flush_interval_ms: The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used.
692
+ :param pulumi.Input[int] log_index_interval_bytes: The interval with which Kafka adds an entry to the offset index.
693
+ :param pulumi.Input[bool] log_message_downconversion_enable: This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
694
+ :param pulumi.Input[str] log_message_timestamp_difference_max_ms: The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message.
695
+ :param pulumi.Input[bool] log_preallocate: Controls whether to preallocate a file when creating a new segment.
696
+ :param pulumi.Input[str] log_retention_bytes: The maximum size of the log before deleting messages.
697
+ :param pulumi.Input[int] log_retention_hours: The number of hours to keep a log file before deleting it.
698
+ :param pulumi.Input[str] log_retention_ms: The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
699
+ :param pulumi.Input[str] log_roll_jitter_ms: The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used.
700
+ :param pulumi.Input[int] log_segment_delete_delay_ms: The amount of time to wait before deleting a file from the filesystem.
701
+ :param pulumi.Input[int] message_max_bytes: The maximum size of message that the server can receive.
702
+ """
703
+ ...
704
+ @overload
705
+ def __init__(__self__,
706
+ resource_name: str,
707
+ args: DatabaseKafkaConfigArgs,
708
+ opts: Optional[pulumi.ResourceOptions] = None):
709
+ """
710
+ Provides a virtual resource that can be used to change advanced configuration
711
+ options for a DigitalOcean managed Kafka database cluster.
712
+
713
+ > **Note** Kafka configurations are only removed from state when destroyed. The remote configuration is not unset.
714
+
715
+ ## Example Usage
716
+
717
+ ```python
718
+ import pulumi
719
+ import pulumi_digitalocean as digitalocean
720
+
721
+ example_database_cluster = digitalocean.DatabaseCluster("example",
722
+ name="example-kafka-cluster",
723
+ engine="kafka",
724
+ version="3.7",
725
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
726
+ region=digitalocean.Region.NYC3,
727
+ node_count=3)
728
+ example = digitalocean.DatabaseKafkaConfig("example",
729
+ cluster_id=example_database_cluster.id,
730
+ group_initial_rebalance_delay_ms=3000,
731
+ group_min_session_timeout_ms=6000,
732
+ group_max_session_timeout_ms=1800000,
733
+ message_max_bytes=1048588,
734
+ log_cleaner_delete_retention_ms=86400000,
735
+ log_cleaner_min_compaction_lag_ms="0",
736
+ log_flush_interval_ms="9223372036854775807",
737
+ log_index_interval_bytes=4096,
738
+ log_message_downconversion_enable=True,
739
+ log_message_timestamp_difference_max_ms="9223372036854775807",
740
+ log_preallocate=False,
741
+ log_retention_bytes="-1",
742
+ log_retention_hours=168,
743
+ log_retention_ms="604800000",
744
+ log_roll_jitter_ms="0",
745
+ log_segment_delete_delay_ms=60000,
746
+ auto_create_topics_enable=True)
747
+ ```
748
+
749
+ ## Import
750
+
751
+ A Kafka database cluster's configuration can be imported using the `id` the parent cluster, e.g.
752
+
753
+ ```sh
754
+ $ pulumi import digitalocean:index/databaseKafkaConfig:DatabaseKafkaConfig example 4b62829a-9c42-465b-aaa3-84051048e712
755
+ ```
756
+
757
+ :param str resource_name: The name of the resource.
758
+ :param DatabaseKafkaConfigArgs args: The arguments to use to populate this resource's properties.
759
+ :param pulumi.ResourceOptions opts: Options for the resource.
760
+ """
761
+ ...
762
+ def __init__(__self__, resource_name: str, *args, **kwargs):
763
+ resource_args, opts = _utilities.get_resource_args_opts(DatabaseKafkaConfigArgs, pulumi.ResourceOptions, *args, **kwargs)
764
+ if resource_args is not None:
765
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
766
+ else:
767
+ __self__._internal_init(resource_name, *args, **kwargs)
768
+
769
+ def _internal_init(__self__,
770
+ resource_name: str,
771
+ opts: Optional[pulumi.ResourceOptions] = None,
772
+ auto_create_topics_enable: Optional[pulumi.Input[bool]] = None,
773
+ cluster_id: Optional[pulumi.Input[str]] = None,
774
+ group_initial_rebalance_delay_ms: Optional[pulumi.Input[int]] = None,
775
+ group_max_session_timeout_ms: Optional[pulumi.Input[int]] = None,
776
+ group_min_session_timeout_ms: Optional[pulumi.Input[int]] = None,
777
+ log_cleaner_delete_retention_ms: Optional[pulumi.Input[int]] = None,
778
+ log_cleaner_min_compaction_lag_ms: Optional[pulumi.Input[str]] = None,
779
+ log_flush_interval_ms: Optional[pulumi.Input[str]] = None,
780
+ log_index_interval_bytes: Optional[pulumi.Input[int]] = None,
781
+ log_message_downconversion_enable: Optional[pulumi.Input[bool]] = None,
782
+ log_message_timestamp_difference_max_ms: Optional[pulumi.Input[str]] = None,
783
+ log_preallocate: Optional[pulumi.Input[bool]] = None,
784
+ log_retention_bytes: Optional[pulumi.Input[str]] = None,
785
+ log_retention_hours: Optional[pulumi.Input[int]] = None,
786
+ log_retention_ms: Optional[pulumi.Input[str]] = None,
787
+ log_roll_jitter_ms: Optional[pulumi.Input[str]] = None,
788
+ log_segment_delete_delay_ms: Optional[pulumi.Input[int]] = None,
789
+ message_max_bytes: Optional[pulumi.Input[int]] = None,
790
+ __props__=None):
791
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
792
+ if not isinstance(opts, pulumi.ResourceOptions):
793
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
794
+ if opts.id is None:
795
+ if __props__ is not None:
796
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
797
+ __props__ = DatabaseKafkaConfigArgs.__new__(DatabaseKafkaConfigArgs)
798
+
799
+ __props__.__dict__["auto_create_topics_enable"] = auto_create_topics_enable
800
+ if cluster_id is None and not opts.urn:
801
+ raise TypeError("Missing required property 'cluster_id'")
802
+ __props__.__dict__["cluster_id"] = cluster_id
803
+ __props__.__dict__["group_initial_rebalance_delay_ms"] = group_initial_rebalance_delay_ms
804
+ __props__.__dict__["group_max_session_timeout_ms"] = group_max_session_timeout_ms
805
+ __props__.__dict__["group_min_session_timeout_ms"] = group_min_session_timeout_ms
806
+ __props__.__dict__["log_cleaner_delete_retention_ms"] = log_cleaner_delete_retention_ms
807
+ __props__.__dict__["log_cleaner_min_compaction_lag_ms"] = log_cleaner_min_compaction_lag_ms
808
+ __props__.__dict__["log_flush_interval_ms"] = log_flush_interval_ms
809
+ __props__.__dict__["log_index_interval_bytes"] = log_index_interval_bytes
810
+ __props__.__dict__["log_message_downconversion_enable"] = log_message_downconversion_enable
811
+ __props__.__dict__["log_message_timestamp_difference_max_ms"] = log_message_timestamp_difference_max_ms
812
+ __props__.__dict__["log_preallocate"] = log_preallocate
813
+ __props__.__dict__["log_retention_bytes"] = log_retention_bytes
814
+ __props__.__dict__["log_retention_hours"] = log_retention_hours
815
+ __props__.__dict__["log_retention_ms"] = log_retention_ms
816
+ __props__.__dict__["log_roll_jitter_ms"] = log_roll_jitter_ms
817
+ __props__.__dict__["log_segment_delete_delay_ms"] = log_segment_delete_delay_ms
818
+ __props__.__dict__["message_max_bytes"] = message_max_bytes
819
+ super(DatabaseKafkaConfig, __self__).__init__(
820
+ 'digitalocean:index/databaseKafkaConfig:DatabaseKafkaConfig',
821
+ resource_name,
822
+ __props__,
823
+ opts)
824
+
825
+ @staticmethod
826
+ def get(resource_name: str,
827
+ id: pulumi.Input[str],
828
+ opts: Optional[pulumi.ResourceOptions] = None,
829
+ auto_create_topics_enable: Optional[pulumi.Input[bool]] = None,
830
+ cluster_id: Optional[pulumi.Input[str]] = None,
831
+ group_initial_rebalance_delay_ms: Optional[pulumi.Input[int]] = None,
832
+ group_max_session_timeout_ms: Optional[pulumi.Input[int]] = None,
833
+ group_min_session_timeout_ms: Optional[pulumi.Input[int]] = None,
834
+ log_cleaner_delete_retention_ms: Optional[pulumi.Input[int]] = None,
835
+ log_cleaner_min_compaction_lag_ms: Optional[pulumi.Input[str]] = None,
836
+ log_flush_interval_ms: Optional[pulumi.Input[str]] = None,
837
+ log_index_interval_bytes: Optional[pulumi.Input[int]] = None,
838
+ log_message_downconversion_enable: Optional[pulumi.Input[bool]] = None,
839
+ log_message_timestamp_difference_max_ms: Optional[pulumi.Input[str]] = None,
840
+ log_preallocate: Optional[pulumi.Input[bool]] = None,
841
+ log_retention_bytes: Optional[pulumi.Input[str]] = None,
842
+ log_retention_hours: Optional[pulumi.Input[int]] = None,
843
+ log_retention_ms: Optional[pulumi.Input[str]] = None,
844
+ log_roll_jitter_ms: Optional[pulumi.Input[str]] = None,
845
+ log_segment_delete_delay_ms: Optional[pulumi.Input[int]] = None,
846
+ message_max_bytes: Optional[pulumi.Input[int]] = None) -> 'DatabaseKafkaConfig':
847
+ """
848
+ Get an existing DatabaseKafkaConfig resource's state with the given name, id, and optional extra
849
+ properties used to qualify the lookup.
850
+
851
+ :param str resource_name: The unique name of the resulting resource.
852
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
853
+ :param pulumi.ResourceOptions opts: Options for the resource.
854
+ :param pulumi.Input[bool] auto_create_topics_enable: Enable auto creation of topics.
855
+ :param pulumi.Input[str] cluster_id: The ID of the target Kafka cluster.
856
+ :param pulumi.Input[int] group_initial_rebalance_delay_ms: The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
857
+ :param pulumi.Input[int] group_max_session_timeout_ms: The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
858
+ :param pulumi.Input[int] group_min_session_timeout_ms: The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
859
+ :param pulumi.Input[int] log_cleaner_delete_retention_ms: How long are delete records retained?
860
+ :param pulumi.Input[str] log_cleaner_min_compaction_lag_ms: The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
861
+ :param pulumi.Input[str] log_flush_interval_ms: The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used.
862
+ :param pulumi.Input[int] log_index_interval_bytes: The interval with which Kafka adds an entry to the offset index.
863
+ :param pulumi.Input[bool] log_message_downconversion_enable: This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
864
+ :param pulumi.Input[str] log_message_timestamp_difference_max_ms: The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message.
865
+ :param pulumi.Input[bool] log_preallocate: Controls whether to preallocate a file when creating a new segment.
866
+ :param pulumi.Input[str] log_retention_bytes: The maximum size of the log before deleting messages.
867
+ :param pulumi.Input[int] log_retention_hours: The number of hours to keep a log file before deleting it.
868
+ :param pulumi.Input[str] log_retention_ms: The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
869
+ :param pulumi.Input[str] log_roll_jitter_ms: The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used.
870
+ :param pulumi.Input[int] log_segment_delete_delay_ms: The amount of time to wait before deleting a file from the filesystem.
871
+ :param pulumi.Input[int] message_max_bytes: The maximum size of message that the server can receive.
872
+ """
873
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
874
+
875
+ __props__ = _DatabaseKafkaConfigState.__new__(_DatabaseKafkaConfigState)
876
+
877
+ __props__.__dict__["auto_create_topics_enable"] = auto_create_topics_enable
878
+ __props__.__dict__["cluster_id"] = cluster_id
879
+ __props__.__dict__["group_initial_rebalance_delay_ms"] = group_initial_rebalance_delay_ms
880
+ __props__.__dict__["group_max_session_timeout_ms"] = group_max_session_timeout_ms
881
+ __props__.__dict__["group_min_session_timeout_ms"] = group_min_session_timeout_ms
882
+ __props__.__dict__["log_cleaner_delete_retention_ms"] = log_cleaner_delete_retention_ms
883
+ __props__.__dict__["log_cleaner_min_compaction_lag_ms"] = log_cleaner_min_compaction_lag_ms
884
+ __props__.__dict__["log_flush_interval_ms"] = log_flush_interval_ms
885
+ __props__.__dict__["log_index_interval_bytes"] = log_index_interval_bytes
886
+ __props__.__dict__["log_message_downconversion_enable"] = log_message_downconversion_enable
887
+ __props__.__dict__["log_message_timestamp_difference_max_ms"] = log_message_timestamp_difference_max_ms
888
+ __props__.__dict__["log_preallocate"] = log_preallocate
889
+ __props__.__dict__["log_retention_bytes"] = log_retention_bytes
890
+ __props__.__dict__["log_retention_hours"] = log_retention_hours
891
+ __props__.__dict__["log_retention_ms"] = log_retention_ms
892
+ __props__.__dict__["log_roll_jitter_ms"] = log_roll_jitter_ms
893
+ __props__.__dict__["log_segment_delete_delay_ms"] = log_segment_delete_delay_ms
894
+ __props__.__dict__["message_max_bytes"] = message_max_bytes
895
+ return DatabaseKafkaConfig(resource_name, opts=opts, __props__=__props__)
896
+
897
+ @property
898
+ @pulumi.getter(name="autoCreateTopicsEnable")
899
+ def auto_create_topics_enable(self) -> pulumi.Output[bool]:
900
+ """
901
+ Enable auto creation of topics.
902
+ """
903
+ return pulumi.get(self, "auto_create_topics_enable")
904
+
905
+ @property
906
+ @pulumi.getter(name="clusterId")
907
+ def cluster_id(self) -> pulumi.Output[str]:
908
+ """
909
+ The ID of the target Kafka cluster.
910
+ """
911
+ return pulumi.get(self, "cluster_id")
912
+
913
+ @property
914
+ @pulumi.getter(name="groupInitialRebalanceDelayMs")
915
+ def group_initial_rebalance_delay_ms(self) -> pulumi.Output[int]:
916
+ """
917
+ The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
918
+ """
919
+ return pulumi.get(self, "group_initial_rebalance_delay_ms")
920
+
921
+ @property
922
+ @pulumi.getter(name="groupMaxSessionTimeoutMs")
923
+ def group_max_session_timeout_ms(self) -> pulumi.Output[int]:
924
+ """
925
+ The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
926
+ """
927
+ return pulumi.get(self, "group_max_session_timeout_ms")
928
+
929
+ @property
930
+ @pulumi.getter(name="groupMinSessionTimeoutMs")
931
+ def group_min_session_timeout_ms(self) -> pulumi.Output[int]:
932
+ """
933
+ The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
934
+ """
935
+ return pulumi.get(self, "group_min_session_timeout_ms")
936
+
937
+ @property
938
+ @pulumi.getter(name="logCleanerDeleteRetentionMs")
939
+ def log_cleaner_delete_retention_ms(self) -> pulumi.Output[int]:
940
+ """
941
+ How long are delete records retained?
942
+ """
943
+ return pulumi.get(self, "log_cleaner_delete_retention_ms")
944
+
945
+ @property
946
+ @pulumi.getter(name="logCleanerMinCompactionLagMs")
947
+ def log_cleaner_min_compaction_lag_ms(self) -> pulumi.Output[str]:
948
+ """
949
+ The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
950
+ """
951
+ return pulumi.get(self, "log_cleaner_min_compaction_lag_ms")
952
+
953
+ @property
954
+ @pulumi.getter(name="logFlushIntervalMs")
955
+ def log_flush_interval_ms(self) -> pulumi.Output[str]:
956
+ """
957
+ The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used.
958
+ """
959
+ return pulumi.get(self, "log_flush_interval_ms")
960
+
961
+ @property
962
+ @pulumi.getter(name="logIndexIntervalBytes")
963
+ def log_index_interval_bytes(self) -> pulumi.Output[int]:
964
+ """
965
+ The interval with which Kafka adds an entry to the offset index.
966
+ """
967
+ return pulumi.get(self, "log_index_interval_bytes")
968
+
969
+ @property
970
+ @pulumi.getter(name="logMessageDownconversionEnable")
971
+ def log_message_downconversion_enable(self) -> pulumi.Output[bool]:
972
+ """
973
+ This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
974
+ """
975
+ return pulumi.get(self, "log_message_downconversion_enable")
976
+
977
+ @property
978
+ @pulumi.getter(name="logMessageTimestampDifferenceMaxMs")
979
+ def log_message_timestamp_difference_max_ms(self) -> pulumi.Output[str]:
980
+ """
981
+ The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message.
982
+ """
983
+ return pulumi.get(self, "log_message_timestamp_difference_max_ms")
984
+
985
+ @property
986
+ @pulumi.getter(name="logPreallocate")
987
+ def log_preallocate(self) -> pulumi.Output[bool]:
988
+ """
989
+ Controls whether to preallocate a file when creating a new segment.
990
+ """
991
+ return pulumi.get(self, "log_preallocate")
992
+
993
+ @property
994
+ @pulumi.getter(name="logRetentionBytes")
995
+ def log_retention_bytes(self) -> pulumi.Output[str]:
996
+ """
997
+ The maximum size of the log before deleting messages.
998
+ """
999
+ return pulumi.get(self, "log_retention_bytes")
1000
+
1001
+ @property
1002
+ @pulumi.getter(name="logRetentionHours")
1003
+ def log_retention_hours(self) -> pulumi.Output[int]:
1004
+ """
1005
+ The number of hours to keep a log file before deleting it.
1006
+ """
1007
+ return pulumi.get(self, "log_retention_hours")
1008
+
1009
+ @property
1010
+ @pulumi.getter(name="logRetentionMs")
1011
+ def log_retention_ms(self) -> pulumi.Output[str]:
1012
+ """
1013
+ The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
1014
+ """
1015
+ return pulumi.get(self, "log_retention_ms")
1016
+
1017
+ @property
1018
+ @pulumi.getter(name="logRollJitterMs")
1019
+ def log_roll_jitter_ms(self) -> pulumi.Output[str]:
1020
+ """
1021
+ The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used.
1022
+ """
1023
+ return pulumi.get(self, "log_roll_jitter_ms")
1024
+
1025
+ @property
1026
+ @pulumi.getter(name="logSegmentDeleteDelayMs")
1027
+ def log_segment_delete_delay_ms(self) -> pulumi.Output[int]:
1028
+ """
1029
+ The amount of time to wait before deleting a file from the filesystem.
1030
+ """
1031
+ return pulumi.get(self, "log_segment_delete_delay_ms")
1032
+
1033
+ @property
1034
+ @pulumi.getter(name="messageMaxBytes")
1035
+ def message_max_bytes(self) -> pulumi.Output[int]:
1036
+ """
1037
+ The maximum size of message that the server can receive.
1038
+ """
1039
+ return pulumi.get(self, "message_max_bytes")
1040
+