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
  from . import outputs
12
17
  from ._enums import *
@@ -17,33 +22,35 @@ __all__ = ['LoadBalancerArgs', 'LoadBalancer']
17
22
  @pulumi.input_type
18
23
  class LoadBalancerArgs:
19
24
  def __init__(__self__, *,
20
- forwarding_rules: pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]],
21
25
  algorithm: Optional[pulumi.Input[Union[str, 'Algorithm']]] = None,
22
26
  disable_lets_encrypt_dns_records: Optional[pulumi.Input[bool]] = None,
27
+ domains: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]]] = None,
23
28
  droplet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
24
29
  droplet_tag: Optional[pulumi.Input[str]] = None,
25
30
  enable_backend_keepalive: Optional[pulumi.Input[bool]] = None,
26
31
  enable_proxy_protocol: Optional[pulumi.Input[bool]] = None,
27
32
  firewall: Optional[pulumi.Input['LoadBalancerFirewallArgs']] = None,
33
+ forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]]] = None,
34
+ glb_settings: Optional[pulumi.Input['LoadBalancerGlbSettingsArgs']] = None,
28
35
  healthcheck: Optional[pulumi.Input['LoadBalancerHealthcheckArgs']] = None,
29
36
  http_idle_timeout_seconds: Optional[pulumi.Input[int]] = None,
30
37
  name: Optional[pulumi.Input[str]] = None,
38
+ network: Optional[pulumi.Input[str]] = None,
31
39
  project_id: Optional[pulumi.Input[str]] = None,
32
40
  redirect_http_to_https: Optional[pulumi.Input[bool]] = None,
33
41
  region: Optional[pulumi.Input[Union[str, 'Region']]] = None,
34
42
  size: Optional[pulumi.Input[str]] = None,
35
43
  size_unit: Optional[pulumi.Input[int]] = None,
36
44
  sticky_sessions: Optional[pulumi.Input['LoadBalancerStickySessionsArgs']] = None,
45
+ target_load_balancer_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
37
46
  type: Optional[pulumi.Input[str]] = None,
38
47
  vpc_uuid: Optional[pulumi.Input[str]] = None):
39
48
  """
40
49
  The set of arguments for constructing a LoadBalancer resource.
41
- :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]] forwarding_rules: A list of `forwarding_rule` to be assigned to the
42
- Load Balancer. The `forwarding_rule` block is documented below.
43
- :param pulumi.Input[Union[str, 'Algorithm']] algorithm: The load balancing algorithm used to determine
44
- which backend Droplet will be selected by a client. It must be either `round_robin`
50
+ :param pulumi.Input[Union[str, 'Algorithm']] algorithm: **Deprecated** This field has been deprecated. You can no longer specify an algorithm for load balancers.
45
51
  or `least_connections`. The default value is `round_robin`.
46
52
  :param pulumi.Input[bool] disable_lets_encrypt_dns_records: A boolean value indicating whether to disable automatic DNS record creation for Let's Encrypt certificates that are added to the load balancer. Default value is `false`.
53
+ :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]] domains: A list of `domains` required to ingress traffic to a Global Load Balancer. The `domains` block is documented below.
47
54
  :param pulumi.Input[Sequence[pulumi.Input[int]]] droplet_ids: A list of the IDs of each droplet to be attached to the Load Balancer.
48
55
  :param pulumi.Input[str] droplet_tag: The name of a Droplet tag corresponding to Droplets to be assigned to the Load Balancer.
49
56
  :param pulumi.Input[bool] enable_backend_keepalive: A boolean value indicating whether HTTP keepalive connections are maintained to target Droplets. Default value is `false`.
@@ -51,27 +58,37 @@ class LoadBalancerArgs:
51
58
  Protocol should be used to pass information from connecting client requests to
52
59
  the backend service. Default value is `false`.
53
60
  :param pulumi.Input['LoadBalancerFirewallArgs'] firewall: A block containing rules for allowing/denying traffic to the Load Balancer. The `firewall` block is documented below. Only 1 firewall is allowed.
61
+ :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]] forwarding_rules: A list of `forwarding_rule` to be assigned to the
62
+ Load Balancer. The `forwarding_rule` block is documented below.
63
+ :param pulumi.Input['LoadBalancerGlbSettingsArgs'] glb_settings: A block containing `glb_settings` required to define target rules for a Global Load Balancer. The `glb_settings` block is documented below.
54
64
  :param pulumi.Input['LoadBalancerHealthcheckArgs'] healthcheck: A `healthcheck` block to be assigned to the
55
65
  Load Balancer. The `healthcheck` block is documented below. Only 1 healthcheck is allowed.
56
66
  :param pulumi.Input[int] http_idle_timeout_seconds: Specifies the idle timeout for HTTPS connections on the load balancer in seconds.
57
67
  :param pulumi.Input[str] name: The Load Balancer name
68
+ :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.
58
69
  :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project.
59
70
  :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether
60
71
  HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443.
61
72
  Default value is `false`.
62
73
  :param pulumi.Input[Union[str, 'Region']] region: The region to start in
63
74
  :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided.
64
- :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
75
+ :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
65
76
  :param pulumi.Input['LoadBalancerStickySessionsArgs'] sticky_sessions: A `sticky_sessions` block to be assigned to the
66
77
  Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed.
67
- :param pulumi.Input[str] type: An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
78
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer.
79
+ :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.
80
+ **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.
68
81
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located.
69
82
  """
70
- pulumi.set(__self__, "forwarding_rules", forwarding_rules)
83
+ if algorithm is not None:
84
+ warnings.warn("""This field has been deprecated. You can no longer specify an algorithm for load balancers.""", DeprecationWarning)
85
+ pulumi.log.warn("""algorithm is deprecated: This field has been deprecated. You can no longer specify an algorithm for load balancers.""")
71
86
  if algorithm is not None:
72
87
  pulumi.set(__self__, "algorithm", algorithm)
73
88
  if disable_lets_encrypt_dns_records is not None:
74
89
  pulumi.set(__self__, "disable_lets_encrypt_dns_records", disable_lets_encrypt_dns_records)
90
+ if domains is not None:
91
+ pulumi.set(__self__, "domains", domains)
75
92
  if droplet_ids is not None:
76
93
  pulumi.set(__self__, "droplet_ids", droplet_ids)
77
94
  if droplet_tag is not None:
@@ -82,12 +99,18 @@ class LoadBalancerArgs:
82
99
  pulumi.set(__self__, "enable_proxy_protocol", enable_proxy_protocol)
83
100
  if firewall is not None:
84
101
  pulumi.set(__self__, "firewall", firewall)
102
+ if forwarding_rules is not None:
103
+ pulumi.set(__self__, "forwarding_rules", forwarding_rules)
104
+ if glb_settings is not None:
105
+ pulumi.set(__self__, "glb_settings", glb_settings)
85
106
  if healthcheck is not None:
86
107
  pulumi.set(__self__, "healthcheck", healthcheck)
87
108
  if http_idle_timeout_seconds is not None:
88
109
  pulumi.set(__self__, "http_idle_timeout_seconds", http_idle_timeout_seconds)
89
110
  if name is not None:
90
111
  pulumi.set(__self__, "name", name)
112
+ if network is not None:
113
+ pulumi.set(__self__, "network", network)
91
114
  if project_id is not None:
92
115
  pulumi.set(__self__, "project_id", project_id)
93
116
  if redirect_http_to_https is not None:
@@ -100,30 +123,19 @@ class LoadBalancerArgs:
100
123
  pulumi.set(__self__, "size_unit", size_unit)
101
124
  if sticky_sessions is not None:
102
125
  pulumi.set(__self__, "sticky_sessions", sticky_sessions)
