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
pulumi_hcloud/network.py CHANGED
@@ -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__ = ['NetworkArgs', 'Network']
@@ -17,14 +22,14 @@ class NetworkArgs:
17
22
  ip_range: pulumi.Input[str],
18
23
  delete_protection: Optional[pulumi.Input[bool]] = None,
19
24
  expose_routes_to_vswitch: Optional[pulumi.Input[bool]] = None,
20
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
25
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
21
26
  name: Optional[pulumi.Input[str]] = None):
22
27
  """
23
28
  The set of arguments for constructing a Network resource.
24
29
  :param pulumi.Input[str] ip_range: IP Range of the whole Network which must span all included subnets and route destinations. Must be one of the private ipv4 ranges of RFC1918.
25
30
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection. See "Delete Protection" in the Provider Docs for details.
26
31
  :param pulumi.Input[bool] expose_routes_to_vswitch: Enable or disable exposing the routes to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active.
27
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
32
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
28
33
  :param pulumi.Input[str] name: Name of the Network to create (must be unique per project).
29
34
  """
30
35
  pulumi.set(__self__, "ip_range", ip_range)
@@ -75,14 +80,14 @@ class NetworkArgs:
75
80
 
76
81
  @property
77
82
  @pulumi.getter
78
- def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
83
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
79
84
  """
80
85
  User-defined labels (key-value pairs) should be created with.
81
86
  """
82
87
  return pulumi.get(self, "labels")
83
88
 
84
89
  @labels.setter
85
- def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
90
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
86
91
  pulumi.set(self, "labels", value)
87
92
 
88
93
  @property
@@ -104,14 +109,14 @@ class _NetworkState:
104
109
  delete_protection: Optional[pulumi.Input[bool]] = None,
105
110
  expose_routes_to_vswitch: Optional[pulumi.Input[bool]] = None,
106
111
  ip_range: Optional[pulumi.Input[str]] = None,
107
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
112
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
108
113
  name: Optional[pulumi.Input[str]] = None):
109
114
  """
110
115
  Input properties used for looking up and filtering Network resources.
111
116
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection. See "Delete Protection" in the Provider Docs for details.
112
117
  :param pulumi.Input[bool] expose_routes_to_vswitch: Enable or disable exposing the routes to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active.
113
118
  :param pulumi.Input[str] ip_range: IP Range of the whole Network which must span all included subnets and route destinations. Must be one of the private ipv4 ranges of RFC1918.
114
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
119
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
115
120
  :param pulumi.Input[str] name: Name of the Network to create (must be unique per project).
116
121
  """
117
122
  if delete_protection is not None:
@@ -163,14 +168,14 @@ class _NetworkState:
163
168
 
164
169
  @property
165
170
  @pulumi.getter
166
- def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
171
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
167
172
  """
168
173
  User-defined labels (key-value pairs) should be created with.
169
174
  """
170
175
  return pulumi.get(self, "labels")
171
176
 
172
177
  @labels.setter
173
- def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
178
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
174
179
  pulumi.set(self, "labels", value)
175
180
 
176
181
  @property
@@ -194,7 +199,7 @@ class Network(pulumi.CustomResource):
194
199
  delete_protection: Optional[pulumi.Input[bool]] = None,
195
200
  expose_routes_to_vswitch: Optional[pulumi.Input[bool]] = None,
196
201
  ip_range: Optional[pulumi.Input[str]] = None,
197
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
202
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
198
203
  name: Optional[pulumi.Input[str]] = None,
199
204
  __props__=None):
200
205
  """
@@ -206,7 +211,9 @@ class Network(pulumi.CustomResource):
206
211
  import pulumi
207
212
  import pulumi_hcloud as hcloud
208
213
 
209
- priv_net = hcloud.Network("privNet", ip_range="10.0.1.0/24")
214
+ priv_net = hcloud.Network("privNet",
215
+ name="my-net",
216
+ ip_range="10.0.1.0/24")
210
217
  ```
211
218
 
212
219
  ## Import
@@ -214,7 +221,7 @@ class Network(pulumi.CustomResource):
214
221
  Networks can be imported using its `id`:
215
222
 
216
223
  ```sh
217
- $ pulumi import hcloud:index/network:Network myip id
224
+ $ pulumi import hcloud:index/network:Network example "$NETWORK_ID"
218
225
  ```
219
226
 
220
227
  :param str resource_name: The name of the resource.
@@ -222,7 +229,7 @@ class Network(pulumi.CustomResource):
222
229
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection. See "Delete Protection" in the Provider Docs for details.
223
230
  :param pulumi.Input[bool] expose_routes_to_vswitch: Enable or disable exposing the routes to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active.
224
231
  :param pulumi.Input[str] ip_range: IP Range of the whole Network which must span all included subnets and route destinations. Must be one of the private ipv4 ranges of RFC1918.
225
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
232
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
226
233
  :param pulumi.Input[str] name: Name of the Network to create (must be unique per project).
227
234
  """
