pulumi-digitalocean 4.49.0a1751946418__py3-none-any.whl → 4.50.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pulumi-digitalocean might be problematic. Click here for more details.
- pulumi_digitalocean/__init__.py +81 -1
- pulumi_digitalocean/_enums.py +9 -9
- pulumi_digitalocean/_inputs.py +11204 -8486
- pulumi_digitalocean/app.py +137 -88
- pulumi_digitalocean/cdn.py +104 -105
- pulumi_digitalocean/certificate.py +137 -138
- pulumi_digitalocean/config/__init__.py +1 -1
- pulumi_digitalocean/config/__init__.pyi +1 -2
- pulumi_digitalocean/config/vars.py +10 -11
- pulumi_digitalocean/container_registry.py +88 -89
- pulumi_digitalocean/container_registry_docker_credentials.py +70 -71
- pulumi_digitalocean/custom_image.py +175 -176
- pulumi_digitalocean/database_cluster.py +374 -347
- pulumi_digitalocean/database_connection_pool.py +157 -158
- pulumi_digitalocean/database_db.py +35 -36
- pulumi_digitalocean/database_firewall.py +21 -22
- pulumi_digitalocean/database_kafka_config.py +307 -308
- pulumi_digitalocean/database_kafka_topic.py +81 -82
- pulumi_digitalocean/database_mongodb_config.py +103 -104
- pulumi_digitalocean/database_mysql_config.py +477 -478
- pulumi_digitalocean/database_online_migration.py +460 -0
- pulumi_digitalocean/database_opensearch_config.py +664 -665
- pulumi_digitalocean/database_postgresql_config.py +857 -858
- pulumi_digitalocean/database_redis_config.py +209 -206
- pulumi_digitalocean/database_replica.py +197 -198
- pulumi_digitalocean/database_user.py +91 -92
- pulumi_digitalocean/database_valkey_config.py +804 -0
- pulumi_digitalocean/dns_record.py +180 -181
- pulumi_digitalocean/domain.py +53 -54
- pulumi_digitalocean/droplet.py +388 -389
- pulumi_digitalocean/droplet_autoscale.py +53 -54
- pulumi_digitalocean/droplet_snapshot.py +71 -72
- pulumi_digitalocean/firewall.py +78 -79
- pulumi_digitalocean/floating_ip.py +61 -62
- pulumi_digitalocean/floating_ip_assignment.py +35 -36
- pulumi_digitalocean/genai_agent.py +452 -453
- 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_account.py +17 -18
- pulumi_digitalocean/get_app.py +27 -28
- pulumi_digitalocean/get_certificate.py +21 -22
- pulumi_digitalocean/get_container_registry.py +21 -22
- pulumi_digitalocean/get_database_ca.py +11 -12
- pulumi_digitalocean/get_database_cluster.py +75 -62
- pulumi_digitalocean/get_database_connection_pool.py +35 -36
- pulumi_digitalocean/get_database_metrics_credentials.py +120 -0
- pulumi_digitalocean/get_database_replica.py +45 -46
- pulumi_digitalocean/get_database_user.py +26 -27
- pulumi_digitalocean/get_domain.py +15 -16
- pulumi_digitalocean/get_domains.py +6 -7
- pulumi_digitalocean/get_droplet.py +71 -72
- pulumi_digitalocean/get_droplet_autoscale.py +22 -23
- pulumi_digitalocean/get_droplet_snapshot.py +37 -38
- pulumi_digitalocean/get_droplets.py +12 -13
- pulumi_digitalocean/get_firewall.py +30 -31
- pulumi_digitalocean/get_floating_ip.py +15 -16
- pulumi_digitalocean/get_genai_agent.py +89 -90
- pulumi_digitalocean/get_genai_agent_versions.py +128 -0
- pulumi_digitalocean/get_genai_agents.py +10 -11
- 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/get_image.py +49 -50
- pulumi_digitalocean/get_images.py +6 -7
- pulumi_digitalocean/get_kubernetes_cluster.py +53 -54
- pulumi_digitalocean/get_kubernetes_versions.py +13 -14
- pulumi_digitalocean/get_load_balancer.py +59 -60
- pulumi_digitalocean/get_partner_attachment.py +30 -31
- pulumi_digitalocean/get_partner_attachment_service_key.py +13 -14
- pulumi_digitalocean/get_project.py +31 -32
- pulumi_digitalocean/get_projects.py +6 -7
- pulumi_digitalocean/get_record.py +31 -32
- pulumi_digitalocean/get_records.py +12 -13
- pulumi_digitalocean/get_region.py +17 -18
- pulumi_digitalocean/get_regions.py +6 -7
- pulumi_digitalocean/get_reserved_ip.py +15 -16
- pulumi_digitalocean/get_reserved_ipv6.py +15 -16
- pulumi_digitalocean/get_sizes.py +6 -7
- pulumi_digitalocean/get_spaces_bucket.py +21 -22
- pulumi_digitalocean/get_spaces_bucket_object.py +57 -58
- pulumi_digitalocean/get_spaces_bucket_objects.py +45 -46
- pulumi_digitalocean/get_spaces_buckets.py +6 -7
- pulumi_digitalocean/get_spaces_key.py +14 -15
- pulumi_digitalocean/get_ssh_key.py +13 -14
- pulumi_digitalocean/get_ssh_keys.py +6 -7
- pulumi_digitalocean/get_tag.py +21 -22
- pulumi_digitalocean/get_tags.py +6 -7
- pulumi_digitalocean/get_volume.py +33 -34
- pulumi_digitalocean/get_volume_snapshot.py +39 -40
- pulumi_digitalocean/get_vpc.py +29 -30
- pulumi_digitalocean/get_vpc_nat_gateway.py +33 -34
- pulumi_digitalocean/get_vpc_peering.py +23 -24
- pulumi_digitalocean/kubernetes_cluster.py +293 -294
- pulumi_digitalocean/kubernetes_node_pool.py +168 -169
- pulumi_digitalocean/load_balancer.py +374 -375
- pulumi_digitalocean/monitor_alert.py +149 -150
- pulumi_digitalocean/outputs.py +20079 -12647
- pulumi_digitalocean/partner_attachment.py +150 -151
- pulumi_digitalocean/project.py +139 -140
- pulumi_digitalocean/project_resources.py +35 -36
- pulumi_digitalocean/provider.py +84 -85
- pulumi_digitalocean/pulumi-plugin.json +1 -1
- pulumi_digitalocean/reserved_ip.py +61 -62
- pulumi_digitalocean/reserved_ip_assignment.py +35 -36
- pulumi_digitalocean/reserved_ipv6.py +53 -54
- pulumi_digitalocean/reserved_ipv6_assignment.py +35 -36
- pulumi_digitalocean/spaces_bucket.py +105 -106
- pulumi_digitalocean/spaces_bucket_cors_configuration.py +38 -39
- pulumi_digitalocean/spaces_bucket_logging.py +69 -70
- pulumi_digitalocean/spaces_bucket_object.py +282 -283
- pulumi_digitalocean/spaces_bucket_policy.py +52 -53
- pulumi_digitalocean/spaces_key.py +48 -49
- pulumi_digitalocean/ssh_key.py +44 -45
- pulumi_digitalocean/tag.py +72 -73
- pulumi_digitalocean/uptime_alert.py +106 -107
- pulumi_digitalocean/uptime_check.py +86 -87
- pulumi_digitalocean/volume.py +181 -182
- pulumi_digitalocean/volume_attachment.py +35 -36
- pulumi_digitalocean/volume_snapshot.py +88 -89
- pulumi_digitalocean/vpc.py +96 -97
- pulumi_digitalocean/vpc_nat_gateway.py +152 -153
- pulumi_digitalocean/vpc_peering.py +53 -54
- {pulumi_digitalocean-4.49.0a1751946418.dist-info → pulumi_digitalocean-4.50.0.dist-info}/METADATA +1 -1
- pulumi_digitalocean-4.50.0.dist-info/RECORD +135 -0
- pulumi_digitalocean-4.49.0a1751946418.dist-info/RECORD +0 -119
- {pulumi_digitalocean-4.49.0a1751946418.dist-info → pulumi_digitalocean-4.50.0.dist-info}/WHEEL +0 -0
- {pulumi_digitalocean-4.49.0a1751946418.dist-info → pulumi_digitalocean-4.50.0.dist-info}/top_level.txt +0 -0
|
@@ -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
|
+
|