126
+ if target_load_balancer_ids is not None:
127
+ pulumi.set(__self__, "target_load_balancer_ids", target_load_balancer_ids)
103
128
  if type is not None:
104
129
  pulumi.set(__self__, "type", type)
105
130
  if vpc_uuid is not None:
106
131
  pulumi.set(__self__, "vpc_uuid", vpc_uuid)
107
132
 
108
- @property
109
- @pulumi.getter(name="forwardingRules")
110
- def forwarding_rules(self) -> pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]]:
111
- """
112
- A list of `forwarding_rule` to be assigned to the
113
- Load Balancer. The `forwarding_rule` block is documented below.
114
- """
115
- return pulumi.get(self, "forwarding_rules")
116
-
117
- @forwarding_rules.setter
118
- def forwarding_rules(self, value: pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]]):
119
- pulumi.set(self, "forwarding_rules", value)
120
-
121
133
  @property
122
134
  @pulumi.getter
135
+ @_utilities.deprecated("""This field has been deprecated. You can no longer specify an algorithm for load balancers.""")
123
136
  def algorithm(self) -> Optional[pulumi.Input[Union[str, 'Algorithm']]]:
124
137
  """
125
- The load balancing algorithm used to determine
126
- which backend Droplet will be selected by a client. It must be either `round_robin`
138
+ **Deprecated** This field has been deprecated. You can no longer specify an algorithm for load balancers.
127
139
  or `least_connections`. The default value is `round_robin`.
128
140
  """
129
141
  return pulumi.get(self, "algorithm")
@@ -144,6 +156,18 @@ class LoadBalancerArgs:
144
156
  def disable_lets_encrypt_dns_records(self, value: Optional[pulumi.Input[bool]]):
145
157
  pulumi.set(self, "disable_lets_encrypt_dns_records", value)
146
158
 
159
+ @property
160
+ @pulumi.getter
161
+ def domains(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]]]:
162
+ """
163
+ A list of `domains` required to ingress traffic to a Global Load Balancer. The `domains` block is documented below.
164
+ """
165
+ return pulumi.get(self, "domains")
166
+
167
+ @domains.setter
168
+ def domains(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]]]):
169
+ pulumi.set(self, "domains", value)
170
+
147
171
  @property
148
172
  @pulumi.getter(name="dropletIds")
149
173
  def droplet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]:
@@ -206,6 +230,31 @@ class LoadBalancerArgs:
206
230
  def firewall(self, value: Optional[pulumi.Input['LoadBalancerFirewallArgs']]):
207
231
  pulumi.set(self, "firewall", value)
208
232
 
233
+ @property
234
+ @pulumi.getter(name="forwardingRules")
235
+ def forwarding_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]]]:
236
+ """
237
+ A list of `forwarding_rule` to be assigned to the
238
+ Load Balancer. The `forwarding_rule` block is documented below.
239
+ """
240
+ return pulumi.get(self, "forwarding_rules")
241
+
242
+ @forwarding_rules.setter
243
+ def forwarding_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]]]):
244
+ pulumi.set(self, "forwarding_rules", value)
245
+
246
+ @property
247
+ @pulumi.getter(name="glbSettings")
248
+ def glb_settings(self) -> Optional[pulumi.Input['LoadBalancerGlbSettingsArgs']]:
249
+ """
250
+ A block containing `glb_settings` required to define target rules for a Global Load Balancer. The `glb_settings` block is documented below.
251
+ """
252
+ return pulumi.get(self, "glb_settings")
253
+
254
+ @glb_settings.setter
255
+ def glb_settings(self, value: Optional[pulumi.Input['LoadBalancerGlbSettingsArgs']]):
256
+ pulumi.set(self, "glb_settings", value)
257
+
209
258
  @property
210
259
  @pulumi.getter
211
260
  def healthcheck(self) -> Optional[pulumi.Input['LoadBalancerHealthcheckArgs']]:
@@ -243,6 +292,18 @@ class LoadBalancerArgs:
243
292
  def name(self, value: Optional[pulumi.Input[str]]):
244
293
  pulumi.set(self, "name", value)
245
294
 
295
+ @property
296
+ @pulumi.getter
297
+ def network(self) -> Optional[pulumi.Input[str]]:
298
+ """
299
+ The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.
300
+ """
301
+ return pulumi.get(self, "network")
302
+
303
+ @network.setter
304
+ def network(self, value: Optional[pulumi.Input[str]]):
305
+ pulumi.set(self, "network", value)
306
+
246
307
  @property
247
308
  @pulumi.getter(name="projectId")
248
309
  def project_id(self) -> Optional[pulumi.Input[str]]:
@@ -297,7 +358,7 @@ class LoadBalancerArgs:
297
358
  @pulumi.getter(name="sizeUnit")
298
359
  def size_unit(self) -> Optional[pulumi.Input[int]]:
299
360
  """
300
- The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
361
+ The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
301
362
  """
302
363
  return pulumi.get(self, "size_unit")
303
364
 
@@ -318,11 +379,24 @@ class LoadBalancerArgs:
318
379
  def sticky_sessions(self, value: Optional[pulumi.Input['LoadBalancerStickySessionsArgs']]):
319
380
  pulumi.set(self, "sticky_sessions", value)
320
381
 
382
+ @property
383
+ @pulumi.getter(name="targetLoadBalancerIds")
384
+ def target_load_balancer_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
385
+ """
386
+ A list of Load Balancer IDs to be attached behind a Global Load Balancer.
387
+ """
388
+ return pulumi.get(self, "target_load_balancer_ids")
389
+
390
+ @target_load_balancer_ids.setter
391
+ def target_load_balancer_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
392
+ pulumi.set(self, "target_load_balancer_ids", value)
393
+
321
394
  @property
322
395
  @pulumi.getter
323
396
  def type(self) -> Optional[pulumi.Input[str]]:
324
397
  """
325
- An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
398
+ The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.
399
+ **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.
326
400
  """
327
401
  return pulumi.get(self, "type")
328
402
 
@@ -348,17 +422,21 @@ class _LoadBalancerState:
348
422
  def __init__(__self__, *,
349
423
  algorithm: Optional[pulumi.Input[Union[str, 'Algorithm']]] = None,
350
424
  disable_lets_encrypt_dns_records: Optional[pulumi.Input[bool]] = None,
425
+ domains: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]]] = None,
351
426
  droplet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
352
427
  droplet_tag: Optional[pulumi.Input[str]] = None,
353
428
  enable_backend_keepalive: Optional[pulumi.Input[bool]] = None,
354
429
  enable_proxy_protocol: Optional[pulumi.Input[bool]] = None,
355
430
  firewall: Optional[pulumi.Input['LoadBalancerFirewallArgs']] = None,
356
431
  forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]]] = None,
432
+ glb_settings: Optional[pulumi.Input['LoadBalancerGlbSettingsArgs']] = None,
357
433
  healthcheck: Optional[pulumi.Input['LoadBalancerHealthcheckArgs']] = None,
358
434
  http_idle_timeout_seconds: Optional[pulumi.Input[int]] = None,
359
435
  ip: Optional[pulumi.Input[str]] = None,
436
+ ipv6: Optional[pulumi.Input[str]] = None,
360
437
  load_balancer_urn: Optional[pulumi.Input[str]] = None,
361
438
  name: Optional[pulumi.Input[str]] = None,
439
+ network: Optional[pulumi.Input[str]] = None,
362
440
  project_id: Optional[pulumi.Input[str]] = None,
363
441
  redirect_http_to_https: Optional[pulumi.Input[bool]] = None,
364
442
  region: Optional[pulumi.Input[Union[str, 'Region']]] = None,
@@ -366,14 +444,15 @@ class _LoadBalancerState:
366
444
  size_unit: Optional[pulumi.Input[int]] = None,
367
445
  status: Optional[pulumi.Input[str]] = None,
