pulumi-hcloud 1.18.0a1709364097__py3-none-any.whl → 1.22.0a1736833581__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.
Files changed (66) hide show
  1. pulumi_hcloud/__init__.py +2 -0
  2. pulumi_hcloud/_inputs.py +247 -15
  3. pulumi_hcloud/_utilities.py +41 -5
  4. pulumi_hcloud/certificate.py +15 -10
  5. pulumi_hcloud/config/__init__.pyi +5 -0
  6. pulumi_hcloud/config/vars.py +5 -0
  7. pulumi_hcloud/firewall.py +77 -66
  8. pulumi_hcloud/firewall_attachment.py +31 -18
  9. pulumi_hcloud/floating_ip.py +39 -32
  10. pulumi_hcloud/floating_ip_assignment.py +11 -4
  11. pulumi_hcloud/get_certificate.py +25 -6
  12. pulumi_hcloud/get_certificates.py +14 -5
  13. pulumi_hcloud/get_datacenter.py +38 -23
  14. pulumi_hcloud/get_datacenters.py +28 -53
  15. pulumi_hcloud/get_firewall.py +38 -19
  16. pulumi_hcloud/get_firewalls.py +16 -5
  17. pulumi_hcloud/get_floating_ip.py +39 -13
  18. pulumi_hcloud/get_floating_ips.py +14 -5
  19. pulumi_hcloud/get_image.py +37 -9
  20. pulumi_hcloud/get_images.py +22 -5
  21. pulumi_hcloud/get_load_balancer.py +30 -7
  22. pulumi_hcloud/get_load_balancer_type.py +202 -0
  23. pulumi_hcloud/get_load_balancer_types.py +100 -0
  24. pulumi_hcloud/get_load_balancers.py +14 -5
  25. pulumi_hcloud/get_location.py +42 -25
  26. pulumi_hcloud/get_locations.py +28 -53
  27. pulumi_hcloud/get_network.py +28 -11
  28. pulumi_hcloud/get_networks.py +14 -5
  29. pulumi_hcloud/get_placement_group.py +31 -13
  30. pulumi_hcloud/get_placement_groups.py +16 -5
  31. pulumi_hcloud/get_primary_ip.py +44 -18
  32. pulumi_hcloud/get_primary_ips.py +14 -5
  33. pulumi_hcloud/get_server.py +43 -11
  34. pulumi_hcloud/get_server_type.py +75 -49
  35. pulumi_hcloud/get_server_types.py +39 -23
  36. pulumi_hcloud/get_servers.py +16 -5
  37. pulumi_hcloud/get_ssh_key.py +58 -32
  38. pulumi_hcloud/get_ssh_keys.py +35 -20
  39. pulumi_hcloud/get_volume.py +33 -12
  40. pulumi_hcloud/get_volumes.py +18 -7
  41. pulumi_hcloud/load_balancer.py +63 -60
  42. pulumi_hcloud/load_balancer_network.py +28 -15
  43. pulumi_hcloud/load_balancer_service.py +59 -52
  44. pulumi_hcloud/load_balancer_target.py +33 -24
  45. pulumi_hcloud/managed_certificate.py +57 -20
  46. pulumi_hcloud/network.py +27 -18
  47. pulumi_hcloud/network_route.py +15 -6
  48. pulumi_hcloud/network_subnet.py +15 -6
  49. pulumi_hcloud/outputs.py +265 -46
  50. pulumi_hcloud/placement_group.py +27 -18
  51. pulumi_hcloud/primary_ip.py +66 -43
  52. pulumi_hcloud/provider.py +5 -0
  53. pulumi_hcloud/pulumi-plugin.json +2 -1
  54. pulumi_hcloud/rdns.py +51 -34
  55. pulumi_hcloud/server.py +185 -130
  56. pulumi_hcloud/server_network.py +26 -15
  57. pulumi_hcloud/snapshot.py +25 -18
  58. pulumi_hcloud/ssh_key.py +52 -47
  59. pulumi_hcloud/uploaded_certificate.py +73 -20
  60. pulumi_hcloud/volume.py +37 -28
  61. pulumi_hcloud/volume_attachment.py +11 -4
  62. {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/METADATA +7 -6
  63. pulumi_hcloud-1.22.0a1736833581.dist-info/RECORD +67 -0
  64. {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/WHEEL +1 -1
  65. pulumi_hcloud-1.18.0a1709364097.dist-info/RECORD +0 -65
  66. {pulumi_hcloud-1.18.0a1709364097.dist-info → pulumi_hcloud-1.22.0a1736833581.dist-info}/top_level.txt +0 -0
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = [
@@ -109,7 +114,7 @@ class GetFloatingIpResult:
109
114
 
110
115
  @property
111
116
  @pulumi.getter
112
- def labels(self) -> Mapping[str, Any]:
117
+ def labels(self) -> Mapping[str, str]:
113
118
  """
114
119
  (map) User-defined labels (key-value pairs).
115
120
  """
@@ -125,10 +130,8 @@ class GetFloatingIpResult:
125
130
 
126
131
  @property
127
132
  @pulumi.getter
133
+ @_utilities.deprecated("""Please use the with_selector property instead.""")
128
134
  def selector(self) -> Optional[str]:
129
- warnings.warn("""Please use the with_selector property instead.""", DeprecationWarning)
130
- pulumi.log.warn("""selector is deprecated: Please use the with_selector property instead.""")
131
-
132
135
  return pulumi.get(self, "selector")
133
136
 
134
137
  @property
@@ -187,9 +190,12 @@ def get_floating_ip(id: Optional[int] = None,
187
190
  ## Example Usage
188
191
 
189
192
  # Data Source: FloatingIp
193
+
190
194
  Provides details about a Hetzner Cloud Floating IP.
191
195
  This resource can be useful when you need to determine a Floating IP ID based on the IP address.
196
+
192
197
  ### Additional Examples
198
+
193
199
  ```python
194
200
  import pulumi
195
201
  import pulumi_hcloud as hcloud
@@ -197,10 +203,10 @@ def get_floating_ip(id: Optional[int] = None,
197
203
  ip1 = hcloud.get_floating_ip(ip_address="1.2.3.4")
198
204
  ip2 = hcloud.get_floating_ip(with_selector="key=value")
199
205
  main = []
200
- for range in [{"value": i} for i in range(0, var.counter)]:
206
+ for range in [{"value": i} for i in range(0, counter)]:
201
207
  main.append(hcloud.FloatingIpAssignment(f"main-{range['value']}",
202
208
  floating_ip_id=ip1.id,
203
- server_id=hcloud_server["main"]["id"]))
209
+ server_id=main_hcloud_server["id"]))
204
210
  ```
205
211
 
206
212
 
@@ -231,15 +237,12 @@ def get_floating_ip(id: Optional[int] = None,
231
237
  server_id=pulumi.get(__ret__, 'server_id'),
232
238
  type=pulumi.get(__ret__, 'type'),
233
239
  with_selector=pulumi.get(__ret__, 'with_selector'))
234
-
235
-
236
- @_utilities.lift_output_func(get_floating_ip)
237
240
  def get_floating_ip_output(id: Optional[pulumi.Input[Optional[int]]] = None,
238
241
  ip_address: Optional[pulumi.Input[Optional[str]]] = None,
239
242
  name: Optional[pulumi.Input[Optional[str]]] = None,
240
243
  selector: Optional[pulumi.Input[Optional[str]]] = None,
241
244
  with_selector: Optional[pulumi.Input[Optional[str]]] = None,
242
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFloatingIpResult]:
245
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetFloatingIpResult]:
243
246
  """
244
247
  Provides details about a Hetzner Cloud Floating IP.
245
248
 
@@ -248,9 +251,12 @@ def get_floating_ip_output(id: Optional[pulumi.Input[Optional[int]]] = None,
248
251
  ## Example Usage
249
252
 
250
253
  # Data Source: FloatingIp
254
+
251
255
  Provides details about a Hetzner Cloud Floating IP.
252
256
  This resource can be useful when you need to determine a Floating IP ID based on the IP address.
257
+
253
258
  ### Additional Examples
259
+
254
260
  ```python
255
261
  import pulumi
256
262
  import pulumi_hcloud as hcloud
@@ -258,10 +264,10 @@ def get_floating_ip_output(id: Optional[pulumi.Input[Optional[int]]] = None,
258
264
  ip1 = hcloud.get_floating_ip(ip_address="1.2.3.4")
259
265
  ip2 = hcloud.get_floating_ip(with_selector="key=value")
260
266
  main = []
261
- for range in [{"value": i} for i in range(0, var.counter)]:
267
+ for range in [{"value": i} for i in range(0, counter)]:
262
268
  main.append(hcloud.FloatingIpAssignment(f"main-{range['value']}",
263
269
  floating_ip_id=ip1.id,
264
- server_id=hcloud_server["main"]["id"]))
270
+ server_id=main_hcloud_server["id"]))
265
271
  ```
266
272
 
267
273
 
@@ -270,4 +276,24 @@ def get_floating_ip_output(id: Optional[pulumi.Input[Optional[int]]] = None,
270
276
  :param str name: Name of the Floating IP.
271
277
  :param str with_selector: [Label selector](https://docs.hetzner.cloud/#overview-label-selector)
272
278
  """
273
- ...
279
+ __args__ = dict()
280
+ __args__['id'] = id
281
+ __args__['ipAddress'] = ip_address
282
+ __args__['name'] = name
283
+ __args__['selector'] = selector
284
+ __args__['withSelector'] = with_selector
285
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
286
+ __ret__ = pulumi.runtime.invoke_output('hcloud:index/getFloatingIp:getFloatingIp', __args__, opts=opts, typ=GetFloatingIpResult)
287
+ return __ret__.apply(lambda __response__: GetFloatingIpResult(
288
+ delete_protection=pulumi.get(__response__, 'delete_protection'),
289
+ description=pulumi.get(__response__, 'description'),
290
+ home_location=pulumi.get(__response__, 'home_location'),
291
+ id=pulumi.get(__response__, 'id'),
292
+ ip_address=pulumi.get(__response__, 'ip_address'),
293
+ ip_network=pulumi.get(__response__, 'ip_network'),
294
+ labels=pulumi.get(__response__, 'labels'),
295
+ name=pulumi.get(__response__, 'name'),
296
+ selector=pulumi.get(__response__, 'selector'),
297
+ server_id=pulumi.get(__response__, 'server_id'),
298
+ type=pulumi.get(__response__, 'type'),
299
+ with_selector=pulumi.get(__response__, 'with_selector')))
@@ -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
 
@@ -92,11 +97,8 @@ def get_floating_ips(with_selector: Optional[str] = None,
92
97
  floating_ips=pulumi.get(__ret__, 'floating_ips'),
93
98
  id=pulumi.get(__ret__, 'id'),
94
99
  with_selector=pulumi.get(__ret__, 'with_selector'))
95
-
96
-
97
- @_utilities.lift_output_func(get_floating_ips)
98
100
  def get_floating_ips_output(with_selector: Optional[pulumi.Input[Optional[str]]] = None,
99
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetFloatingIpsResult]:
101
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetFloatingIpsResult]:
100
102
  """
101
103
  Provides details about multiple Hetzner Cloud Floating IPs.
102
104
 
@@ -112,4 +114,11 @@ def get_floating_ips_output(with_selector: Optional[pulumi.Input[Optional[str]]]
112
114
 
113
115
  :param str with_selector: [Label selector](https://docs.hetzner.cloud/#overview-label-selector)
114
116
  """
115
- ...
117
+ __args__ = dict()
118
+ __args__['withSelector'] = with_selector
119
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
120
+ __ret__ = pulumi.runtime.invoke_output('hcloud:index/getFloatingIps:getFloatingIps', __args__, opts=opts, typ=GetFloatingIpsResult)
121
+ return __ret__.apply(lambda __response__: GetFloatingIpsResult(
122
+ floating_ips=pulumi.get(__response__, 'floating_ips'),
123
+ id=pulumi.get(__response__, 'id'),
124
+ with_selector=pulumi.get(__response__, 'with_selector')))
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = [
@@ -121,7 +126,7 @@ class GetImageResult:
121
126
 
122
127
  @property
123
128
  @pulumi.getter
124
- def labels(self) -> Mapping[str, Any]:
129
+ def labels(self) -> Mapping[str, str]:
125
130
  return pulumi.get(self, "labels")
126
131
 
127
132
  @property
@@ -163,10 +168,8 @@ class GetImageResult:
163
168
 
164
169
  @property
165
170
  @pulumi.getter
171
+ @_utilities.deprecated("""Please use the with_selector property instead.""")
166
172
  def selector(self) -> Optional[str]:
167
- warnings.warn("""Please use the with_selector property instead.""", DeprecationWarning)
168
- pulumi.log.warn("""selector is deprecated: Please use the with_selector property instead.""")
169
-
170
173
  return pulumi.get(self, "selector")
171
174
 
172
175
  @property
@@ -280,9 +283,6 @@ def get_image(id: Optional[int] = None,
280
283
  with_architecture=pulumi.get(__ret__, 'with_architecture'),
281
284
  with_selector=pulumi.get(__ret__, 'with_selector'),
282
285
  with_statuses=pulumi.get(__ret__, 'with_statuses'))
283
-
284
-
285
- @_utilities.lift_output_func(get_image)
286
286
  def get_image_output(id: Optional[pulumi.Input[Optional[int]]] = None,
287
287
  include_deprecated: Optional[pulumi.Input[Optional[bool]]] = None,
288
288
  most_recent: Optional[pulumi.Input[Optional[bool]]] = None,
@@ -291,7 +291,7 @@ def get_image_output(id: Optional[pulumi.Input[Optional[int]]] = None,
291
291
  with_architecture: Optional[pulumi.Input[Optional[str]]] = None,
292
292
  with_selector: Optional[pulumi.Input[Optional[str]]] = None,
293
293
  with_statuses: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
294
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetImageResult]:
294
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetImageResult]:
295
295
  """
296
296
  ## Example Usage
297
297
 
@@ -315,4 +315,32 @@ def get_image_output(id: Optional[pulumi.Input[Optional[int]]] = None,
315
315
  :param str with_selector: [Label selector](https://docs.hetzner.cloud/#overview-label-selector)
316
316
  :param Sequence[str] with_statuses: Select only images with the specified status, could contain `creating` or `available`.
317
317
  """
318
- ...
318
+ __args__ = dict()
319
+ __args__['id'] = id
320
+ __args__['includeDeprecated'] = include_deprecated
321
+ __args__['mostRecent'] = most_recent
322
+ __args__['name'] = name
323
+ __args__['selector'] = selector
324
+ __args__['withArchitecture'] = with_architecture
325
+ __args__['withSelector'] = with_selector
326
+ __args__['withStatuses'] = with_statuses
327
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
328
+ __ret__ = pulumi.runtime.invoke_output('hcloud:index/getImage:getImage', __args__, opts=opts, typ=GetImageResult)
329
+ return __ret__.apply(lambda __response__: GetImageResult(
330
+ architecture=pulumi.get(__response__, 'architecture'),
331
+ created=pulumi.get(__response__, 'created'),
332
+ deprecated=pulumi.get(__response__, 'deprecated'),
333
+ description=pulumi.get(__response__, 'description'),
334
+ id=pulumi.get(__response__, 'id'),
335
+ include_deprecated=pulumi.get(__response__, 'include_deprecated'),
336
+ labels=pulumi.get(__response__, 'labels'),
337
+ most_recent=pulumi.get(__response__, 'most_recent'),
338
+ name=pulumi.get(__response__, 'name'),
339
+ os_flavor=pulumi.get(__response__, 'os_flavor'),
340
+ os_version=pulumi.get(__response__, 'os_version'),
341
+ rapid_deploy=pulumi.get(__response__, 'rapid_deploy'),
342
+ selector=pulumi.get(__response__, 'selector'),
343
+ type=pulumi.get(__response__, 'type'),
344
+ with_architecture=pulumi.get(__response__, 'with_architecture'),
345
+ with_selector=pulumi.get(__response__, 'with_selector'),
346
+ with_statuses=pulumi.get(__response__, 'with_statuses')))
@@ -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
 
@@ -145,15 +150,12 @@ def get_images(include_deprecated: Optional[bool] = None,
145
150
  with_architectures=pulumi.get(__ret__, 'with_architectures'),
146
151
  with_selector=pulumi.get(__ret__, 'with_selector'),
147
152
  with_statuses=pulumi.get(__ret__, 'with_statuses'))
148
-
149
-
150
- @_utilities.lift_output_func(get_images)
151
153
  def get_images_output(include_deprecated: Optional[pulumi.Input[Optional[bool]]] = None,
152
154
  most_recent: Optional[pulumi.Input[Optional[bool]]] = None,
153
155
  with_architectures: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
154
156
  with_selector: Optional[pulumi.Input[Optional[str]]] = None,
155
157
  with_statuses: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
156
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetImagesResult]:
158
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetImagesResult]:
157
159
  """
158
160
  Provides details about multiple Hetzner Cloud Images.
159
161
 
@@ -174,4 +176,19 @@ def get_images_output(include_deprecated: Optional[pulumi.Input[Optional[bool]]]
174
176
  :param str with_selector: [Label selector](https://docs.hetzner.cloud/#overview-label-selector)
175
177
  :param Sequence[str] with_statuses: List only images with the specified status, could contain `creating` or `available`.
176
178
  """
177
- ...
179
+ __args__ = dict()
180
+ __args__['includeDeprecated'] = include_deprecated
181
+ __args__['mostRecent'] = most_recent
182
+ __args__['withArchitectures'] = with_architectures
183
+ __args__['withSelector'] = with_selector
184
+ __args__['withStatuses'] = with_statuses
185
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
186
+ __ret__ = pulumi.runtime.invoke_output('hcloud:index/getImages:getImages', __args__, opts=opts, typ=GetImagesResult)
187
+ return __ret__.apply(lambda __response__: GetImagesResult(
188
+ id=pulumi.get(__response__, 'id'),
189
+ images=pulumi.get(__response__, 'images'),
190
+ include_deprecated=pulumi.get(__response__, 'include_deprecated'),
191
+ most_recent=pulumi.get(__response__, 'most_recent'),
192
+ with_architectures=pulumi.get(__response__, 'with_architectures'),
193
+ with_selector=pulumi.get(__response__, 'with_selector'),
194
+ with_statuses=pulumi.get(__response__, 'with_statuses')))
@@ -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
 
@@ -111,7 +116,7 @@ class GetLoadBalancerResult:
111
116
 
112
117
  @property
113
118
  @pulumi.getter
114
- def labels(self) -> Mapping[str, Any]:
119
+ def labels(self) -> Mapping[str, str]:
115
120
  """
116
121
  (map) User-defined labels (key-value pairs) .
117
122
  """
@@ -129,7 +134,7 @@ class GetLoadBalancerResult:
129
134
  @pulumi.getter
130
135
  def location(self) -> str:
131
136
  """
132
- (string) Name of the location the Load Balancer is in.
137
+ (string) Name of the location the Load Balancer is in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
133
138
  """
134
139
  return pulumi.get(self, "location")
135
140
 
@@ -253,13 +258,10 @@ def get_load_balancer(id: Optional[int] = None,
253
258
  services=pulumi.get(__ret__, 'services'),
254
259
  targets=pulumi.get(__ret__, 'targets'),
255
260
  with_selector=pulumi.get(__ret__, 'with_selector'))
256
-
257
-
258
- @_utilities.lift_output_func(get_load_balancer)
259
261
  def get_load_balancer_output(id: Optional[pulumi.Input[Optional[int]]] = None,
260
262
  name: Optional[pulumi.Input[Optional[str]]] = None,
261
263
  with_selector: Optional[pulumi.Input[Optional[str]]] = None,
262
- opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetLoadBalancerResult]:
264
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetLoadBalancerResult]:
263
265
  """
264
266
  Provides details about a specific Hetzner Cloud Load Balancer.
265
267
 
@@ -279,4 +281,25 @@ def get_load_balancer_output(id: Optional[pulumi.Input[Optional[int]]] = None,
279
281
  :param str name: Name of the Load Balancer.
280
282
  :param str with_selector: Label Selector. For more information about possible values, visit the [Hetzner Cloud Documentation](https://docs.hetzner.cloud/#overview-label-selector).
281
283
  """
282
- ...
284
+ __args__ = dict()
285
+ __args__['id'] = id
286
+ __args__['name'] = name
287
+ __args__['withSelector'] = with_selector
288
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
289
+ __ret__ = pulumi.runtime.invoke_output('hcloud:index/getLoadBalancer:getLoadBalancer', __args__, opts=opts, typ=GetLoadBalancerResult)
290
+ return __ret__.apply(lambda __response__: GetLoadBalancerResult(
291
+ algorithms=pulumi.get(__response__, 'algorithms'),
292
+ delete_protection=pulumi.get(__response__, 'delete_protection'),
293
+ id=pulumi.get(__response__, 'id'),
294
+ ipv4=pulumi.get(__response__, 'ipv4'),
295
+ ipv6=pulumi.get(__response__, 'ipv6'),
296
+ labels=pulumi.get(__response__, 'labels'),
297
+ load_balancer_type=pulumi.get(__response__, 'load_balancer_type'),
298
+ location=pulumi.get(__response__, 'location'),
299
+ name=pulumi.get(__response__, 'name'),
300
+ network_id=pulumi.get(__response__, 'network_id'),
301
+ network_ip=pulumi.get(__response__, 'network_ip'),
302
+ network_zone=pulumi.get(__response__, 'network_zone'),
303
+ services=pulumi.get(__response__, 'services'),
304
+ targets=pulumi.get(__response__, 'targets'),
305
+ with_selector=pulumi.get(__response__, 'with_selector')))
@@ -0,0 +1,202 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+
17
+ __all__ = [
18
+ 'GetLoadBalancerTypeResult',
19
+ 'AwaitableGetLoadBalancerTypeResult',
20
+ 'get_load_balancer_type',
21
+ 'get_load_balancer_type_output',
22
+ ]
23
+
24
+ @pulumi.output_type
25
+ class GetLoadBalancerTypeResult:
26
+ """
27
+ A collection of values returned by getLoadBalancerType.
28
+ """
29
+ def __init__(__self__, description=None, id=None, max_assigned_certificates=None, max_connections=None, max_services=None, max_targets=None, name=None):
30
+ if description and not isinstance(description, str):
31
+ raise TypeError("Expected argument 'description' to be a str")
32
+ pulumi.set(__self__, "description", description)
33
+ if id and not isinstance(id, int):
34
+ raise TypeError("Expected argument 'id' to be a int")
35
+ pulumi.set(__self__, "id", id)
36
+ if max_assigned_certificates and not isinstance(max_assigned_certificates, int):
37
+ raise TypeError("Expected argument 'max_assigned_certificates' to be a int")
38
+ pulumi.set(__self__, "max_assigned_certificates", max_assigned_certificates)
39
+ if max_connections and not isinstance(max_connections, int):
40
+ raise TypeError("Expected argument 'max_connections' to be a int")
41
+ pulumi.set(__self__, "max_connections", max_connections)
42
+ if max_services and not isinstance(max_services, int):
43
+ raise TypeError("Expected argument 'max_services' to be a int")
44
+ pulumi.set(__self__, "max_services", max_services)
45
+ if max_targets and not isinstance(max_targets, int):
46
+ raise TypeError("Expected argument 'max_targets' to be a int")
47
+ pulumi.set(__self__, "max_targets", max_targets)
48
+ if name and not isinstance(name, str):
49
+ raise TypeError("Expected argument 'name' to be a str")
50
+ pulumi.set(__self__, "name", name)
51
+
52
+ @property
53
+ @pulumi.getter
54
+ def description(self) -> str:
55
+ """
56
+ Description of the Load Balancer Type.
57
+ """
58
+ return pulumi.get(self, "description")
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def id(self) -> int:
63
+ """
64
+ ID of the Load Balancer Type.
65
+ """
66
+ return pulumi.get(self, "id")
67
+
68
+ @property
69
+ @pulumi.getter(name="maxAssignedCertificates")
70
+ def max_assigned_certificates(self) -> int:
71
+ """
72
+ Maximum number of certificates that can be assigned for the Load Balancer of this type.
73
+ """
74
+ return pulumi.get(self, "max_assigned_certificates")
75
+
76
+ @property
77
+ @pulumi.getter(name="maxConnections")
78
+ def max_connections(self) -> int:
79
+ """
80
+ Maximum number of simultaneous open connections for the Load Balancer of this type.
81
+ """
82
+ return pulumi.get(self, "max_connections")
83
+
84
+ @property
85
+ @pulumi.getter(name="maxServices")
86
+ def max_services(self) -> int:
87
+ """
88
+ Maximum number of services for the Load Balancer of this type.
89
+ """
90
+ return pulumi.get(self, "max_services")
91
+
92
+ @property
93
+ @pulumi.getter(name="maxTargets")
94
+ def max_targets(self) -> int:
95
+ """
96
+ Maximum number of targets for the Load Balancer of this type.
97
+ """
98
+ return pulumi.get(self, "max_targets")
99
+
100
+ @property
101
+ @pulumi.getter
102
+ def name(self) -> str:
103
+ """
104
+ Name of the Load Balancer Type.
105
+ """
106
+ return pulumi.get(self, "name")
107
+
108
+
109
+ class AwaitableGetLoadBalancerTypeResult(GetLoadBalancerTypeResult):
110
+ # pylint: disable=using-constant-test
111
+ def __await__(self):
112
+ if False:
113
+ yield self
114
+ return GetLoadBalancerTypeResult(
115
+ description=self.description,
116
+ id=self.id,
117
+ max_assigned_certificates=self.max_assigned_certificates,
118
+ max_connections=self.max_connections,
119
+ max_services=self.max_services,
120
+ max_targets=self.max_targets,
121
+ name=self.name)
122
+
123
+
124
+ def get_load_balancer_type(id: Optional[int] = None,
125
+ name: Optional[str] = None,
126
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLoadBalancerTypeResult:
127
+ """
128
+ Provides details about a specific Hetzner Cloud Load Balancer Type.
129
+
130
+ Use this resource to get detailed information about a specific Load Balancer Type.
131
+
132
+ ## Example Usage
133
+
134
+ ```python
135
+ import pulumi
136
+ import pulumi_hcloud as hcloud
137
+
138
+ by_id = hcloud.get_load_balancer_type(id=1)
139
+ by_name = hcloud.get_load_balancer_type(name="lb11")
140
+ main = hcloud.LoadBalancer("main",
141
+ name="my-load-balancer",
142
+ load_balancer_type=name,
143
+ location="fsn1")
144
+ ```
145
+
146
+
147
+ :param int id: ID of the Load Balancer Type.
148
+ :param str name: Name of the Load Balancer Type.
149
+ """
150
+ __args__ = dict()
151
+ __args__['id'] = id
152
+ __args__['name'] = name
153
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
154
+ __ret__ = pulumi.runtime.invoke('hcloud:index/getLoadBalancerType:getLoadBalancerType', __args__, opts=opts, typ=GetLoadBalancerTypeResult).value
155
+
156
+ return AwaitableGetLoadBalancerTypeResult(
157
+ description=pulumi.get(__ret__, 'description'),
158
+ id=pulumi.get(__ret__, 'id'),
159
+ max_assigned_certificates=pulumi.get(__ret__, 'max_assigned_certificates'),
160
+ max_connections=pulumi.get(__ret__, 'max_connections'),
161
+ max_services=pulumi.get(__ret__, 'max_services'),
162
+ max_targets=pulumi.get(__ret__, 'max_targets'),
163
+ name=pulumi.get(__ret__, 'name'))
164
+ def get_load_balancer_type_output(id: Optional[pulumi.Input[Optional[int]]] = None,
165
+ name: Optional[pulumi.Input[Optional[str]]] = None,
166
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetLoadBalancerTypeResult]:
167
+ """
168
+ Provides details about a specific Hetzner Cloud Load Balancer Type.
169
+
170
+ Use this resource to get detailed information about a specific Load Balancer Type.
171
+
172
+ ## Example Usage
173
+
174
+ ```python
175
+ import pulumi
176
+ import pulumi_hcloud as hcloud
177
+
178
+ by_id = hcloud.get_load_balancer_type(id=1)
179
+ by_name = hcloud.get_load_balancer_type(name="lb11")
180
+ main = hcloud.LoadBalancer("main",
181
+ name="my-load-balancer",
182
+ load_balancer_type=name,
183
+ location="fsn1")
184
+ ```
185
+
186
+
187
+ :param int id: ID of the Load Balancer Type.
188
+ :param str name: Name of the Load Balancer Type.
189
+ """
190
+ __args__ = dict()
191
+ __args__['id'] = id
192
+ __args__['name'] = name
193
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
194
+ __ret__ = pulumi.runtime.invoke_output('hcloud:index/getLoadBalancerType:getLoadBalancerType', __args__, opts=opts, typ=GetLoadBalancerTypeResult)
195
+ return __ret__.apply(lambda __response__: GetLoadBalancerTypeResult(
196
+ description=pulumi.get(__response__, 'description'),
197
+ id=pulumi.get(__response__, 'id'),
198
+ max_assigned_certificates=pulumi.get(__response__, 'max_assigned_certificates'),
199
+ max_connections=pulumi.get(__response__, 'max_connections'),
200
+ max_services=pulumi.get(__response__, 'max_services'),
201
+ max_targets=pulumi.get(__response__, 'max_targets'),
202
+ name=pulumi.get(__response__, 'name')))