228
235
  ...
@@ -240,7 +247,9 @@ class Network(pulumi.CustomResource):
240
247
  import pulumi
241
248
  import pulumi_hcloud as hcloud
242
249
 
243
- priv_net = hcloud.Network("privNet", ip_range="10.0.1.0/24")
250
+ priv_net = hcloud.Network("privNet",
251
+ name="my-net",
252
+ ip_range="10.0.1.0/24")
244
253
  ```
245
254
 
246
255
  ## Import
@@ -248,7 +257,7 @@ class Network(pulumi.CustomResource):
248
257
  Networks can be imported using its `id`:
249
258
 
250
259
  ```sh
251
- $ pulumi import hcloud:index/network:Network myip id
260
+ $ pulumi import hcloud:index/network:Network example "$NETWORK_ID"
252
261
  ```
253
262
 
254
263
  :param str resource_name: The name of the resource.
@@ -269,7 +278,7 @@ class Network(pulumi.CustomResource):
269
278
  delete_protection: Optional[pulumi.Input[bool]] = None,
270
279
  expose_routes_to_vswitch: Optional[pulumi.Input[bool]] = None,
271
280
  ip_range: Optional[pulumi.Input[str]] = None,
272
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
281
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
273
282
  name: Optional[pulumi.Input[str]] = None,
274
283
  __props__=None):
275
284
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -300,7 +309,7 @@ class Network(pulumi.CustomResource):
300
309
  delete_protection: Optional[pulumi.Input[bool]] = None,
301
310
  expose_routes_to_vswitch: Optional[pulumi.Input[bool]] = None,
302
311
  ip_range: Optional[pulumi.Input[str]] = None,
303
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
312
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
304
313
  name: Optional[pulumi.Input[str]] = None) -> 'Network':
305
314
  """
306
315
  Get an existing Network resource's state with the given name, id, and optional extra
@@ -312,7 +321,7 @@ class Network(pulumi.CustomResource):
312
321
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection. See "Delete Protection" in the Provider Docs for details.
313
322
  :param pulumi.Input[bool] expose_routes_to_vswitch: Enable or disable exposing the routes to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active.
314
323
  :param pulumi.Input[str] ip_range: IP Range of the whole Network which must span all included subnets and route destinations. Must be one of the private ipv4 ranges of RFC1918.
315
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
324
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
316
325
  :param pulumi.Input[str] name: Name of the Network to create (must be unique per project).
317
326
  """
318
327
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -352,7 +361,7 @@ class Network(pulumi.CustomResource):
352
361
 
353
362
  @property
354
363
  @pulumi.getter
355
- def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
364
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
356
365
  """
357
366
  User-defined labels (key-value pairs) should be created with.
358
367
  """
@@ -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__ = ['NetworkRouteArgs', 'NetworkRoute']
@@ -138,7 +143,9 @@ class NetworkRoute(pulumi.CustomResource):
138
143
  import pulumi
139
144
  import pulumi_hcloud as hcloud
140
145
 
141
- mynet = hcloud.Network("mynet", ip_range="10.0.0.0/8")
146
+ mynet = hcloud.Network("mynet",
147
+ name="my-net",
148
+ ip_range="10.0.0.0/8")
142
149
  priv_net = hcloud.NetworkRoute("privNet",
143
150
  network_id=mynet.id,
144
151
  destination="10.100.1.0/24",
@@ -149,10 +156,10 @@ class NetworkRoute(pulumi.CustomResource):
149
156
 
150
157
  Network Route entries can be imported using a compound ID with the following format:
151
158
 
152
- `<network-id>-<destination>`
159
+ `<network-id>-<destination>`
153
160
 
154
161
  ```sh