368
446
  sticky_sessions: Optional[pulumi.Input['LoadBalancerStickySessionsArgs']] = None,
447
+ target_load_balancer_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
369
448
  type: Optional[pulumi.Input[str]] = None,
370
449
  vpc_uuid: Optional[pulumi.Input[str]] = None):
371
450
  """
372
451
  Input properties used for looking up and filtering LoadBalancer resources.
373
- :param pulumi.Input[Union[str, 'Algorithm']] algorithm: The load balancing algorithm used to determine
374
- which backend Droplet will be selected by a client. It must be either `round_robin`
452
+ :param pulumi.Input[Union[str, 'Algorithm']] algorithm: **Deprecated** This field has been deprecated. You can no longer specify an algorithm for load balancers.
375
453
  or `least_connections`. The default value is `round_robin`.
376
454
  :param pulumi.Input[bool] disable_lets_encrypt_dns_records: A boolean value indicating whether to disable automatic DNS record creation for Let's Encrypt certificates that are added to the load balancer. Default value is `false`.
455
+ :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]] domains: A list of `domains` required to ingress traffic to a Global Load Balancer. The `domains` block is documented below.
377
456
  :param pulumi.Input[Sequence[pulumi.Input[int]]] droplet_ids: A list of the IDs of each droplet to be attached to the Load Balancer.
378
457
  :param pulumi.Input[str] droplet_tag: The name of a Droplet tag corresponding to Droplets to be assigned to the Load Balancer.
379
458
  :param pulumi.Input[bool] enable_backend_keepalive: A boolean value indicating whether HTTP keepalive connections are maintained to target Droplets. Default value is `false`.
@@ -383,28 +462,37 @@ class _LoadBalancerState:
383
462
  :param pulumi.Input['LoadBalancerFirewallArgs'] firewall: A block containing rules for allowing/denying traffic to the Load Balancer. The `firewall` block is documented below. Only 1 firewall is allowed.
384
463
  :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]] forwarding_rules: A list of `forwarding_rule` to be assigned to the
385
464
  Load Balancer. The `forwarding_rule` block is documented below.
465
+ :param pulumi.Input['LoadBalancerGlbSettingsArgs'] glb_settings: A block containing `glb_settings` required to define target rules for a Global Load Balancer. The `glb_settings` block is documented below.
386
466
  :param pulumi.Input['LoadBalancerHealthcheckArgs'] healthcheck: A `healthcheck` block to be assigned to the
387
467
  Load Balancer. The `healthcheck` block is documented below. Only 1 healthcheck is allowed.
388
468
  :param pulumi.Input[int] http_idle_timeout_seconds: Specifies the idle timeout for HTTPS connections on the load balancer in seconds.
389
469
  :param pulumi.Input[str] ip: The ip of the Load Balancer
390
470
  :param pulumi.Input[str] load_balancer_urn: The uniform resource name for the Load Balancer
391
471
  :param pulumi.Input[str] name: The Load Balancer name
472
+ :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.
392
473
  :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project.
393
474
  :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether
394
475
  HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443.
395
476
  Default value is `false`.
396
477
  :param pulumi.Input[Union[str, 'Region']] region: The region to start in
397
478
  :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided.
398
- :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
479
+ :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
399
480
  :param pulumi.Input['LoadBalancerStickySessionsArgs'] sticky_sessions: A `sticky_sessions` block to be assigned to the
400
481
  Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed.
401
- :param pulumi.Input[str] type: An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
482
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer.
483
+ :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.
484
+ **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.
402
485
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located.
403
486
  """
487
+ if algorithm is not None:
488
+ warnings.warn("""This field has been deprecated. You can no longer specify an algorithm for load balancers.""", DeprecationWarning)
489
+ pulumi.log.warn("""algorithm is deprecated: This field has been deprecated. You can no longer specify an algorithm for load balancers.""")
404
490
  if algorithm is not None:
405
491
  pulumi.set(__self__, "algorithm", algorithm)
406
492
  if disable_lets_encrypt_dns_records is not None:
407
493
  pulumi.set(__self__, "disable_lets_encrypt_dns_records", disable_lets_encrypt_dns_records)
494
+ if domains is not None:
495
+ pulumi.set(__self__, "domains", domains)
408
496
  if droplet_ids is not None:
409
497
  pulumi.set(__self__, "droplet_ids", droplet_ids)
410
498
  if droplet_tag is not None:
@@ -417,16 +505,22 @@ class _LoadBalancerState:
417
505
  pulumi.set(__self__, "firewall", firewall)
418
506
  if forwarding_rules is not None:
419
507
  pulumi.set(__self__, "forwarding_rules", forwarding_rules)
508
+ if glb_settings is not None:
509
+ pulumi.set(__self__, "glb_settings", glb_settings)
420
510
  if healthcheck is not None:
421
511
  pulumi.set(__self__, "healthcheck", healthcheck)
422
512
  if http_idle_timeout_seconds is not None:
423
513
  pulumi.set(__self__, "http_idle_timeout_seconds", http_idle_timeout_seconds)
424
514
  if ip is not None:
425
515
  pulumi.set(__self__, "ip", ip)
516
+ if ipv6 is not None:
517
+ pulumi.set(__self__, "ipv6", ipv6)
426
518
  if load_balancer_urn is not None:
427
519
  pulumi.set(__self__, "load_balancer_urn", load_balancer_urn)
428
520
  if name is not None:
429
521
  pulumi.set(__self__, "name", name)
522
+ if network is not None:
523
+ pulumi.set(__self__, "network", network)
430
524
  if project_id is not None:
431
525
  pulumi.set(__self__, "project_id", project_id)
432
526
  if redirect_http_to_https is not None:
@@ -441,6 +535,8 @@ class _LoadBalancerState:
441
535
  pulumi.set(__self__, "status", status)
442
536
  if sticky_sessions is not None:
443
537
  pulumi.set(__self__, "sticky_sessions", sticky_sessions)
538
+ if target_load_balancer_ids is not None:
539
+ pulumi.set(__self__, "target_load_balancer_ids", target_load_balancer_ids)
444
540
  if type is not None:
445
541
  pulumi.set(__self__, "type", type)
446
542
  if vpc_uuid is not None:
@@ -448,10 +544,10 @@ class _LoadBalancerState:
448
544
 
449
545
  @property
450
546
  @pulumi.getter
547
+ @_utilities.deprecated("""This field has been deprecated. You can no longer specify an algorithm for load balancers.""")
451
548
  def algorithm(self) -> Optional[pulumi.Input[Union[str, 'Algorithm']]]:
452
549
  """
453
- The load balancing algorithm used to determine
454
- which backend Droplet will be selected by a client. It must be either `round_robin`
550
+ **Deprecated** This field has been deprecated. You can no longer specify an algorithm for load balancers.
455
551
  or `least_connections`. The default value is `round_robin`.
456
552
  """
457
553
  return pulumi.get(self, "algorithm")
@@ -472,6 +568,18 @@ class _LoadBalancerState:
472
568
  def disable_lets_encrypt_dns_records(self, value: Optional[pulumi.Input[bool]]):
473
569
  pulumi.set(self, "disable_lets_encrypt_dns_records", value)
474
570
 
571
+ @property
572
+ @pulumi.getter
573
+ def domains(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]]]:
574
+ """
575
+ A list of `domains` required to ingress traffic to a Global Load Balancer. The `domains` block is documented below.
576
+ """
577
+ return pulumi.get(self, "domains")
578
+
579
+ @domains.setter
580
+ def domains(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerDomainArgs']]]]):
581
+ pulumi.set(self, "domains", value)
582
+
475
583
  @property
476
584
  @pulumi.getter(name="dropletIds")
477
585
  def droplet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]:
