pulumi-digitalocean 4.40.0a1739511652__py3-none-any.whl → 4.56.0a1766428645__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.
Files changed (154) hide show
  1. pulumi_digitalocean/__init__.py +224 -1
  2. pulumi_digitalocean/_enums.py +19 -9
  3. pulumi_digitalocean/_inputs.py +17037 -4771
  4. pulumi_digitalocean/_utilities.py +1 -1
  5. pulumi_digitalocean/app.py +238 -88
  6. pulumi_digitalocean/byoip_prefix.py +452 -0
  7. pulumi_digitalocean/cdn.py +106 -105
  8. pulumi_digitalocean/certificate.py +139 -138
  9. pulumi_digitalocean/config/__init__.py +2 -1
  10. pulumi_digitalocean/config/__init__.pyi +2 -2
  11. pulumi_digitalocean/config/vars.py +11 -11
  12. pulumi_digitalocean/container_registries.py +285 -0
  13. pulumi_digitalocean/container_registry.py +90 -89
  14. pulumi_digitalocean/container_registry_docker_credentials.py +84 -83
  15. pulumi_digitalocean/custom_image.py +180 -179
  16. pulumi_digitalocean/database_cluster.py +402 -373
  17. pulumi_digitalocean/database_connection_pool.py +159 -158
  18. pulumi_digitalocean/database_db.py +37 -36
  19. pulumi_digitalocean/database_firewall.py +23 -22
  20. pulumi_digitalocean/database_kafka_config.py +309 -308
  21. pulumi_digitalocean/database_kafka_schema_registry.py +360 -0
  22. pulumi_digitalocean/database_kafka_topic.py +83 -82
  23. pulumi_digitalocean/database_logsink_opensearch.py +680 -0
  24. pulumi_digitalocean/database_logsink_rsyslog.py +842 -0
  25. pulumi_digitalocean/database_mongodb_config.py +105 -104
  26. pulumi_digitalocean/database_mysql_config.py +479 -478
  27. pulumi_digitalocean/database_online_migration.py +460 -0
  28. pulumi_digitalocean/database_opensearch_config.py +666 -665
  29. pulumi_digitalocean/database_postgresql_config.py +859 -858
  30. pulumi_digitalocean/database_redis_config.py +211 -206
  31. pulumi_digitalocean/database_replica.py +199 -198
  32. pulumi_digitalocean/database_user.py +93 -92
  33. pulumi_digitalocean/database_valkey_config.py +776 -0
  34. pulumi_digitalocean/dns_record.py +184 -183
  35. pulumi_digitalocean/domain.py +55 -54
  36. pulumi_digitalocean/droplet.py +403 -402
  37. pulumi_digitalocean/droplet_autoscale.py +55 -54
  38. pulumi_digitalocean/droplet_snapshot.py +73 -72
  39. pulumi_digitalocean/firewall.py +80 -79
  40. pulumi_digitalocean/floating_ip.py +63 -62
  41. pulumi_digitalocean/floating_ip_assignment.py +37 -36
  42. pulumi_digitalocean/genai_agent.py +1903 -0
  43. pulumi_digitalocean/genai_agent_knowledge_base_attachment.py +198 -0
  44. pulumi_digitalocean/genai_agent_route.py +354 -0
  45. pulumi_digitalocean/genai_function.py +464 -0
  46. pulumi_digitalocean/genai_indexing_job_cancel.py +542 -0
  47. pulumi_digitalocean/genai_knowledge_base.py +627 -0
  48. pulumi_digitalocean/genai_knowledge_base_data_source.py +220 -0
  49. pulumi_digitalocean/genai_openai_api_key.py +386 -0
  50. pulumi_digitalocean/get_account.py +18 -18
  51. pulumi_digitalocean/get_app.py +28 -28
  52. pulumi_digitalocean/get_byoip_prefix.py +214 -0
  53. pulumi_digitalocean/get_byoip_prefix_resources.py +150 -0
  54. pulumi_digitalocean/get_certificate.py +22 -22
  55. pulumi_digitalocean/get_container_registries.py +151 -0
  56. pulumi_digitalocean/get_container_registry.py +22 -22
  57. pulumi_digitalocean/get_database_ca.py +12 -12
  58. pulumi_digitalocean/get_database_cluster.py +76 -62
  59. pulumi_digitalocean/get_database_connection_pool.py +36 -36
  60. pulumi_digitalocean/get_database_metrics_credentials.py +120 -0
  61. pulumi_digitalocean/get_database_replica.py +46 -46
  62. pulumi_digitalocean/get_database_user.py +27 -27
  63. pulumi_digitalocean/get_domain.py +16 -16
  64. pulumi_digitalocean/get_domains.py +7 -7
  65. pulumi_digitalocean/get_droplet.py +72 -72
  66. pulumi_digitalocean/get_droplet_autoscale.py +23 -23
  67. pulumi_digitalocean/get_droplet_snapshot.py +38 -38
  68. pulumi_digitalocean/get_droplets.py +13 -13
  69. pulumi_digitalocean/get_firewall.py +31 -31
  70. pulumi_digitalocean/get_floating_ip.py +16 -16
  71. pulumi_digitalocean/get_genai_agent.py +572 -0
  72. pulumi_digitalocean/get_genai_agent_versions.py +128 -0
  73. pulumi_digitalocean/get_genai_agents.py +128 -0
  74. pulumi_digitalocean/get_genai_agents_by_openai_api_key.py +97 -0
  75. pulumi_digitalocean/get_genai_indexing_job.py +239 -0
  76. pulumi_digitalocean/get_genai_indexing_job_data_sources.py +97 -0
  77. pulumi_digitalocean/get_genai_knowledge_base.py +259 -0
  78. pulumi_digitalocean/get_genai_knowledge_base_data_sources.py +97 -0
  79. pulumi_digitalocean/get_genai_knowledge_base_indexing_jobs.py +108 -0
  80. pulumi_digitalocean/get_genai_knowledge_bases.py +113 -0
  81. pulumi_digitalocean/get_genai_models.py +113 -0
  82. pulumi_digitalocean/get_genai_openai_api_key.py +152 -0
  83. pulumi_digitalocean/get_genai_openai_api_keys.py +113 -0
  84. pulumi_digitalocean/get_genai_regions.py +113 -0
  85. pulumi_digitalocean/get_image.py +50 -50
  86. pulumi_digitalocean/get_images.py +7 -7
  87. pulumi_digitalocean/get_kubernetes_cluster.py +144 -53
  88. pulumi_digitalocean/get_kubernetes_versions.py +14 -14
  89. pulumi_digitalocean/get_load_balancer.py +70 -59
  90. pulumi_digitalocean/get_nfs.py +205 -0
  91. pulumi_digitalocean/get_nfs_snapshot.py +188 -0
  92. pulumi_digitalocean/get_partner_attachment.py +206 -0
  93. pulumi_digitalocean/get_partner_attachment_service_key.py +118 -0
  94. pulumi_digitalocean/get_project.py +32 -32
  95. pulumi_digitalocean/get_projects.py +7 -7
  96. pulumi_digitalocean/get_record.py +32 -32
  97. pulumi_digitalocean/get_records.py +13 -13
  98. pulumi_digitalocean/get_region.py +18 -18
  99. pulumi_digitalocean/get_regions.py +7 -7
  100. pulumi_digitalocean/get_reserved_ip.py +16 -16
  101. pulumi_digitalocean/get_reserved_ipv6.py +51 -16
  102. pulumi_digitalocean/get_sizes.py +141 -7
  103. pulumi_digitalocean/get_spaces_bucket.py +22 -22
  104. pulumi_digitalocean/get_spaces_bucket_object.py +58 -58
  105. pulumi_digitalocean/get_spaces_bucket_objects.py +46 -46
  106. pulumi_digitalocean/get_spaces_buckets.py +7 -7
  107. pulumi_digitalocean/get_spaces_key.py +157 -0
  108. pulumi_digitalocean/get_ssh_key.py +14 -14
  109. pulumi_digitalocean/get_ssh_keys.py +7 -7
  110. pulumi_digitalocean/get_tag.py +22 -22
  111. pulumi_digitalocean/get_tags.py +7 -7
  112. pulumi_digitalocean/get_volume.py +34 -34
  113. pulumi_digitalocean/get_volume_snapshot.py +40 -40
  114. pulumi_digitalocean/get_vpc.py +30 -30
  115. pulumi_digitalocean/get_vpc_nat_gateway.py +263 -0
  116. pulumi_digitalocean/get_vpc_peering.py +24 -24
  117. pulumi_digitalocean/kubernetes_cluster.py +572 -303
  118. pulumi_digitalocean/kubernetes_node_pool.py +170 -169
  119. pulumi_digitalocean/load_balancer.py +406 -372
  120. pulumi_digitalocean/monitor_alert.py +153 -156
  121. pulumi_digitalocean/nfs.py +481 -0
  122. pulumi_digitalocean/nfs_attachment.py +289 -0
  123. pulumi_digitalocean/nfs_snapshot.py +379 -0
  124. pulumi_digitalocean/outputs.py +26759 -7592
  125. pulumi_digitalocean/partner_attachment.py +555 -0
  126. pulumi_digitalocean/project.py +141 -140
  127. pulumi_digitalocean/project_resources.py +37 -36
  128. pulumi_digitalocean/provider.py +105 -84
  129. pulumi_digitalocean/pulumi-plugin.json +1 -1
  130. pulumi_digitalocean/reserved_ip.py +63 -62
  131. pulumi_digitalocean/reserved_ip_assignment.py +37 -36
  132. pulumi_digitalocean/reserved_ipv6.py +122 -62
  133. pulumi_digitalocean/reserved_ipv6_assignment.py +81 -30
  134. pulumi_digitalocean/spaces_bucket.py +107 -106
  135. pulumi_digitalocean/spaces_bucket_cors_configuration.py +40 -39
  136. pulumi_digitalocean/spaces_bucket_logging.py +346 -0
  137. pulumi_digitalocean/spaces_bucket_object.py +284 -283
  138. pulumi_digitalocean/spaces_bucket_policy.py +54 -53
  139. pulumi_digitalocean/spaces_key.py +388 -0
  140. pulumi_digitalocean/ssh_key.py +46 -45
  141. pulumi_digitalocean/tag.py +74 -73
  142. pulumi_digitalocean/uptime_alert.py +112 -111
  143. pulumi_digitalocean/uptime_check.py +90 -89
  144. pulumi_digitalocean/volume.py +183 -182
  145. pulumi_digitalocean/volume_attachment.py +37 -36
  146. pulumi_digitalocean/volume_snapshot.py +90 -89
  147. pulumi_digitalocean/vpc.py +100 -99
  148. pulumi_digitalocean/vpc_nat_gateway.py +722 -0
  149. pulumi_digitalocean/vpc_peering.py +55 -58
  150. {pulumi_digitalocean-4.40.0a1739511652.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/METADATA +4 -4
  151. pulumi_digitalocean-4.56.0a1766428645.dist-info/RECORD +154 -0
  152. {pulumi_digitalocean-4.40.0a1739511652.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/WHEEL +1 -1
  153. pulumi_digitalocean-4.40.0a1739511652.dist-info/RECORD +0 -108
  154. {pulumi_digitalocean-4.40.0a1739511652.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,842 @@
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
+
17
+ __all__ = ['DatabaseLogsinkRsyslogArgs', 'DatabaseLogsinkRsyslog']
18
+
19
+ @pulumi.input_type
20
+ class DatabaseLogsinkRsyslogArgs:
21
+ def __init__(__self__, *,
22
+ cluster_id: pulumi.Input[_builtins.str],
23
+ port: pulumi.Input[_builtins.int],
24
+ server: pulumi.Input[_builtins.str],
25
+ ca_cert: Optional[pulumi.Input[_builtins.str]] = None,
26
+ client_cert: Optional[pulumi.Input[_builtins.str]] = None,
27
+ client_key: Optional[pulumi.Input[_builtins.str]] = None,
28
+ format: Optional[pulumi.Input[_builtins.str]] = None,
29
+ logline: Optional[pulumi.Input[_builtins.str]] = None,
30
+ name: Optional[pulumi.Input[_builtins.str]] = None,
31
+ structured_data: Optional[pulumi.Input[_builtins.str]] = None,
32
+ tls: Optional[pulumi.Input[_builtins.bool]] = None):
33
+ """
34
+ The set of arguments for constructing a DatabaseLogsinkRsyslog resource.
35
+ :param pulumi.Input[_builtins.str] cluster_id: UUID of the source database cluster that will forward logs.
36
+ :param pulumi.Input[_builtins.int] port: Port number for the rsyslog server. Must be between 1 and 65535.
37
+ :param pulumi.Input[_builtins.str] server: Hostname or IP address of the rsyslog server.
38
+ :param pulumi.Input[_builtins.str] ca_cert: CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
39
+ :param pulumi.Input[_builtins.str] client_cert: Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
40
+ :param pulumi.Input[_builtins.str] client_key: Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
41
+ :param pulumi.Input[_builtins.str] format: Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
42
+ :param pulumi.Input[_builtins.str] logline: Custom logline template. **Required** when `format` is set to `custom`. Supports rsyslog-style templating with the following tokens: `%HOSTNAME%`, `%app-name%`, `%msg%`, `%msgid%`, `%pri%`, `%procid%`, `%structured-data%`, `%timestamp%`, and `%timestamp:::date-rfc3339%`.
43
+ :param pulumi.Input[_builtins.str] name: Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
44
+ :param pulumi.Input[_builtins.str] structured_data: Content of the structured data block for RFC5424 messages.
45
+ :param pulumi.Input[_builtins.bool] tls: Enable TLS encryption for the rsyslog connection. Defaults to `false`. **Note**: It is highly recommended to enable TLS as log messages may contain sensitive information.
46
+ """
47
+ pulumi.set(__self__, "cluster_id", cluster_id)
48
+ pulumi.set(__self__, "port", port)
49
+ pulumi.set(__self__, "server", server)
50
+ if ca_cert is not None:
51
+ pulumi.set(__self__, "ca_cert", ca_cert)
52
+ if client_cert is not None:
53
+ pulumi.set(__self__, "client_cert", client_cert)
54
+ if client_key is not None:
55
+ pulumi.set(__self__, "client_key", client_key)
56
+ if format is not None:
57
+ pulumi.set(__self__, "format", format)
58
+ if logline is not None:
59
+ pulumi.set(__self__, "logline", logline)
60
+ if name is not None:
61
+ pulumi.set(__self__, "name", name)
62
+ if structured_data is not None:
63
+ pulumi.set(__self__, "structured_data", structured_data)
64
+ if tls is not None:
65
+ pulumi.set(__self__, "tls", tls)
66
+
67
+ @_builtins.property
68
+ @pulumi.getter(name="clusterId")
69
+ def cluster_id(self) -> pulumi.Input[_builtins.str]:
70
+ """
71
+ UUID of the source database cluster that will forward logs.
72
+ """
73
+ return pulumi.get(self, "cluster_id")
74
+
75
+ @cluster_id.setter
76
+ def cluster_id(self, value: pulumi.Input[_builtins.str]):
77
+ pulumi.set(self, "cluster_id", value)
78
+
79
+ @_builtins.property
80
+ @pulumi.getter
81
+ def port(self) -> pulumi.Input[_builtins.int]:
82
+ """
83
+ Port number for the rsyslog server. Must be between 1 and 65535.
84
+ """
85
+ return pulumi.get(self, "port")
86
+
87
+ @port.setter
88
+ def port(self, value: pulumi.Input[_builtins.int]):
89
+ pulumi.set(self, "port", value)
90
+
91
+ @_builtins.property
92
+ @pulumi.getter
93
+ def server(self) -> pulumi.Input[_builtins.str]:
94
+ """
95
+ Hostname or IP address of the rsyslog server.
96
+ """
97
+ return pulumi.get(self, "server")
98
+
99
+ @server.setter
100
+ def server(self, value: pulumi.Input[_builtins.str]):
101
+ pulumi.set(self, "server", value)
102
+
103
+ @_builtins.property
104
+ @pulumi.getter(name="caCert")
105
+ def ca_cert(self) -> Optional[pulumi.Input[_builtins.str]]:
106
+ """
107
+ CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
108
+ """
109
+ return pulumi.get(self, "ca_cert")
110
+
111
+ @ca_cert.setter
112
+ def ca_cert(self, value: Optional[pulumi.Input[_builtins.str]]):
113
+ pulumi.set(self, "ca_cert", value)
114
+
115
+ @_builtins.property
116
+ @pulumi.getter(name="clientCert")
117
+ def client_cert(self) -> Optional[pulumi.Input[_builtins.str]]:
118
+ """
119
+ Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
120
+ """
121
+ return pulumi.get(self, "client_cert")
122
+
123
+ @client_cert.setter
124
+ def client_cert(self, value: Optional[pulumi.Input[_builtins.str]]):
125
+ pulumi.set(self, "client_cert", value)
126
+
127
+ @_builtins.property
128
+ @pulumi.getter(name="clientKey")
129
+ def client_key(self) -> Optional[pulumi.Input[_builtins.str]]:
130
+ """
131
+ Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
132
+ """
133
+ return pulumi.get(self, "client_key")
134
+
135
+ @client_key.setter
136
+ def client_key(self, value: Optional[pulumi.Input[_builtins.str]]):
137
+ pulumi.set(self, "client_key", value)
138
+
139
+ @_builtins.property
140
+ @pulumi.getter
141
+ def format(self) -> Optional[pulumi.Input[_builtins.str]]:
142
+ """
143
+ Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
144
+ """
145
+ return pulumi.get(self, "format")
146
+
147
+ @format.setter
148
+ def format(self, value: Optional[pulumi.Input[_builtins.str]]):
149
+ pulumi.set(self, "format", value)
150
+
151
+ @_builtins.property
152
+ @pulumi.getter
153
+ def logline(self) -> Optional[pulumi.Input[_builtins.str]]:
154
+ """
155
+ Custom logline template. **Required** when `format` is set to `custom`. Supports rsyslog-style templating with the following tokens: `%HOSTNAME%`, `%app-name%`, `%msg%`, `%msgid%`, `%pri%`, `%procid%`, `%structured-data%`, `%timestamp%`, and `%timestamp:::date-rfc3339%`.
156
+ """
157
+ return pulumi.get(self, "logline")
158
+
159
+ @logline.setter
160
+ def logline(self, value: Optional[pulumi.Input[_builtins.str]]):
161
+ pulumi.set(self, "logline", value)
162
+
163
+ @_builtins.property
164
+ @pulumi.getter
165
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
166
+ """
167
+ Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
168
+ """
169
+ return pulumi.get(self, "name")
170
+
171
+ @name.setter
172
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
173
+ pulumi.set(self, "name", value)
174
+
175
+ @_builtins.property
176
+ @pulumi.getter(name="structuredData")
177
+ def structured_data(self) -> Optional[pulumi.Input[_builtins.str]]:
178
+ """
179
+ Content of the structured data block for RFC5424 messages.
180
+ """
181
+ return pulumi.get(self, "structured_data")
182
+
183
+ @structured_data.setter
184
+ def structured_data(self, value: Optional[pulumi.Input[_builtins.str]]):
185
+ pulumi.set(self, "structured_data", value)
186
+
187
+ @_builtins.property
188
+ @pulumi.getter
189
+ def tls(self) -> Optional[pulumi.Input[_builtins.bool]]:
190
+ """
191
+ Enable TLS encryption for the rsyslog connection. Defaults to `false`. **Note**: It is highly recommended to enable TLS as log messages may contain sensitive information.
192
+ """
193
+ return pulumi.get(self, "tls")
194
+
195
+ @tls.setter
196
+ def tls(self, value: Optional[pulumi.Input[_builtins.bool]]):
197
+ pulumi.set(self, "tls", value)
198
+
199
+
200
+ @pulumi.input_type
201
+ class _DatabaseLogsinkRsyslogState:
202
+ def __init__(__self__, *,
203
+ ca_cert: Optional[pulumi.Input[_builtins.str]] = None,
204
+ client_cert: Optional[pulumi.Input[_builtins.str]] = None,
205
+ client_key: Optional[pulumi.Input[_builtins.str]] = None,
206
+ cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
207
+ format: Optional[pulumi.Input[_builtins.str]] = None,
208
+ logline: Optional[pulumi.Input[_builtins.str]] = None,
209
+ logsink_id: Optional[pulumi.Input[_builtins.str]] = None,
210
+ name: Optional[pulumi.Input[_builtins.str]] = None,
211
+ port: Optional[pulumi.Input[_builtins.int]] = None,
212
+ server: Optional[pulumi.Input[_builtins.str]] = None,
213
+ structured_data: Optional[pulumi.Input[_builtins.str]] = None,
214
+ tls: Optional[pulumi.Input[_builtins.bool]] = None):
215
+ """
216
+ Input properties used for looking up and filtering DatabaseLogsinkRsyslog resources.
217
+ :param pulumi.Input[_builtins.str] ca_cert: CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
218
+ :param pulumi.Input[_builtins.str] client_cert: Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
219
+ :param pulumi.Input[_builtins.str] client_key: Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
220
+ :param pulumi.Input[_builtins.str] cluster_id: UUID of the source database cluster that will forward logs.
221
+ :param pulumi.Input[_builtins.str] format: Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
222
+ :param pulumi.Input[_builtins.str] logline: Custom logline template. **Required** when `format` is set to `custom`. Supports rsyslog-style templating with the following tokens: `%HOSTNAME%`, `%app-name%`, `%msg%`, `%msgid%`, `%pri%`, `%procid%`, `%structured-data%`, `%timestamp%`, and `%timestamp:::date-rfc3339%`.
223
+ :param pulumi.Input[_builtins.str] logsink_id: The unique identifier for the logsink as returned by the DigitalOcean API.
224
+ :param pulumi.Input[_builtins.str] name: Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
225
+ :param pulumi.Input[_builtins.int] port: Port number for the rsyslog server. Must be between 1 and 65535.
226
+ :param pulumi.Input[_builtins.str] server: Hostname or IP address of the rsyslog server.
227
+ :param pulumi.Input[_builtins.str] structured_data: Content of the structured data block for RFC5424 messages.
228
+ :param pulumi.Input[_builtins.bool] tls: Enable TLS encryption for the rsyslog connection. Defaults to `false`. **Note**: It is highly recommended to enable TLS as log messages may contain sensitive information.
229
+ """
230
+ if ca_cert is not None:
231
+ pulumi.set(__self__, "ca_cert", ca_cert)
232
+ if client_cert is not None:
233
+ pulumi.set(__self__, "client_cert", client_cert)
234
+ if client_key is not None:
235
+ pulumi.set(__self__, "client_key", client_key)
236
+ if cluster_id is not None:
237
+ pulumi.set(__self__, "cluster_id", cluster_id)
238
+ if format is not None:
239
+ pulumi.set(__self__, "format", format)
240
+ if logline is not None:
241
+ pulumi.set(__self__, "logline", logline)
242
+ if logsink_id is not None:
243
+ pulumi.set(__self__, "logsink_id", logsink_id)
244
+ if name is not None:
245
+ pulumi.set(__self__, "name", name)
246
+ if port is not None:
247
+ pulumi.set(__self__, "port", port)
248
+ if server is not None:
249
+ pulumi.set(__self__, "server", server)
250
+ if structured_data is not None:
251
+ pulumi.set(__self__, "structured_data", structured_data)
252
+ if tls is not None:
253
+ pulumi.set(__self__, "tls", tls)
254
+
255
+ @_builtins.property
256
+ @pulumi.getter(name="caCert")
257
+ def ca_cert(self) -> Optional[pulumi.Input[_builtins.str]]:
258
+ """
259
+ CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
260
+ """
261
+ return pulumi.get(self, "ca_cert")
262
+
263
+ @ca_cert.setter
264
+ def ca_cert(self, value: Optional[pulumi.Input[_builtins.str]]):
265
+ pulumi.set(self, "ca_cert", value)
266
+
267
+ @_builtins.property
268
+ @pulumi.getter(name="clientCert")
269
+ def client_cert(self) -> Optional[pulumi.Input[_builtins.str]]:
270
+ """
271
+ Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
272
+ """
273
+ return pulumi.get(self, "client_cert")
274
+
275
+ @client_cert.setter
276
+ def client_cert(self, value: Optional[pulumi.Input[_builtins.str]]):
277
+ pulumi.set(self, "client_cert", value)
278
+
279
+ @_builtins.property
280
+ @pulumi.getter(name="clientKey")
281
+ def client_key(self) -> Optional[pulumi.Input[_builtins.str]]:
282
+ """
283
+ Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
284
+ """
285
+ return pulumi.get(self, "client_key")
286
+
287
+ @client_key.setter
288
+ def client_key(self, value: Optional[pulumi.Input[_builtins.str]]):
289
+ pulumi.set(self, "client_key", value)
290
+
291
+ @_builtins.property
292
+ @pulumi.getter(name="clusterId")
293
+ def cluster_id(self) -> Optional[pulumi.Input[_builtins.str]]:
294
+ """
295
+ UUID of the source database cluster that will forward logs.
296
+ """
297
+ return pulumi.get(self, "cluster_id")
298
+
299
+ @cluster_id.setter
300
+ def cluster_id(self, value: Optional[pulumi.Input[_builtins.str]]):
301
+ pulumi.set(self, "cluster_id", value)
302
+
303
+ @_builtins.property
304
+ @pulumi.getter
305
+ def format(self) -> Optional[pulumi.Input[_builtins.str]]:
306
+ """
307
+ Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
308
+ """
309
+ return pulumi.get(self, "format")
310
+
311
+ @format.setter
312
+ def format(self, value: Optional[pulumi.Input[_builtins.str]]):
313
+ pulumi.set(self, "format", value)
314
+
315
+ @_builtins.property
316
+ @pulumi.getter
317
+ def logline(self) -> Optional[pulumi.Input[_builtins.str]]:
318
+ """
319
+ Custom logline template. **Required** when `format` is set to `custom`. Supports rsyslog-style templating with the following tokens: `%HOSTNAME%`, `%app-name%`, `%msg%`, `%msgid%`, `%pri%`, `%procid%`, `%structured-data%`, `%timestamp%`, and `%timestamp:::date-rfc3339%`.
320
+ """
321
+ return pulumi.get(self, "logline")
322
+
323
+ @logline.setter
324
+ def logline(self, value: Optional[pulumi.Input[_builtins.str]]):
325
+ pulumi.set(self, "logline", value)
326
+
327
+ @_builtins.property
328
+ @pulumi.getter(name="logsinkId")
329
+ def logsink_id(self) -> Optional[pulumi.Input[_builtins.str]]:
330
+ """
331
+ The unique identifier for the logsink as returned by the DigitalOcean API.
332
+ """
333
+ return pulumi.get(self, "logsink_id")
334
+
335
+ @logsink_id.setter
336
+ def logsink_id(self, value: Optional[pulumi.Input[_builtins.str]]):
337
+ pulumi.set(self, "logsink_id", value)
338
+
339
+ @_builtins.property
340
+ @pulumi.getter
341
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
342
+ """
343
+ Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
344
+ """
345
+ return pulumi.get(self, "name")
346
+
347
+ @name.setter
348
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
349
+ pulumi.set(self, "name", value)
350
+
351
+ @_builtins.property
352
+ @pulumi.getter
353
+ def port(self) -> Optional[pulumi.Input[_builtins.int]]:
354
+ """
355
+ Port number for the rsyslog server. Must be between 1 and 65535.
356
+ """
357
+ return pulumi.get(self, "port")
358
+
359
+ @port.setter
360
+ def port(self, value: Optional[pulumi.Input[_builtins.int]]):
361
+ pulumi.set(self, "port", value)
362
+
363
+ @_builtins.property
364
+ @pulumi.getter
365
+ def server(self) -> Optional[pulumi.Input[_builtins.str]]:
366
+ """
367
+ Hostname or IP address of the rsyslog server.
368
+ """
369
+ return pulumi.get(self, "server")
370
+
371
+ @server.setter
372
+ def server(self, value: Optional[pulumi.Input[_builtins.str]]):
373
+ pulumi.set(self, "server", value)
374
+
375
+ @_builtins.property
376
+ @pulumi.getter(name="structuredData")
377
+ def structured_data(self) -> Optional[pulumi.Input[_builtins.str]]:
378
+ """
379
+ Content of the structured data block for RFC5424 messages.
380
+ """
381
+ return pulumi.get(self, "structured_data")
382
+
383
+ @structured_data.setter
384
+ def structured_data(self, value: Optional[pulumi.Input[_builtins.str]]):
385
+ pulumi.set(self, "structured_data", value)
386
+
387
+ @_builtins.property
388
+ @pulumi.getter
389
+ def tls(self) -> Optional[pulumi.Input[_builtins.bool]]:
390
+ """
391
+ Enable TLS encryption for the rsyslog connection. Defaults to `false`. **Note**: It is highly recommended to enable TLS as log messages may contain sensitive information.
392
+ """
393
+ return pulumi.get(self, "tls")
394
+
395
+ @tls.setter
396
+ def tls(self, value: Optional[pulumi.Input[_builtins.bool]]):
397
+ pulumi.set(self, "tls", value)
398
+
399
+
400
+ @pulumi.type_token("digitalocean:index/databaseLogsinkRsyslog:DatabaseLogsinkRsyslog")
401
+ class DatabaseLogsinkRsyslog(pulumi.CustomResource):
402
+ @overload
403
+ def __init__(__self__,
404
+ resource_name: str,
405
+ opts: Optional[pulumi.ResourceOptions] = None,
406
+ ca_cert: Optional[pulumi.Input[_builtins.str]] = None,
407
+ client_cert: Optional[pulumi.Input[_builtins.str]] = None,
408
+ client_key: Optional[pulumi.Input[_builtins.str]] = None,
409
+ cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
410
+ format: Optional[pulumi.Input[_builtins.str]] = None,
411
+ logline: Optional[pulumi.Input[_builtins.str]] = None,
412
+ name: Optional[pulumi.Input[_builtins.str]] = None,
413
+ port: Optional[pulumi.Input[_builtins.int]] = None,
414
+ server: Optional[pulumi.Input[_builtins.str]] = None,
415
+ structured_data: Optional[pulumi.Input[_builtins.str]] = None,
416
+ tls: Optional[pulumi.Input[_builtins.bool]] = None,
417
+ __props__=None):
418
+ """
419
+ Provides a DigitalOcean database logsink resource allowing you to forward logs from a managed database cluster to an external rsyslog server.
420
+
421
+ This resource supports the following DigitalOcean managed database engines:
422
+
423
+ * PostgreSQL
424
+ * MySQL
425
+ * Kafka
426
+ * Valkey
427
+
428
+ **Note**: MongoDB databases use a different log forwarding mechanism and require Datadog logsinks (not currently available in this provider).
429
+
430
+ ## Example Usage
431
+
432
+ ### Basic rsyslog configuration
433
+
434
+ ```python
435
+ import pulumi
436
+ import pulumi_digitalocean as digitalocean
437
+
438
+ postgres_example = digitalocean.DatabaseCluster("postgres-example",
439
+ name="example-postgres-cluster",
440
+ engine="pg",
441
+ version="15",
442
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
443
+ region=digitalocean.Region.NYC1,
444
+ node_count=1)
445
+ example = digitalocean.DatabaseLogsinkRsyslog("example",
446
+ cluster_id=postgres_example.id,
447
+ name="rsyslog-prod",
448
+ server="192.0.2.10",
449
+ port=514,
450
+ format="rfc5424")
451
+ ```
452
+
453
+ ### TLS-enabled rsyslog configuration
454
+
455
+ ```python
456
+ import pulumi
457
+ import pulumi_digitalocean as digitalocean
458
+ import pulumi_std as std
459
+
460
+ example_tls = digitalocean.DatabaseLogsinkRsyslog("example-tls",
461
+ cluster_id=postgres_example["id"],
462
+ name="rsyslog-secure",
463
+ server="logs.example.com",
464
+ port=6514,
465
+ tls=True,
466
+ format="rfc5424",
467
+ ca_cert=std.file(input="/path/to/ca.pem").result)
468
+ ```
469
+
470
+ ### mTLS (mutual TLS) configuration
471
+
472
+ ```python
473
+ import pulumi
474
+ import pulumi_digitalocean as digitalocean
475
+ import pulumi_std as std
476
+
477
+ example_mtls = digitalocean.DatabaseLogsinkRsyslog("example-mtls",
478
+ cluster_id=postgres_example["id"],
479
+ name="rsyslog-mtls",
480
+ server="secure-logs.example.com",
481
+ port=6514,
482
+ tls=True,
483
+ format="rfc5424",
484
+ ca_cert=std.file(input="/path/to/ca.pem").result,
485
+ client_cert=std.file(input="/path/to/client.crt").result,
486
+ client_key=std.file(input="/path/to/client.key").result)
487
+ ```
488
+
489
+ ### Custom format configuration
490
+
491
+ ```python
492
+ import pulumi
493
+ import pulumi_digitalocean as digitalocean
494
+
495
+ example_custom = digitalocean.DatabaseLogsinkRsyslog("example-custom",
496
+ cluster_id=postgres_example["id"],
497
+ name="rsyslog-custom",
498
+ server="192.0.2.10",
499
+ port=514,
500
+ format="custom",
501
+ logline="<%pri%>%timestamp:::date-rfc3339% %HOSTNAME% %app-name% %msg%",
502
+ structured_data="[example@41058 iut=\\"3\\"]")
503
+ ```
504
+
505
+ ## Import
506
+
507
+ Database logsink rsyslog resources can be imported using the composite ID format `cluster_id,logsink_id`. For example:
508
+
509
+ ```sh
510
+ $ pulumi import digitalocean:index/databaseLogsinkRsyslog:DatabaseLogsinkRsyslog example 245bcfd0-7f31-4ce6-a2bc-475a116cca97,f38db7c8-1f31-4ce6-a2bc-475a116cca97
511
+ ```
512
+
513
+ **Note**: The cluster ID and logsink ID must be separated by a comma.
514
+
515
+ :param str resource_name: The name of the resource.
516
+ :param pulumi.ResourceOptions opts: Options for the resource.
517
+ :param pulumi.Input[_builtins.str] ca_cert: CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
518
+ :param pulumi.Input[_builtins.str] client_cert: Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
519
+ :param pulumi.Input[_builtins.str] client_key: Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
520
+ :param pulumi.Input[_builtins.str] cluster_id: UUID of the source database cluster that will forward logs.
521
+ :param pulumi.Input[_builtins.str] format: Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
522
+ :param pulumi.Input[_builtins.str] logline: Custom logline template. **Required** when `format` is set to `custom`. Supports rsyslog-style templating with the following tokens: `%HOSTNAME%`, `%app-name%`, `%msg%`, `%msgid%`, `%pri%`, `%procid%`, `%structured-data%`, `%timestamp%`, and `%timestamp:::date-rfc3339%`.
523
+ :param pulumi.Input[_builtins.str] name: Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
524
+ :param pulumi.Input[_builtins.int] port: Port number for the rsyslog server. Must be between 1 and 65535.
525
+ :param pulumi.Input[_builtins.str] server: Hostname or IP address of the rsyslog server.
526
+ :param pulumi.Input[_builtins.str] structured_data: Content of the structured data block for RFC5424 messages.
527
+ :param pulumi.Input[_builtins.bool] tls: Enable TLS encryption for the rsyslog connection. Defaults to `false`. **Note**: It is highly recommended to enable TLS as log messages may contain sensitive information.
528
+ """
529
+ ...
530
+ @overload
531
+ def __init__(__self__,
532
+ resource_name: str,
533
+ args: DatabaseLogsinkRsyslogArgs,
534
+ opts: Optional[pulumi.ResourceOptions] = None):
535
+ """
536
+ Provides a DigitalOcean database logsink resource allowing you to forward logs from a managed database cluster to an external rsyslog server.
537
+
538
+ This resource supports the following DigitalOcean managed database engines:
539
+
540
+ * PostgreSQL
541
+ * MySQL
542
+ * Kafka
543
+ * Valkey
544
+
545
+ **Note**: MongoDB databases use a different log forwarding mechanism and require Datadog logsinks (not currently available in this provider).
546
+
547
+ ## Example Usage
548
+
549
+ ### Basic rsyslog configuration
550
+
551
+ ```python
552
+ import pulumi
553
+ import pulumi_digitalocean as digitalocean
554
+
555
+ postgres_example = digitalocean.DatabaseCluster("postgres-example",
556
+ name="example-postgres-cluster",
557
+ engine="pg",
558
+ version="15",
559
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
560
+ region=digitalocean.Region.NYC1,
561
+ node_count=1)
562
+ example = digitalocean.DatabaseLogsinkRsyslog("example",
563
+ cluster_id=postgres_example.id,
564
+ name="rsyslog-prod",
565
+ server="192.0.2.10",
566
+ port=514,
567
+ format="rfc5424")
568
+ ```
569
+
570
+ ### TLS-enabled rsyslog configuration
571
+
572
+ ```python
573
+ import pulumi
574
+ import pulumi_digitalocean as digitalocean
575
+ import pulumi_std as std
576
+
577
+ example_tls = digitalocean.DatabaseLogsinkRsyslog("example-tls",
578
+ cluster_id=postgres_example["id"],
579
+ name="rsyslog-secure",
580
+ server="logs.example.com",
581
+ port=6514,
582
+ tls=True,
583
+ format="rfc5424",
584
+ ca_cert=std.file(input="/path/to/ca.pem").result)
585
+ ```
586
+
587
+ ### mTLS (mutual TLS) configuration
588
+
589
+ ```python
590
+ import pulumi
591
+ import pulumi_digitalocean as digitalocean
592
+ import pulumi_std as std
593
+
594
+ example_mtls = digitalocean.DatabaseLogsinkRsyslog("example-mtls",
595
+ cluster_id=postgres_example["id"],
596
+ name="rsyslog-mtls",
597
+ server="secure-logs.example.com",
598
+ port=6514,
599
+ tls=True,
600
+ format="rfc5424",
601
+ ca_cert=std.file(input="/path/to/ca.pem").result,
602
+ client_cert=std.file(input="/path/to/client.crt").result,
603
+ client_key=std.file(input="/path/to/client.key").result)
604
+ ```
605
+
606
+ ### Custom format configuration
607
+
608
+ ```python
609
+ import pulumi
610
+ import pulumi_digitalocean as digitalocean
611
+
612
+ example_custom = digitalocean.DatabaseLogsinkRsyslog("example-custom",
613
+ cluster_id=postgres_example["id"],
614
+ name="rsyslog-custom",
615
+ server="192.0.2.10",
616
+ port=514,
617
+ format="custom",
618
+ logline="<%pri%>%timestamp:::date-rfc3339% %HOSTNAME% %app-name% %msg%",
619
+ structured_data="[example@41058 iut=\\"3\\"]")
620
+ ```
621
+
622
+ ## Import
623
+
624
+ Database logsink rsyslog resources can be imported using the composite ID format `cluster_id,logsink_id`. For example:
625
+
626
+ ```sh
627
+ $ pulumi import digitalocean:index/databaseLogsinkRsyslog:DatabaseLogsinkRsyslog example 245bcfd0-7f31-4ce6-a2bc-475a116cca97,f38db7c8-1f31-4ce6-a2bc-475a116cca97
628
+ ```
629
+
630
+ **Note**: The cluster ID and logsink ID must be separated by a comma.
631
+
632
+ :param str resource_name: The name of the resource.
633
+ :param DatabaseLogsinkRsyslogArgs args: The arguments to use to populate this resource's properties.
634
+ :param pulumi.ResourceOptions opts: Options for the resource.
635
+ """
636
+ ...
637
+ def __init__(__self__, resource_name: str, *args, **kwargs):
638
+ resource_args, opts = _utilities.get_resource_args_opts(DatabaseLogsinkRsyslogArgs, pulumi.ResourceOptions, *args, **kwargs)
639
+ if resource_args is not None:
640
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
641
+ else:
642
+ __self__._internal_init(resource_name, *args, **kwargs)
643
+
644
+ def _internal_init(__self__,
645
+ resource_name: str,
646
+ opts: Optional[pulumi.ResourceOptions] = None,
647
+ ca_cert: Optional[pulumi.Input[_builtins.str]] = None,
648
+ client_cert: Optional[pulumi.Input[_builtins.str]] = None,
649
+ client_key: Optional[pulumi.Input[_builtins.str]] = None,
650
+ cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
651
+ format: Optional[pulumi.Input[_builtins.str]] = None,
652
+ logline: Optional[pulumi.Input[_builtins.str]] = None,
653
+ name: Optional[pulumi.Input[_builtins.str]] = None,
654
+ port: Optional[pulumi.Input[_builtins.int]] = None,
655
+ server: Optional[pulumi.Input[_builtins.str]] = None,
656
+ structured_data: Optional[pulumi.Input[_builtins.str]] = None,
657
+ tls: Optional[pulumi.Input[_builtins.bool]] = None,
658
+ __props__=None):
659
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
660
+ if not isinstance(opts, pulumi.ResourceOptions):
661
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
662
+ if opts.id is None:
663
+ if __props__ is not None:
664
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
665
+ __props__ = DatabaseLogsinkRsyslogArgs.__new__(DatabaseLogsinkRsyslogArgs)
666
+
667
+ __props__.__dict__["ca_cert"] = None if ca_cert is None else pulumi.Output.secret(ca_cert)
668
+ __props__.__dict__["client_cert"] = client_cert
669
+ __props__.__dict__["client_key"] = None if client_key is None else pulumi.Output.secret(client_key)
670
+ if cluster_id is None and not opts.urn:
671
+ raise TypeError("Missing required property 'cluster_id'")
672
+ __props__.__dict__["cluster_id"] = cluster_id
673
+ __props__.__dict__["format"] = format
674
+ __props__.__dict__["logline"] = logline
675
+ __props__.__dict__["name"] = name
676
+ if port is None and not opts.urn:
677
+ raise TypeError("Missing required property 'port'")
678
+ __props__.__dict__["port"] = port
679
+ if server is None and not opts.urn:
680
+ raise TypeError("Missing required property 'server'")
681
+ __props__.__dict__["server"] = server
682
+ __props__.__dict__["structured_data"] = structured_data
683
+ __props__.__dict__["tls"] = tls
684
+ __props__.__dict__["logsink_id"] = None
685
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["caCert", "clientKey"])
686
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
687
+ super(DatabaseLogsinkRsyslog, __self__).__init__(
688
+ 'digitalocean:index/databaseLogsinkRsyslog:DatabaseLogsinkRsyslog',
689
+ resource_name,
690
+ __props__,
691
+ opts)
692
+
693
+ @staticmethod
694
+ def get(resource_name: str,
695
+ id: pulumi.Input[str],
696
+ opts: Optional[pulumi.ResourceOptions] = None,
697
+ ca_cert: Optional[pulumi.Input[_builtins.str]] = None,
698
+ client_cert: Optional[pulumi.Input[_builtins.str]] = None,
699
+ client_key: Optional[pulumi.Input[_builtins.str]] = None,
700
+ cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
701
+ format: Optional[pulumi.Input[_builtins.str]] = None,
702
+ logline: Optional[pulumi.Input[_builtins.str]] = None,
703
+ logsink_id: Optional[pulumi.Input[_builtins.str]] = None,
704
+ name: Optional[pulumi.Input[_builtins.str]] = None,
705
+ port: Optional[pulumi.Input[_builtins.int]] = None,
706
+ server: Optional[pulumi.Input[_builtins.str]] = None,
707
+ structured_data: Optional[pulumi.Input[_builtins.str]] = None,
708
+ tls: Optional[pulumi.Input[_builtins.bool]] = None) -> 'DatabaseLogsinkRsyslog':
709
+ """
710
+ Get an existing DatabaseLogsinkRsyslog resource's state with the given name, id, and optional extra
711
+ properties used to qualify the lookup.
712
+
713
+ :param str resource_name: The unique name of the resulting resource.
714
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
715
+ :param pulumi.ResourceOptions opts: Options for the resource.
716
+ :param pulumi.Input[_builtins.str] ca_cert: CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
717
+ :param pulumi.Input[_builtins.str] client_cert: Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
718
+ :param pulumi.Input[_builtins.str] client_key: Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
719
+ :param pulumi.Input[_builtins.str] cluster_id: UUID of the source database cluster that will forward logs.
720
+ :param pulumi.Input[_builtins.str] format: Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
721
+ :param pulumi.Input[_builtins.str] logline: Custom logline template. **Required** when `format` is set to `custom`. Supports rsyslog-style templating with the following tokens: `%HOSTNAME%`, `%app-name%`, `%msg%`, `%msgid%`, `%pri%`, `%procid%`, `%structured-data%`, `%timestamp%`, and `%timestamp:::date-rfc3339%`.
722
+ :param pulumi.Input[_builtins.str] logsink_id: The unique identifier for the logsink as returned by the DigitalOcean API.
723
+ :param pulumi.Input[_builtins.str] name: Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
724
+ :param pulumi.Input[_builtins.int] port: Port number for the rsyslog server. Must be between 1 and 65535.
725
+ :param pulumi.Input[_builtins.str] server: Hostname or IP address of the rsyslog server.
726
+ :param pulumi.Input[_builtins.str] structured_data: Content of the structured data block for RFC5424 messages.
727
+ :param pulumi.Input[_builtins.bool] tls: Enable TLS encryption for the rsyslog connection. Defaults to `false`. **Note**: It is highly recommended to enable TLS as log messages may contain sensitive information.
728
+ """
729
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
730
+
731
+ __props__ = _DatabaseLogsinkRsyslogState.__new__(_DatabaseLogsinkRsyslogState)
732
+
733
+ __props__.__dict__["ca_cert"] = ca_cert
734
+ __props__.__dict__["client_cert"] = client_cert
735
+ __props__.__dict__["client_key"] = client_key
736
+ __props__.__dict__["cluster_id"] = cluster_id
737
+ __props__.__dict__["format"] = format
738
+ __props__.__dict__["logline"] = logline
739
+ __props__.__dict__["logsink_id"] = logsink_id
740
+ __props__.__dict__["name"] = name
741
+ __props__.__dict__["port"] = port
742
+ __props__.__dict__["server"] = server
743
+ __props__.__dict__["structured_data"] = structured_data
744
+ __props__.__dict__["tls"] = tls
745
+ return DatabaseLogsinkRsyslog(resource_name, opts=opts, __props__=__props__)
746
+
747
+ @_builtins.property
748
+ @pulumi.getter(name="caCert")
749
+ def ca_cert(self) -> pulumi.Output[Optional[_builtins.str]]:
750
+ """
751
+ CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
752
+ """
753
+ return pulumi.get(self, "ca_cert")
754
+
755
+ @_builtins.property
756
+ @pulumi.getter(name="clientCert")
757
+ def client_cert(self) -> pulumi.Output[Optional[_builtins.str]]:
758
+ """
759
+ Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
760
+ """
761
+ return pulumi.get(self, "client_cert")
762
+
763
+ @_builtins.property
764
+ @pulumi.getter(name="clientKey")
765
+ def client_key(self) -> pulumi.Output[Optional[_builtins.str]]:
766
+ """
767
+ Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
768
+ """
769
+ return pulumi.get(self, "client_key")
770
+
771
+ @_builtins.property
772
+ @pulumi.getter(name="clusterId")
773
+ def cluster_id(self) -> pulumi.Output[_builtins.str]:
774
+ """
775
+ UUID of the source database cluster that will forward logs.
776
+ """
777
+ return pulumi.get(self, "cluster_id")
778
+
779
+ @_builtins.property
780
+ @pulumi.getter
781
+ def format(self) -> pulumi.Output[Optional[_builtins.str]]:
782
+ """
783
+ Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
784
+ """
785
+ return pulumi.get(self, "format")
786
+
787
+ @_builtins.property
788
+ @pulumi.getter
789
+ def logline(self) -> pulumi.Output[Optional[_builtins.str]]:
790
+ """
791
+ Custom logline template. **Required** when `format` is set to `custom`. Supports rsyslog-style templating with the following tokens: `%HOSTNAME%`, `%app-name%`, `%msg%`, `%msgid%`, `%pri%`, `%procid%`, `%structured-data%`, `%timestamp%`, and `%timestamp:::date-rfc3339%`.
792
+ """
793
+ return pulumi.get(self, "logline")
794
+
795
+ @_builtins.property
796
+ @pulumi.getter(name="logsinkId")
797
+ def logsink_id(self) -> pulumi.Output[_builtins.str]:
798
+ """
799
+ The unique identifier for the logsink as returned by the DigitalOcean API.
800
+ """
801
+ return pulumi.get(self, "logsink_id")
802
+
803
+ @_builtins.property
804
+ @pulumi.getter
805
+ def name(self) -> pulumi.Output[_builtins.str]:
806
+ """
807
+ Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
808
+ """
809
+ return pulumi.get(self, "name")
810
+
811
+ @_builtins.property
812
+ @pulumi.getter
813
+ def port(self) -> pulumi.Output[_builtins.int]:
814
+ """
815
+ Port number for the rsyslog server. Must be between 1 and 65535.
816
+ """
817
+ return pulumi.get(self, "port")
818
+
819
+ @_builtins.property
820
+ @pulumi.getter
821
+ def server(self) -> pulumi.Output[_builtins.str]:
822
+ """
823
+ Hostname or IP address of the rsyslog server.
824
+ """
825
+ return pulumi.get(self, "server")
826
+
827
+ @_builtins.property
828
+ @pulumi.getter(name="structuredData")
829
+ def structured_data(self) -> pulumi.Output[Optional[_builtins.str]]:
830
+ """
831
+ Content of the structured data block for RFC5424 messages.
832
+ """
833
+ return pulumi.get(self, "structured_data")
834
+
835
+ @_builtins.property
836
+ @pulumi.getter
837
+ def tls(self) -> pulumi.Output[Optional[_builtins.bool]]:
838
+ """
839
+ Enable TLS encryption for the rsyslog connection. Defaults to `false`. **Note**: It is highly recommended to enable TLS as log messages may contain sensitive information.
840
+ """
841
+ return pulumi.get(self, "tls")
842
+