pulumi-digitalocean 4.27.0__py3-none-any.whl → 4.39.0a1736833057__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 (107) hide show
  1. pulumi_digitalocean/__init__.py +75 -0
  2. pulumi_digitalocean/_enums.py +131 -52
  3. pulumi_digitalocean/_inputs.py +5767 -399
  4. pulumi_digitalocean/_utilities.py +41 -5
  5. pulumi_digitalocean/app.py +199 -67
  6. pulumi_digitalocean/cdn.py +20 -23
  7. pulumi_digitalocean/certificate.py +45 -42
  8. pulumi_digitalocean/config/__init__.pyi +5 -0
  9. pulumi_digitalocean/config/vars.py +5 -0
  10. pulumi_digitalocean/container_registry.py +11 -6
  11. pulumi_digitalocean/container_registry_docker_credentials.py +53 -12
  12. pulumi_digitalocean/custom_image.py +13 -8
  13. pulumi_digitalocean/database_cluster.py +298 -120
  14. pulumi_digitalocean/database_connection_pool.py +15 -10
  15. pulumi_digitalocean/database_db.py +19 -12
  16. pulumi_digitalocean/database_firewall.py +78 -75
  17. pulumi_digitalocean/database_kafka_config.py +1040 -0
  18. pulumi_digitalocean/database_kafka_topic.py +66 -61
  19. pulumi_digitalocean/database_mongodb_config.py +452 -0
  20. pulumi_digitalocean/database_mysql_config.py +15 -12
  21. pulumi_digitalocean/database_opensearch_config.py +2069 -0
  22. pulumi_digitalocean/database_postgresql_config.py +2614 -0
  23. pulumi_digitalocean/database_redis_config.py +29 -12
  24. pulumi_digitalocean/database_replica.py +29 -24
  25. pulumi_digitalocean/database_user.py +90 -75
  26. pulumi_digitalocean/dns_record.py +13 -8
  27. pulumi_digitalocean/domain.py +7 -6
  28. pulumi_digitalocean/droplet.py +89 -31
  29. pulumi_digitalocean/droplet_autoscale.py +474 -0
  30. pulumi_digitalocean/droplet_snapshot.py +23 -14
  31. pulumi_digitalocean/firewall.py +118 -106
  32. pulumi_digitalocean/floating_ip.py +19 -16
  33. pulumi_digitalocean/floating_ip_assignment.py +19 -16
  34. pulumi_digitalocean/get_account.py +18 -9
  35. pulumi_digitalocean/get_app.py +57 -10
  36. pulumi_digitalocean/get_certificate.py +19 -9
  37. pulumi_digitalocean/get_container_registry.py +19 -9
  38. pulumi_digitalocean/get_database_ca.py +14 -9
  39. pulumi_digitalocean/get_database_cluster.py +119 -11
  40. pulumi_digitalocean/get_database_connection_pool.py +25 -9
  41. pulumi_digitalocean/get_database_replica.py +29 -9
  42. pulumi_digitalocean/get_database_user.py +21 -9
  43. pulumi_digitalocean/get_domain.py +16 -9
  44. pulumi_digitalocean/get_domains.py +34 -27
  45. pulumi_digitalocean/get_droplet.py +66 -23
  46. pulumi_digitalocean/get_droplet_autoscale.py +197 -0
  47. pulumi_digitalocean/get_droplet_snapshot.py +36 -23
  48. pulumi_digitalocean/get_droplets.py +80 -54
  49. pulumi_digitalocean/get_firewall.py +29 -13
  50. pulumi_digitalocean/get_floating_ip.py +16 -9
  51. pulumi_digitalocean/get_image.py +42 -27
  52. pulumi_digitalocean/get_images.py +56 -53
  53. pulumi_digitalocean/get_kubernetes_cluster.py +53 -6
  54. pulumi_digitalocean/get_kubernetes_versions.py +43 -41
  55. pulumi_digitalocean/get_load_balancer.py +81 -17
  56. pulumi_digitalocean/get_project.py +23 -9
  57. pulumi_digitalocean/get_projects.py +56 -53
  58. pulumi_digitalocean/get_record.py +23 -9
  59. pulumi_digitalocean/get_records.py +62 -13
  60. pulumi_digitalocean/get_region.py +17 -9
  61. pulumi_digitalocean/get_regions.py +56 -53
  62. pulumi_digitalocean/get_reserved_ip.py +16 -9
  63. pulumi_digitalocean/get_reserved_ipv6.py +118 -0
  64. pulumi_digitalocean/get_sizes.py +24 -13
  65. pulumi_digitalocean/get_spaces_bucket.py +18 -9
  66. pulumi_digitalocean/get_spaces_bucket_object.py +41 -14
  67. pulumi_digitalocean/get_spaces_bucket_objects.py +26 -5
  68. pulumi_digitalocean/get_spaces_buckets.py +48 -45
  69. pulumi_digitalocean/get_ssh_key.py +27 -19
  70. pulumi_digitalocean/get_ssh_keys.py +40 -37
  71. pulumi_digitalocean/get_tag.py +31 -19
  72. pulumi_digitalocean/get_tags.py +32 -25
  73. pulumi_digitalocean/get_volume.py +35 -23
  74. pulumi_digitalocean/get_volume_snapshot.py +35 -21
  75. pulumi_digitalocean/get_vpc.py +33 -23
  76. pulumi_digitalocean/get_vpc_peering.py +244 -0
  77. pulumi_digitalocean/kubernetes_cluster.py +86 -35
  78. pulumi_digitalocean/kubernetes_node_pool.py +46 -43
  79. pulumi_digitalocean/load_balancer.py +320 -157
  80. pulumi_digitalocean/monitor_alert.py +17 -12
  81. pulumi_digitalocean/outputs.py +3419 -344
  82. pulumi_digitalocean/project.py +19 -16
  83. pulumi_digitalocean/project_resources.py +11 -8
  84. pulumi_digitalocean/provider.py +5 -0
  85. pulumi_digitalocean/pulumi-plugin.json +2 -1
  86. pulumi_digitalocean/reserved_ip.py +19 -16
  87. pulumi_digitalocean/reserved_ip_assignment.py +19 -16
  88. pulumi_digitalocean/reserved_ipv6.py +232 -0
  89. pulumi_digitalocean/reserved_ipv6_assignment.py +171 -0
  90. pulumi_digitalocean/spaces_bucket.py +70 -79
  91. pulumi_digitalocean/spaces_bucket_cors_configuration.py +30 -25
  92. pulumi_digitalocean/spaces_bucket_object.py +11 -12
  93. pulumi_digitalocean/spaces_bucket_policy.py +21 -16
  94. pulumi_digitalocean/ssh_key.py +19 -10
  95. pulumi_digitalocean/tag.py +13 -10
  96. pulumi_digitalocean/uptime_alert.py +10 -5
  97. pulumi_digitalocean/uptime_check.py +5 -0
  98. pulumi_digitalocean/volume.py +47 -50
  99. pulumi_digitalocean/volume_attachment.py +25 -20
  100. pulumi_digitalocean/volume_snapshot.py +17 -10
  101. pulumi_digitalocean/vpc.py +27 -22
  102. pulumi_digitalocean/vpc_peering.py +378 -0
  103. {pulumi_digitalocean-4.27.0.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/METADATA +7 -6
  104. pulumi_digitalocean-4.39.0a1736833057.dist-info/RECORD +108 -0
  105. {pulumi_digitalocean-4.27.0.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/WHEEL +1 -1
  106. pulumi_digitalocean-4.27.0.dist-info/RECORD +0 -97
  107. {pulumi_digitalocean-4.27.0.dist-info → pulumi_digitalocean-4.39.0a1736833057.dist-info}/top_level.txt +0 -0
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['DatabaseRedisConfigArgs', 'DatabaseRedisConfig']
@@ -39,6 +44,8 @@ class DatabaseRedisConfigArgs:
39
44
  :param pulumi.Input[str] persistence: When persistence is `rdb`, Redis does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is `off`, no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.
40
45
  :param pulumi.Input[int] pubsub_client_output_buffer_limit: The output buffer limit for pub/sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
41
46
  :param pulumi.Input[bool] ssl: A boolean indicating whether to require SSL to access Redis.
47
+ - When enabled, Redis accepts only SSL connections on port `25061`.
48
+ - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
42
49
  :param pulumi.Input[int] timeout: The Redis idle connection timeout in seconds.
43
50
  """
44
51
  pulumi.set(__self__, "cluster_id", cluster_id)
@@ -190,6 +197,8 @@ class DatabaseRedisConfigArgs:
190
197
  def ssl(self) -> Optional[pulumi.Input[bool]]:
191
198
  """
192
199
  A boolean indicating whether to require SSL to access Redis.
200
+ - When enabled, Redis accepts only SSL connections on port `25061`.
201
+ - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
193
202
  """
194
203
  return pulumi.get(self, "ssl")
195
204
 
@@ -238,6 +247,8 @@ class _DatabaseRedisConfigState:
238
247
  :param pulumi.Input[str] persistence: When persistence is `rdb`, Redis does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is `off`, no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.
239
248
  :param pulumi.Input[int] pubsub_client_output_buffer_limit: The output buffer limit for pub/sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
240
249
  :param pulumi.Input[bool] ssl: A boolean indicating whether to require SSL to access Redis.
250
+ - When enabled, Redis accepts only SSL connections on port `25061`.
251
+ - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
241
252
  :param pulumi.Input[int] timeout: The Redis idle connection timeout in seconds.
242
253
  """
243
254
  if acl_channels_default is not None:
@@ -390,6 +401,8 @@ class _DatabaseRedisConfigState:
390
401
  def ssl(self) -> Optional[pulumi.Input[bool]]:
391
402
  """
392
403
  A boolean indicating whether to require SSL to access Redis.
404
+ - When enabled, Redis accepts only SSL connections on port `25061`.
405
+ - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
393
406
  """
394
407
  return pulumi.get(self, "ssl")
395
408
 
@@ -436,24 +449,23 @@ class DatabaseRedisConfig(pulumi.CustomResource):
436
449
 
437
450
  ## Example Usage
438
451
 
439
- <!--Start PulumiCodeChooser -->
440
452
  ```python
441
453
  import pulumi
442
454
  import pulumi_digitalocean as digitalocean
443
455
 
444
- example_database_cluster = digitalocean.DatabaseCluster("exampleDatabaseCluster",
456
+ example_database_cluster = digitalocean.DatabaseCluster("example",
457
+ name="example-redis-cluster",
445
458
  engine="redis",
446
459
  version="7",
447
- size="db-s-1vcpu-1gb",
448
- region="nyc1",
460
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
461
+ region=digitalocean.Region.NYC1,
449
462
  node_count=1)
450
- example_database_redis_config = digitalocean.DatabaseRedisConfig("exampleDatabaseRedisConfig",
463
+ example = digitalocean.DatabaseRedisConfig("example",
451
464
  cluster_id=example_database_cluster.id,
452
465
  maxmemory_policy="allkeys-lru",
453
466
  notify_keyspace_events="KEA",
454
467
  timeout=90)
455
468
  ```
456
- <!--End PulumiCodeChooser -->
457
469
 
458
470
  ## Import
459
471
 
@@ -476,6 +488,8 @@ class DatabaseRedisConfig(pulumi.CustomResource):
476
488
  :param pulumi.Input[str] persistence: When persistence is `rdb`, Redis does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is `off`, no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.
477
489
  :param pulumi.Input[int] pubsub_client_output_buffer_limit: The output buffer limit for pub/sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
478
490
  :param pulumi.Input[bool] ssl: A boolean indicating whether to require SSL to access Redis.
491
+ - When enabled, Redis accepts only SSL connections on port `25061`.
492
+ - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
479
493
  :param pulumi.Input[int] timeout: The Redis idle connection timeout in seconds.
480
494
  """
481
495
  ...
@@ -492,24 +506,23 @@ class DatabaseRedisConfig(pulumi.CustomResource):
492
506
 
493
507
  ## Example Usage
494
508
 
495
- <!--Start PulumiCodeChooser -->
496
509
  ```python
497
510
  import pulumi
498
511
  import pulumi_digitalocean as digitalocean
499
512
 
500
- example_database_cluster = digitalocean.DatabaseCluster("exampleDatabaseCluster",
513
+ example_database_cluster = digitalocean.DatabaseCluster("example",
514
+ name="example-redis-cluster",
501
515
  engine="redis",
502
516
  version="7",
503
- size="db-s-1vcpu-1gb",
504
- region="nyc1",
517
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
518
+ region=digitalocean.Region.NYC1,
505
519
  node_count=1)
506
- example_database_redis_config = digitalocean.DatabaseRedisConfig("exampleDatabaseRedisConfig",
520
+ example = digitalocean.DatabaseRedisConfig("example",
507
521
  cluster_id=example_database_cluster.id,
508
522
  maxmemory_policy="allkeys-lru",
509
523
  notify_keyspace_events="KEA",
510
524
  timeout=90)
511
525
  ```
512
- <!--End PulumiCodeChooser -->
513
526
 
514
527
  ## Import
515
528
 
@@ -609,6 +622,8 @@ class DatabaseRedisConfig(pulumi.CustomResource):
609
622
  :param pulumi.Input[str] persistence: When persistence is `rdb`, Redis does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is `off`, no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.
610
623
  :param pulumi.Input[int] pubsub_client_output_buffer_limit: The output buffer limit for pub/sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
611
624
  :param pulumi.Input[bool] ssl: A boolean indicating whether to require SSL to access Redis.
625
+ - When enabled, Redis accepts only SSL connections on port `25061`.
626
+ - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
612
627
  :param pulumi.Input[int] timeout: The Redis idle connection timeout in seconds.
613
628
  """
614
629
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -714,6 +729,8 @@ class DatabaseRedisConfig(pulumi.CustomResource):
714
729
  def ssl(self) -> pulumi.Output[bool]:
715
730
  """
716
731
  A boolean indicating whether to require SSL to access Redis.
732
+ - When enabled, Redis accepts only SSL connections on port `25061`.
733
+ - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
717
734
  """
718
735
  return pulumi.get(self, "ssl")
719
736
 
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
  from ._enums import *
12
17
 
@@ -406,31 +411,31 @@ class DatabaseReplica(pulumi.CustomResource):
406
411
  ## Example Usage
407
412
 
408
413
  ### Create a new PostgreSQL database replica
409
- <!--Start PulumiCodeChooser -->
410
414
  ```python
411
415
  import pulumi
412
416
  import pulumi_digitalocean as digitalocean
413
417
 
414
418
  postgres_example = digitalocean.DatabaseCluster("postgres-example",
419
+ name="example-postgres-cluster",
415
420
  engine="pg",
416
- version="11",
417
- size="db-s-1vcpu-1gb",
418
- region="nyc1",
421
+ version="15",
422
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
423
+ region=digitalocean.Region.NYC1,
419
424
  node_count=1)
420
425
  replica_example = digitalocean.DatabaseReplica("replica-example",
421
426
  cluster_id=postgres_example.id,
422
- size="db-s-1vcpu-1gb",
423
- region="nyc1")
424
- pulumi.export("uUID", replica_example.uuid)
427
+ name="replica-example",
428
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
429
+ region=digitalocean.Region.NYC1)
430
+ pulumi.export("UUID", replica_example.uuid)
425
431
  # Create firewall rule for database replica
426
432
  example_fw = digitalocean.DatabaseFirewall("example-fw",
427
433
  cluster_id=replica_example.uuid,
428
- rules=[digitalocean.DatabaseFirewallRuleArgs(
429
- type="ip_addr",
430
- value="192.168.1.1",
431
- )])
434
+ rules=[{
435
+ "type": "ip_addr",
436
+ "value": "192.168.1.1",
437
+ }])
432
438
  ```
433
- <!--End PulumiCodeChooser -->
434
439
 
435
440
  ## Import
436
441
 
@@ -463,31 +468,31 @@ class DatabaseReplica(pulumi.CustomResource):
463
468
  ## Example Usage
464
469
 
465
470
  ### Create a new PostgreSQL database replica
466
- <!--Start PulumiCodeChooser -->
467
471
  ```python
468
472
  import pulumi
469
473
  import pulumi_digitalocean as digitalocean
470
474
 
471
475
  postgres_example = digitalocean.DatabaseCluster("postgres-example",
476
+ name="example-postgres-cluster",
472
477
  engine="pg",
473
- version="11",
474
- size="db-s-1vcpu-1gb",
475
- region="nyc1",
478
+ version="15",
479
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
480
+ region=digitalocean.Region.NYC1,
476
481
  node_count=1)
477
482
  replica_example = digitalocean.DatabaseReplica("replica-example",
478
483
  cluster_id=postgres_example.id,
479
- size="db-s-1vcpu-1gb",
480
- region="nyc1")
481
- pulumi.export("uUID", replica_example.uuid)
484
+ name="replica-example",
485
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
486
+ region=digitalocean.Region.NYC1)
487
+ pulumi.export("UUID", replica_example.uuid)
482
488
  # Create firewall rule for database replica
483
489
  example_fw = digitalocean.DatabaseFirewall("example-fw",
484
490
  cluster_id=replica_example.uuid,
485
- rules=[digitalocean.DatabaseFirewallRuleArgs(
486
- type="ip_addr",
487
- value="192.168.1.1",
488
- )])
491
+ rules=[{
492
+ "type": "ip_addr",
493
+ "value": "192.168.1.1",
494
+ }])
489
495
  ```
490
- <!--End PulumiCodeChooser -->
491
496
 
492
497
  ## Import
493
498
 
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
  from . import outputs
12
17
  from ._inputs import *
@@ -232,7 +237,7 @@ class DatabaseUser(pulumi.CustomResource):
232
237
  cluster_id: Optional[pulumi.Input[str]] = None,
233
238
  mysql_auth_plugin: Optional[pulumi.Input[str]] = None,
234
239
  name: Optional[pulumi.Input[str]] = None,
235
- settings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseUserSettingArgs']]]]] = None,
240
+ settings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseUserSettingArgs', 'DatabaseUserSettingArgsDict']]]]] = None,
236
241
  __props__=None):
237
242
  """
238
243
  Provides a DigitalOcean database user resource. When creating a new database cluster, a default admin user with name `doadmin` will be created. Then, this resource can be used to provide additional normal users inside the cluster.
@@ -242,74 +247,79 @@ class DatabaseUser(pulumi.CustomResource):
242
247
  ## Example Usage
243
248
 
244
249
  ### Create a new PostgreSQL database user
245
- <!--Start PulumiCodeChooser -->
246
250
  ```python
247
251
  import pulumi
248
252
  import pulumi_digitalocean as digitalocean
249
253
 
250
254
  postgres_example = digitalocean.DatabaseCluster("postgres-example",
255
+ name="example-postgres-cluster",
251
256
  engine="pg",
252
- version="11",
253
- size="db-s-1vcpu-1gb",
254
- region="nyc1",
257
+ version="15",
258
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
259
+ region=digitalocean.Region.NYC1,
255
260
  node_count=1)
256
- user_example = digitalocean.DatabaseUser("user-example", cluster_id=postgres_example.id)
261
+ user_example = digitalocean.DatabaseUser("user-example",
262
+ cluster_id=postgres_example.id,
263
+ name="foobar")
257
264
  ```
258
- <!--End PulumiCodeChooser -->
259
265
 
260
266
  ### Create a new user for a PostgreSQL database replica
261
- <!--Start PulumiCodeChooser -->
262
267
  ```python
263
268
  import pulumi
264
269
  import pulumi_digitalocean as digitalocean
265
270
 
266
271
  postgres_example = digitalocean.DatabaseCluster("postgres-example",
272
+ name="example-postgres-cluster",
267
273
  engine="pg",
268
- version="11",
269
- size="db-s-1vcpu-1gb",
270
- region="nyc1",
274
+ version="15",
275
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
276
+ region=digitalocean.Region.NYC1,
271
277
  node_count=1)
272
278
  replica_example = digitalocean.DatabaseReplica("replica-example",
273
279
  cluster_id=postgres_example.id,
274
- size="db-s-1vcpu-1gb",
275
- region="nyc1")
276
- user_example = digitalocean.DatabaseUser("user-example", cluster_id=replica_example.uuid)
280
+ name="replica-example",
281
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
282
+ region=digitalocean.Region.NYC1)
283
+ user_example = digitalocean.DatabaseUser("user-example",
284
+ cluster_id=replica_example.uuid,
285
+ name="foobar")
277
286
  ```
278
- <!--End PulumiCodeChooser -->
279
287
 
280
288
  ### Create a new user for a Kafka database cluster
281
- <!--Start PulumiCodeChooser -->
282
289
  ```python
283
290
  import pulumi
284
291
  import pulumi_digitalocean as digitalocean
285
292
 
286
293
  kafka_example = digitalocean.DatabaseCluster("kafka-example",
294
+ name="example-kafka-cluster",
287
295
  engine="kafka",
288
296
  version="3.5",
289
297
  size="db-s-2vcpu-2gb",
290
- region="nyc1",
298
+ region=digitalocean.Region.NYC1,
291
299
  node_count=3)
292
- foobar_topic = digitalocean.DatabaseKafkaTopic("foobarTopic", cluster_id=digitalocean_database_cluster["foobar"]["id"])
293
- foobar_user = digitalocean.DatabaseUser("foobarUser",
294
- cluster_id=digitalocean_database_cluster["foobar"]["id"],
295
- settings=[digitalocean.DatabaseUserSettingArgs(
296
- acls=[
297
- digitalocean.DatabaseUserSettingAclArgs(
298
- topic="topic-1",
299
- permission="produce",
300
- ),
301
- digitalocean.DatabaseUserSettingAclArgs(
302
- topic="topic-2",
303
- permission="produceconsume",
304
- ),
305
- digitalocean.DatabaseUserSettingAclArgs(
306
- topic="topic-*",
307
- permission="consume",
308
- ),
300
+ foobar_topic = digitalocean.DatabaseKafkaTopic("foobar_topic",
301
+ cluster_id=foobar["id"],
302
+ name="topic-1")
303
+ foobar_user = digitalocean.DatabaseUser("foobar_user",
304
+ cluster_id=foobar["id"],
305
+ name="example-user",
306
+ settings=[{
307
+ "acls": [
308
+ {
309
+ "topic": "topic-1",
310
+ "permission": "produce",
311
+ },
312
+ {
313
+ "topic": "topic-2",
314
+ "permission": "produceconsume",
315
+ },
316
+ {
317
+ "topic": "topic-*",
318
+ "permission": "consume",
319
+ },
309
320
  ],
310
- )])
321
+ }])
311
322
  ```
312
- <!--End PulumiCodeChooser -->
313
323
 
314
324
  ## Import
315
325
 
@@ -326,7 +336,7 @@ class DatabaseUser(pulumi.CustomResource):
326
336
  :param pulumi.Input[str] cluster_id: The ID of the original source database cluster.
327
337
  :param pulumi.Input[str] mysql_auth_plugin: The authentication method to use for connections to the MySQL user account. The valid values are `mysql_native_password` or `caching_sha2_password` (this is the default).
328
338
  :param pulumi.Input[str] name: The name for the database user.
329
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseUserSettingArgs']]]] settings: Contains optional settings for the user.
339
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseUserSettingArgs', 'DatabaseUserSettingArgsDict']]]] settings: Contains optional settings for the user.
330
340
  The `settings` block is documented below.
331
341
  """
332
342
  ...
@@ -343,74 +353,79 @@ class DatabaseUser(pulumi.CustomResource):
343
353
  ## Example Usage
344
354
 
345
355
  ### Create a new PostgreSQL database user
346
- <!--Start PulumiCodeChooser -->
347
356
  ```python
348
357
  import pulumi
349
358
  import pulumi_digitalocean as digitalocean
350
359
 
351
360
  postgres_example = digitalocean.DatabaseCluster("postgres-example",
361
+ name="example-postgres-cluster",
352
362
  engine="pg",
353
- version="11",
354
- size="db-s-1vcpu-1gb",
355
- region="nyc1",
363
+ version="15",
364
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
365
+ region=digitalocean.Region.NYC1,
356
366
  node_count=1)
357
- user_example = digitalocean.DatabaseUser("user-example", cluster_id=postgres_example.id)
367
+ user_example = digitalocean.DatabaseUser("user-example",
368
+ cluster_id=postgres_example.id,
369
+ name="foobar")
358
370
  ```
359
- <!--End PulumiCodeChooser -->
360
371
 
361
372
  ### Create a new user for a PostgreSQL database replica
362
- <!--Start PulumiCodeChooser -->
363
373
  ```python
364
374
  import pulumi
365
375
  import pulumi_digitalocean as digitalocean
366
376
 
367
377
  postgres_example = digitalocean.DatabaseCluster("postgres-example",
378
+ name="example-postgres-cluster",
368
379
  engine="pg",
369
- version="11",
370
- size="db-s-1vcpu-1gb",
371
- region="nyc1",
380
+ version="15",
381
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
382
+ region=digitalocean.Region.NYC1,
372
383
  node_count=1)
373
384
  replica_example = digitalocean.DatabaseReplica("replica-example",
374
385
  cluster_id=postgres_example.id,
375
- size="db-s-1vcpu-1gb",
376
- region="nyc1")
377
- user_example = digitalocean.DatabaseUser("user-example", cluster_id=replica_example.uuid)
386
+ name="replica-example",
387
+ size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
388
+ region=digitalocean.Region.NYC1)
389
+ user_example = digitalocean.DatabaseUser("user-example",
390
+ cluster_id=replica_example.uuid,
391
+ name="foobar")
378
392
  ```
379
- <!--End PulumiCodeChooser -->
380
393
 
381
394
  ### Create a new user for a Kafka database cluster
382
- <!--Start PulumiCodeChooser -->
383
395
  ```python
384
396
  import pulumi
385
397
  import pulumi_digitalocean as digitalocean
386
398
 
387
399
  kafka_example = digitalocean.DatabaseCluster("kafka-example",
400
+ name="example-kafka-cluster",
388
401
  engine="kafka",
389
402
  version="3.5",
390
403
  size="db-s-2vcpu-2gb",
391
- region="nyc1",
404
+ region=digitalocean.Region.NYC1,
392
405
  node_count=3)
393
- foobar_topic = digitalocean.DatabaseKafkaTopic("foobarTopic", cluster_id=digitalocean_database_cluster["foobar"]["id"])
394
- foobar_user = digitalocean.DatabaseUser("foobarUser",
395
- cluster_id=digitalocean_database_cluster["foobar"]["id"],
396
- settings=[digitalocean.DatabaseUserSettingArgs(
397
- acls=[
398
- digitalocean.DatabaseUserSettingAclArgs(
399
- topic="topic-1",
400
- permission="produce",
401
- ),
402
- digitalocean.DatabaseUserSettingAclArgs(
403
- topic="topic-2",
404
- permission="produceconsume",
405
- ),
406
- digitalocean.DatabaseUserSettingAclArgs(
407
- topic="topic-*",
408
- permission="consume",
409
- ),
406
+ foobar_topic = digitalocean.DatabaseKafkaTopic("foobar_topic",
407
+ cluster_id=foobar["id"],
408
+ name="topic-1")
409
+ foobar_user = digitalocean.DatabaseUser("foobar_user",
410
+ cluster_id=foobar["id"],
411
+ name="example-user",
412
+ settings=[{
413
+ "acls": [
414
+ {
415
+ "topic": "topic-1",
416
+ "permission": "produce",
417
+ },
418
+ {
419
+ "topic": "topic-2",
420
+ "permission": "produceconsume",
421
+ },
422
+ {
423
+ "topic": "topic-*",
424
+ "permission": "consume",
425
+ },
410
426
  ],
411
- )])
427
+ }])
412
428
  ```
413
- <!--End PulumiCodeChooser -->
414
429
 
415
430
  ## Import
416
431
 
@@ -440,7 +455,7 @@ class DatabaseUser(pulumi.CustomResource):
440
455
  cluster_id: Optional[pulumi.Input[str]] = None,
441
456
  mysql_auth_plugin: Optional[pulumi.Input[str]] = None,
442
457
  name: Optional[pulumi.Input[str]] = None,
443
- settings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseUserSettingArgs']]]]] = None,
458
+ settings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseUserSettingArgs', 'DatabaseUserSettingArgsDict']]]]] = None,
444
459
  __props__=None):