@@ -547,6 +655,18 @@ class _LoadBalancerState:
547
655
  def forwarding_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerForwardingRuleArgs']]]]):
548
656
  pulumi.set(self, "forwarding_rules", value)
549
657
 
658
+ @property
659
+ @pulumi.getter(name="glbSettings")
660
+ def glb_settings(self) -> Optional[pulumi.Input['LoadBalancerGlbSettingsArgs']]:
661
+ """
662
+ A block containing `glb_settings` required to define target rules for a Global Load Balancer. The `glb_settings` block is documented below.
663
+ """
664
+ return pulumi.get(self, "glb_settings")
665
+
666
+ @glb_settings.setter
667
+ def glb_settings(self, value: Optional[pulumi.Input['LoadBalancerGlbSettingsArgs']]):
668
+ pulumi.set(self, "glb_settings", value)
669
+
550
670
  @property
551
671
  @pulumi.getter
552
672
  def healthcheck(self) -> Optional[pulumi.Input['LoadBalancerHealthcheckArgs']]:
@@ -584,6 +704,15 @@ class _LoadBalancerState:
584
704
  def ip(self, value: Optional[pulumi.Input[str]]):
585
705
  pulumi.set(self, "ip", value)
586
706
 
707
+ @property
708
+ @pulumi.getter
709
+ def ipv6(self) -> Optional[pulumi.Input[str]]:
710
+ return pulumi.get(self, "ipv6")
711
+
712
+ @ipv6.setter
713
+ def ipv6(self, value: Optional[pulumi.Input[str]]):
714
+ pulumi.set(self, "ipv6", value)
715
+
587
716
  @property
588
717
  @pulumi.getter(name="loadBalancerUrn")
589
718
  def load_balancer_urn(self) -> Optional[pulumi.Input[str]]:
@@ -608,6 +737,18 @@ class _LoadBalancerState:
608
737
  def name(self, value: Optional[pulumi.Input[str]]):
609
738
  pulumi.set(self, "name", value)
610
739
 
740
+ @property
741
+ @pulumi.getter
742
+ def network(self) -> Optional[pulumi.Input[str]]:
743
+ """
744
+ The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.
745
+ """
746
+ return pulumi.get(self, "network")
747
+
748
+ @network.setter
749
+ def network(self, value: Optional[pulumi.Input[str]]):
750
+ pulumi.set(self, "network", value)
751
+
611
752
  @property
612
753
  @pulumi.getter(name="projectId")
613
754
  def project_id(self) -> Optional[pulumi.Input[str]]:
@@ -662,7 +803,7 @@ class _LoadBalancerState:
662
803
  @pulumi.getter(name="sizeUnit")
663
804
  def size_unit(self) -> Optional[pulumi.Input[int]]:
664
805
  """
665
- The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
806
+ The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
666
807
  """
667
808
  return pulumi.get(self, "size_unit")
668
809
 
@@ -692,11 +833,24 @@ class _LoadBalancerState:
692
833
  def sticky_sessions(self, value: Optional[pulumi.Input['LoadBalancerStickySessionsArgs']]):
693
834
  pulumi.set(self, "sticky_sessions", value)
694
835
 
836
+ @property
837
+ @pulumi.getter(name="targetLoadBalancerIds")
838
+ def target_load_balancer_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
839
+ """
840
+ A list of Load Balancer IDs to be attached behind a Global Load Balancer.
841
+ """
842
+ return pulumi.get(self, "target_load_balancer_ids")
843
+
844
+ @target_load_balancer_ids.setter
845
+ def target_load_balancer_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
846
+ pulumi.set(self, "target_load_balancer_ids", value)
847
+
695
848
  @property
696
849
  @pulumi.getter
697
850
  def type(self) -> Optional[pulumi.Input[str]]:
698
851
  """
699
- An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
852
+ The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.
853
+ **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.
700
854
  """
701
855
  return pulumi.get(self, "type")
702
856
 
@@ -724,21 +878,25 @@ class LoadBalancer(pulumi.CustomResource):
724
878
  opts: Optional[pulumi.ResourceOptions] = None,
725
879
  algorithm: Optional[pulumi.Input[Union[str, 'Algorithm']]] = None,
726
880
  disable_lets_encrypt_dns_records: Optional[pulumi.Input[bool]] = None,
881
+ domains: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerDomainArgs', 'LoadBalancerDomainArgsDict']]]]] = None,
727
882
  droplet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
728
883
  droplet_tag: Optional[pulumi.Input[str]] = None,
729
884
  enable_backend_keepalive: Optional[pulumi.Input[bool]] = None,
730
885
  enable_proxy_protocol: Optional[pulumi.Input[bool]] = None,
731
- firewall: Optional[pulumi.Input[pulumi.InputType['LoadBalancerFirewallArgs']]] = None,
732
- forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerForwardingRuleArgs']]]]] = None,
733
- healthcheck: Optional[pulumi.Input[pulumi.InputType['LoadBalancerHealthcheckArgs']]] = None,
886
+ firewall: Optional[pulumi.Input[Union['LoadBalancerFirewallArgs', 'LoadBalancerFirewallArgsDict']]] = None,
887
+ forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerForwardingRuleArgs', 'LoadBalancerForwardingRuleArgsDict']]]]] = None,
888
+ glb_settings: Optional[pulumi.Input[Union['LoadBalancerGlbSettingsArgs', 'LoadBalancerGlbSettingsArgsDict']]] = None,
889
+ healthcheck: Optional[pulumi.Input[Union['LoadBalancerHealthcheckArgs', 'LoadBalancerHealthcheckArgsDict']]] = None,
734
890
  http_idle_timeout_seconds: Optional[pulumi.Input[int]] = None,
735
891
  name: Optional[pulumi.Input[str]] = None,
892
+ network: Optional[pulumi.Input[str]] = None,
736
893
  project_id: Optional[pulumi.Input[str]] = None,
737
894
  redirect_http_to_https: Optional[pulumi.Input[bool]] = None,
738
895
  region: Optional[pulumi.Input[Union[str, 'Region']]] = None,
739
896
  size: Optional[pulumi.Input[str]] = None,
740
897
  size_unit: Optional[pulumi.Input[int]] = None,
741
- sticky_sessions: Optional[pulumi.Input[pulumi.InputType['LoadBalancerStickySessionsArgs']]] = None,
898
+ sticky_sessions: Optional[pulumi.Input[Union['LoadBalancerStickySessionsArgs', 'LoadBalancerStickySessionsArgsDict']]] = None,
899
+ target_load_balancer_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
742
900
  type: Optional[pulumi.Input[str]] = None,
743
901
  vpc_uuid: Optional[pulumi.Input[str]] = None,
744
902
  __props__=None):
@@ -748,30 +906,30 @@ class LoadBalancer(pulumi.CustomResource):
748
906
 
749
907
  ## Example Usage
750
908
 
751
- <!--Start PulumiCodeChooser -->
752
909
  ```python
753
910
  import pulumi
754
911
  import pulumi_digitalocean as digitalocean
755
912
 
756
913
  web = digitalocean.Droplet("web",
757
- size="s-1vcpu-1gb",
914
+ name="web-1",
915
+ size=digitalocean.DropletSlug.DROPLET_S1_VCPU1_GB,
758
916
  image="ubuntu-18-04-x64",
759
- region="nyc3")
917
+ region=digitalocean.Region.NYC3)
760
918
  public = digitalocean.LoadBalancer("public",
761
- region="nyc3",
762
- forwarding_rules=[digitalocean.LoadBalancerForwardingRuleArgs(
763
- entry_port=80,
764
- entry_protocol="http",
765
- target_port=80,
766
- target_protocol="http",
767
- )],
768
- healthcheck=digitalocean.LoadBalancerHealthcheckArgs(
769
- port=22,
770
- protocol="tcp",
771
- ),
919
+ name="loadbalancer-1",
920
+ region=digitalocean.Region.NYC3,
921
+ forwarding_rules=[{
922
+ "entry_port": 80,
923
+ "entry_protocol": "http",
924
+ "target_port": 80,
925
+ "target_protocol": "http",
926
+ }],
927
+ healthcheck={
928
+ "port": 22,
929
+ "protocol": "tcp",
930
+ },
772
931
  droplet_ids=[web.id])
773
932
  ```
