pulumi-digitalocean 4.27.0a1710332933__py3-none-any.whl → 4.39.0a1736849637__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.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736849637.dist-info}/METADATA +7 -6
  104. pulumi_digitalocean-4.39.0a1736849637.dist-info/RECORD +108 -0
  105. {pulumi_digitalocean-4.27.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736849637.dist-info}/WHEEL +1 -1
  106. pulumi_digitalocean-4.27.0a1710332933.dist-info/RECORD +0 -97
  107. {pulumi_digitalocean-4.27.0a1710332933.dist-info → pulumi_digitalocean-4.39.0a1736849637.dist-info}/top_level.txt +0 -0
@@ -4,11 +4,18 @@
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
16
+ from . import outputs
11
17
  from ._enums import *
18
+ from ._inputs import *
12
19
 
13
20
  __all__ = ['DropletArgs', 'Droplet']
14
21
 
@@ -17,6 +24,7 @@ class DropletArgs:
17
24
  def __init__(__self__, *,
18
25
  image: pulumi.Input[str],
19
26
  size: pulumi.Input[Union[str, 'DropletSlug']],
27
+ backup_policy: Optional[pulumi.Input['DropletBackupPolicyArgs']] = None,
20
28
  backups: Optional[pulumi.Input[bool]] = None,
21
29
  droplet_agent: Optional[pulumi.Input[bool]] = None,
22
30
  graceful_shutdown: Optional[pulumi.Input[bool]] = None,
@@ -35,7 +43,8 @@ class DropletArgs:
35
43
  """
36
44
  The set of arguments for constructing a Droplet resource.
37
45
  :param pulumi.Input[str] image: The Droplet image ID or slug. This could be either image ID or droplet snapshot ID.
38
- :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that indentifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
46
+ :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that identifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
47
+ :param pulumi.Input['DropletBackupPolicyArgs'] backup_policy: An object specifying the backup policy for the Droplet. If omitted and `backups` is `true`, the backup plan will default to daily.
39
48
  :param pulumi.Input[bool] backups: Boolean controlling if backups are made. Defaults to
40
49
  false.
41
50
  :param pulumi.Input[bool] droplet_agent: A boolean indicating whether to install the
@@ -71,12 +80,14 @@ class DropletArgs:
71
80
  be added or removed via this provider. Modifying this field will prompt you
72
81
  to destroy and recreate the Droplet.
73
82
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of the tags to be applied to this Droplet.
74
- :param pulumi.Input[str] user_data: A string of the desired User Data for the Droplet.
83
+ :param pulumi.Input[str] user_data: A string of the desired User Data provided [during Droplet creation](https://docs.digitalocean.com/products/droplets/how-to/provide-user-data/). Changing this forces a new resource to be created.
75
84
  :param pulumi.Input[Sequence[pulumi.Input[str]]] volume_ids: A list of the IDs of each block storage volume to be attached to the Droplet.
76
85
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the Droplet will be located.
77
86
  """
78
87
  pulumi.set(__self__, "image", image)
79
88
  pulumi.set(__self__, "size", size)
89
+ if backup_policy is not None:
90
+ pulumi.set(__self__, "backup_policy", backup_policy)
80
91
  if backups is not None:
81
92
  pulumi.set(__self__, "backups", backups)
82
93
  if droplet_agent is not None:
@@ -127,7 +138,7 @@ class DropletArgs:
127
138
  @pulumi.getter
128
139
  def size(self) -> pulumi.Input[Union[str, 'DropletSlug']]:
129
140
  """
130
- The unique slug that indentifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
141
+ The unique slug that identifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
131
142
  """
132
143
  return pulumi.get(self, "size")
133
144
 
@@ -135,6 +146,18 @@ class DropletArgs:
135
146
  def size(self, value: pulumi.Input[Union[str, 'DropletSlug']]):
136
147
  pulumi.set(self, "size", value)
137
148
 
149
+ @property
150
+ @pulumi.getter(name="backupPolicy")
151
+ def backup_policy(self) -> Optional[pulumi.Input['DropletBackupPolicyArgs']]:
152
+ """
153
+ An object specifying the backup policy for the Droplet. If omitted and `backups` is `true`, the backup plan will default to daily.
154
+ """
155
+ return pulumi.get(self, "backup_policy")
156
+
157
+ @backup_policy.setter
158
+ def backup_policy(self, value: Optional[pulumi.Input['DropletBackupPolicyArgs']]):
159
+ pulumi.set(self, "backup_policy", value)
160
+
138
161
  @property
139
162
  @pulumi.getter
140
163
  def backups(self) -> Optional[pulumi.Input[bool]]:
@@ -235,14 +258,12 @@ class DropletArgs:
235
258
 
236
259
  @property
237
260
  @pulumi.getter(name="privateNetworking")
261
+ @_utilities.deprecated("""This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""")
238
262
  def private_networking(self) -> Optional[pulumi.Input[bool]]:
239
263
  """
240
264
  **Deprecated** Boolean controlling if private networking
241
265
  is enabled. This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.
242
266
  """
243
- warnings.warn("""This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""", DeprecationWarning)
244
- pulumi.log.warn("""private_networking is deprecated: This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""")
245
-
246
267
  return pulumi.get(self, "private_networking")
247
268
 
248
269
  @private_networking.setter
@@ -309,7 +330,7 @@ class DropletArgs:
309
330
  @pulumi.getter(name="userData")
310
331
  def user_data(self) -> Optional[pulumi.Input[str]]:
311
332
  """
312
- A string of the desired User Data for the Droplet.
333
+ A string of the desired User Data provided [during Droplet creation](https://docs.digitalocean.com/products/droplets/how-to/provide-user-data/). Changing this forces a new resource to be created.
313
334
  """
314
335
  return pulumi.get(self, "user_data")
315
336
 
@@ -345,6 +366,7 @@ class DropletArgs:
345
366
  @pulumi.input_type
346
367
  class _DropletState:
347
368
  def __init__(__self__, *,
369
+ backup_policy: Optional[pulumi.Input['DropletBackupPolicyArgs']] = None,
348
370
  backups: Optional[pulumi.Input[bool]] = None,
349
371
  created_at: Optional[pulumi.Input[str]] = None,
350
372
  disk: Optional[pulumi.Input[int]] = None,
@@ -375,6 +397,7 @@ class _DropletState:
375
397
  vpc_uuid: Optional[pulumi.Input[str]] = None):
376
398
  """
377
399
  Input properties used for looking up and filtering Droplet resources.
400
+ :param pulumi.Input['DropletBackupPolicyArgs'] backup_policy: An object specifying the backup policy for the Droplet. If omitted and `backups` is `true`, the backup plan will default to daily.
378
401
  :param pulumi.Input[bool] backups: Boolean controlling if backups are made. Defaults to
379
402
  false.
380
403
  :param pulumi.Input[int] disk: The size of the instance's disk in GB
@@ -411,7 +434,7 @@ class _DropletState:
411
434
  size when resizing a Droplet. It defaults to `true`. When set to `false`,
412
435
  only the Droplet's RAM and CPU will be resized. **Increasing a Droplet's disk
413
436
  size is a permanent change**. Increasing only RAM and CPU is reversible.
414
- :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that indentifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
437
+ :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that identifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
415
438
  :param pulumi.Input[Sequence[pulumi.Input[str]]] ssh_keys: A list of SSH key IDs or fingerprints to enable in
416
439
  the format `[12345, 123456]`. To retrieve this info, use the
417
440
  [DigitalOcean API](https://docs.digitalocean.com/reference/api/api-reference/#tag/SSH-Keys)
@@ -420,11 +443,13 @@ class _DropletState:
420
443
  to destroy and recreate the Droplet.
421
444
  :param pulumi.Input[str] status: The status of the Droplet
422
445
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of the tags to be applied to this Droplet.
423
- :param pulumi.Input[str] user_data: A string of the desired User Data for the Droplet.
446
+ :param pulumi.Input[str] user_data: A string of the desired User Data provided [during Droplet creation](https://docs.digitalocean.com/products/droplets/how-to/provide-user-data/). Changing this forces a new resource to be created.
424
447
  :param pulumi.Input[int] vcpus: The number of the instance's virtual CPUs
425
448
  :param pulumi.Input[Sequence[pulumi.Input[str]]] volume_ids: A list of the IDs of each block storage volume to be attached to the Droplet.
426
449
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the Droplet will be located.
427
450
  """
451
+ if backup_policy is not None:
452
+ pulumi.set(__self__, "backup_policy", backup_policy)
428
453
  if backups is not None:
429
454
  pulumi.set(__self__, "backups", backups)
430
455
  if created_at is not None:
@@ -485,6 +510,18 @@ class _DropletState:
485
510
  if vpc_uuid is not None:
486
511
  pulumi.set(__self__, "vpc_uuid", vpc_uuid)
487
512
 
513
+ @property
514
+ @pulumi.getter(name="backupPolicy")
515
+ def backup_policy(self) -> Optional[pulumi.Input['DropletBackupPolicyArgs']]:
516
+ """
517
+ An object specifying the backup policy for the Droplet. If omitted and `backups` is `true`, the backup plan will default to daily.
518
+ """
519
+ return pulumi.get(self, "backup_policy")
520
+
521
+ @backup_policy.setter
522
+ def backup_policy(self, value: Optional[pulumi.Input['DropletBackupPolicyArgs']]):
523
+ pulumi.set(self, "backup_policy", value)
524
+
488
525
  @property
489
526
  @pulumi.getter
490
527
  def backups(self) -> Optional[pulumi.Input[bool]]:
@@ -699,14 +736,12 @@ class _DropletState:
699
736
 
700
737
  @property
701
738
  @pulumi.getter(name="privateNetworking")
739
+ @_utilities.deprecated("""This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""")
702
740
  def private_networking(self) -> Optional[pulumi.Input[bool]]:
703
741
  """
704
742
  **Deprecated** Boolean controlling if private networking
705
743
  is enabled. This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.
706
744
  """
707
- warnings.warn("""This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""", DeprecationWarning)
708
- pulumi.log.warn("""private_networking is deprecated: This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""")
709
-
710
745
  return pulumi.get(self, "private_networking")
711
746
 
712
747
  @private_networking.setter
@@ -744,7 +779,7 @@ class _DropletState:
744
779
  @pulumi.getter
745
780
  def size(self) -> Optional[pulumi.Input[Union[str, 'DropletSlug']]]:
746
781
  """
747
- The unique slug that indentifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
782
+ The unique slug that identifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
748
783
  """
749
784
  return pulumi.get(self, "size")
750
785
 
@@ -797,7 +832,7 @@ class _DropletState:
797
832
  @pulumi.getter(name="userData")
798
833
  def user_data(self) -> Optional[pulumi.Input[str]]:
799
834
  """
800
- A string of the desired User Data for the Droplet.
835
+ A string of the desired User Data provided [during Droplet creation](https://docs.digitalocean.com/products/droplets/how-to/provide-user-data/). Changing this forces a new resource to be created.
801
836
  """
802
837
  return pulumi.get(self, "user_data")
803
838
 
@@ -847,6 +882,7 @@ class Droplet(pulumi.CustomResource):
847
882
  def __init__(__self__,
848
883
  resource_name: str,
849
884
  opts: Optional[pulumi.ResourceOptions] = None,
885
+ backup_policy: Optional[pulumi.Input[Union['DropletBackupPolicyArgs', 'DropletBackupPolicyArgsDict']]] = None,
850
886
  backups: Optional[pulumi.Input[bool]] = None,
851
887
  droplet_agent: Optional[pulumi.Input[bool]] = None,
852
888
  graceful_shutdown: Optional[pulumi.Input[bool]] = None,
@@ -871,7 +907,6 @@ class Droplet(pulumi.CustomResource):
871
907
 
872
908
  ## Example Usage
873
909
 
874
- <!--Start PulumiCodeChooser -->
875
910
  ```python
876
911
  import pulumi
877
912
  import pulumi_digitalocean as digitalocean
@@ -879,10 +914,16 @@ class Droplet(pulumi.CustomResource):
879
914
  # Create a new Web Droplet in the nyc2 region
880
915
  web = digitalocean.Droplet("web",
881
916
  image="ubuntu-20-04-x64",
882
- region="nyc2",
883
- size="s-1vcpu-1gb")
917
+ name="web-1",
918
+ region=digitalocean.Region.NYC2,
919
+ size=digitalocean.DropletSlug.DROPLET_S1_VCPU1_GB,
920
+ backups=True,
921
+ backup_policy={
922
+ "plan": "weekly",
923
+ "weekday": "TUE",
924
+ "hour": 8,
925
+ })
884
926
  ```
885
- <!--End PulumiCodeChooser -->
886
927
 
887
928
  ## Import
888
929
 
@@ -894,6 +935,7 @@ class Droplet(pulumi.CustomResource):
894
935
 
895
936
  :param str resource_name: The name of the resource.
896
937
  :param pulumi.ResourceOptions opts: Options for the resource.
938
+ :param pulumi.Input[Union['DropletBackupPolicyArgs', 'DropletBackupPolicyArgsDict']] backup_policy: An object specifying the backup policy for the Droplet. If omitted and `backups` is `true`, the backup plan will default to daily.
897
939
  :param pulumi.Input[bool] backups: Boolean controlling if backups are made. Defaults to
898
940
  false.
899
941
  :param pulumi.Input[bool] droplet_agent: A boolean indicating whether to install the
@@ -923,7 +965,7 @@ class Droplet(pulumi.CustomResource):
923
965
  size when resizing a Droplet. It defaults to `true`. When set to `false`,
924
966
  only the Droplet's RAM and CPU will be resized. **Increasing a Droplet's disk
925
967
  size is a permanent change**. Increasing only RAM and CPU is reversible.
926
- :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that indentifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
968
+ :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that identifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
927
969
  :param pulumi.Input[Sequence[pulumi.Input[str]]] ssh_keys: A list of SSH key IDs or fingerprints to enable in
928
970
  the format `[12345, 123456]`. To retrieve this info, use the
929
971
  [DigitalOcean API](https://docs.digitalocean.com/reference/api/api-reference/#tag/SSH-Keys)
@@ -931,7 +973,7 @@ class Droplet(pulumi.CustomResource):
931
973
  be added or removed via this provider. Modifying this field will prompt you
932
974
  to destroy and recreate the Droplet.
933
975
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of the tags to be applied to this Droplet.
934
- :param pulumi.Input[str] user_data: A string of the desired User Data for the Droplet.
976
+ :param pulumi.Input[str] user_data: A string of the desired User Data provided [during Droplet creation](https://docs.digitalocean.com/products/droplets/how-to/provide-user-data/). Changing this forces a new resource to be created.
935
977
  :param pulumi.Input[Sequence[pulumi.Input[str]]] volume_ids: A list of the IDs of each block storage volume to be attached to the Droplet.
936
978
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the Droplet will be located.
937
979
  """
@@ -947,7 +989,6 @@ class Droplet(pulumi.CustomResource):
947
989
 
948
990
  ## Example Usage
949
991
 
950
- <!--Start PulumiCodeChooser -->
951
992
  ```python
952
993
  import pulumi
953
994
  import pulumi_digitalocean as digitalocean
@@ -955,10 +996,16 @@ class Droplet(pulumi.CustomResource):
955
996
  # Create a new Web Droplet in the nyc2 region
956
997
  web = digitalocean.Droplet("web",
957
998
  image="ubuntu-20-04-x64",
958
- region="nyc2",
959
- size="s-1vcpu-1gb")
999
+ name="web-1",
1000
+ region=digitalocean.Region.NYC2,
1001
+ size=digitalocean.DropletSlug.DROPLET_S1_VCPU1_GB,
1002
+ backups=True,
1003
+ backup_policy={
1004
+ "plan": "weekly",
1005
+ "weekday": "TUE",
1006
+ "hour": 8,
1007
+ })
960
1008
  ```
961
- <!--End PulumiCodeChooser -->
962
1009
 
963
1010
  ## Import
964
1011
 
@@ -983,6 +1030,7 @@ class Droplet(pulumi.CustomResource):
983
1030
  def _internal_init(__self__,
984
1031
  resource_name: str,
985
1032
  opts: Optional[pulumi.ResourceOptions] = None,
1033
+ backup_policy: Optional[pulumi.Input[Union['DropletBackupPolicyArgs', 'DropletBackupPolicyArgsDict']]] = None,
986
1034
  backups: Optional[pulumi.Input[bool]] = None,
987
1035
  droplet_agent: Optional[pulumi.Input[bool]] = None,
988
1036
  graceful_shutdown: Optional[pulumi.Input[bool]] = None,
@@ -1009,6 +1057,7 @@ class Droplet(pulumi.CustomResource):
1009
1057
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1010
1058
  __props__ = DropletArgs.__new__(DropletArgs)
1011
1059
 
1060
+ __props__.__dict__["backup_policy"] = backup_policy
1012
1061
  __props__.__dict__["backups"] = backups
1013
1062
  __props__.__dict__["droplet_agent"] = droplet_agent
1014
1063
  __props__.__dict__["graceful_shutdown"] = graceful_shutdown
@@ -1051,6 +1100,7 @@ class Droplet(pulumi.CustomResource):
1051
1100
  def get(resource_name: str,
1052
1101
  id: pulumi.Input[str],
1053
1102
  opts: Optional[pulumi.ResourceOptions] = None,
1103
+ backup_policy: Optional[pulumi.Input[Union['DropletBackupPolicyArgs', 'DropletBackupPolicyArgsDict']]] = None,
1054
1104
  backups: Optional[pulumi.Input[bool]] = None,
1055
1105
  created_at: Optional[pulumi.Input[str]] = None,
1056
1106
  disk: Optional[pulumi.Input[int]] = None,
@@ -1086,6 +1136,7 @@ class Droplet(pulumi.CustomResource):
1086
1136
  :param str resource_name: The unique name of the resulting resource.
1087
1137
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1088
1138
  :param pulumi.ResourceOptions opts: Options for the resource.
1139
+ :param pulumi.Input[Union['DropletBackupPolicyArgs', 'DropletBackupPolicyArgsDict']] backup_policy: An object specifying the backup policy for the Droplet. If omitted and `backups` is `true`, the backup plan will default to daily.
1089
1140
  :param pulumi.Input[bool] backups: Boolean controlling if backups are made. Defaults to
1090
1141
  false.
1091
1142
  :param pulumi.Input[int] disk: The size of the instance's disk in GB
@@ -1122,7 +1173,7 @@ class Droplet(pulumi.CustomResource):
1122
1173
  size when resizing a Droplet. It defaults to `true`. When set to `false`,
1123
1174
  only the Droplet's RAM and CPU will be resized. **Increasing a Droplet's disk
1124
1175
  size is a permanent change**. Increasing only RAM and CPU is reversible.
1125
- :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that indentifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
1176
+ :param pulumi.Input[Union[str, 'DropletSlug']] size: The unique slug that identifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
1126
1177
  :param pulumi.Input[Sequence[pulumi.Input[str]]] ssh_keys: A list of SSH key IDs or fingerprints to enable in
1127
1178
  the format `[12345, 123456]`. To retrieve this info, use the
1128
1179
  [DigitalOcean API](https://docs.digitalocean.com/reference/api/api-reference/#tag/SSH-Keys)
@@ -1131,7 +1182,7 @@ class Droplet(pulumi.CustomResource):
1131
1182
  to destroy and recreate the Droplet.
1132
1183
  :param pulumi.Input[str] status: The status of the Droplet
1133
1184
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: A list of the tags to be applied to this Droplet.
1134
- :param pulumi.Input[str] user_data: A string of the desired User Data for the Droplet.
1185
+ :param pulumi.Input[str] user_data: A string of the desired User Data provided [during Droplet creation](https://docs.digitalocean.com/products/droplets/how-to/provide-user-data/). Changing this forces a new resource to be created.
1135
1186
  :param pulumi.Input[int] vcpus: The number of the instance's virtual CPUs
1136
1187
  :param pulumi.Input[Sequence[pulumi.Input[str]]] volume_ids: A list of the IDs of each block storage volume to be attached to the Droplet.
1137
1188
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the Droplet will be located.
@@ -1140,6 +1191,7 @@ class Droplet(pulumi.CustomResource):
1140
1191
 
1141
1192
  __props__ = _DropletState.__new__(_DropletState)
1142
1193
 
1194
+ __props__.__dict__["backup_policy"] = backup_policy
1143
1195
  __props__.__dict__["backups"] = backups
1144
1196
  __props__.__dict__["created_at"] = created_at
1145
1197
  __props__.__dict__["disk"] = disk
@@ -1170,6 +1222,14 @@ class Droplet(pulumi.CustomResource):
1170
1222
  __props__.__dict__["vpc_uuid"] = vpc_uuid
1171
1223
  return Droplet(resource_name, opts=opts, __props__=__props__)
1172
1224
 
1225
+ @property
1226
+ @pulumi.getter(name="backupPolicy")
1227
+ def backup_policy(self) -> pulumi.Output[Optional['outputs.DropletBackupPolicy']]:
1228
+ """
1229
+ An object specifying the backup policy for the Droplet. If omitted and `backups` is `true`, the backup plan will default to daily.
1230
+ """
1231
+ return pulumi.get(self, "backup_policy")
1232
+
1173
1233
  @property
1174
1234
  @pulumi.getter
1175
1235
  def backups(self) -> pulumi.Output[Optional[bool]]:
@@ -1316,14 +1376,12 @@ class Droplet(pulumi.CustomResource):
1316
1376
 
1317
1377
  @property
1318
1378
  @pulumi.getter(name="privateNetworking")
1379
+ @_utilities.deprecated("""This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""")
1319
1380
  def private_networking(self) -> pulumi.Output[bool]:
1320
1381
  """
1321
1382
  **Deprecated** Boolean controlling if private networking
1322
1383
  is enabled. This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.
1323
1384
  """
1324
- warnings.warn("""This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""", DeprecationWarning)
1325
- pulumi.log.warn("""private_networking is deprecated: This parameter has been deprecated. Use `vpc_uuid` instead to specify a VPC network for the Droplet. If no `vpc_uuid` is provided, the Droplet will be placed in your account's default VPC for the region.""")
1326
-
1327
1385
  return pulumi.get(self, "private_networking")
1328
1386
 
1329
1387
  @property
@@ -1349,7 +1407,7 @@ class Droplet(pulumi.CustomResource):
1349
1407
  @pulumi.getter
1350
1408
  def size(self) -> pulumi.Output[str]:
1351
1409
  """
1352
- The unique slug that indentifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
1410
+ The unique slug that identifies the type of Droplet. You can find a list of available slugs on [DigitalOcean API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes).
1353
1411
  """
1354
1412
  return pulumi.get(self, "size")
1355
1413
 
@@ -1386,7 +1444,7 @@ class Droplet(pulumi.CustomResource):
1386
1444
  @pulumi.getter(name="userData")
1387
1445
  def user_data(self) -> pulumi.Output[Optional[str]]:
1388
1446
  """
1389
- A string of the desired User Data for the Droplet.
1447
+ A string of the desired User Data provided [during Droplet creation](https://docs.digitalocean.com/products/droplets/how-to/provide-user-data/). Changing this forces a new resource to be created.
1390
1448
  """
1391
1449
  return pulumi.get(self, "user_data")
1392
1450