445
460
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
446
461
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -479,7 +494,7 @@ class DatabaseUser(pulumi.CustomResource):
479
494
  name: Optional[pulumi.Input[str]] = None,
480
495
  password: Optional[pulumi.Input[str]] = None,
481
496
  role: Optional[pulumi.Input[str]] = None,
482
- settings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseUserSettingArgs']]]]] = None) -> 'DatabaseUser':
497
+ settings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseUserSettingArgs', 'DatabaseUserSettingArgsDict']]]]] = None) -> 'DatabaseUser':
483
498
  """
484
499
  Get an existing DatabaseUser resource's state with the given name, id, and optional extra
485
500
  properties used to qualify the lookup.
@@ -494,7 +509,7 @@ class DatabaseUser(pulumi.CustomResource):
494
509
  :param pulumi.Input[str] name: The name for the database user.
495
510
  :param pulumi.Input[str] password: Password for the database user.
496
511
  :param pulumi.Input[str] role: Role for the database user. The value will be either "primary" or "normal".
497
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseUserSettingArgs']]]] settings: Contains optional settings for the user.
512
+ :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseUserSettingArgs', 'DatabaseUserSettingArgsDict']]]] settings: Contains optional settings for the user.
498
513
  The `settings` block is documented below.
499
514
  """
