pulumi-digitalocean 4.49.0__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.

Files changed (134) hide show
  1. pulumi_digitalocean/__init__.py +81 -1
  2. pulumi_digitalocean/_enums.py +9 -9
  3. pulumi_digitalocean/_inputs.py +11204 -8486
  4. pulumi_digitalocean/app.py +137 -88
  5. pulumi_digitalocean/cdn.py +104 -105
  6. pulumi_digitalocean/certificate.py +137 -138
  7. pulumi_digitalocean/config/__init__.py +1 -1
  8. pulumi_digitalocean/config/__init__.pyi +1 -2
  9. pulumi_digitalocean/config/vars.py +10 -11
  10. pulumi_digitalocean/container_registry.py +88 -89
  11. pulumi_digitalocean/container_registry_docker_credentials.py +70 -71
  12. pulumi_digitalocean/custom_image.py +175 -176
  13. pulumi_digitalocean/database_cluster.py +374 -347
  14. pulumi_digitalocean/database_connection_pool.py +157 -158
  15. pulumi_digitalocean/database_db.py +35 -36
  16. pulumi_digitalocean/database_firewall.py +21 -22
  17. pulumi_digitalocean/database_kafka_config.py +307 -308
  18. pulumi_digitalocean/database_kafka_topic.py +81 -82
  19. pulumi_digitalocean/database_mongodb_config.py +103 -104
  20. pulumi_digitalocean/database_mysql_config.py +477 -478
  21. pulumi_digitalocean/database_online_migration.py +460 -0
  22. pulumi_digitalocean/database_opensearch_config.py +664 -665
  23. pulumi_digitalocean/database_postgresql_config.py +857 -858
  24. pulumi_digitalocean/database_redis_config.py +209 -206
  25. pulumi_digitalocean/database_replica.py +197 -198
  26. pulumi_digitalocean/database_user.py +91 -92
  27. pulumi_digitalocean/database_valkey_config.py +804 -0
  28. pulumi_digitalocean/dns_record.py +180 -181
  29. pulumi_digitalocean/domain.py +53 -54
  30. pulumi_digitalocean/droplet.py +388 -389
  31. pulumi_digitalocean/droplet_autoscale.py +53 -54
  32. pulumi_digitalocean/droplet_snapshot.py +71 -72
  33. pulumi_digitalocean/firewall.py +78 -79
  34. pulumi_digitalocean/floating_ip.py +61 -62
  35. pulumi_digitalocean/floating_ip_assignment.py +35 -36
  36. pulumi_digitalocean/genai_agent.py +452 -453
  37. pulumi_digitalocean/genai_agent_knowledge_base_attachment.py +198 -0
  38. pulumi_digitalocean/genai_agent_route.py +354 -0
  39. pulumi_digitalocean/genai_function.py +464 -0
  40. pulumi_digitalocean/genai_knowledge_base.py +627 -0
  41. pulumi_digitalocean/genai_knowledge_base_data_source.py +220 -0
  42. pulumi_digitalocean/genai_openai_api_key.py +386 -0
  43. pulumi_digitalocean/get_account.py +17 -18
  44. pulumi_digitalocean/get_app.py +27 -28
  45. pulumi_digitalocean/get_certificate.py +21 -22
  46. pulumi_digitalocean/get_container_registry.py +21 -22
  47. pulumi_digitalocean/get_database_ca.py +11 -12
  48. pulumi_digitalocean/get_database_cluster.py +75 -62
  49. pulumi_digitalocean/get_database_connection_pool.py +35 -36
  50. pulumi_digitalocean/get_database_metrics_credentials.py +120 -0
  51. pulumi_digitalocean/get_database_replica.py +45 -46
  52. pulumi_digitalocean/get_database_user.py +26 -27
  53. pulumi_digitalocean/get_domain.py +15 -16
  54. pulumi_digitalocean/get_domains.py +6 -7
  55. pulumi_digitalocean/get_droplet.py +71 -72
  56. pulumi_digitalocean/get_droplet_autoscale.py +22 -23
  57. pulumi_digitalocean/get_droplet_snapshot.py +37 -38
  58. pulumi_digitalocean/get_droplets.py +12 -13
  59. pulumi_digitalocean/get_firewall.py +30 -31
  60. pulumi_digitalocean/get_floating_ip.py +15 -16
  61. pulumi_digitalocean/get_genai_agent.py +89 -90
  62. pulumi_digitalocean/get_genai_agent_versions.py +128 -0
  63. pulumi_digitalocean/get_genai_agents.py +10 -11
  64. pulumi_digitalocean/get_genai_agents_by_openai_api_key.py +97 -0
  65. pulumi_digitalocean/get_genai_knowledge_base.py +259 -0
  66. pulumi_digitalocean/get_genai_knowledge_base_data_sources.py +97 -0
  67. pulumi_digitalocean/get_genai_knowledge_bases.py +113 -0
  68. pulumi_digitalocean/get_genai_openai_api_key.py +152 -0
  69. pulumi_digitalocean/get_genai_openai_api_keys.py +113 -0
  70. pulumi_digitalocean/get_image.py +49 -50
  71. pulumi_digitalocean/get_images.py +6 -7
  72. pulumi_digitalocean/get_kubernetes_cluster.py +53 -54
  73. pulumi_digitalocean/get_kubernetes_versions.py +13 -14
  74. pulumi_digitalocean/get_load_balancer.py +59 -60
  75. pulumi_digitalocean/get_partner_attachment.py +30 -31
  76. pulumi_digitalocean/get_partner_attachment_service_key.py +13 -14
  77. pulumi_digitalocean/get_project.py +31 -32
  78. pulumi_digitalocean/get_projects.py +6 -7
  79. pulumi_digitalocean/get_record.py +31 -32
  80. pulumi_digitalocean/get_records.py +12 -13
  81. pulumi_digitalocean/get_region.py +17 -18
  82. pulumi_digitalocean/get_regions.py +6 -7
  83. pulumi_digitalocean/get_reserved_ip.py +15 -16
  84. pulumi_digitalocean/get_reserved_ipv6.py +15 -16
  85. pulumi_digitalocean/get_sizes.py +6 -7
  86. pulumi_digitalocean/get_spaces_bucket.py +21 -22
  87. pulumi_digitalocean/get_spaces_bucket_object.py +57 -58
  88. pulumi_digitalocean/get_spaces_bucket_objects.py +45 -46
  89. pulumi_digitalocean/get_spaces_buckets.py +6 -7
  90. pulumi_digitalocean/get_spaces_key.py +14 -15
  91. pulumi_digitalocean/get_ssh_key.py +13 -14
  92. pulumi_digitalocean/get_ssh_keys.py +6 -7
  93. pulumi_digitalocean/get_tag.py +21 -22
  94. pulumi_digitalocean/get_tags.py +6 -7
  95. pulumi_digitalocean/get_volume.py +33 -34
  96. pulumi_digitalocean/get_volume_snapshot.py +39 -40
  97. pulumi_digitalocean/get_vpc.py +29 -30
  98. pulumi_digitalocean/get_vpc_nat_gateway.py +33 -34
  99. pulumi_digitalocean/get_vpc_peering.py +23 -24
  100. pulumi_digitalocean/kubernetes_cluster.py +293 -294
  101. pulumi_digitalocean/kubernetes_node_pool.py +168 -169
  102. pulumi_digitalocean/load_balancer.py +374 -375
  103. pulumi_digitalocean/monitor_alert.py +149 -150
  104. pulumi_digitalocean/outputs.py +20079 -12647
  105. pulumi_digitalocean/partner_attachment.py +150 -151
  106. pulumi_digitalocean/project.py +139 -140
  107. pulumi_digitalocean/project_resources.py +35 -36
  108. pulumi_digitalocean/provider.py +84 -85
  109. pulumi_digitalocean/pulumi-plugin.json +1 -1
  110. pulumi_digitalocean/reserved_ip.py +61 -62
  111. pulumi_digitalocean/reserved_ip_assignment.py +35 -36
  112. pulumi_digitalocean/reserved_ipv6.py +53 -54
  113. pulumi_digitalocean/reserved_ipv6_assignment.py +35 -36
  114. pulumi_digitalocean/spaces_bucket.py +105 -106
  115. pulumi_digitalocean/spaces_bucket_cors_configuration.py +38 -39
  116. pulumi_digitalocean/spaces_bucket_logging.py +69 -70
  117. pulumi_digitalocean/spaces_bucket_object.py +282 -283
  118. pulumi_digitalocean/spaces_bucket_policy.py +52 -53
  119. pulumi_digitalocean/spaces_key.py +48 -49
  120. pulumi_digitalocean/ssh_key.py +44 -45
  121. pulumi_digitalocean/tag.py +72 -73
  122. pulumi_digitalocean/uptime_alert.py +106 -107
  123. pulumi_digitalocean/uptime_check.py +86 -87
  124. pulumi_digitalocean/volume.py +181 -182
  125. pulumi_digitalocean/volume_attachment.py +35 -36
  126. pulumi_digitalocean/volume_snapshot.py +88 -89
  127. pulumi_digitalocean/vpc.py +96 -97
  128. pulumi_digitalocean/vpc_nat_gateway.py +152 -153
  129. pulumi_digitalocean/vpc_peering.py +53 -54
  130. {pulumi_digitalocean-4.49.0.dist-info → pulumi_digitalocean-4.50.0.dist-info}/METADATA +1 -1
  131. pulumi_digitalocean-4.50.0.dist-info/RECORD +135 -0
  132. pulumi_digitalocean-4.49.0.dist-info/RECORD +0 -119
  133. {pulumi_digitalocean-4.49.0.dist-info → pulumi_digitalocean-4.50.0.dist-info}/WHEEL +0 -0
  134. {pulumi_digitalocean-4.49.0.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
+