pulumi-digitalocean 4.50.0a1753508712__py3-none-any.whl → 4.50.0a1755187429__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 +80 -0
- pulumi_digitalocean/_inputs.py +7318 -4599
- pulumi_digitalocean/app.py +50 -0
- pulumi_digitalocean/database_cluster.py +28 -0
- pulumi_digitalocean/database_online_migration.py +460 -0
- pulumi_digitalocean/database_redis_config.py +4 -0
- pulumi_digitalocean/database_valkey_config.py +804 -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_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_database_cluster.py +15 -1
- pulumi_digitalocean/get_database_metrics_credentials.py +120 -0
- pulumi_digitalocean/get_genai_agent_versions.py +128 -0
- pulumi_digitalocean/get_genai_agents_by_openai_api_key.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_bases.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/outputs.py +15279 -7846
- pulumi_digitalocean/pulumi-plugin.json +1 -1
- {pulumi_digitalocean-4.50.0a1753508712.dist-info → pulumi_digitalocean-4.50.0a1755187429.dist-info}/METADATA +1 -1
- {pulumi_digitalocean-4.50.0a1753508712.dist-info → pulumi_digitalocean-4.50.0a1755187429.dist-info}/RECORD +28 -12
- {pulumi_digitalocean-4.50.0a1753508712.dist-info → pulumi_digitalocean-4.50.0a1755187429.dist-info}/WHEEL +0 -0
- {pulumi_digitalocean-4.50.0a1753508712.dist-info → pulumi_digitalocean-4.50.0a1755187429.dist-info}/top_level.txt +0 -0
pulumi_digitalocean/app.py
CHANGED
|
@@ -372,6 +372,31 @@ class App(pulumi.CustomResource):
|
|
|
372
372
|
})
|
|
373
373
|
```
|
|
374
374
|
|
|
375
|
+
### Maintenance Example
|
|
376
|
+
|
|
377
|
+
```python
|
|
378
|
+
import pulumi
|
|
379
|
+
import pulumi_digitalocean as digitalocean
|
|
380
|
+
|
|
381
|
+
maintenance_example = digitalocean.App("maintenance-example", spec={
|
|
382
|
+
"name": "maintenance-example",
|
|
383
|
+
"region": "ams",
|
|
384
|
+
"maintenance": {
|
|
385
|
+
"enabled": True,
|
|
386
|
+
"offline_page_url": "https://example.com/maintenance.html",
|
|
387
|
+
},
|
|
388
|
+
"services": [{
|
|
389
|
+
"name": "go-service",
|
|
390
|
+
"instance_count": 1,
|
|
391
|
+
"instance_size_slug": "apps-s-1vcpu-1gb",
|
|
392
|
+
"git": {
|
|
393
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-golang.git",
|
|
394
|
+
"branch": "main",
|
|
395
|
+
},
|
|
396
|
+
}],
|
|
397
|
+
})
|
|
398
|
+
```
|
|
399
|
+
|
|
375
400
|
## Import
|
|
376
401
|
|
|
377
402
|
An app can be imported using its `id`, e.g.
|
|
@@ -500,6 +525,31 @@ class App(pulumi.CustomResource):
|
|
|
500
525
|
})
|
|
501
526
|
```
|
|
502
527
|
|
|
528
|
+
### Maintenance Example
|
|
529
|
+
|
|
530
|
+
```python
|
|
531
|
+
import pulumi
|
|
532
|
+
import pulumi_digitalocean as digitalocean
|
|
533
|
+
|
|
534
|
+
maintenance_example = digitalocean.App("maintenance-example", spec={
|
|
535
|
+
"name": "maintenance-example",
|
|
536
|
+
"region": "ams",
|
|
537
|
+
"maintenance": {
|
|
538
|
+
"enabled": True,
|
|
539
|
+
"offline_page_url": "https://example.com/maintenance.html",
|
|
540
|
+
},
|
|
541
|
+
"services": [{
|
|
542
|
+
"name": "go-service",
|
|
543
|
+
"instance_count": 1,
|
|
544
|
+
"instance_size_slug": "apps-s-1vcpu-1gb",
|
|
545
|
+
"git": {
|
|
546
|
+
"repo_clone_url": "https://github.com/digitalocean/sample-golang.git",
|
|
547
|
+
"branch": "main",
|
|
548
|
+
},
|
|
549
|
+
}],
|
|
550
|
+
})
|
|
551
|
+
```
|
|
552
|
+
|
|
503
553
|
## Import
|
|
504
554
|
|
|
505
555
|
An app can be imported using its `id`, e.g.
|
|
@@ -255,6 +255,7 @@ class _DatabaseClusterState:
|
|
|
255
255
|
eviction_policy: Optional[pulumi.Input[_builtins.str]] = None,
|
|
256
256
|
host: Optional[pulumi.Input[_builtins.str]] = None,
|
|
257
257
|
maintenance_windows: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseClusterMaintenanceWindowArgs']]]] = None,
|
|
258
|
+
metrics_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
258
259
|
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
259
260
|
node_count: Optional[pulumi.Input[_builtins.int]] = None,
|
|
260
261
|
password: Optional[pulumi.Input[_builtins.str]] = None,
|
|
@@ -285,6 +286,7 @@ class _DatabaseClusterState:
|
|
|
285
286
|
:param pulumi.Input[_builtins.str] eviction_policy: A string specifying the eviction policy for a Valkey cluster. Valid values are: `noeviction`, `allkeys_lru`, `allkeys_random`, `volatile_lru`, `volatile_random`, or `volatile_ttl`.
|
|
286
287
|
:param pulumi.Input[_builtins.str] host: Database cluster's hostname.
|
|
287
288
|
:param pulumi.Input[Sequence[pulumi.Input['DatabaseClusterMaintenanceWindowArgs']]] maintenance_windows: Defines when the automatic maintenance should be performed for the database cluster.
|
|
289
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] metrics_endpoints: A list of metrics endpoints for the database cluster, providing URLs to access Prometheus-compatible metrics.
|
|
288
290
|
:param pulumi.Input[_builtins.str] name: The name of the database cluster.
|
|
289
291
|
:param pulumi.Input[_builtins.int] node_count: Number of nodes that will be included in the cluster. For `kafka` clusters, this must be 3.
|
|
290
292
|
:param pulumi.Input[_builtins.str] password: Password for the cluster's default user.
|
|
@@ -323,6 +325,8 @@ class _DatabaseClusterState:
|
|
|
323
325
|
pulumi.set(__self__, "host", host)
|
|
324
326
|
if maintenance_windows is not None:
|
|
325
327
|
pulumi.set(__self__, "maintenance_windows", maintenance_windows)
|
|
328
|
+
if metrics_endpoints is not None:
|
|
329
|
+
pulumi.set(__self__, "metrics_endpoints", metrics_endpoints)
|
|
326
330
|
if name is not None:
|
|
327
331
|
pulumi.set(__self__, "name", name)
|
|
328
332
|
if node_count is not None:
|
|
@@ -449,6 +453,18 @@ class _DatabaseClusterState:
|
|
|
449
453
|
def maintenance_windows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DatabaseClusterMaintenanceWindowArgs']]]]):
|
|
450
454
|
pulumi.set(self, "maintenance_windows", value)
|
|
451
455
|
|
|
456
|
+
@_builtins.property
|
|
457
|
+
@pulumi.getter(name="metricsEndpoints")
|
|
458
|
+
def metrics_endpoints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
459
|
+
"""
|
|
460
|
+
A list of metrics endpoints for the database cluster, providing URLs to access Prometheus-compatible metrics.
|
|
461
|
+
"""
|
|
462
|
+
return pulumi.get(self, "metrics_endpoints")
|
|
463
|
+
|
|
464
|
+
@metrics_endpoints.setter
|
|
465
|
+
def metrics_endpoints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
466
|
+
pulumi.set(self, "metrics_endpoints", value)
|
|
467
|
+
|
|
452
468
|
@_builtins.property
|
|
453
469
|
@pulumi.getter
|
|
454
470
|
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
@@ -1072,6 +1088,7 @@ class DatabaseCluster(pulumi.CustomResource):
|
|
|
1072
1088
|
__props__.__dict__["cluster_urn"] = None
|
|
1073
1089
|
__props__.__dict__["database"] = None
|
|
1074
1090
|
__props__.__dict__["host"] = None
|
|
1091
|
+
__props__.__dict__["metrics_endpoints"] = None
|
|
1075
1092
|
__props__.__dict__["password"] = None
|
|
1076
1093
|
__props__.__dict__["port"] = None
|
|
1077
1094
|
__props__.__dict__["private_host"] = None
|
|
@@ -1103,6 +1120,7 @@ class DatabaseCluster(pulumi.CustomResource):
|
|
|
1103
1120
|
eviction_policy: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1104
1121
|
host: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1105
1122
|
maintenance_windows: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseClusterMaintenanceWindowArgs', 'DatabaseClusterMaintenanceWindowArgsDict']]]]] = None,
|
|
1123
|
+
metrics_endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
1106
1124
|
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1107
1125
|
node_count: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1108
1126
|
password: Optional[pulumi.Input[_builtins.str]] = None,
|
|
@@ -1138,6 +1156,7 @@ class DatabaseCluster(pulumi.CustomResource):
|
|
|
1138
1156
|
:param pulumi.Input[_builtins.str] eviction_policy: A string specifying the eviction policy for a Valkey cluster. Valid values are: `noeviction`, `allkeys_lru`, `allkeys_random`, `volatile_lru`, `volatile_random`, or `volatile_ttl`.
|
|
1139
1157
|
:param pulumi.Input[_builtins.str] host: Database cluster's hostname.
|
|
1140
1158
|
:param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseClusterMaintenanceWindowArgs', 'DatabaseClusterMaintenanceWindowArgsDict']]]] maintenance_windows: Defines when the automatic maintenance should be performed for the database cluster.
|
|
1159
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] metrics_endpoints: A list of metrics endpoints for the database cluster, providing URLs to access Prometheus-compatible metrics.
|
|
1141
1160
|
:param pulumi.Input[_builtins.str] name: The name of the database cluster.
|
|
1142
1161
|
:param pulumi.Input[_builtins.int] node_count: Number of nodes that will be included in the cluster. For `kafka` clusters, this must be 3.
|
|
1143
1162
|
:param pulumi.Input[_builtins.str] password: Password for the cluster's default user.
|
|
@@ -1173,6 +1192,7 @@ class DatabaseCluster(pulumi.CustomResource):
|
|
|
1173
1192
|
__props__.__dict__["eviction_policy"] = eviction_policy
|
|
1174
1193
|
__props__.__dict__["host"] = host
|
|
1175
1194
|
__props__.__dict__["maintenance_windows"] = maintenance_windows
|
|
1195
|
+
__props__.__dict__["metrics_endpoints"] = metrics_endpoints
|
|
1176
1196
|
__props__.__dict__["name"] = name
|
|
1177
1197
|
__props__.__dict__["node_count"] = node_count
|
|
1178
1198
|
__props__.__dict__["password"] = password
|
|
@@ -1250,6 +1270,14 @@ class DatabaseCluster(pulumi.CustomResource):
|
|
|
1250
1270
|
"""
|
|
1251
1271
|
return pulumi.get(self, "maintenance_windows")
|
|
1252
1272
|
|
|
1273
|
+
@_builtins.property
|
|
1274
|
+
@pulumi.getter(name="metricsEndpoints")
|
|
1275
|
+
def metrics_endpoints(self) -> pulumi.Output[Sequence[_builtins.str]]:
|
|
1276
|
+
"""
|
|
1277
|
+
A list of metrics endpoints for the database cluster, providing URLs to access Prometheus-compatible metrics.
|
|
1278
|
+
"""
|
|
1279
|
+
return pulumi.get(self, "metrics_endpoints")
|
|
1280
|
+
|
|
1253
1281
|
@_builtins.property
|
|
1254
1282
|
@pulumi.getter
|
|
1255
1283
|
def name(self) -> pulumi.Output[_builtins.str]:
|
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by pulumi-language-python. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import builtins as _builtins
|
|
6
|
+
import warnings
|
|
7
|
+
import sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
15
|
+
from . import _utilities
|
|
16
|
+
from . import outputs
|
|
17
|
+
from ._inputs import *
|
|
18
|
+
|
|
19
|
+
__all__ = ['DatabaseOnlineMigrationArgs', 'DatabaseOnlineMigration']
|
|
20
|
+
|
|
21
|
+
@pulumi.input_type
|
|
22
|
+
class DatabaseOnlineMigrationArgs:
|
|
23
|
+
def __init__(__self__, *,
|
|
24
|
+
cluster_id: pulumi.Input[_builtins.str],
|
|
25
|
+
source: pulumi.Input['DatabaseOnlineMigrationSourceArgs'],
|
|
26
|
+
disable_ssl: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
27
|
+
ignore_dbs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
|
|
28
|
+
"""
|
|
29
|
+
The set of arguments for constructing a DatabaseOnlineMigration resource.
|
|
30
|
+
:param pulumi.Input[_builtins.str] cluster_id: The ID of the target MySQL cluster.
|
|
31
|
+
:param pulumi.Input['DatabaseOnlineMigrationSourceArgs'] source: Configuration for migration
|
|
32
|
+
:param pulumi.Input[_builtins.bool] disable_ssl: When set to true, enables SSL encryption when connecting to the source database.
|
|
33
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ignore_dbs: A list of databases that should be ignored during migration.
|
|
34
|
+
"""
|
|
35
|
+
pulumi.set(__self__, "cluster_id", cluster_id)
|
|
36
|
+
pulumi.set(__self__, "source", source)
|
|
37
|
+
if disable_ssl is not None:
|
|
38
|
+
pulumi.set(__self__, "disable_ssl", disable_ssl)
|
|
39
|
+
if ignore_dbs is not None:
|
|
40
|
+
pulumi.set(__self__, "ignore_dbs", ignore_dbs)
|
|
41
|
+
|
|
42
|
+
@_builtins.property
|
|
43
|
+
@pulumi.getter(name="clusterId")
|
|
44
|
+
def cluster_id(self) -> pulumi.Input[_builtins.str]:
|
|
45
|
+
"""
|
|
46
|
+
The ID of the target MySQL cluster.
|
|
47
|
+
"""
|
|
48
|
+
return pulumi.get(self, "cluster_id")
|
|
49
|
+
|
|
50
|
+
@cluster_id.setter
|
|
51
|
+
def cluster_id(self, value: pulumi.Input[_builtins.str]):
|
|
52
|
+
pulumi.set(self, "cluster_id", value)
|
|
53
|
+
|
|
54
|
+
@_builtins.property
|
|
55
|
+
@pulumi.getter
|
|
56
|
+
def source(self) -> pulumi.Input['DatabaseOnlineMigrationSourceArgs']:
|
|
57
|
+
"""
|
|
58
|
+
Configuration for migration
|
|
59
|
+
"""
|
|
60
|
+
return pulumi.get(self, "source")
|
|
61
|
+
|
|
62
|
+
@source.setter
|
|
63
|
+
def source(self, value: pulumi.Input['DatabaseOnlineMigrationSourceArgs']):
|
|
64
|
+
pulumi.set(self, "source", value)
|
|
65
|
+
|
|
66
|
+
@_builtins.property
|
|
67
|
+
@pulumi.getter(name="disableSsl")
|
|
68
|
+
def disable_ssl(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
69
|
+
"""
|
|
70
|
+
When set to true, enables SSL encryption when connecting to the source database.
|
|
71
|
+
"""
|
|
72
|
+
return pulumi.get(self, "disable_ssl")
|
|
73
|
+
|
|
74
|
+
@disable_ssl.setter
|
|
75
|
+
def disable_ssl(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
76
|
+
pulumi.set(self, "disable_ssl", value)
|
|
77
|
+
|
|
78
|
+
@_builtins.property
|
|
79
|
+
@pulumi.getter(name="ignoreDbs")
|
|
80
|
+
def ignore_dbs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
81
|
+
"""
|
|
82
|
+
A list of databases that should be ignored during migration.
|
|
83
|
+
"""
|
|
84
|
+
return pulumi.get(self, "ignore_dbs")
|
|
85
|
+
|
|
86
|
+
@ignore_dbs.setter
|
|
87
|
+
def ignore_dbs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
88
|
+
pulumi.set(self, "ignore_dbs", value)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
@pulumi.input_type
|
|
92
|
+
class _DatabaseOnlineMigrationState:
|
|
93
|
+
def __init__(__self__, *,
|
|
94
|
+
cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
95
|
+
created_at: Optional[pulumi.Input[_builtins.str]] = None,
|
|
96
|
+
disable_ssl: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
97
|
+
ignore_dbs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
98
|
+
source: Optional[pulumi.Input['DatabaseOnlineMigrationSourceArgs']] = None,
|
|
99
|
+
status: Optional[pulumi.Input[_builtins.str]] = None):
|
|
100
|
+
"""
|
|
101
|
+
Input properties used for looking up and filtering DatabaseOnlineMigration resources.
|
|
102
|
+
:param pulumi.Input[_builtins.str] cluster_id: The ID of the target MySQL cluster.
|
|
103
|
+
:param pulumi.Input[_builtins.str] created_at: The date and time when the online migration was created
|
|
104
|
+
:param pulumi.Input[_builtins.bool] disable_ssl: When set to true, enables SSL encryption when connecting to the source database.
|
|
105
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ignore_dbs: A list of databases that should be ignored during migration.
|
|
106
|
+
:param pulumi.Input['DatabaseOnlineMigrationSourceArgs'] source: Configuration for migration
|
|
107
|
+
:param pulumi.Input[_builtins.str] status: The status of the online migration
|
|
108
|
+
"""
|
|
109
|
+
if cluster_id is not None:
|
|
110
|
+
pulumi.set(__self__, "cluster_id", cluster_id)
|
|
111
|
+
if created_at is not None:
|
|
112
|
+
pulumi.set(__self__, "created_at", created_at)
|
|
113
|
+
if disable_ssl is not None:
|
|
114
|
+
pulumi.set(__self__, "disable_ssl", disable_ssl)
|
|
115
|
+
if ignore_dbs is not None:
|
|
116
|
+
pulumi.set(__self__, "ignore_dbs", ignore_dbs)
|
|
117
|
+
if source is not None:
|
|
118
|
+
pulumi.set(__self__, "source", source)
|
|
119
|
+
if status is not None:
|
|
120
|
+
pulumi.set(__self__, "status", status)
|
|
121
|
+
|
|
122
|
+
@_builtins.property
|
|
123
|
+
@pulumi.getter(name="clusterId")
|
|
124
|
+
def cluster_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
125
|
+
"""
|
|
126
|
+
The ID of the target MySQL cluster.
|
|
127
|
+
"""
|
|
128
|
+
return pulumi.get(self, "cluster_id")
|
|
129
|
+
|
|
130
|
+
@cluster_id.setter
|
|
131
|
+
def cluster_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
132
|
+
pulumi.set(self, "cluster_id", value)
|
|
133
|
+
|
|
134
|
+
@_builtins.property
|
|
135
|
+
@pulumi.getter(name="createdAt")
|
|
136
|
+
def created_at(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
137
|
+
"""
|
|
138
|
+
The date and time when the online migration was created
|
|
139
|
+
"""
|
|
140
|
+
return pulumi.get(self, "created_at")
|
|
141
|
+
|
|
142
|
+
@created_at.setter
|
|
143
|
+
def created_at(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
144
|
+
pulumi.set(self, "created_at", value)
|
|
145
|
+
|
|
146
|
+
@_builtins.property
|
|
147
|
+
@pulumi.getter(name="disableSsl")
|
|
148
|
+
def disable_ssl(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
149
|
+
"""
|
|
150
|
+
When set to true, enables SSL encryption when connecting to the source database.
|
|
151
|
+
"""
|
|
152
|
+
return pulumi.get(self, "disable_ssl")
|
|
153
|
+
|
|
154
|
+
@disable_ssl.setter
|
|
155
|
+
def disable_ssl(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
156
|
+
pulumi.set(self, "disable_ssl", value)
|
|
157
|
+
|
|
158
|
+
@_builtins.property
|
|
159
|
+
@pulumi.getter(name="ignoreDbs")
|
|
160
|
+
def ignore_dbs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
161
|
+
"""
|
|
162
|
+
A list of databases that should be ignored during migration.
|
|
163
|
+
"""
|
|
164
|
+
return pulumi.get(self, "ignore_dbs")
|
|
165
|
+
|
|
166
|
+
@ignore_dbs.setter
|
|
167
|
+
def ignore_dbs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
168
|
+
pulumi.set(self, "ignore_dbs", value)
|
|
169
|
+
|
|
170
|
+
@_builtins.property
|
|
171
|
+
@pulumi.getter
|
|
172
|
+
def source(self) -> Optional[pulumi.Input['DatabaseOnlineMigrationSourceArgs']]:
|
|
173
|
+
"""
|
|
174
|
+
Configuration for migration
|
|
175
|
+
"""
|
|
176
|
+
return pulumi.get(self, "source")
|
|
177
|
+
|
|
178
|
+
@source.setter
|
|
179
|
+
def source(self, value: Optional[pulumi.Input['DatabaseOnlineMigrationSourceArgs']]):
|
|
180
|
+
pulumi.set(self, "source", value)
|
|
181
|
+
|
|
182
|
+
@_builtins.property
|
|
183
|
+
@pulumi.getter
|
|
184
|
+
def status(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
185
|
+
"""
|
|
186
|
+
The status of the online migration
|
|
187
|
+
"""
|
|
188
|
+
return pulumi.get(self, "status")
|
|
189
|
+
|
|
190
|
+
@status.setter
|
|
191
|
+
def status(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
192
|
+
pulumi.set(self, "status", value)
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
@pulumi.type_token("digitalocean:index/databaseOnlineMigration:DatabaseOnlineMigration")
|
|
196
|
+
class DatabaseOnlineMigration(pulumi.CustomResource):
|
|
197
|
+
@overload
|
|
198
|
+
def __init__(__self__,
|
|
199
|
+
resource_name: str,
|
|
200
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
201
|
+
cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
202
|
+
disable_ssl: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
203
|
+
ignore_dbs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
204
|
+
source: Optional[pulumi.Input[Union['DatabaseOnlineMigrationSourceArgs', 'DatabaseOnlineMigrationSourceArgsDict']]] = None,
|
|
205
|
+
__props__=None):
|
|
206
|
+
"""
|
|
207
|
+
Provides a virtual resource that can be used to start an online migration
|
|
208
|
+
for a DigitalOcean managed database cluster. Migrating a cluster establishes a
|
|
209
|
+
connection with an existing cluster and replicates its contents to the target
|
|
210
|
+
cluster. If the existing database is continuously being written to, the migration
|
|
211
|
+
process will continue for up to two weeks unless it is manually stopped.
|
|
212
|
+
Online migration is only available for MySQL, PostgreSQL, Caching, and Valkey clusters.
|
|
213
|
+
|
|
214
|
+
## Example Usage
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
import pulumi
|
|
218
|
+
import pulumi_digitalocean as digitalocean
|
|
219
|
+
|
|
220
|
+
source = digitalocean.DatabaseCluster("source",
|
|
221
|
+
name="st01",
|
|
222
|
+
engine="mysql",
|
|
223
|
+
version="8",
|
|
224
|
+
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
|
|
225
|
+
region=digitalocean.Region.NYC1,
|
|
226
|
+
node_count=1,
|
|
227
|
+
tags=["production"])
|
|
228
|
+
destination = digitalocean.DatabaseCluster("destination",
|
|
229
|
+
name="dt01",
|
|
230
|
+
engine="mysql",
|
|
231
|
+
version="8",
|
|
232
|
+
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
|
|
233
|
+
region=digitalocean.Region.NYC1,
|
|
234
|
+
node_count=1,
|
|
235
|
+
tags=["production"])
|
|
236
|
+
source_db = digitalocean.DatabaseDb("source_db",
|
|
237
|
+
cluster_id=source.id,
|
|
238
|
+
name="terraform-db-om-source")
|
|
239
|
+
foobar = digitalocean.DatabaseOnlineMigration("foobar",
|
|
240
|
+
cluster_id=destination.id,
|
|
241
|
+
source={
|
|
242
|
+
"host": source.host,
|
|
243
|
+
"db_name": source_db.name,
|
|
244
|
+
"port": source.port,
|
|
245
|
+
"username": source.user,
|
|
246
|
+
"password": source.password,
|
|
247
|
+
},
|
|
248
|
+
opts = pulumi.ResourceOptions(depends_on=[
|
|
249
|
+
destination,
|
|
250
|
+
source,
|
|
251
|
+
source_db,
|
|
252
|
+
]))
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Import
|
|
256
|
+
|
|
257
|
+
A MySQL database cluster's online_migration can be imported using the `id` the parent cluster, e.g.
|
|
258
|
+
|
|
259
|
+
```sh
|
|
260
|
+
$ pulumi import digitalocean:index/databaseOnlineMigration:DatabaseOnlineMigration example 4b62829a-9c42-465b-aaa3-84051048e712
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
:param str resource_name: The name of the resource.
|
|
264
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
265
|
+
:param pulumi.Input[_builtins.str] cluster_id: The ID of the target MySQL cluster.
|
|
266
|
+
:param pulumi.Input[_builtins.bool] disable_ssl: When set to true, enables SSL encryption when connecting to the source database.
|
|
267
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ignore_dbs: A list of databases that should be ignored during migration.
|
|
268
|
+
:param pulumi.Input[Union['DatabaseOnlineMigrationSourceArgs', 'DatabaseOnlineMigrationSourceArgsDict']] source: Configuration for migration
|
|
269
|
+
"""
|
|
270
|
+
...
|
|
271
|
+
@overload
|
|
272
|
+
def __init__(__self__,
|
|
273
|
+
resource_name: str,
|
|
274
|
+
args: DatabaseOnlineMigrationArgs,
|
|
275
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
276
|
+
"""
|
|
277
|
+
Provides a virtual resource that can be used to start an online migration
|
|
278
|
+
for a DigitalOcean managed database cluster. Migrating a cluster establishes a
|
|
279
|
+
connection with an existing cluster and replicates its contents to the target
|
|
280
|
+
cluster. If the existing database is continuously being written to, the migration
|
|
281
|
+
process will continue for up to two weeks unless it is manually stopped.
|
|
282
|
+
Online migration is only available for MySQL, PostgreSQL, Caching, and Valkey clusters.
|
|
283
|
+
|
|
284
|
+
## Example Usage
|
|
285
|
+
|
|
286
|
+
```python
|
|
287
|
+
import pulumi
|
|
288
|
+
import pulumi_digitalocean as digitalocean
|
|
289
|
+
|
|
290
|
+
source = digitalocean.DatabaseCluster("source",
|
|
291
|
+
name="st01",
|
|
292
|
+
engine="mysql",
|
|
293
|
+
version="8",
|
|
294
|
+
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
|
|
295
|
+
region=digitalocean.Region.NYC1,
|
|
296
|
+
node_count=1,
|
|
297
|
+
tags=["production"])
|
|
298
|
+
destination = digitalocean.DatabaseCluster("destination",
|
|
299
|
+
name="dt01",
|
|
300
|
+
engine="mysql",
|
|
301
|
+
version="8",
|
|
302
|
+
size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
|
|
303
|
+
region=digitalocean.Region.NYC1,
|
|
304
|
+
node_count=1,
|
|
305
|
+
tags=["production"])
|
|
306
|
+
source_db = digitalocean.DatabaseDb("source_db",
|
|
307
|
+
cluster_id=source.id,
|
|
308
|
+
name="terraform-db-om-source")
|
|
309
|
+
foobar = digitalocean.DatabaseOnlineMigration("foobar",
|
|
310
|
+
cluster_id=destination.id,
|
|
311
|
+
source={
|
|
312
|
+
"host": source.host,
|
|
313
|
+
"db_name": source_db.name,
|
|
314
|
+
"port": source.port,
|
|
315
|
+
"username": source.user,
|
|
316
|
+
"password": source.password,
|
|
317
|
+
},
|
|
318
|
+
opts = pulumi.ResourceOptions(depends_on=[
|
|
319
|
+
destination,
|
|
320
|
+
source,
|
|
321
|
+
source_db,
|
|
322
|
+
]))
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
## Import
|
|
326
|
+
|
|
327
|
+
A MySQL database cluster's online_migration can be imported using the `id` the parent cluster, e.g.
|
|
328
|
+
|
|
329
|
+
```sh
|
|
330
|
+
$ pulumi import digitalocean:index/databaseOnlineMigration:DatabaseOnlineMigration example 4b62829a-9c42-465b-aaa3-84051048e712
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
:param str resource_name: The name of the resource.
|
|
334
|
+
:param DatabaseOnlineMigrationArgs args: The arguments to use to populate this resource's properties.
|
|
335
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
336
|
+
"""
|
|
337
|
+
...
|
|
338
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
339
|
+
resource_args, opts = _utilities.get_resource_args_opts(DatabaseOnlineMigrationArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
340
|
+
if resource_args is not None:
|
|
341
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
342
|
+
else:
|
|
343
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
344
|
+
|
|
345
|
+
def _internal_init(__self__,
|
|
346
|
+
resource_name: str,
|
|
347
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
348
|
+
cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
349
|
+
disable_ssl: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
350
|
+
ignore_dbs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
351
|
+
source: Optional[pulumi.Input[Union['DatabaseOnlineMigrationSourceArgs', 'DatabaseOnlineMigrationSourceArgsDict']]] = None,
|
|
352
|
+
__props__=None):
|
|
353
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
354
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
355
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
356
|
+
if opts.id is None:
|
|
357
|
+
if __props__ is not None:
|
|
358
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
359
|
+
__props__ = DatabaseOnlineMigrationArgs.__new__(DatabaseOnlineMigrationArgs)
|
|
360
|
+
|
|
361
|
+
if cluster_id is None and not opts.urn:
|
|
362
|
+
raise TypeError("Missing required property 'cluster_id'")
|
|
363
|
+
__props__.__dict__["cluster_id"] = cluster_id
|
|
364
|
+
__props__.__dict__["disable_ssl"] = disable_ssl
|
|
365
|
+
__props__.__dict__["ignore_dbs"] = ignore_dbs
|
|
366
|
+
if source is None and not opts.urn:
|
|
367
|
+
raise TypeError("Missing required property 'source'")
|
|
368
|
+
__props__.__dict__["source"] = source
|
|
369
|
+
__props__.__dict__["created_at"] = None
|
|
370
|
+
__props__.__dict__["status"] = None
|
|
371
|
+
super(DatabaseOnlineMigration, __self__).__init__(
|
|
372
|
+
'digitalocean:index/databaseOnlineMigration:DatabaseOnlineMigration',
|
|
373
|
+
resource_name,
|
|
374
|
+
__props__,
|
|
375
|
+
opts)
|
|
376
|
+
|
|
377
|
+
@staticmethod
|
|
378
|
+
def get(resource_name: str,
|
|
379
|
+
id: pulumi.Input[str],
|
|
380
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
381
|
+
cluster_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
382
|
+
created_at: Optional[pulumi.Input[_builtins.str]] = None,
|
|
383
|
+
disable_ssl: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
384
|
+
ignore_dbs: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
385
|
+
source: Optional[pulumi.Input[Union['DatabaseOnlineMigrationSourceArgs', 'DatabaseOnlineMigrationSourceArgsDict']]] = None,
|
|
386
|
+
status: Optional[pulumi.Input[_builtins.str]] = None) -> 'DatabaseOnlineMigration':
|
|
387
|
+
"""
|
|
388
|
+
Get an existing DatabaseOnlineMigration resource's state with the given name, id, and optional extra
|
|
389
|
+
properties used to qualify the lookup.
|
|
390
|
+
|
|
391
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
392
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
393
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
394
|
+
:param pulumi.Input[_builtins.str] cluster_id: The ID of the target MySQL cluster.
|
|
395
|
+
:param pulumi.Input[_builtins.str] created_at: The date and time when the online migration was created
|
|
396
|
+
:param pulumi.Input[_builtins.bool] disable_ssl: When set to true, enables SSL encryption when connecting to the source database.
|
|
397
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ignore_dbs: A list of databases that should be ignored during migration.
|
|
398
|
+
:param pulumi.Input[Union['DatabaseOnlineMigrationSourceArgs', 'DatabaseOnlineMigrationSourceArgsDict']] source: Configuration for migration
|
|
399
|
+
:param pulumi.Input[_builtins.str] status: The status of the online migration
|
|
400
|
+
"""
|
|
401
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
402
|
+
|
|
403
|
+
__props__ = _DatabaseOnlineMigrationState.__new__(_DatabaseOnlineMigrationState)
|
|
404
|
+
|
|
405
|
+
__props__.__dict__["cluster_id"] = cluster_id
|
|
406
|
+
__props__.__dict__["created_at"] = created_at
|
|
407
|
+
__props__.__dict__["disable_ssl"] = disable_ssl
|
|
408
|
+
__props__.__dict__["ignore_dbs"] = ignore_dbs
|
|
409
|
+
__props__.__dict__["source"] = source
|
|
410
|
+
__props__.__dict__["status"] = status
|
|
411
|
+
return DatabaseOnlineMigration(resource_name, opts=opts, __props__=__props__)
|
|
412
|
+
|
|
413
|
+
@_builtins.property
|
|
414
|
+
@pulumi.getter(name="clusterId")
|
|
415
|
+
def cluster_id(self) -> pulumi.Output[_builtins.str]:
|
|
416
|
+
"""
|
|
417
|
+
The ID of the target MySQL cluster.
|
|
418
|
+
"""
|
|
419
|
+
return pulumi.get(self, "cluster_id")
|
|
420
|
+
|
|
421
|
+
@_builtins.property
|
|
422
|
+
@pulumi.getter(name="createdAt")
|
|
423
|
+
def created_at(self) -> pulumi.Output[_builtins.str]:
|
|
424
|
+
"""
|
|
425
|
+
The date and time when the online migration was created
|
|
426
|
+
"""
|
|
427
|
+
return pulumi.get(self, "created_at")
|
|
428
|
+
|
|
429
|
+
@_builtins.property
|
|
430
|
+
@pulumi.getter(name="disableSsl")
|
|
431
|
+
def disable_ssl(self) -> pulumi.Output[Optional[_builtins.bool]]:
|
|
432
|
+
"""
|
|
433
|
+
When set to true, enables SSL encryption when connecting to the source database.
|
|
434
|
+
"""
|
|
435
|
+
return pulumi.get(self, "disable_ssl")
|
|
436
|
+
|
|
437
|
+
@_builtins.property
|
|
438
|
+
@pulumi.getter(name="ignoreDbs")
|
|
439
|
+
def ignore_dbs(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
440
|
+
"""
|
|
441
|
+
A list of databases that should be ignored during migration.
|
|
442
|
+
"""
|
|
443
|
+
return pulumi.get(self, "ignore_dbs")
|
|
444
|
+
|
|
445
|
+
@_builtins.property
|
|
446
|
+
@pulumi.getter
|
|
447
|
+
def source(self) -> pulumi.Output['outputs.DatabaseOnlineMigrationSource']:
|
|
448
|
+
"""
|
|
449
|
+
Configuration for migration
|
|
450
|
+
"""
|
|
451
|
+
return pulumi.get(self, "source")
|
|
452
|
+
|
|
453
|
+
@_builtins.property
|
|
454
|
+
@pulumi.getter
|
|
455
|
+
def status(self) -> pulumi.Output[_builtins.str]:
|
|
456
|
+
"""
|
|
457
|
+
The status of the online migration
|
|
458
|
+
"""
|
|
459
|
+
return pulumi.get(self, "status")
|
|
460
|
+
|
|
@@ -446,6 +446,8 @@ class DatabaseRedisConfig(pulumi.CustomResource):
|
|
|
446
446
|
Provides a virtual resource that can be used to change advanced configuration
|
|
447
447
|
options for a DigitalOcean managed Redis database cluster.
|
|
448
448
|
|
|
449
|
+
> **Note** DigitalOcean managed Redis cluster product is discontinued as of 30 June 2025 and is replaced by the Managed Valkey product. Use the `DatabaseValkeyConfig` resource instead of `DatabaseRedisConfig`
|
|
450
|
+
|
|
449
451
|
> **Note** Redis configurations are only removed from state when destroyed. The remote configuration is not unset.
|
|
450
452
|
|
|
451
453
|
## Example Usage
|
|
@@ -503,6 +505,8 @@ class DatabaseRedisConfig(pulumi.CustomResource):
|
|
|
503
505
|
Provides a virtual resource that can be used to change advanced configuration
|
|
504
506
|
options for a DigitalOcean managed Redis database cluster.
|
|
505
507
|
|
|
508
|
+
> **Note** DigitalOcean managed Redis cluster product is discontinued as of 30 June 2025 and is replaced by the Managed Valkey product. Use the `DatabaseValkeyConfig` resource instead of `DatabaseRedisConfig`
|
|
509
|
+
|
|
506
510
|
> **Note** Redis configurations are only removed from state when destroyed. The remote configuration is not unset.
|
|
507
511
|
|
|
508
512
|
## Example Usage
|