500
515
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
  from ._enums import *
12
17
 
@@ -382,7 +387,6 @@ class DnsRecord(pulumi.CustomResource):
382
387
 
383
388
  ## Example Usage
384
389
 
385
- <!--Start PulumiCodeChooser -->
386
390
  ```python
387
391
  import pulumi
388
392
  import pulumi_digitalocean as digitalocean
@@ -391,18 +395,19 @@ class DnsRecord(pulumi.CustomResource):
391
395
  # Add an A record to the domain for www.example.com.
392
396
  www = digitalocean.DnsRecord("www",
393
397
  domain=default.id,
394
- type="A",
398
+ type=digitalocean.RecordType.A,
399
+ name="www",
395
400
  value="192.168.0.11")
396
401
  # Add a MX record for the example.com domain itself.
397
402
  mx = digitalocean.DnsRecord("mx",
398
403
  domain=default.id,
399
- type="MX",
404
+ type=digitalocean.RecordType.MX,
405
+ name="@",
400
406
  priority=10,
401
407
  value="mail.example.com.")
402
408
  pulumi.export("wwwFqdn", www.fqdn)
403
409
  pulumi.export("mxFqdn", mx.fqdn)
404
410
  ```
405
- <!--End PulumiCodeChooser -->
406
411
 
407
412
  ## Import