774
- <!--End PulumiCodeChooser -->
775
933
 
776
934
  When managing certificates attached to the load balancer, make sure to add the `create_before_destroy`
777
935
  lifecycle property in order to ensure the certificate is correctly updated when changed. The order of
@@ -779,35 +937,6 @@ class LoadBalancer(pulumi.CustomResource):
779
937
  `Delete old certificate`. When doing so, you must also change the name of the certificate,
780
938
  as there cannot be multiple certificates with the same name in an account.
781
939
 
782
- <!--Start PulumiCodeChooser -->
783
- ```python
784
- import pulumi
785
- import pulumi_digitalocean as digitalocean
786
-
787
- cert = digitalocean.Certificate("cert",
788
- private_key="file('key.pem')",
789
- leaf_certificate="file('cert.pem')")
790
- web = digitalocean.Droplet("web",
791
- size="s-1vcpu-1gb",
792
- image="ubuntu-18-04-x64",
793
- region="nyc3")
794
- public = digitalocean.LoadBalancer("public",
795
- region="nyc3",
796
- forwarding_rules=[digitalocean.LoadBalancerForwardingRuleArgs(
797
- entry_port=443,
798
- entry_protocol="https",
799
- target_port=80,
800
- target_protocol="http",
801
- certificate_name=cert.name,
802
- )],
803
- healthcheck=digitalocean.LoadBalancerHealthcheckArgs(
804
- port=22,
805
- protocol="tcp",
806
- ),
807
- droplet_ids=[web.id])
808
- ```
809
- <!--End PulumiCodeChooser -->
810
-
811
940
  ## Import
812
941
 
813
942
  Load Balancers can be imported using the `id`, e.g.
@@ -818,40 +947,44 @@ class LoadBalancer(pulumi.CustomResource):
818
947
 
819
948
  :param str resource_name: The name of the resource.
820
949
  :param pulumi.ResourceOptions opts: Options for the resource.
821
- :param pulumi.Input[Union[str, 'Algorithm']] algorithm: The load balancing algorithm used to determine
822
- which backend Droplet will be selected by a client. It must be either `round_robin`
950
+ :param pulumi.Input[Union[str, 'Algorithm']] algorithm: **Deprecated** This field has been deprecated. You can no longer specify an algorithm for load balancers.
823
951
  or `least_connections`. The default value is `round_robin`.
824
952
  :param pulumi.Input[bool] disable_lets_encrypt_dns_records: A boolean value indicating whether to disable automatic DNS record creation for Let's Encrypt certificates that are added to the load balancer. Default value is `false`.
953
+ :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerDomainArgs', 'LoadBalancerDomainArgsDict']]]] domains: A list of `domains` required to ingress traffic to a Global Load Balancer. The `domains` block is documented below.
825
954
  :param pulumi.Input[Sequence[pulumi.Input[int]]] droplet_ids: A list of the IDs of each droplet to be attached to the Load Balancer.
826
955
  :param pulumi.Input[str] droplet_tag: The name of a Droplet tag corresponding to Droplets to be assigned to the Load Balancer.
827
956
  :param pulumi.Input[bool] enable_backend_keepalive: A boolean value indicating whether HTTP keepalive connections are maintained to target Droplets. Default value is `false`.
828
957
  :param pulumi.Input[bool] enable_proxy_protocol: A boolean value indicating whether PROXY
829
958
  Protocol should be used to pass information from connecting client requests to
830
959
  the backend service. Default value is `false`.
831
- :param pulumi.Input[pulumi.InputType['LoadBalancerFirewallArgs']] firewall: A block containing rules for allowing/denying traffic to the Load Balancer. The `firewall` block is documented below. Only 1 firewall is allowed.
832
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerForwardingRuleArgs']]]] forwarding_rules: A list of `forwarding_rule` to be assigned to the
960
+ :param pulumi.Input[Union['LoadBalancerFirewallArgs', 'LoadBalancerFirewallArgsDict']] firewall: A block containing rules for allowing/denying traffic to the Load Balancer. The `firewall` block is documented below. Only 1 firewall is allowed.
961
+ :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerForwardingRuleArgs', 'LoadBalancerForwardingRuleArgsDict']]]] forwarding_rules: A list of `forwarding_rule` to be assigned to the
833
962
  Load Balancer. The `forwarding_rule` block is documented below.
834
- :param pulumi.Input[pulumi.InputType['LoadBalancerHealthcheckArgs']] healthcheck: A `healthcheck` block to be assigned to the
963
+ :param pulumi.Input[Union['LoadBalancerGlbSettingsArgs', 'LoadBalancerGlbSettingsArgsDict']] glb_settings: A block containing `glb_settings` required to define target rules for a Global Load Balancer. The `glb_settings` block is documented below.
964
+ :param pulumi.Input[Union['LoadBalancerHealthcheckArgs', 'LoadBalancerHealthcheckArgsDict']] healthcheck: A `healthcheck` block to be assigned to the
835
965
  Load Balancer. The `healthcheck` block is documented below. Only 1 healthcheck is allowed.
836
966
  :param pulumi.Input[int] http_idle_timeout_seconds: Specifies the idle timeout for HTTPS connections on the load balancer in seconds.
837
967
  :param pulumi.Input[str] name: The Load Balancer name
968
+ :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.
838
969
  :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project.
839
970
  :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether
840
971
  HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443.
841
972
  Default value is `false`.
842
973
  :param pulumi.Input[Union[str, 'Region']] region: The region to start in
843
974
  :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided.
844
- :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
845
- :param pulumi.Input[pulumi.InputType['LoadBalancerStickySessionsArgs']] sticky_sessions: A `sticky_sessions` block to be assigned to the
975
+ :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
976
+ :param pulumi.Input[Union['LoadBalancerStickySessionsArgs', 'LoadBalancerStickySessionsArgsDict']] sticky_sessions: A `sticky_sessions` block to be assigned to the
846
977
  Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed.
847
- :param pulumi.Input[str] type: An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
978
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer.
979
+ :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.
980
+ **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.
848
981
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located.
849
982
  """
850
983
  ...
851
984
  @overload
852
985
  def __init__(__self__,
853
986
  resource_name: str,
854
- args: LoadBalancerArgs,
987
+ args: Optional[LoadBalancerArgs] = None,
855
988
  opts: Optional[pulumi.ResourceOptions] = None):
856
989
  """
857
990
  Provides a DigitalOcean Load Balancer resource. This can be used to create,
@@ -859,30 +992,30 @@ class LoadBalancer(pulumi.CustomResource):
859
992
 
860
993
  ## Example Usage
861
994
 
