pulumi-digitalocean 4.46.0a1747979086__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.
- pulumi_digitalocean/__init__.py +195 -2
- pulumi_digitalocean/_enums.py +10 -10
- pulumi_digitalocean/_inputs.py +16851 -4937
- pulumi_digitalocean/_utilities.py +1 -1
- pulumi_digitalocean/app.py +237 -89
- pulumi_digitalocean/byoip_prefix.py +452 -0
- pulumi_digitalocean/cdn.py +105 -106
- pulumi_digitalocean/certificate.py +138 -139
- pulumi_digitalocean/config/__init__.py +2 -2
- pulumi_digitalocean/config/__init__.pyi +2 -3
- pulumi_digitalocean/config/vars.py +11 -12
- pulumi_digitalocean/container_registries.py +285 -0
- pulumi_digitalocean/container_registry.py +89 -90
- pulumi_digitalocean/container_registry_docker_credentials.py +83 -84
- pulumi_digitalocean/custom_image.py +176 -177
- pulumi_digitalocean/database_cluster.py +375 -348
- pulumi_digitalocean/database_connection_pool.py +158 -159
- pulumi_digitalocean/database_db.py +36 -37
- pulumi_digitalocean/database_firewall.py +22 -23
- pulumi_digitalocean/database_kafka_config.py +308 -309
- pulumi_digitalocean/database_kafka_schema_registry.py +360 -0
- pulumi_digitalocean/database_kafka_topic.py +82 -83
- pulumi_digitalocean/database_logsink_opensearch.py +680 -0
- pulumi_digitalocean/database_logsink_rsyslog.py +842 -0
- pulumi_digitalocean/database_mongodb_config.py +104 -105
- pulumi_digitalocean/database_mysql_config.py +478 -479
- pulumi_digitalocean/database_online_migration.py +460 -0
- pulumi_digitalocean/database_opensearch_config.py +665 -666
- pulumi_digitalocean/database_postgresql_config.py +858 -859
- pulumi_digitalocean/database_redis_config.py +210 -207
- pulumi_digitalocean/database_replica.py +198 -199
- pulumi_digitalocean/database_user.py +92 -93
- pulumi_digitalocean/database_valkey_config.py +776 -0
- pulumi_digitalocean/dns_record.py +181 -182
- pulumi_digitalocean/domain.py +54 -55
- pulumi_digitalocean/droplet.py +389 -390
- pulumi_digitalocean/droplet_autoscale.py +54 -55
- pulumi_digitalocean/droplet_snapshot.py +72 -73
- pulumi_digitalocean/firewall.py +79 -80
- pulumi_digitalocean/floating_ip.py +62 -63
- pulumi_digitalocean/floating_ip_assignment.py +36 -37
- pulumi_digitalocean/genai_agent.py +1903 -0
- pulumi_digitalocean/genai_agent_knowledge_base_attachment.py +198 -0
- pulumi_digitalocean/genai_agent_route.py +354 -0
- pulumi_digitalocean/genai_function.py +464 -0
- pulumi_digitalocean/genai_indexing_job_cancel.py +542 -0
- pulumi_digitalocean/genai_knowledge_base.py +627 -0
- pulumi_digitalocean/genai_knowledge_base_data_source.py +220 -0
- pulumi_digitalocean/genai_openai_api_key.py +386 -0
- pulumi_digitalocean/get_account.py +18 -19
- pulumi_digitalocean/get_app.py +28 -29
- pulumi_digitalocean/get_byoip_prefix.py +214 -0
- pulumi_digitalocean/get_byoip_prefix_resources.py +150 -0
- pulumi_digitalocean/get_certificate.py +22 -23
- pulumi_digitalocean/get_container_registries.py +151 -0
- pulumi_digitalocean/get_container_registry.py +22 -23
- pulumi_digitalocean/get_database_ca.py +12 -13
- pulumi_digitalocean/get_database_cluster.py +76 -63
- pulumi_digitalocean/get_database_connection_pool.py +36 -37
- pulumi_digitalocean/get_database_metrics_credentials.py +120 -0
- pulumi_digitalocean/get_database_replica.py +46 -47
- pulumi_digitalocean/get_database_user.py +27 -28
- pulumi_digitalocean/get_domain.py +16 -17
- pulumi_digitalocean/get_domains.py +7 -8
- pulumi_digitalocean/get_droplet.py +72 -73
- pulumi_digitalocean/get_droplet_autoscale.py +23 -24
- pulumi_digitalocean/get_droplet_snapshot.py +38 -39
- pulumi_digitalocean/get_droplets.py +13 -14
- pulumi_digitalocean/get_firewall.py +31 -32
- pulumi_digitalocean/get_floating_ip.py +16 -17
- pulumi_digitalocean/get_genai_agent.py +572 -0
- pulumi_digitalocean/get_genai_agent_versions.py +128 -0
- pulumi_digitalocean/get_genai_agents.py +128 -0
- pulumi_digitalocean/get_genai_agents_by_openai_api_key.py +97 -0
- pulumi_digitalocean/get_genai_indexing_job.py +239 -0
- pulumi_digitalocean/get_genai_indexing_job_data_sources.py +97 -0
- pulumi_digitalocean/get_genai_knowledge_base.py +259 -0
- pulumi_digitalocean/get_genai_knowledge_base_data_sources.py +97 -0
- pulumi_digitalocean/get_genai_knowledge_base_indexing_jobs.py +108 -0
- pulumi_digitalocean/get_genai_knowledge_bases.py +113 -0
- pulumi_digitalocean/get_genai_models.py +113 -0
- pulumi_digitalocean/get_genai_openai_api_key.py +152 -0
- pulumi_digitalocean/get_genai_openai_api_keys.py +113 -0
- pulumi_digitalocean/get_genai_regions.py +113 -0
- pulumi_digitalocean/get_image.py +50 -51
- pulumi_digitalocean/get_images.py +7 -8
- pulumi_digitalocean/get_kubernetes_cluster.py +117 -58
- pulumi_digitalocean/get_kubernetes_versions.py +14 -15
- pulumi_digitalocean/get_load_balancer.py +60 -61
- pulumi_digitalocean/get_nfs.py +205 -0
- pulumi_digitalocean/get_nfs_snapshot.py +188 -0
- pulumi_digitalocean/get_partner_attachment.py +61 -25
- pulumi_digitalocean/get_partner_attachment_service_key.py +118 -0
- pulumi_digitalocean/get_project.py +32 -33
- pulumi_digitalocean/get_projects.py +7 -8
- pulumi_digitalocean/get_record.py +32 -33
- pulumi_digitalocean/get_records.py +13 -14
- pulumi_digitalocean/get_region.py +18 -19
- pulumi_digitalocean/get_regions.py +7 -8
- pulumi_digitalocean/get_reserved_ip.py +16 -17
- pulumi_digitalocean/get_reserved_ipv6.py +16 -17
- pulumi_digitalocean/get_sizes.py +141 -8
- pulumi_digitalocean/get_spaces_bucket.py +22 -23
- pulumi_digitalocean/get_spaces_bucket_object.py +58 -59
- pulumi_digitalocean/get_spaces_bucket_objects.py +46 -47
- pulumi_digitalocean/get_spaces_buckets.py +7 -8
- pulumi_digitalocean/get_spaces_key.py +15 -16
- pulumi_digitalocean/get_ssh_key.py +14 -15
- pulumi_digitalocean/get_ssh_keys.py +7 -8
- pulumi_digitalocean/get_tag.py +22 -23
- pulumi_digitalocean/get_tags.py +7 -8
- pulumi_digitalocean/get_volume.py +34 -35
- pulumi_digitalocean/get_volume_snapshot.py +40 -41
- pulumi_digitalocean/get_vpc.py +30 -31
- pulumi_digitalocean/get_vpc_nat_gateway.py +263 -0
- pulumi_digitalocean/get_vpc_peering.py +24 -25
- pulumi_digitalocean/kubernetes_cluster.py +483 -296
- pulumi_digitalocean/kubernetes_node_pool.py +169 -170
- pulumi_digitalocean/load_balancer.py +375 -376
- pulumi_digitalocean/monitor_alert.py +150 -151
- pulumi_digitalocean/nfs.py +481 -0
- pulumi_digitalocean/nfs_attachment.py +289 -0
- pulumi_digitalocean/nfs_snapshot.py +379 -0
- pulumi_digitalocean/outputs.py +26671 -7785
- pulumi_digitalocean/partner_attachment.py +231 -110
- pulumi_digitalocean/project.py +140 -141
- pulumi_digitalocean/project_resources.py +36 -37
- pulumi_digitalocean/provider.py +85 -86
- pulumi_digitalocean/pulumi-plugin.json +1 -1
- pulumi_digitalocean/reserved_ip.py +62 -63
- pulumi_digitalocean/reserved_ip_assignment.py +36 -37
- pulumi_digitalocean/reserved_ipv6.py +64 -65
- pulumi_digitalocean/reserved_ipv6_assignment.py +36 -37
- pulumi_digitalocean/spaces_bucket.py +106 -107
- pulumi_digitalocean/spaces_bucket_cors_configuration.py +39 -40
- pulumi_digitalocean/spaces_bucket_logging.py +70 -71
- pulumi_digitalocean/spaces_bucket_object.py +283 -284
- pulumi_digitalocean/spaces_bucket_policy.py +53 -54
- pulumi_digitalocean/spaces_key.py +49 -50
- pulumi_digitalocean/ssh_key.py +45 -46
- pulumi_digitalocean/tag.py +73 -74
- pulumi_digitalocean/uptime_alert.py +107 -108
- pulumi_digitalocean/uptime_check.py +87 -88
- pulumi_digitalocean/volume.py +182 -183
- pulumi_digitalocean/volume_attachment.py +36 -37
- pulumi_digitalocean/volume_snapshot.py +89 -90
- pulumi_digitalocean/vpc.py +97 -98
- pulumi_digitalocean/vpc_nat_gateway.py +722 -0
- pulumi_digitalocean/vpc_peering.py +54 -59
- {pulumi_digitalocean-4.46.0a1747979086.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/METADATA +1 -1
- pulumi_digitalocean-4.56.0a1766428645.dist-info/RECORD +154 -0
- {pulumi_digitalocean-4.46.0a1747979086.dist-info → pulumi_digitalocean-4.56.0a1766428645.dist-info}/WHEEL +1 -1
- pulumi_digitalocean-4.46.0a1747979086.dist-info/RECORD +0 -113
- {pulumi_digitalocean-4.46.0a1747979086.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
|
+
|