408
413
 
@@ -438,7 +443,6 @@ class DnsRecord(pulumi.CustomResource):
438
443
 
439
444
  ## Example Usage
440
445
 
441
- <!--Start PulumiCodeChooser -->
442
446
  ```python
443
447
  import pulumi
444
448
  import pulumi_digitalocean as digitalocean
@@ -447,18 +451,19 @@ class DnsRecord(pulumi.CustomResource):
447
451
  # Add an A record to the domain for www.example.com.
448
452
  www = digitalocean.DnsRecord("www",
449
453
  domain=default.id,
450
- type="A",
454
+ type=digitalocean.RecordType.A,
455
+ name="www",
451
456
  value="192.168.0.11")
452
457
  # Add a MX record for the example.com domain itself.
453
458
  mx = digitalocean.DnsRecord("mx",
454
459
  domain=default.id,
455
- type="MX",
460
+ type=digitalocean.RecordType.MX,
461
+ name="@",
456
462
  priority=10,
457
463
  value="mail.example.com.")
458
464
  pulumi.export("wwwFqdn", www.fqdn)
459
465
  pulumi.export("mxFqdn", mx.fqdn)
460
466
  ```
461
- <!--End PulumiCodeChooser -->
462
467
 
463
468
  ## Import
464
469
 
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['DomainArgs', 'Domain']
@@ -139,7 +144,6 @@ class Domain(pulumi.CustomResource):
139
144
 