862
- <!--Start PulumiCodeChooser -->
863
995
  ```python
864
996
  import pulumi
865
997
  import pulumi_digitalocean as digitalocean
866
998
 
867
999
  web = digitalocean.Droplet("web",
868
- size="s-1vcpu-1gb",
1000
+ name="web-1",
1001
+ size=digitalocean.DropletSlug.DROPLET_S1_VCPU1_GB,
869
1002
  image="ubuntu-18-04-x64",
870
- region="nyc3")
1003
+ region=digitalocean.Region.NYC3)
871
1004
  public = digitalocean.LoadBalancer("public",
872
- region="nyc3",
873
- forwarding_rules=[digitalocean.LoadBalancerForwardingRuleArgs(
874
- entry_port=80,
875
- entry_protocol="http",
876
- target_port=80,
877
- target_protocol="http",
878
- )],
879
- healthcheck=digitalocean.LoadBalancerHealthcheckArgs(
880
- port=22,
881
- protocol="tcp",
882
- ),
1005
+ name="loadbalancer-1",
1006
+ region=digitalocean.Region.NYC3,
1007
+ forwarding_rules=[{
1008
+ "entry_port": 80,
1009
+ "entry_protocol": "http",
1010
+ "target_port": 80,
1011
+ "target_protocol": "http",
1012
+ }],
1013
+ healthcheck={
1014
+ "port": 22,
1015
+ "protocol": "tcp",
1016
+ },
883
1017
  droplet_ids=[web.id])
884
1018
  ```
885
- <!--End PulumiCodeChooser -->
886
1019
 
887
1020
  When managing certificates attached to the load balancer, make sure to add the `create_before_destroy`
888
1021
  lifecycle property in order to ensure the certificate is correctly updated when changed. The order of
@@ -890,35 +1023,6 @@ class LoadBalancer(pulumi.CustomResource):
890
1023
  `Delete old certificate`. When doing so, you must also change the name of the certificate,
891
1024
  as there cannot be multiple certificates with the same name in an account.
892
1025
 
893
- <!--Start PulumiCodeChooser -->
894
- ```python
895
- import pulumi
896
- import pulumi_digitalocean as digitalocean
897
-
898
- cert = digitalocean.Certificate("cert",
899
- private_key="file('key.pem')",
900
- leaf_certificate="file('cert.pem')")
901
- web = digitalocean.Droplet("web",
902
- size="s-1vcpu-1gb",
903
- image="ubuntu-18-04-x64",
904
- region="nyc3")
905
- public = digitalocean.LoadBalancer("public",
906
- region="nyc3",
907
- forwarding_rules=[digitalocean.LoadBalancerForwardingRuleArgs(
908
- entry_port=443,
909
- entry_protocol="https",
910
- target_port=80,
911
- target_protocol="http",
912
- certificate_name=cert.name,
913
- )],
914
- healthcheck=digitalocean.LoadBalancerHealthcheckArgs(
915
- port=22,
916
- protocol="tcp",
917
- ),
918
- droplet_ids=[web.id])
919
- ```
920
- <!--End PulumiCodeChooser -->
921
-
922
1026
  ## Import
923
1027
 
924
1028
  Load Balancers can be imported using the `id`, e.g.
@@ -944,21 +1048,25 @@ class LoadBalancer(pulumi.CustomResource):
944
1048
  opts: Optional[pulumi.ResourceOptions] = None,
945
1049
  algorithm: Optional[pulumi.Input[Union[str, 'Algorithm']]] = None,
946
1050
  disable_lets_encrypt_dns_records: Optional[pulumi.Input[bool]] = None,
1051
+ domains: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerDomainArgs', 'LoadBalancerDomainArgsDict']]]]] = None,
947
1052
  droplet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
948
1053
  droplet_tag: Optional[pulumi.Input[str]] = None,
949
1054
  enable_backend_keepalive: Optional[pulumi.Input[bool]] = None,
950
1055
  enable_proxy_protocol: Optional[pulumi.Input[bool]] = None,
951
- firewall: Optional[pulumi.Input[pulumi.InputType['LoadBalancerFirewallArgs']]] = None,
952
- forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerForwardingRuleArgs']]]]] = None,
953
- healthcheck: Optional[pulumi.Input[pulumi.InputType['LoadBalancerHealthcheckArgs']]] = None,
1056
+ firewall: Optional[pulumi.Input[Union['LoadBalancerFirewallArgs', 'LoadBalancerFirewallArgsDict']]] = None,
1057
+ forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerForwardingRuleArgs', 'LoadBalancerForwardingRuleArgsDict']]]]] = None,
1058
+ glb_settings: Optional[pulumi.Input[Union['LoadBalancerGlbSettingsArgs', 'LoadBalancerGlbSettingsArgsDict']]] = None,
1059
+ healthcheck: Optional[pulumi.Input[Union['LoadBalancerHealthcheckArgs', 'LoadBalancerHealthcheckArgsDict']]] = None,
954
1060
  http_idle_timeout_seconds: Optional[pulumi.Input[int]] = None,
955
1061
  name: Optional[pulumi.Input[str]] = None,
1062
+ network: Optional[pulumi.Input[str]] = None,
956
1063
  project_id: Optional[pulumi.Input[str]] = None,
957
1064
  redirect_http_to_https: Optional[pulumi.Input[bool]] = None,
958
1065
  region: Optional[pulumi.Input[Union[str, 'Region']]] = None,
959
1066
  size: Optional[pulumi.Input[str]] = None,
960
1067
  size_unit: Optional[pulumi.Input[int]] = None,
961
- sticky_sessions: Optional[pulumi.Input[pulumi.InputType['LoadBalancerStickySessionsArgs']]] = None,
1068
+ sticky_sessions: Optional[pulumi.Input[Union['LoadBalancerStickySessionsArgs', 'LoadBalancerStickySessionsArgsDict']]] = None,
1069
+ target_load_balancer_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
962
1070
  type: Optional[pulumi.Input[str]] = None,
963
1071
  vpc_uuid: Optional[pulumi.Input[str]] = None,
964
1072
  __props__=None):
@@ -972,26 +1080,29 @@ class LoadBalancer(pulumi.CustomResource):
972
1080
 
973
1081
  __props__.__dict__["algorithm"] = algorithm
974
1082
  __props__.__dict__["disable_lets_encrypt_dns_records"] = disable_lets_encrypt_dns_records
1083
+ __props__.__dict__["domains"] = domains
975
1084
  __props__.__dict__["droplet_ids"] = droplet_ids
976
1085
  __props__.__dict__["droplet_tag"] = droplet_tag
977
1086
  __props__.__dict__["enable_backend_keepalive"] = enable_backend_keepalive
978
1087
  __props__.__dict__["enable_proxy_protocol"] = enable_proxy_protocol
979
1088
  __props__.__dict__["firewall"] = firewall
980
- if forwarding_rules is None and not opts.urn:
981
- raise TypeError("Missing required property 'forwarding_rules'")
982
1089
  __props__.__dict__["forwarding_rules"] = forwarding_rules
1090
+ __props__.__dict__["glb_settings"] = glb_settings
983
1091
  __props__.__dict__["healthcheck"] = healthcheck
984
1092
  __props__.__dict__["http_idle_timeout_seconds"] = http_idle_timeout_seconds
985
1093
  __props__.__dict__["name"] = name
1094
+ __props__.__dict__["network"] = network
986
1095
  __props__.__dict__["project_id"] = project_id
987
1096
  __props__.__dict__["redirect_http_to_https"] = redirect_http_to_https
988
1097
  __props__.__dict__["region"] = region
989
1098
  __props__.__dict__["size"] = size
990
1099
  __props__.__dict__["size_unit"] = size_unit
991
1100
  __props__.__dict__["sticky_sessions"] = sticky_sessions
1101
+ __props__.__dict__["target_load_balancer_ids"] = target_load_balancer_ids
992
1102
  __props__.__dict__["type"] = type
993
1103
  __props__.__dict__["vpc_uuid"] = vpc_uuid
994
1104
  __props__.__dict__["ip"] = None
1105
+ __props__.__dict__["ipv6"] = None
995
1106
  __props__.__dict__["load_balancer_urn"] = None
996
1107
  __props__.__dict__["status"] = None
