@pulumi/digitalocean 4.56.0-alpha.1766426892 → 4.56.0-alpha.1766428645
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.
- package/app.d.ts +12 -0
- package/app.js +2 -0
- package/app.js.map +1 -1
- package/byoipPrefix.d.ts +148 -0
- package/byoipPrefix.js +101 -0
- package/byoipPrefix.js.map +1 -0
- package/containerRegistries.d.ts +53 -0
- package/containerRegistries.js +64 -0
- package/containerRegistries.js.map +1 -0
- package/databaseLogsinkOpensearch.d.ts +246 -0
- package/databaseLogsinkOpensearch.js +192 -0
- package/databaseLogsinkOpensearch.js.map +1 -0
- package/databaseLogsinkRsyslog.d.ts +286 -0
- package/databaseLogsinkRsyslog.js +192 -0
- package/databaseLogsinkRsyslog.js.map +1 -0
- package/getByoipPrefix.d.ts +122 -0
- package/getByoipPrefix.js +90 -0
- package/getByoipPrefix.js.map +1 -0
- package/getByoipPrefixResources.d.ts +94 -0
- package/getByoipPrefixResources.js +80 -0
- package/getByoipPrefixResources.js.map +1 -0
- package/getContainerRegistries.d.ts +31 -0
- package/getContainerRegistries.js +22 -0
- package/getContainerRegistries.js.map +1 -0
- package/getKubernetesCluster.d.ts +6 -0
- package/getKubernetesCluster.js +4 -0
- package/getKubernetesCluster.js.map +1 -1
- package/getNfs.d.ts +97 -0
- package/getNfs.js +58 -0
- package/getNfs.js.map +1 -0
- package/getNfsSnapshot.d.ts +58 -0
- package/getNfsSnapshot.js +42 -0
- package/getNfsSnapshot.js.map +1 -0
- package/index.d.ts +36 -0
- package/index.js +55 -4
- package/index.js.map +1 -1
- package/kubernetesCluster.d.ts +15 -0
- package/kubernetesCluster.js +4 -0
- package/kubernetesCluster.js.map +1 -1
- package/nfs.d.ts +142 -0
- package/nfs.js +103 -0
- package/nfs.js.map +1 -0
- package/nfsAttachment.d.ts +96 -0
- package/nfsAttachment.js +95 -0
- package/nfsAttachment.js.map +1 -0
- package/nfsSnapshot.d.ts +124 -0
- package/nfsSnapshot.js +99 -0
- package/nfsSnapshot.js.map +1 -0
- package/package.json +2 -2
- package/types/input.d.ts +25 -0
- package/types/output.d.ts +37 -0
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
/**
|
|
3
|
+
* Provides a DigitalOcean database logsink resource allowing you to forward logs from a managed database cluster to an external rsyslog server.
|
|
4
|
+
*
|
|
5
|
+
* This resource supports the following DigitalOcean managed database engines:
|
|
6
|
+
*
|
|
7
|
+
* * PostgreSQL
|
|
8
|
+
* * MySQL
|
|
9
|
+
* * Kafka
|
|
10
|
+
* * Valkey
|
|
11
|
+
*
|
|
12
|
+
* **Note**: MongoDB databases use a different log forwarding mechanism and require Datadog logsinks (not currently available in this provider).
|
|
13
|
+
*
|
|
14
|
+
* ## Example Usage
|
|
15
|
+
*
|
|
16
|
+
* ### Basic rsyslog configuration
|
|
17
|
+
*
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
20
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
21
|
+
*
|
|
22
|
+
* const postgres_example = new digitalocean.DatabaseCluster("postgres-example", {
|
|
23
|
+
* name: "example-postgres-cluster",
|
|
24
|
+
* engine: "pg",
|
|
25
|
+
* version: "15",
|
|
26
|
+
* size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
|
|
27
|
+
* region: digitalocean.Region.NYC1,
|
|
28
|
+
* nodeCount: 1,
|
|
29
|
+
* });
|
|
30
|
+
* const example = new digitalocean.DatabaseLogsinkRsyslog("example", {
|
|
31
|
+
* clusterId: postgres_example.id,
|
|
32
|
+
* name: "rsyslog-prod",
|
|
33
|
+
* server: "192.0.2.10",
|
|
34
|
+
* port: 514,
|
|
35
|
+
* format: "rfc5424",
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* ### TLS-enabled rsyslog configuration
|
|
40
|
+
*
|
|
41
|
+
* ```typescript
|
|
42
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
43
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
44
|
+
* import * as std from "@pulumi/std";
|
|
45
|
+
*
|
|
46
|
+
* const example_tls = new digitalocean.DatabaseLogsinkRsyslog("example-tls", {
|
|
47
|
+
* clusterId: postgres_example.id,
|
|
48
|
+
* name: "rsyslog-secure",
|
|
49
|
+
* server: "logs.example.com",
|
|
50
|
+
* port: 6514,
|
|
51
|
+
* tls: true,
|
|
52
|
+
* format: "rfc5424",
|
|
53
|
+
* caCert: std.file({
|
|
54
|
+
* input: "/path/to/ca.pem",
|
|
55
|
+
* }).then(invoke => invoke.result),
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* ### mTLS (mutual TLS) configuration
|
|
60
|
+
*
|
|
61
|
+
* ```typescript
|
|
62
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
63
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
64
|
+
* import * as std from "@pulumi/std";
|
|
65
|
+
*
|
|
66
|
+
* const example_mtls = new digitalocean.DatabaseLogsinkRsyslog("example-mtls", {
|
|
67
|
+
* clusterId: postgres_example.id,
|
|
68
|
+
* name: "rsyslog-mtls",
|
|
69
|
+
* server: "secure-logs.example.com",
|
|
70
|
+
* port: 6514,
|
|
71
|
+
* tls: true,
|
|
72
|
+
* format: "rfc5424",
|
|
73
|
+
* caCert: std.file({
|
|
74
|
+
* input: "/path/to/ca.pem",
|
|
75
|
+
* }).then(invoke => invoke.result),
|
|
76
|
+
* clientCert: std.file({
|
|
77
|
+
* input: "/path/to/client.crt",
|
|
78
|
+
* }).then(invoke => invoke.result),
|
|
79
|
+
* clientKey: std.file({
|
|
80
|
+
* input: "/path/to/client.key",
|
|
81
|
+
* }).then(invoke => invoke.result),
|
|
82
|
+
* });
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* ### Custom format configuration
|
|
86
|
+
*
|
|
87
|
+
* ```typescript
|
|
88
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
89
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
90
|
+
*
|
|
91
|
+
* const example_custom = new digitalocean.DatabaseLogsinkRsyslog("example-custom", {
|
|
92
|
+
* clusterId: postgres_example.id,
|
|
93
|
+
* name: "rsyslog-custom",
|
|
94
|
+
* server: "192.0.2.10",
|
|
95
|
+
* port: 514,
|
|
96
|
+
* format: "custom",
|
|
97
|
+
* logline: "<%pri%>%timestamp:::date-rfc3339% %HOSTNAME% %app-name% %msg%",
|
|
98
|
+
* structuredData: "[example@41058 iut=\"3\"]",
|
|
99
|
+
* });
|
|
100
|
+
* ```
|
|
101
|
+
*
|
|
102
|
+
* ## Import
|
|
103
|
+
*
|
|
104
|
+
* Database logsink rsyslog resources can be imported using the composite ID format `cluster_id,logsink_id`. For example:
|
|
105
|
+
*
|
|
106
|
+
* ```sh
|
|
107
|
+
* $ pulumi import digitalocean:index/databaseLogsinkRsyslog:DatabaseLogsinkRsyslog example 245bcfd0-7f31-4ce6-a2bc-475a116cca97,f38db7c8-1f31-4ce6-a2bc-475a116cca97
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* **Note**: The cluster ID and logsink ID must be separated by a comma.
|
|
111
|
+
*/
|
|
112
|
+
export declare class DatabaseLogsinkRsyslog extends pulumi.CustomResource {
|
|
113
|
+
/**
|
|
114
|
+
* Get an existing DatabaseLogsinkRsyslog resource's state with the given name, ID, and optional extra
|
|
115
|
+
* properties used to qualify the lookup.
|
|
116
|
+
*
|
|
117
|
+
* @param name The _unique_ name of the resulting resource.
|
|
118
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
119
|
+
* @param state Any extra arguments used during the lookup.
|
|
120
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
121
|
+
*/
|
|
122
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DatabaseLogsinkRsyslogState, opts?: pulumi.CustomResourceOptions): DatabaseLogsinkRsyslog;
|
|
123
|
+
/**
|
|
124
|
+
* Returns true if the given object is an instance of DatabaseLogsinkRsyslog. This is designed to work even
|
|
125
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
126
|
+
*/
|
|
127
|
+
static isInstance(obj: any): obj is DatabaseLogsinkRsyslog;
|
|
128
|
+
/**
|
|
129
|
+
* CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
|
|
130
|
+
*/
|
|
131
|
+
readonly caCert: pulumi.Output<string | undefined>;
|
|
132
|
+
/**
|
|
133
|
+
* Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
|
|
134
|
+
*/
|
|
135
|
+
readonly clientCert: pulumi.Output<string | undefined>;
|
|
136
|
+
/**
|
|
137
|
+
* Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
|
|
138
|
+
*/
|
|
139
|
+
readonly clientKey: pulumi.Output<string | undefined>;
|
|
140
|
+
/**
|
|
141
|
+
* UUID of the source database cluster that will forward logs.
|
|
142
|
+
*/
|
|
143
|
+
readonly clusterId: pulumi.Output<string>;
|
|
144
|
+
/**
|
|
145
|
+
* Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
|
|
146
|
+
*/
|
|
147
|
+
readonly format: pulumi.Output<string | undefined>;
|
|
148
|
+
/**
|
|
149
|
+
* 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%`.
|
|
150
|
+
*/
|
|
151
|
+
readonly logline: pulumi.Output<string | undefined>;
|
|
152
|
+
/**
|
|
153
|
+
* The unique identifier for the logsink as returned by the DigitalOcean API.
|
|
154
|
+
*/
|
|
155
|
+
readonly logsinkId: pulumi.Output<string>;
|
|
156
|
+
/**
|
|
157
|
+
* Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
|
|
158
|
+
*/
|
|
159
|
+
readonly name: pulumi.Output<string>;
|
|
160
|
+
/**
|
|
161
|
+
* Port number for the rsyslog server. Must be between 1 and 65535.
|
|
162
|
+
*/
|
|
163
|
+
readonly port: pulumi.Output<number>;
|
|
164
|
+
/**
|
|
165
|
+
* Hostname or IP address of the rsyslog server.
|
|
166
|
+
*/
|
|
167
|
+
readonly server: pulumi.Output<string>;
|
|
168
|
+
/**
|
|
169
|
+
* Content of the structured data block for RFC5424 messages.
|
|
170
|
+
*/
|
|
171
|
+
readonly structuredData: pulumi.Output<string | undefined>;
|
|
172
|
+
/**
|
|
173
|
+
* 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.
|
|
174
|
+
*/
|
|
175
|
+
readonly tls: pulumi.Output<boolean | undefined>;
|
|
176
|
+
/**
|
|
177
|
+
* Create a DatabaseLogsinkRsyslog resource with the given unique name, arguments, and options.
|
|
178
|
+
*
|
|
179
|
+
* @param name The _unique_ name of the resource.
|
|
180
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
181
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
182
|
+
*/
|
|
183
|
+
constructor(name: string, args: DatabaseLogsinkRsyslogArgs, opts?: pulumi.CustomResourceOptions);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Input properties used for looking up and filtering DatabaseLogsinkRsyslog resources.
|
|
187
|
+
*/
|
|
188
|
+
export interface DatabaseLogsinkRsyslogState {
|
|
189
|
+
/**
|
|
190
|
+
* CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
|
|
191
|
+
*/
|
|
192
|
+
caCert?: pulumi.Input<string>;
|
|
193
|
+
/**
|
|
194
|
+
* Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
|
|
195
|
+
*/
|
|
196
|
+
clientCert?: pulumi.Input<string>;
|
|
197
|
+
/**
|
|
198
|
+
* Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
|
|
199
|
+
*/
|
|
200
|
+
clientKey?: pulumi.Input<string>;
|
|
201
|
+
/**
|
|
202
|
+
* UUID of the source database cluster that will forward logs.
|
|
203
|
+
*/
|
|
204
|
+
clusterId?: pulumi.Input<string>;
|
|
205
|
+
/**
|
|
206
|
+
* Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
|
|
207
|
+
*/
|
|
208
|
+
format?: pulumi.Input<string>;
|
|
209
|
+
/**
|
|
210
|
+
* 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%`.
|
|
211
|
+
*/
|
|
212
|
+
logline?: pulumi.Input<string>;
|
|
213
|
+
/**
|
|
214
|
+
* The unique identifier for the logsink as returned by the DigitalOcean API.
|
|
215
|
+
*/
|
|
216
|
+
logsinkId?: pulumi.Input<string>;
|
|
217
|
+
/**
|
|
218
|
+
* Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
|
|
219
|
+
*/
|
|
220
|
+
name?: pulumi.Input<string>;
|
|
221
|
+
/**
|
|
222
|
+
* Port number for the rsyslog server. Must be between 1 and 65535.
|
|
223
|
+
*/
|
|
224
|
+
port?: pulumi.Input<number>;
|
|
225
|
+
/**
|
|
226
|
+
* Hostname or IP address of the rsyslog server.
|
|
227
|
+
*/
|
|
228
|
+
server?: pulumi.Input<string>;
|
|
229
|
+
/**
|
|
230
|
+
* Content of the structured data block for RFC5424 messages.
|
|
231
|
+
*/
|
|
232
|
+
structuredData?: pulumi.Input<string>;
|
|
233
|
+
/**
|
|
234
|
+
* 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.
|
|
235
|
+
*/
|
|
236
|
+
tls?: pulumi.Input<boolean>;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* The set of arguments for constructing a DatabaseLogsinkRsyslog resource.
|
|
240
|
+
*/
|
|
241
|
+
export interface DatabaseLogsinkRsyslogArgs {
|
|
242
|
+
/**
|
|
243
|
+
* CA certificate for TLS verification in PEM format. Can be specified using `file()` function.
|
|
244
|
+
*/
|
|
245
|
+
caCert?: pulumi.Input<string>;
|
|
246
|
+
/**
|
|
247
|
+
* Client certificate for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`.
|
|
248
|
+
*/
|
|
249
|
+
clientCert?: pulumi.Input<string>;
|
|
250
|
+
/**
|
|
251
|
+
* Client private key for mutual TLS authentication in PEM format. **Note**: Requires `tls` to be `true`. This field is marked as sensitive.
|
|
252
|
+
*/
|
|
253
|
+
clientKey?: pulumi.Input<string>;
|
|
254
|
+
/**
|
|
255
|
+
* UUID of the source database cluster that will forward logs.
|
|
256
|
+
*/
|
|
257
|
+
clusterId: pulumi.Input<string>;
|
|
258
|
+
/**
|
|
259
|
+
* Log format to use. Must be one of `rfc5424` (default), `rfc3164`, or `custom`.
|
|
260
|
+
*/
|
|
261
|
+
format?: pulumi.Input<string>;
|
|
262
|
+
/**
|
|
263
|
+
* 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%`.
|
|
264
|
+
*/
|
|
265
|
+
logline?: pulumi.Input<string>;
|
|
266
|
+
/**
|
|
267
|
+
* Display name for the logsink. **Note**: This is immutable; changing it will force recreation of the resource.
|
|
268
|
+
*/
|
|
269
|
+
name?: pulumi.Input<string>;
|
|
270
|
+
/**
|
|
271
|
+
* Port number for the rsyslog server. Must be between 1 and 65535.
|
|
272
|
+
*/
|
|
273
|
+
port: pulumi.Input<number>;
|
|
274
|
+
/**
|
|
275
|
+
* Hostname or IP address of the rsyslog server.
|
|
276
|
+
*/
|
|
277
|
+
server: pulumi.Input<string>;
|
|
278
|
+
/**
|
|
279
|
+
* Content of the structured data block for RFC5424 messages.
|
|
280
|
+
*/
|
|
281
|
+
structuredData?: pulumi.Input<string>;
|
|
282
|
+
/**
|
|
283
|
+
* 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.
|
|
284
|
+
*/
|
|
285
|
+
tls?: pulumi.Input<boolean>;
|
|
286
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.DatabaseLogsinkRsyslog = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* Provides a DigitalOcean database logsink resource allowing you to forward logs from a managed database cluster to an external rsyslog server.
|
|
10
|
+
*
|
|
11
|
+
* This resource supports the following DigitalOcean managed database engines:
|
|
12
|
+
*
|
|
13
|
+
* * PostgreSQL
|
|
14
|
+
* * MySQL
|
|
15
|
+
* * Kafka
|
|
16
|
+
* * Valkey
|
|
17
|
+
*
|
|
18
|
+
* **Note**: MongoDB databases use a different log forwarding mechanism and require Datadog logsinks (not currently available in this provider).
|
|
19
|
+
*
|
|
20
|
+
* ## Example Usage
|
|
21
|
+
*
|
|
22
|
+
* ### Basic rsyslog configuration
|
|
23
|
+
*
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
26
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
27
|
+
*
|
|
28
|
+
* const postgres_example = new digitalocean.DatabaseCluster("postgres-example", {
|
|
29
|
+
* name: "example-postgres-cluster",
|
|
30
|
+
* engine: "pg",
|
|
31
|
+
* version: "15",
|
|
32
|
+
* size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
|
|
33
|
+
* region: digitalocean.Region.NYC1,
|
|
34
|
+
* nodeCount: 1,
|
|
35
|
+
* });
|
|
36
|
+
* const example = new digitalocean.DatabaseLogsinkRsyslog("example", {
|
|
37
|
+
* clusterId: postgres_example.id,
|
|
38
|
+
* name: "rsyslog-prod",
|
|
39
|
+
* server: "192.0.2.10",
|
|
40
|
+
* port: 514,
|
|
41
|
+
* format: "rfc5424",
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* ### TLS-enabled rsyslog configuration
|
|
46
|
+
*
|
|
47
|
+
* ```typescript
|
|
48
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
49
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
50
|
+
* import * as std from "@pulumi/std";
|
|
51
|
+
*
|
|
52
|
+
* const example_tls = new digitalocean.DatabaseLogsinkRsyslog("example-tls", {
|
|
53
|
+
* clusterId: postgres_example.id,
|
|
54
|
+
* name: "rsyslog-secure",
|
|
55
|
+
* server: "logs.example.com",
|
|
56
|
+
* port: 6514,
|
|
57
|
+
* tls: true,
|
|
58
|
+
* format: "rfc5424",
|
|
59
|
+
* caCert: std.file({
|
|
60
|
+
* input: "/path/to/ca.pem",
|
|
61
|
+
* }).then(invoke => invoke.result),
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* ### mTLS (mutual TLS) configuration
|
|
66
|
+
*
|
|
67
|
+
* ```typescript
|
|
68
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
69
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
70
|
+
* import * as std from "@pulumi/std";
|
|
71
|
+
*
|
|
72
|
+
* const example_mtls = new digitalocean.DatabaseLogsinkRsyslog("example-mtls", {
|
|
73
|
+
* clusterId: postgres_example.id,
|
|
74
|
+
* name: "rsyslog-mtls",
|
|
75
|
+
* server: "secure-logs.example.com",
|
|
76
|
+
* port: 6514,
|
|
77
|
+
* tls: true,
|
|
78
|
+
* format: "rfc5424",
|
|
79
|
+
* caCert: std.file({
|
|
80
|
+
* input: "/path/to/ca.pem",
|
|
81
|
+
* }).then(invoke => invoke.result),
|
|
82
|
+
* clientCert: std.file({
|
|
83
|
+
* input: "/path/to/client.crt",
|
|
84
|
+
* }).then(invoke => invoke.result),
|
|
85
|
+
* clientKey: std.file({
|
|
86
|
+
* input: "/path/to/client.key",
|
|
87
|
+
* }).then(invoke => invoke.result),
|
|
88
|
+
* });
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* ### Custom format configuration
|
|
92
|
+
*
|
|
93
|
+
* ```typescript
|
|
94
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
95
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
96
|
+
*
|
|
97
|
+
* const example_custom = new digitalocean.DatabaseLogsinkRsyslog("example-custom", {
|
|
98
|
+
* clusterId: postgres_example.id,
|
|
99
|
+
* name: "rsyslog-custom",
|
|
100
|
+
* server: "192.0.2.10",
|
|
101
|
+
* port: 514,
|
|
102
|
+
* format: "custom",
|
|
103
|
+
* logline: "<%pri%>%timestamp:::date-rfc3339% %HOSTNAME% %app-name% %msg%",
|
|
104
|
+
* structuredData: "[example@41058 iut=\"3\"]",
|
|
105
|
+
* });
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* ## Import
|
|
109
|
+
*
|
|
110
|
+
* Database logsink rsyslog resources can be imported using the composite ID format `cluster_id,logsink_id`. For example:
|
|
111
|
+
*
|
|
112
|
+
* ```sh
|
|
113
|
+
* $ pulumi import digitalocean:index/databaseLogsinkRsyslog:DatabaseLogsinkRsyslog example 245bcfd0-7f31-4ce6-a2bc-475a116cca97,f38db7c8-1f31-4ce6-a2bc-475a116cca97
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* **Note**: The cluster ID and logsink ID must be separated by a comma.
|
|
117
|
+
*/
|
|
118
|
+
class DatabaseLogsinkRsyslog extends pulumi.CustomResource {
|
|
119
|
+
/**
|
|
120
|
+
* Get an existing DatabaseLogsinkRsyslog resource's state with the given name, ID, and optional extra
|
|
121
|
+
* properties used to qualify the lookup.
|
|
122
|
+
*
|
|
123
|
+
* @param name The _unique_ name of the resulting resource.
|
|
124
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
125
|
+
* @param state Any extra arguments used during the lookup.
|
|
126
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
127
|
+
*/
|
|
128
|
+
static get(name, id, state, opts) {
|
|
129
|
+
return new DatabaseLogsinkRsyslog(name, state, { ...opts, id: id });
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Returns true if the given object is an instance of DatabaseLogsinkRsyslog. This is designed to work even
|
|
133
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
134
|
+
*/
|
|
135
|
+
static isInstance(obj) {
|
|
136
|
+
if (obj === undefined || obj === null) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
return obj['__pulumiType'] === DatabaseLogsinkRsyslog.__pulumiType;
|
|
140
|
+
}
|
|
141
|
+
constructor(name, argsOrState, opts) {
|
|
142
|
+
let resourceInputs = {};
|
|
143
|
+
opts = opts || {};
|
|
144
|
+
if (opts.id) {
|
|
145
|
+
const state = argsOrState;
|
|
146
|
+
resourceInputs["caCert"] = state?.caCert;
|
|
147
|
+
resourceInputs["clientCert"] = state?.clientCert;
|
|
148
|
+
resourceInputs["clientKey"] = state?.clientKey;
|
|
149
|
+
resourceInputs["clusterId"] = state?.clusterId;
|
|
150
|
+
resourceInputs["format"] = state?.format;
|
|
151
|
+
resourceInputs["logline"] = state?.logline;
|
|
152
|
+
resourceInputs["logsinkId"] = state?.logsinkId;
|
|
153
|
+
resourceInputs["name"] = state?.name;
|
|
154
|
+
resourceInputs["port"] = state?.port;
|
|
155
|
+
resourceInputs["server"] = state?.server;
|
|
156
|
+
resourceInputs["structuredData"] = state?.structuredData;
|
|
157
|
+
resourceInputs["tls"] = state?.tls;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
const args = argsOrState;
|
|
161
|
+
if (args?.clusterId === undefined && !opts.urn) {
|
|
162
|
+
throw new Error("Missing required property 'clusterId'");
|
|
163
|
+
}
|
|
164
|
+
if (args?.port === undefined && !opts.urn) {
|
|
165
|
+
throw new Error("Missing required property 'port'");
|
|
166
|
+
}
|
|
167
|
+
if (args?.server === undefined && !opts.urn) {
|
|
168
|
+
throw new Error("Missing required property 'server'");
|
|
169
|
+
}
|
|
170
|
+
resourceInputs["caCert"] = args?.caCert ? pulumi.secret(args.caCert) : undefined;
|
|
171
|
+
resourceInputs["clientCert"] = args?.clientCert;
|
|
172
|
+
resourceInputs["clientKey"] = args?.clientKey ? pulumi.secret(args.clientKey) : undefined;
|
|
173
|
+
resourceInputs["clusterId"] = args?.clusterId;
|
|
174
|
+
resourceInputs["format"] = args?.format;
|
|
175
|
+
resourceInputs["logline"] = args?.logline;
|
|
176
|
+
resourceInputs["name"] = args?.name;
|
|
177
|
+
resourceInputs["port"] = args?.port;
|
|
178
|
+
resourceInputs["server"] = args?.server;
|
|
179
|
+
resourceInputs["structuredData"] = args?.structuredData;
|
|
180
|
+
resourceInputs["tls"] = args?.tls;
|
|
181
|
+
resourceInputs["logsinkId"] = undefined /*out*/;
|
|
182
|
+
}
|
|
183
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
184
|
+
const secretOpts = { additionalSecretOutputs: ["caCert", "clientKey"] };
|
|
185
|
+
opts = pulumi.mergeOptions(opts, secretOpts);
|
|
186
|
+
super(DatabaseLogsinkRsyslog.__pulumiType, name, resourceInputs, opts);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
exports.DatabaseLogsinkRsyslog = DatabaseLogsinkRsyslog;
|
|
190
|
+
/** @internal */
|
|
191
|
+
DatabaseLogsinkRsyslog.__pulumiType = 'digitalocean:index/databaseLogsinkRsyslog:DatabaseLogsinkRsyslog';
|
|
192
|
+
//# sourceMappingURL=databaseLogsinkRsyslog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"databaseLogsinkRsyslog.js","sourceRoot":"","sources":["../databaseLogsinkRsyslog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
/**
|
|
3
|
+
* ## Example Usage
|
|
4
|
+
*
|
|
5
|
+
* Get the BYOIP prefix:
|
|
6
|
+
*
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
9
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
10
|
+
*
|
|
11
|
+
* const example = digitalocean.getByoipPrefix({
|
|
12
|
+
* uuid: "506f78a4-e098-11e5-ad9f-000f53306ae1",
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* List assigned IP addresses from a BYOIP prefix:
|
|
17
|
+
*
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
20
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
21
|
+
*
|
|
22
|
+
* const example = digitalocean.getByoipPrefix({
|
|
23
|
+
* uuid: "506f78a4-e098-11e5-ad9f-000f53306ae1",
|
|
24
|
+
* });
|
|
25
|
+
* const exampleGetByoipPrefixResources = example.then(example => digitalocean.getByoipPrefixResources({
|
|
26
|
+
* byoipPrefixUuid: example.uuid,
|
|
27
|
+
* }));
|
|
28
|
+
* export const byoipInfo = {
|
|
29
|
+
* prefix: example.then(example => example.prefix),
|
|
30
|
+
* region: example.then(example => example.region),
|
|
31
|
+
* status: example.then(example => example.status),
|
|
32
|
+
* assignedCount: exampleGetByoipPrefixResources.then(exampleGetByoipPrefixResources => exampleGetByoipPrefixResources.addresses).length,
|
|
33
|
+
* };
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function getByoipPrefix(args: GetByoipPrefixArgs, opts?: pulumi.InvokeOptions): Promise<GetByoipPrefixResult>;
|
|
37
|
+
/**
|
|
38
|
+
* A collection of arguments for invoking getByoipPrefix.
|
|
39
|
+
*/
|
|
40
|
+
export interface GetByoipPrefixArgs {
|
|
41
|
+
/**
|
|
42
|
+
* The UUID of the BYOIP prefix.
|
|
43
|
+
*/
|
|
44
|
+
uuid: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A collection of values returned by getByoipPrefix.
|
|
48
|
+
*/
|
|
49
|
+
export interface GetByoipPrefixResult {
|
|
50
|
+
/**
|
|
51
|
+
* A boolean indicating whether the prefix is currently being advertised.
|
|
52
|
+
*/
|
|
53
|
+
readonly advertised: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* The reason for failure if the status is "failed".
|
|
56
|
+
*/
|
|
57
|
+
readonly failureReason: string;
|
|
58
|
+
/**
|
|
59
|
+
* The provider-assigned unique ID for this managed resource.
|
|
60
|
+
*/
|
|
61
|
+
readonly id: string;
|
|
62
|
+
/**
|
|
63
|
+
* The CIDR notation of the prefix (e.g., "192.0.2.0/24").
|
|
64
|
+
*/
|
|
65
|
+
readonly prefix: string;
|
|
66
|
+
/**
|
|
67
|
+
* The DigitalOcean region where the prefix is deployed.
|
|
68
|
+
*/
|
|
69
|
+
readonly region: string;
|
|
70
|
+
/**
|
|
71
|
+
* The current status of the BYOIP prefix (e.g., "verified", "pending", "failed").
|
|
72
|
+
*/
|
|
73
|
+
readonly status: string;
|
|
74
|
+
/**
|
|
75
|
+
* The UUID of the BYOIP prefix.
|
|
76
|
+
*/
|
|
77
|
+
readonly uuid: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* ## Example Usage
|
|
81
|
+
*
|
|
82
|
+
* Get the BYOIP prefix:
|
|
83
|
+
*
|
|
84
|
+
* ```typescript
|
|
85
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
86
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
87
|
+
*
|
|
88
|
+
* const example = digitalocean.getByoipPrefix({
|
|
89
|
+
* uuid: "506f78a4-e098-11e5-ad9f-000f53306ae1",
|
|
90
|
+
* });
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* List assigned IP addresses from a BYOIP prefix:
|
|
94
|
+
*
|
|
95
|
+
* ```typescript
|
|
96
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
97
|
+
* import * as digitalocean from "@pulumi/digitalocean";
|
|
98
|
+
*
|
|
99
|
+
* const example = digitalocean.getByoipPrefix({
|
|
100
|
+
* uuid: "506f78a4-e098-11e5-ad9f-000f53306ae1",
|
|
101
|
+
* });
|
|
102
|
+
* const exampleGetByoipPrefixResources = example.then(example => digitalocean.getByoipPrefixResources({
|
|
103
|
+
* byoipPrefixUuid: example.uuid,
|
|
104
|
+
* }));
|
|
105
|
+
* export const byoipInfo = {
|
|
106
|
+
* prefix: example.then(example => example.prefix),
|
|
107
|
+
* region: example.then(example => example.region),
|
|
108
|
+
* status: example.then(example => example.status),
|
|
109
|
+
* assignedCount: exampleGetByoipPrefixResources.then(exampleGetByoipPrefixResources => exampleGetByoipPrefixResources.addresses).length,
|
|
110
|
+
* };
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function getByoipPrefixOutput(args: GetByoipPrefixOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetByoipPrefixResult>;
|
|
114
|
+
/**
|
|
115
|
+
* A collection of arguments for invoking getByoipPrefix.
|
|
116
|
+
*/
|
|
117
|
+
export interface GetByoipPrefixOutputArgs {
|
|
118
|
+
/**
|
|
119
|
+
* The UUID of the BYOIP prefix.
|
|
120
|
+
*/
|
|
121
|
+
uuid: pulumi.Input<string>;
|
|
122
|
+
}
|