140
145
  ## Example Usage
141
146
 
142
- <!--Start PulumiCodeChooser -->
143
147
  ```python
144
148
  import pulumi
145
149
  import pulumi_digitalocean as digitalocean
@@ -147,9 +151,8 @@ class Domain(pulumi.CustomResource):
147
151
  # Create a new domain
148
152
  default = digitalocean.Domain("default",
149
153
  name="example.com",
150
- ip_address=digitalocean_droplet["foo"]["ipv4_address"])
154
+ ip_address=foo["ipv4Address"])
151
155
  ```
152
- <!--End PulumiCodeChooser -->
153
156
 
154
157
  ## Import
155
158
 
@@ -176,7 +179,6 @@ class Domain(pulumi.CustomResource):
176
179
 
177
180
  ## Example Usage
178
181
 
179
- <!--Start PulumiCodeChooser -->
180
182
  ```python
181
183
  import pulumi
182
184
  import pulumi_digitalocean as digitalocean
@@ -184,9 +186,8 @@ class Domain(pulumi.CustomResource):
184
186
  # Create a new domain
185
187
  default = digitalocean.Domain("default",
186
188
  name="example.com",
187
- ip_address=digitalocean_droplet["foo"]["ipv4_address"])
189
+ ip_address=foo["ipv4Address"])
188
190
  ```
189
- <!--End PulumiCodeChooser -->
190
191
 
191
192
  ## Import
192
193