997
1108
  super(LoadBalancer, __self__).__init__(
@@ -1006,24 +1117,29 @@ class LoadBalancer(pulumi.CustomResource):
1006
1117
  opts: Optional[pulumi.ResourceOptions] = None,
1007
1118
  algorithm: Optional[pulumi.Input[Union[str, 'Algorithm']]] = None,
1008
1119
  disable_lets_encrypt_dns_records: Optional[pulumi.Input[bool]] = None,
1120
+ domains: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerDomainArgs', 'LoadBalancerDomainArgsDict']]]]] = None,
1009
1121
  droplet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
1010
1122
  droplet_tag: Optional[pulumi.Input[str]] = None,
1011
1123
  enable_backend_keepalive: Optional[pulumi.Input[bool]] = None,
1012
1124
  enable_proxy_protocol: Optional[pulumi.Input[bool]] = None,
1013
- firewall: Optional[pulumi.Input[pulumi.InputType['LoadBalancerFirewallArgs']]] = None,
1014
- forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerForwardingRuleArgs']]]]] = None,
1015
- healthcheck: Optional[pulumi.Input[pulumi.InputType['LoadBalancerHealthcheckArgs']]] = None,
1125
+ firewall: Optional[pulumi.Input[Union['LoadBalancerFirewallArgs', 'LoadBalancerFirewallArgsDict']]] = None,
1126
+ forwarding_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerForwardingRuleArgs', 'LoadBalancerForwardingRuleArgsDict']]]]] = None,
1127
+ glb_settings: Optional[pulumi.Input[Union['LoadBalancerGlbSettingsArgs', 'LoadBalancerGlbSettingsArgsDict']]] = None,
1128
+ healthcheck: Optional[pulumi.Input[Union['LoadBalancerHealthcheckArgs', 'LoadBalancerHealthcheckArgsDict']]] = None,
1016
1129
  http_idle_timeout_seconds: Optional[pulumi.Input[int]] = None,
1017
1130
  ip: Optional[pulumi.Input[str]] = None,
1131
+ ipv6: Optional[pulumi.Input[str]] = None,
1018
1132
  load_balancer_urn: Optional[pulumi.Input[str]] = None,
1019
1133
  name: Optional[pulumi.Input[str]] = None,
1134
+ network: Optional[pulumi.Input[str]] = None,
1020
1135
  project_id: Optional[pulumi.Input[str]] = None,
1021
1136
  redirect_http_to_https: Optional[pulumi.Input[bool]] = None,
1022
1137
  region: Optional[pulumi.Input[Union[str, 'Region']]] = None,
1023
1138
  size: Optional[pulumi.Input[str]] = None,
1024
1139
  size_unit: Optional[pulumi.Input[int]] = None,
1025
1140
  status: Optional[pulumi.Input[str]] = None,
1026
- sticky_sessions: Optional[pulumi.Input[pulumi.InputType['LoadBalancerStickySessionsArgs']]] = None,
1141
+ sticky_sessions: Optional[pulumi.Input[Union['LoadBalancerStickySessionsArgs', 'LoadBalancerStickySessionsArgsDict']]] = None,
1142
+ target_load_balancer_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1027
1143
  type: Optional[pulumi.Input[str]] = None,
1028
1144
  vpc_uuid: Optional[pulumi.Input[str]] = None) -> 'LoadBalancer':
1029
1145
  """
@@ -1033,35 +1149,39 @@ class LoadBalancer(pulumi.CustomResource):
1033
1149
  :param str resource_name: The unique name of the resulting resource.
1034
1150
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1035
1151
  :param pulumi.ResourceOptions opts: Options for the resource.
1036
- :param pulumi.Input[Union[str, 'Algorithm']] algorithm: The load balancing algorithm used to determine
1037
- which backend Droplet will be selected by a client. It must be either `round_robin`
1152
+ :param pulumi.Input[Union[str, 'Algorithm']] algorithm: **Deprecated** This field has been deprecated. You can no longer specify an algorithm for load balancers.
1038
1153
  or `least_connections`. The default value is `round_robin`.
1039
1154
  :param pulumi.Input[bool] disable_lets_encrypt_dns_records: A boolean value indicating whether to disable automatic DNS record creation for Let's Encrypt certificates that are added to the load balancer. Default value is `false`.
1155
+ :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerDomainArgs', 'LoadBalancerDomainArgsDict']]]] domains: A list of `domains` required to ingress traffic to a Global Load Balancer. The `domains` block is documented below.
1040
1156
  :param pulumi.Input[Sequence[pulumi.Input[int]]] droplet_ids: A list of the IDs of each droplet to be attached to the Load Balancer.
1041
1157
  :param pulumi.Input[str] droplet_tag: The name of a Droplet tag corresponding to Droplets to be assigned to the Load Balancer.
1042
1158
  :param pulumi.Input[bool] enable_backend_keepalive: A boolean value indicating whether HTTP keepalive connections are maintained to target Droplets. Default value is `false`.
1043
1159
  :param pulumi.Input[bool] enable_proxy_protocol: A boolean value indicating whether PROXY
1044
1160
  Protocol should be used to pass information from connecting client requests to
1045
1161
  the backend service. Default value is `false`.
1046
- :param pulumi.Input[pulumi.InputType['LoadBalancerFirewallArgs']] firewall: A block containing rules for allowing/denying traffic to the Load Balancer. The `firewall` block is documented below. Only 1 firewall is allowed.
1047
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerForwardingRuleArgs']]]] forwarding_rules: A list of `forwarding_rule` to be assigned to the
1162
+ :param pulumi.Input[Union['LoadBalancerFirewallArgs', 'LoadBalancerFirewallArgsDict']] firewall: A block containing rules for allowing/denying traffic to the Load Balancer. The `firewall` block is documented below. Only 1 firewall is allowed.
1163
+ :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerForwardingRuleArgs', 'LoadBalancerForwardingRuleArgsDict']]]] forwarding_rules: A list of `forwarding_rule` to be assigned to the
1048
1164
  Load Balancer. The `forwarding_rule` block is documented below.
1049
- :param pulumi.Input[pulumi.InputType['LoadBalancerHealthcheckArgs']] healthcheck: A `healthcheck` block to be assigned to the
1165
+ :param pulumi.Input[Union['LoadBalancerGlbSettingsArgs', 'LoadBalancerGlbSettingsArgsDict']] glb_settings: A block containing `glb_settings` required to define target rules for a Global Load Balancer. The `glb_settings` block is documented below.
1166
+ :param pulumi.Input[Union['LoadBalancerHealthcheckArgs', 'LoadBalancerHealthcheckArgsDict']] healthcheck: A `healthcheck` block to be assigned to the
1050
1167
  Load Balancer. The `healthcheck` block is documented below. Only 1 healthcheck is allowed.
1051
1168
  :param pulumi.Input[int] http_idle_timeout_seconds: Specifies the idle timeout for HTTPS connections on the load balancer in seconds.
1052
1169
  :param pulumi.Input[str] ip: The ip of the Load Balancer
1053
1170
  :param pulumi.Input[str] load_balancer_urn: The uniform resource name for the Load Balancer
1054
1171
  :param pulumi.Input[str] name: The Load Balancer name
1172
+ :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.
1055
1173
  :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project.
1056
1174
  :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether
1057
1175
  HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443.
1058
1176
  Default value is `false`.
1059
1177
  :param pulumi.Input[Union[str, 'Region']] region: The region to start in
1060
1178
  :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided.
1061
- :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
1062
- :param pulumi.Input[pulumi.InputType['LoadBalancerStickySessionsArgs']] sticky_sessions: A `sticky_sessions` block to be assigned to the
1179
+ :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
1180
+ :param pulumi.Input[Union['LoadBalancerStickySessionsArgs', 'LoadBalancerStickySessionsArgsDict']] sticky_sessions: A `sticky_sessions` block to be assigned to the
1063
1181
  Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed.
1064
- :param pulumi.Input[str] type: An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
1182
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer.
1183
+ :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.
1184
+ **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.
1065
1185
  :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located.
1066
1186
  """