155
- $ pulumi import hcloud:index/networkRoute:NetworkRoute myroute 123-10.0.0.0/16
162
+ $ pulumi import hcloud:index/networkRoute:NetworkRoute example "$NETWORK_ID-$DESTINATION"
156
163
  ```
157
164
 
158
165
  :param str resource_name: The name of the resource.
@@ -176,7 +183,9 @@ class NetworkRoute(pulumi.CustomResource):
176
183
  import pulumi
177
184
  import pulumi_hcloud as hcloud
178
185
 
179
- mynet = hcloud.Network("mynet", ip_range="10.0.0.0/8")
186
+ mynet = hcloud.Network("mynet",
187
+ name="my-net",
188
+ ip_range="10.0.0.0/8")
180
189
  priv_net = hcloud.NetworkRoute("privNet",
181
190
  network_id=mynet.id,
182
191
  destination="10.100.1.0/24",
@@ -187,10 +196,10 @@ class NetworkRoute(pulumi.CustomResource):
187
196
 
188
197
  Network Route entries can be imported using a compound ID with the following format:
189
198
 
190
- `<network-id>-<destination>`
199
+ `<network-id>-<destination>`
191
200
 
192
201
  ```sh
193
- $ pulumi import hcloud:index/networkRoute:NetworkRoute myroute 123-10.0.0.0/16
202
+ $ pulumi import hcloud:index/networkRoute:NetworkRoute example "$NETWORK_ID-$DESTINATION"
194
203
  ```
195
204
 
196
205
  :param str resource_name: The name of the resource.
@@ -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__ = ['NetworkSubnetArgs', 'NetworkSubnet']
@@ -215,7 +220,9 @@ class NetworkSubnet(pulumi.CustomResource):
215
220
  import pulumi
216
221
  import pulumi_hcloud as hcloud
217
222
 
218
- mynet = hcloud.Network("mynet", ip_range="10.0.0.0/8")
223
+ mynet = hcloud.Network("mynet",
224
+ name="my-net",
225
+ ip_range="10.0.0.0/8")
219
226
  foonet = hcloud.NetworkSubnet("foonet",
220
227
  network_id=mynet.id,
221
228
  type="cloud",
@@ -227,10 +234,10 @@ class NetworkSubnet(pulumi.CustomResource):
227
234
 
228
235
  Network Subnet entries can be imported using a compound ID with the following format:
229
236
 
230
- `<network-id>-<ip_range>`
237
+ `<network-id>-<ip_range>`
231
238
 
232
239
  ```sh
233
- $ pulumi import hcloud:index/networkSubnet:NetworkSubnet mysubnet 123-10.0.0.0/24
240
+ $ pulumi import hcloud:index/networkSubnet:NetworkSubnet example "$NETWORK_ID-$IP_RANGE"
234
241
  ```
235
242
 
236
243
  :param str resource_name: The name of the resource.
@@ -256,7 +263,9 @@ class NetworkSubnet(pulumi.CustomResource):
256
263
  import pulumi
257
264
  import pulumi_hcloud as hcloud
258
265
 
259
- mynet = hcloud.Network("mynet", ip_range="10.0.0.0/8")
266
+ mynet = hcloud.Network("mynet",
267
+ name="my-net",
268
+ ip_range="10.0.0.0/8")
260
269
  foonet = hcloud.NetworkSubnet("foonet",
261
270
  network_id=mynet.id,
262
271
  type="cloud",
@@ -268,10 +277,10 @@ class NetworkSubnet(pulumi.CustomResource):
268
277
 
269
278
  Network Subnet entries can be imported using a compound ID with the following format:
270
279
 
271
- `<network-id>-<ip_range>`
280
+ `<network-id>-<ip_range>`
272
281
 
273
282
  ```sh
274
- $ pulumi import hcloud:index/networkSubnet:NetworkSubnet mysubnet 123-10.0.0.0/24
283
+ $ pulumi import hcloud:index/networkSubnet:NetworkSubnet example "$NETWORK_ID-$IP_RANGE"
275
284
  ```
276
285
 
277
286
  :param str resource_name: The name of the resource.