1067
1187
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -1070,17 +1190,21 @@ class LoadBalancer(pulumi.CustomResource):
1070
1190
 
1071
1191
  __props__.__dict__["algorithm"] = algorithm
1072
1192
  __props__.__dict__["disable_lets_encrypt_dns_records"] = disable_lets_encrypt_dns_records
1193
+ __props__.__dict__["domains"] = domains
1073
1194
  __props__.__dict__["droplet_ids"] = droplet_ids
1074
1195
  __props__.__dict__["droplet_tag"] = droplet_tag
1075
1196
  __props__.__dict__["enable_backend_keepalive"] = enable_backend_keepalive
1076
1197
  __props__.__dict__["enable_proxy_protocol"] = enable_proxy_protocol
1077
1198
  __props__.__dict__["firewall"] = firewall
1078
1199
  __props__.__dict__["forwarding_rules"] = forwarding_rules
1200
+ __props__.__dict__["glb_settings"] = glb_settings
1079
1201
  __props__.__dict__["healthcheck"] = healthcheck
1080
1202
  __props__.__dict__["http_idle_timeout_seconds"] = http_idle_timeout_seconds
1081
1203
  __props__.__dict__["ip"] = ip
1204
+ __props__.__dict__["ipv6"] = ipv6
1082
1205
  __props__.__dict__["load_balancer_urn"] = load_balancer_urn
1083
1206
  __props__.__dict__["name"] = name
1207
+ __props__.__dict__["network"] = network
1084
1208
  __props__.__dict__["project_id"] = project_id
1085
1209
  __props__.__dict__["redirect_http_to_https"] = redirect_http_to_https
1086
1210
  __props__.__dict__["region"] = region
@@ -1088,16 +1212,17 @@ class LoadBalancer(pulumi.CustomResource):
1088
1212
  __props__.__dict__["size_unit"] = size_unit
1089
1213
  __props__.__dict__["status"] = status
1090
1214
  __props__.__dict__["sticky_sessions"] = sticky_sessions
1215
+ __props__.__dict__["target_load_balancer_ids"] = target_load_balancer_ids
1091
1216
  __props__.__dict__["type"] = type
1092
1217
  __props__.__dict__["vpc_uuid"] = vpc_uuid
1093
1218
  return LoadBalancer(resource_name, opts=opts, __props__=__props__)
1094
1219
 
1095
1220
  @property
1096
1221
  @pulumi.getter
1222
+ @_utilities.deprecated("""This field has been deprecated. You can no longer specify an algorithm for load balancers.""")
1097
1223
  def algorithm(self) -> pulumi.Output[Optional[str]]:
1098
1224
  """
1099
- The load balancing algorithm used to determine
1100
- which backend Droplet will be selected by a client. It must be either `round_robin`
1225
+ **Deprecated** This field has been deprecated. You can no longer specify an algorithm for load balancers.
1101
1226
  or `least_connections`. The default value is `round_robin`.
1102
1227
  """
1103
1228
  return pulumi.get(self, "algorithm")
@@ -1110,6 +1235,14 @@ class LoadBalancer(pulumi.CustomResource):
1110
1235
  """
1111
1236
  return pulumi.get(self, "disable_lets_encrypt_dns_records")
1112
1237
 
1238
+ @property
1239
+ @pulumi.getter
1240
+ def domains(self) -> pulumi.Output[Sequence['outputs.LoadBalancerDomain']]:
1241
+ """
1242
+ A list of `domains` required to ingress traffic to a Global Load Balancer. The `domains` block is documented below.
1243
+ """
1244
+ return pulumi.get(self, "domains")
1245
+
1113
1246
  @property
1114
1247
  @pulumi.getter(name="dropletIds")
1115
1248
  def droplet_ids(self) -> pulumi.Output[Sequence[int]]:
@@ -1154,13 +1287,21 @@ class LoadBalancer(pulumi.CustomResource):
1154
1287
 
1155
1288
  @property
1156
1289
  @pulumi.getter(name="forwardingRules")
1157
- def forwarding_rules(self) -> pulumi.Output[Sequence['outputs.LoadBalancerForwardingRule']]:
1290
+ def forwarding_rules(self) -> pulumi.Output[Optional[Sequence['outputs.LoadBalancerForwardingRule']]]:
1158
1291
  """
1159
1292
  A list of `forwarding_rule` to be assigned to the
1160
1293
  Load Balancer. The `forwarding_rule` block is documented below.
1161
1294
  """
1162
1295
  return pulumi.get(self, "forwarding_rules")
1163
1296
 
1297
+ @property
1298
+ @pulumi.getter(name="glbSettings")
1299
+ def glb_settings(self) -> pulumi.Output['outputs.LoadBalancerGlbSettings']:
1300
+ """
1301
+ A block containing `glb_settings` required to define target rules for a Global Load Balancer. The `glb_settings` block is documented below.
1302
+ """
1303
+ return pulumi.get(self, "glb_settings")
1304
+
1164
1305
  @property
1165
1306
  @pulumi.getter
1166
1307
  def healthcheck(self) -> pulumi.Output['outputs.LoadBalancerHealthcheck']:
@@ -1186,6 +1327,11 @@ class LoadBalancer(pulumi.CustomResource):
1186
1327
  """
1187
1328
  return pulumi.get(self, "ip")
1188
1329
 
1330
+ @property
1331
+ @pulumi.getter
1332
+ def ipv6(self) -> pulumi.Output[str]:
1333
+ return pulumi.get(self, "ipv6")
1334
+
1189
1335
  @property
1190
1336
  @pulumi.getter(name="loadBalancerUrn")
1191
1337
  def load_balancer_urn(self) -> pulumi.Output[str]:
@@ -1202,6 +1348,14 @@ class LoadBalancer(pulumi.CustomResource):
1202
1348
  """
1203
1349
  return pulumi.get(self, "name")
1204
1350
 
1351
+ @property
1352
+ @pulumi.getter
1353
+ def network(self) -> pulumi.Output[Optional[str]]:
1354
+ """
1355
+ The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.
1356
+ """
1357
+ return pulumi.get(self, "network")
1358
+
1205
1359
  @property
1206
1360
  @pulumi.getter(name="projectId")
1207
1361
  def project_id(self) -> pulumi.Output[str]:
@@ -1240,7 +1394,7 @@ class LoadBalancer(pulumi.CustomResource):
1240
1394
  @pulumi.getter(name="sizeUnit")
1241
1395
  def size_unit(self) -> pulumi.Output[int]:
1242
1396
  """
1243
- The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
1397
+ The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.
1244
1398
  """
1245
1399
  return pulumi.get(self, "size_unit")
1246
1400
 
@@ -1258,11 +1412,20 @@ class LoadBalancer(pulumi.CustomResource):
1258
1412
  """
1259
1413
  return pulumi.get(self, "sticky_sessions")
1260
1414
 
1415
+ @property
1416
+ @pulumi.getter(name="targetLoadBalancerIds")
1417
+ def target_load_balancer_ids(self) -> pulumi.Output[Sequence[str]]:
1418
+ """
1419
+ A list of Load Balancer IDs to be attached behind a Global Load Balancer.
1420
+ """
1421
+ return pulumi.get(self, "target_load_balancer_ids")
1422
+
1261
1423
  @property
1262
1424
  @pulumi.getter
1263
1425
  def type(self) -> pulumi.Output[Optional[str]]:
1264
1426
  """
1265
- An attribute indicating how and if requests from a client will be persistently served by the same backend Droplet. The possible values are `cookies` or `none`. If not specified, the default value is `none`.
1427
+ The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.
1428
+ **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.
1266
1429
  """
1267
1430
  return pulumi.get(self, "type")
1268
1431