pulumi-hcloud 1.18.0a1710156455__py3-none-any.whl → 1.22.0a1736849475__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 -70
  8. pulumi_hcloud/firewall_attachment.py +27 -26
  9. pulumi_hcloud/floating_ip.py +39 -36
  10. pulumi_hcloud/floating_ip_assignment.py +11 -8
  11. pulumi_hcloud/get_certificate.py +25 -10
  12. pulumi_hcloud/get_certificates.py +14 -9
  13. pulumi_hcloud/get_datacenter.py +38 -27
  14. pulumi_hcloud/get_datacenters.py +28 -53
  15. pulumi_hcloud/get_firewall.py +38 -23
  16. pulumi_hcloud/get_firewalls.py +16 -9
  17. pulumi_hcloud/get_floating_ip.py +37 -17
  18. pulumi_hcloud/get_floating_ips.py +14 -9
  19. pulumi_hcloud/get_image.py +37 -13
  20. pulumi_hcloud/get_images.py +22 -9
  21. pulumi_hcloud/get_load_balancer.py +30 -11
  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 -9
  25. pulumi_hcloud/get_location.py +42 -29
  26. pulumi_hcloud/get_locations.py +28 -53
  27. pulumi_hcloud/get_network.py +28 -15
  28. pulumi_hcloud/get_networks.py +14 -9
  29. pulumi_hcloud/get_placement_group.py +31 -17
  30. pulumi_hcloud/get_placement_groups.py +16 -9
  31. pulumi_hcloud/get_primary_ip.py +42 -22
  32. pulumi_hcloud/get_primary_ips.py +14 -9
  33. pulumi_hcloud/get_server.py +43 -15
  34. pulumi_hcloud/get_server_type.py +75 -53
  35. pulumi_hcloud/get_server_types.py +39 -23
  36. pulumi_hcloud/get_servers.py +16 -9
  37. pulumi_hcloud/get_ssh_key.py +58 -36
  38. pulumi_hcloud/get_ssh_keys.py +35 -24
  39. pulumi_hcloud/get_volume.py +33 -16
  40. pulumi_hcloud/get_volumes.py +18 -11
  41. pulumi_hcloud/load_balancer.py +63 -64
  42. pulumi_hcloud/load_balancer_network.py +26 -17
  43. pulumi_hcloud/load_balancer_service.py +57 -54
  44. pulumi_hcloud/load_balancer_target.py +23 -18
  45. pulumi_hcloud/managed_certificate.py +57 -20
  46. pulumi_hcloud/network.py +27 -22
  47. pulumi_hcloud/network_route.py +13 -8
  48. pulumi_hcloud/network_subnet.py +13 -8
  49. pulumi_hcloud/outputs.py +265 -46
  50. pulumi_hcloud/placement_group.py +27 -22
  51. pulumi_hcloud/primary_ip.py +66 -47
  52. pulumi_hcloud/provider.py +5 -0
  53. pulumi_hcloud/pulumi-plugin.json +2 -1
  54. pulumi_hcloud/rdns.py +41 -40
  55. pulumi_hcloud/server.py +123 -176
  56. pulumi_hcloud/server_network.py +24 -17
  57. pulumi_hcloud/snapshot.py +25 -22
  58. pulumi_hcloud/ssh_key.py +52 -51
  59. pulumi_hcloud/uploaded_certificate.py +73 -20
  60. pulumi_hcloud/volume.py +37 -32
  61. pulumi_hcloud/volume_attachment.py +11 -8
  62. {pulumi_hcloud-1.18.0a1710156455.dist-info → pulumi_hcloud-1.22.0a1736849475.dist-info}/METADATA +7 -6
  63. pulumi_hcloud-1.22.0a1736849475.dist-info/RECORD +67 -0
  64. {pulumi_hcloud-1.18.0a1710156455.dist-info → pulumi_hcloud-1.22.0a1736849475.dist-info}/WHEEL +1 -1
  65. pulumi_hcloud-1.18.0a1710156455.dist-info/RECORD +0 -65
  66. {pulumi_hcloud-1.18.0a1710156455.dist-info → pulumi_hcloud-1.22.0a1736849475.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__ = ['UploadedCertificateArgs', 'UploadedCertificate']
@@ -16,13 +21,13 @@ class UploadedCertificateArgs:
16
21
  def __init__(__self__, *,
17
22
  certificate: pulumi.Input[str],
18
23
  private_key: pulumi.Input[str],
19
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
24
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
20
25
  name: Optional[pulumi.Input[str]] = None):
21
26
  """
22
27
  The set of arguments for constructing a UploadedCertificate resource.
23
28
  :param pulumi.Input[str] certificate: PEM encoded TLS certificate.
24
29
  :param pulumi.Input[str] private_key: PEM encoded private key belonging to the certificate.
25
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) the
30
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) the
26
31
  certificate should be created with.
27
32
  :param pulumi.Input[str] name: Name of the Certificate.
28
33
  """
@@ -59,7 +64,7 @@ class UploadedCertificateArgs:
59
64
 
60
65
  @property
61
66
  @pulumi.getter
62
- def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
67
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
63
68
  """
64
69
  User-defined labels (key-value pairs) the
65
70
  certificate should be created with.
@@ -67,7 +72,7 @@ class UploadedCertificateArgs:
67
72
  return pulumi.get(self, "labels")
68
73
 
69
74
  @labels.setter
70
- def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
75
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
71
76
  pulumi.set(self, "labels", value)
72
77
 
73
78
  @property
@@ -90,7 +95,7 @@ class _UploadedCertificateState:
90
95
  created: Optional[pulumi.Input[str]] = None,
91
96
  domain_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
92
97
  fingerprint: Optional[pulumi.Input[str]] = None,
93
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
98
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
94
99
  name: Optional[pulumi.Input[str]] = None,
95
100
  not_valid_after: Optional[pulumi.Input[str]] = None,
96
101
  not_valid_before: Optional[pulumi.Input[str]] = None,
@@ -102,7 +107,7 @@ class _UploadedCertificateState:
102
107
  :param pulumi.Input[str] created: (string) Point in time when the Certificate was created at Hetzner Cloud (in ISO-8601 format).
103
108
  :param pulumi.Input[Sequence[pulumi.Input[str]]] domain_names: (list) Domains and subdomains covered by the certificate.
104
109
  :param pulumi.Input[str] fingerprint: (string) Fingerprint of the certificate.
105
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) the
110
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) the
106
111
  certificate should be created with.
107
112
  :param pulumi.Input[str] name: Name of the Certificate.
108
113
  :param pulumi.Input[str] not_valid_after: (string) Point in time when the Certificate stops being valid (in ISO-8601 format).
@@ -180,7 +185,7 @@ class _UploadedCertificateState:
180
185
 
181
186
  @property
182
187
  @pulumi.getter
183
- def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
188
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
184
189
  """
185
190
  User-defined labels (key-value pairs) the
186
191
  certificate should be created with.
@@ -188,7 +193,7 @@ class _UploadedCertificateState:
188
193
  return pulumi.get(self, "labels")
189
194
 
190
195
  @labels.setter
191
- def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
196
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
192
197
  pulumi.set(self, "labels", value)
193
198
 
194
199
  @property
@@ -255,27 +260,51 @@ class UploadedCertificate(pulumi.CustomResource):
255
260
  resource_name: str,
256
261
  opts: Optional[pulumi.ResourceOptions] = None,
257
262
  certificate: Optional[pulumi.Input[str]] = None,
258
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
263
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
259
264
  name: Optional[pulumi.Input[str]] = None,
260
265
  private_key: Optional[pulumi.Input[str]] = None,
261
266
  __props__=None):
262
267
  """
263
268
  Upload a TLS certificate to Hetzner Cloud.
264
269
 
270
+ ## Example Usage
271
+
272
+ ```python
273
+ import pulumi
274
+ import pulumi_hcloud as hcloud
275
+
276
+ sample_certificate = hcloud.UploadedCertificate("sample_certificate",
277
+ name="test-certificate-%d",
278
+ private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----
279
+ MIIEpQIBAAKCAQEAorPccsHibgGLJIub5Sb1yvDvARifoKzg7MIhyAYLnJkGn9B1
280
+ ...
281
+ AHcjLFCNvobInLHTTmCoAxYBmEv2eakas0+n4g/LM2Ukaw1Bz+3VrVo=
282
+ -----END RSA PRIVATE KEY-----
283
+ \"\"\",
284
+ certificate=\"\"\"-----BEGIN CERTIFICATE-----
285
+ MIIDMDCCAhigAwIBAgIIJgROscP8RRUwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE
286
+ ...
287
+ TKS8gQ==
288
+ -----END CERTIFICATE-----
289
+ \"\"\",
290
+ labels={
291
+ "label_1": "value_1",
292
+ "label_2": "value_2",
293
+ })
294
+ ```
295
+
265
296
  ## Import
266
297
 
267
298
  Uploaded certificates can be imported using their `id`:
268
299
 
269
- hcl
270
-
271
300
  ```sh
272
- $ pulumi import hcloud:index/uploadedCertificate:UploadedCertificate sample_certificate id
301
+ $ pulumi import hcloud:index/uploadedCertificate:UploadedCertificate example "$CERTIFICATE_ID"
273
302
  ```
274
303
 
275
304
  :param str resource_name: The name of the resource.
276
305
  :param pulumi.ResourceOptions opts: Options for the resource.
277
306
  :param pulumi.Input[str] certificate: PEM encoded TLS certificate.
278
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) the
307
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) the
279
308
  certificate should be created with.
280
309
  :param pulumi.Input[str] name: Name of the Certificate.
281
310
  :param pulumi.Input[str] private_key: PEM encoded private key belonging to the certificate.
@@ -289,14 +318,38 @@ class UploadedCertificate(pulumi.CustomResource):
289
318
  """
290
319
  Upload a TLS certificate to Hetzner Cloud.
291
320
 
321
+ ## Example Usage
322
+
323
+ ```python
324
+ import pulumi
325
+ import pulumi_hcloud as hcloud
326
+
327
+ sample_certificate = hcloud.UploadedCertificate("sample_certificate",
328
+ name="test-certificate-%d",
329
+ private_key=\"\"\"-----BEGIN RSA PRIVATE KEY-----
330
+ MIIEpQIBAAKCAQEAorPccsHibgGLJIub5Sb1yvDvARifoKzg7MIhyAYLnJkGn9B1
331
+ ...
332
+ AHcjLFCNvobInLHTTmCoAxYBmEv2eakas0+n4g/LM2Ukaw1Bz+3VrVo=
333
+ -----END RSA PRIVATE KEY-----
334
+ \"\"\",
335
+ certificate=\"\"\"-----BEGIN CERTIFICATE-----
336
+ MIIDMDCCAhigAwIBAgIIJgROscP8RRUwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE
337
+ ...
338
+ TKS8gQ==
339
+ -----END CERTIFICATE-----
340
+ \"\"\",
341
+ labels={
342
+ "label_1": "value_1",
343
+ "label_2": "value_2",
344
+ })
345
+ ```
346
+
292
347
  ## Import
293
348
 
294
349
  Uploaded certificates can be imported using their `id`:
295
350
 
296
- hcl
297
-
298
351
  ```sh
299
- $ pulumi import hcloud:index/uploadedCertificate:UploadedCertificate sample_certificate id
352
+ $ pulumi import hcloud:index/uploadedCertificate:UploadedCertificate example "$CERTIFICATE_ID"
300
353
  ```
301
354
 
302
355
  :param str resource_name: The name of the resource.
@@ -315,7 +368,7 @@ class UploadedCertificate(pulumi.CustomResource):
315
368
  resource_name: str,
316
369
  opts: Optional[pulumi.ResourceOptions] = None,
317
370
  certificate: Optional[pulumi.Input[str]] = None,
318
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
371
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
319
372
  name: Optional[pulumi.Input[str]] = None,
320
373
  private_key: Optional[pulumi.Input[str]] = None,
321
374
  __props__=None):
@@ -357,7 +410,7 @@ class UploadedCertificate(pulumi.CustomResource):
357
410
  created: Optional[pulumi.Input[str]] = None,
358
411
  domain_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
359
412
  fingerprint: Optional[pulumi.Input[str]] = None,
360
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
413
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
361
414
  name: Optional[pulumi.Input[str]] = None,
362
415
  not_valid_after: Optional[pulumi.Input[str]] = None,
363
416
  not_valid_before: Optional[pulumi.Input[str]] = None,
@@ -374,7 +427,7 @@ class UploadedCertificate(pulumi.CustomResource):
374
427
  :param pulumi.Input[str] created: (string) Point in time when the Certificate was created at Hetzner Cloud (in ISO-8601 format).
375
428
  :param pulumi.Input[Sequence[pulumi.Input[str]]] domain_names: (list) Domains and subdomains covered by the certificate.
376
429
  :param pulumi.Input[str] fingerprint: (string) Fingerprint of the certificate.
377
- :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) the
430
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) the
378
431
  certificate should be created with.
379
432
  :param pulumi.Input[str] name: Name of the Certificate.
380
433
  :param pulumi.Input[str] not_valid_after: (string) Point in time when the Certificate stops being valid (in ISO-8601 format).
@@ -431,7 +484,7 @@ class UploadedCertificate(pulumi.CustomResource):
431
484
 
432
485
  @property
433
486
  @pulumi.getter
434
- def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
487
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
435
488
  """
436
489
  User-defined labels (key-value pairs) the
437
490
  certificate should be created with.
pulumi_hcloud/volume.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__ = ['VolumeArgs', 'Volume']
@@ -18,7 +23,7 @@ class VolumeArgs:
18
23
  automount: Optional[pulumi.Input[bool]] = None,
19
24
  delete_protection: Optional[pulumi.Input[bool]] = None,
20
25
  format: Optional[pulumi.Input[str]] = None,
21
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
26
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
22
27
  location: Optional[pulumi.Input[str]] = None,
23
28
  name: Optional[pulumi.Input[str]] = None,
24
29
  server_id: Optional[pulumi.Input[int]] = None):
@@ -30,8 +35,8 @@ class VolumeArgs:
30
35
 
31
36
  **Note:** When you want to attach multiple volumes to a server, please use the `VolumeAttachment` resource and the `location` argument instead of the `server_id` argument.
32
37
  :param pulumi.Input[str] format: Format volume after creation. `xfs` or `ext4`
33
- :param pulumi.Input[Mapping[str, Any]] labels: (map) User-defined labels (key-value pairs).
34
- :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed.
38
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
39
+ :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
35
40
  :param pulumi.Input[str] name: Name of the volume to create (must be unique per project).
36
41
  :param pulumi.Input[int] server_id: Server to attach the Volume to, not allowed if location argument is passed.
37
42
  """
@@ -103,21 +108,21 @@ class VolumeArgs:
103
108
 
104
109
  @property
105
110
  @pulumi.getter
106
- def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
111
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
107
112
  """
108
- (map) User-defined labels (key-value pairs).
113
+ User-defined labels (key-value pairs).
109
114
  """
110
115
  return pulumi.get(self, "labels")
111
116
 
112
117
  @labels.setter
113
- def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
118
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
114
119
  pulumi.set(self, "labels", value)
115
120
 
116
121
  @property
117
122
  @pulumi.getter
118
123
  def location(self) -> Optional[pulumi.Input[str]]:
119
124
  """
120
- The location name of the volume to create, not allowed if server_id argument is passed.
125
+ The location name of the volume to create, not allowed if server_id argument is passed. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
121
126
  """
122
127
  return pulumi.get(self, "location")
123
128
 
@@ -156,7 +161,7 @@ class _VolumeState:
156
161
  automount: Optional[pulumi.Input[bool]] = None,
157
162
  delete_protection: Optional[pulumi.Input[bool]] = None,
158
163
  format: Optional[pulumi.Input[str]] = None,
159
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
164
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
160
165
  linux_device: Optional[pulumi.Input[str]] = None,
161
166
  location: Optional[pulumi.Input[str]] = None,
162
167
  name: Optional[pulumi.Input[str]] = None,
@@ -169,9 +174,9 @@ class _VolumeState:
169
174
 
170
175
  **Note:** When you want to attach multiple volumes to a server, please use the `VolumeAttachment` resource and the `location` argument instead of the `server_id` argument.
171
176
  :param pulumi.Input[str] format: Format volume after creation. `xfs` or `ext4`
172
- :param pulumi.Input[Mapping[str, Any]] labels: (map) User-defined labels (key-value pairs).
177
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
173
178
  :param pulumi.Input[str] linux_device: (string) Device path on the file system for the Volume.
174
- :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed.
179
+ :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
175
180
  :param pulumi.Input[str] name: Name of the volume to create (must be unique per project).
176
181
  :param pulumi.Input[int] server_id: Server to attach the Volume to, not allowed if location argument is passed.
177
182
  :param pulumi.Input[int] size: Size of the volume (in GB).
@@ -235,14 +240,14 @@ class _VolumeState:
235
240
 
236
241
  @property
237
242
  @pulumi.getter
238
- def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
243
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
239
244
  """
240
- (map) User-defined labels (key-value pairs).
245
+ User-defined labels (key-value pairs).
241
246
  """
242
247
  return pulumi.get(self, "labels")
243
248
 
244
249
  @labels.setter
245
- def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
250
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
246
251
  pulumi.set(self, "labels", value)
247
252
 
248
253
  @property
@@ -261,7 +266,7 @@ class _VolumeState:
261
266
  @pulumi.getter
262
267
  def location(self) -> Optional[pulumi.Input[str]]:
263
268
  """
264
- The location name of the volume to create, not allowed if server_id argument is passed.
269
+ The location name of the volume to create, not allowed if server_id argument is passed. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
265
270
  """
266
271
  return pulumi.get(self, "location")
267
272
 
@@ -314,7 +319,7 @@ class Volume(pulumi.CustomResource):
314
319
  automount: Optional[pulumi.Input[bool]] = None,
315
320
  delete_protection: Optional[pulumi.Input[bool]] = None,
316
321
  format: Optional[pulumi.Input[str]] = None,
317
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
322
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
318
323
  location: Optional[pulumi.Input[str]] = None,
319
324
  name: Optional[pulumi.Input[str]] = None,
320
325
  server_id: Optional[pulumi.Input[int]] = None,
@@ -325,28 +330,28 @@ class Volume(pulumi.CustomResource):
325
330
 
326
331
  ## Example Usage
327
332
 
328
- <!--Start PulumiCodeChooser -->
329
333
  ```python
330
334
  import pulumi
331
335
  import pulumi_hcloud as hcloud
332
336
 
333
337
  node1 = hcloud.Server("node1",
338
+ name="node1",
334
339
  image="debian-11",
335
- server_type="cx11")
340
+ server_type="cx22")
336
341
  master = hcloud.Volume("master",
342
+ name="volume1",
337
343
  size=50,
338
344
  server_id=node1.id,
339
345
  automount=True,
340
346
  format="ext4")
341
347
  ```
342
- <!--End PulumiCodeChooser -->
343
348
 
344
349
  ## Import
345
350
 
346
351
  Volumes can be imported using their `id`:
347
352
 
348
353
  ```sh
349
- $ pulumi import hcloud:index/volume:Volume myvolume id
354
+ $ pulumi import hcloud:index/volume:Volume example "$VOLUME_ID"
350
355
  ```
351
356
 
352
357
  :param str resource_name: The name of the resource.
@@ -356,8 +361,8 @@ class Volume(pulumi.CustomResource):
356
361
 
357
362
  **Note:** When you want to attach multiple volumes to a server, please use the `VolumeAttachment` resource and the `location` argument instead of the `server_id` argument.
358
363
  :param pulumi.Input[str] format: Format volume after creation. `xfs` or `ext4`
359
- :param pulumi.Input[Mapping[str, Any]] labels: (map) User-defined labels (key-value pairs).
360
- :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed.
364
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
365
+ :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
361
366
  :param pulumi.Input[str] name: Name of the volume to create (must be unique per project).
362
367
  :param pulumi.Input[int] server_id: Server to attach the Volume to, not allowed if location argument is passed.
363
368
  :param pulumi.Input[int] size: Size of the volume (in GB).
@@ -373,28 +378,28 @@ class Volume(pulumi.CustomResource):
373
378
 
374
379
  ## Example Usage
375
380
 
376
- <!--Start PulumiCodeChooser -->
377
381
  ```python
378
382
  import pulumi
379
383
  import pulumi_hcloud as hcloud
380
384
 
381
385
  node1 = hcloud.Server("node1",
386
+ name="node1",
382
387
  image="debian-11",
383
- server_type="cx11")
388
+ server_type="cx22")
384
389
  master = hcloud.Volume("master",
390
+ name="volume1",
385
391
  size=50,
386
392
  server_id=node1.id,
387
393
  automount=True,
388
394
  format="ext4")
389
395
  ```
390
- <!--End PulumiCodeChooser -->
391
396
 
392
397
  ## Import
393
398
 
394
399
  Volumes can be imported using their `id`:
395
400
 
396
401
  ```sh
397
- $ pulumi import hcloud:index/volume:Volume myvolume id
402
+ $ pulumi import hcloud:index/volume:Volume example "$VOLUME_ID"
398
403
  ```
399
404
 
400
405
  :param str resource_name: The name of the resource.
@@ -415,7 +420,7 @@ class Volume(pulumi.CustomResource):
415
420
  automount: Optional[pulumi.Input[bool]] = None,
416
421
  delete_protection: Optional[pulumi.Input[bool]] = None,
417
422
  format: Optional[pulumi.Input[str]] = None,
418
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
423
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
419
424
  location: Optional[pulumi.Input[str]] = None,
420
425
  name: Optional[pulumi.Input[str]] = None,
421
426
  server_id: Optional[pulumi.Input[int]] = None,
@@ -453,7 +458,7 @@ class Volume(pulumi.CustomResource):
453
458
  automount: Optional[pulumi.Input[bool]] = None,
454
459
  delete_protection: Optional[pulumi.Input[bool]] = None,
455
460
  format: Optional[pulumi.Input[str]] = None,
456
- labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
461
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
457
462
  linux_device: Optional[pulumi.Input[str]] = None,
458
463
  location: Optional[pulumi.Input[str]] = None,
459
464
  name: Optional[pulumi.Input[str]] = None,
@@ -471,9 +476,9 @@ class Volume(pulumi.CustomResource):
471
476
 
472
477
  **Note:** When you want to attach multiple volumes to a server, please use the `VolumeAttachment` resource and the `location` argument instead of the `server_id` argument.
473
478
  :param pulumi.Input[str] format: Format volume after creation. `xfs` or `ext4`
474
- :param pulumi.Input[Mapping[str, Any]] labels: (map) User-defined labels (key-value pairs).
479
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
475
480
  :param pulumi.Input[str] linux_device: (string) Device path on the file system for the Volume.
476
- :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed.
481
+ :param pulumi.Input[str] location: The location name of the volume to create, not allowed if server_id argument is passed. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
477
482
  :param pulumi.Input[str] name: Name of the volume to create (must be unique per project).
478
483
  :param pulumi.Input[int] server_id: Server to attach the Volume to, not allowed if location argument is passed.
479
484
  :param pulumi.Input[int] size: Size of the volume (in GB).
@@ -521,9 +526,9 @@ class Volume(pulumi.CustomResource):
521
526
 
522
527
  @property
523
528
  @pulumi.getter
524
- def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
529
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
525
530
  """
526
- (map) User-defined labels (key-value pairs).
531
+ User-defined labels (key-value pairs).
527
532
  """
528
533
  return pulumi.get(self, "labels")
529
534
 
@@ -539,7 +544,7 @@ class Volume(pulumi.CustomResource):
539
544
  @pulumi.getter
540
545
  def location(self) -> pulumi.Output[str]:
541
546
  """
542
- The location name of the volume to create, not allowed if server_id argument is passed.
547
+ The location name of the volume to create, not allowed if server_id argument is passed. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
543
548
  """
544
549
  return pulumi.get(self, "location")
545
550
 
@@ -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__ = ['VolumeAttachmentArgs', 'VolumeAttachment']
@@ -135,14 +140,14 @@ class VolumeAttachment(pulumi.CustomResource):
135
140
 
136
141
  ## Example Usage
137
142
 
138
- <!--Start PulumiCodeChooser -->
139
143
  ```python
140
144
  import pulumi
141
145
  import pulumi_hcloud as hcloud
142
146
 
143
147
  node1 = hcloud.Server("node1",
148
+ name="node1",
144
149
  image="debian-11",
145
- server_type="cx11",
150
+ server_type="cx22",
146
151
  datacenter="nbg1-dc3")
147
152
  master = hcloud.Volume("master",
148
153
  location="nbg1",
@@ -152,14 +157,13 @@ class VolumeAttachment(pulumi.CustomResource):
152
157
  server_id=node1.id,
153
158
  automount=True)
154
159
  ```
155
- <!--End PulumiCodeChooser -->
156
160
 
157
161
  ## Import
158
162
 
159
163
  Volume Attachments can be imported using the `volume_id`:
160
164
 
161
165
  ```sh
162
- $ pulumi import hcloud:index/volumeAttachment:VolumeAttachment myvolumeattachment <volume_id>
166
+ $ pulumi import hcloud:index/volumeAttachment:VolumeAttachment example "$VOLUME_ID"
163
167
  ```
164
168
 
165
169
  :param str resource_name: The name of the resource.
@@ -179,14 +183,14 @@ class VolumeAttachment(pulumi.CustomResource):
179
183
 
180
184
  ## Example Usage
181
185
 
182
- <!--Start PulumiCodeChooser -->
183
186
  ```python
184
187
  import pulumi
185
188
  import pulumi_hcloud as hcloud
186
189
 
187
190
  node1 = hcloud.Server("node1",
191
+ name="node1",
188
192
  image="debian-11",
189
- server_type="cx11",
193
+ server_type="cx22",
190
194
  datacenter="nbg1-dc3")
191
195
  master = hcloud.Volume("master",
192
196
  location="nbg1",
@@ -196,14 +200,13 @@ class VolumeAttachment(pulumi.CustomResource):
196
200
  server_id=node1.id,
197
201
  automount=True)
198
202
  ```
199
- <!--End PulumiCodeChooser -->
200
203
 
201
204
  ## Import
202
205
 
203
206
  Volume Attachments can be imported using the `volume_id`:
204
207
 
205
208
  ```sh
206
- $ pulumi import hcloud:index/volumeAttachment:VolumeAttachment myvolumeattachment <volume_id>
209
+ $ pulumi import hcloud:index/volumeAttachment:VolumeAttachment example "$VOLUME_ID"
207
210
  ```
208
211
 
209
212
  :param str resource_name: The name of the resource.
@@ -1,16 +1,17 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: pulumi_hcloud
3
- Version: 1.18.0a1710156455
3
+ Version: 1.22.0a1736849475
4
4
  Summary: A Pulumi package for creating and managing hcloud cloud resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io
7
7
  Project-URL: Repository, https://github.com/pulumi/pulumi-hcloud
8
8
  Keywords: pulumi,hcloud
9
- Requires-Python: >=3.8
9
+ Requires-Python: >=3.9
10
10
  Description-Content-Type: text/markdown
11
- Requires-Dist: parver >=0.2.1
12
- Requires-Dist: pulumi <4.0.0,>=3.0.0
13
- Requires-Dist: semver >=2.8.1
11
+ Requires-Dist: parver>=0.2.1
12
+ Requires-Dist: pulumi<4.0.0,>=3.142.0
13
+ Requires-Dist: semver>=2.8.1
14
+ Requires-Dist: typing-extensions>=4.11; python_version < "3.11"
14
15
 
15
16
  # HCloud provider
16
17
 
@@ -0,0 +1,67 @@
1
+ pulumi_hcloud/__init__.py,sha256=1sBKVfYXaAAjoPydg7dg9RCL0NwkQo0AjUngGqPbvAQ,6074
2
+ pulumi_hcloud/_inputs.py,sha256=WlVKvGUhGYGoBed2RWJehd7hsPOricjhZQAmI2P_0n4,37675
3
+ pulumi_hcloud/_utilities.py,sha256=-gxwnD6__OYdSf8jJgJijNuu-UHUwi5pJ1H7-eIHDhg,10504
4
+ pulumi_hcloud/certificate.py,sha256=bYDdezxWvfaUeO2WA3mOHsvCjdn8LUg5CITGCgCqciM,14164
5
+ pulumi_hcloud/firewall.py,sha256=Wr0JCpCcPjln0K11Q9OTmqE5j10W7LNCngYRGmpS1T4,15000
6
+ pulumi_hcloud/firewall_attachment.py,sha256=0J68b88TWrFeqBO-mmrP2qYqlicuU_tq1t7wiv6yABA,13924
7
+ pulumi_hcloud/floating_ip.py,sha256=2Z0vz_FOUlK1OzEtptPLwcGlhQqPDVpZ5GNrUA7arho,21820
8
+ pulumi_hcloud/floating_ip_assignment.py,sha256=bcmCmaIaE5IgJhTbnsppGZfRZS1dJAXc-9sex2NaZJ8,9649
9
+ pulumi_hcloud/get_certificate.py,sha256=KkD76NzVBdteLA1fcyIPDTKsjxzFrAzDaKD0zpDJhwg,9424
10
+ pulumi_hcloud/get_certificates.py,sha256=AMA0Gl1I8wXjEcMQiDS9wXpIzv18M4pXbYYOEPf-Q8A,4507
11
+ pulumi_hcloud/get_datacenter.py,sha256=xdwzcgJCA5vp65p688S0_bxc97tORzd_qA47o6DEJt4,6760
12
+ pulumi_hcloud/get_datacenters.py,sha256=S1IEq4LBchLw7B48Ws3RYEjvFvfqcY3LVJVJVnQXGq8,4881
13
+ pulumi_hcloud/get_firewall.py,sha256=Df3mkAsfn0Gi6j8mDLj05xcYZAsacYMhj80CJTzzpOs,8866
14
+ pulumi_hcloud/get_firewalls.py,sha256=rbFhGlWRuEIkD3KFQOROeDM5DIKhb_BfeJimwrLoczE,5200
15
+ pulumi_hcloud/get_floating_ip.py,sha256=ux41Rt1jaqI3DRBytQJJRgek37enRy8kz1uIvKkTPGk,11466
16
+ pulumi_hcloud/get_floating_ips.py,sha256=m9N5DyqKm45tVc6zP-VChwBc8BntefHeazyO03ihLZY,4476
17
+ pulumi_hcloud/get_image.py,sha256=ElnrHTMGn5VSzNeGJCZ7m5NMjHaoybNAvS61Dx9IBno,14569
18
+ pulumi_hcloud/get_images.py,sha256=jHxARmwZTJstPV314phJ1aWVMUdRiqtBL02LwPo32ZE,8395
19
+ pulumi_hcloud/get_load_balancer.py,sha256=nhJSxNA2GQDDBNxdgn9tCZmbeNJh5e1mSMHLJHvpacs,12115
20
+ pulumi_hcloud/get_load_balancer_type.py,sha256=C3WwN8zOjdCq1SH_AIJP2BNzxIKFzZAhq3F04jWfeGc,7727
21
+ pulumi_hcloud/get_load_balancer_types.py,sha256=4KC61LrnUL7R1IEThOh8gGZWurrAsT42PAcQ7iE9HAM,3559
22
+ pulumi_hcloud/get_load_balancers.py,sha256=qXOmLFQ7Z2yfeulKc_qutVUc9ARod_9puaCu3Hk-FL4,4644
23
+ pulumi_hcloud/get_location.py,sha256=5LChjc3NJieu_ja_PtaKgaOAKqHpaXA4HNapvBwlryw,7108
24
+ pulumi_hcloud/get_locations.py,sha256=nQDSwA_wbBFlTPjKVRE9lwPh5Ws3VvOp0t_4Eiw5gsM,4763
25
+ pulumi_hcloud/get_network.py,sha256=sFwg2XAUhldY_6IiC-CaQZ0EKZvt0HsrmzqqDch9H8Q,8640
26
+ pulumi_hcloud/get_networks.py,sha256=ykQUGu7RWdxySgthkDVGroCxArl9C-oe_kX3Ns62n2Q,4375
27
+ pulumi_hcloud/get_placement_group.py,sha256=-ZYs1uVxQ8jbm4BBTGbRXdkvwxh29lFUoOywwpGx-h8,8026
28
+ pulumi_hcloud/get_placement_groups.py,sha256=3l9gIYL8-iwMmCqTQnSBniCawwhxHNhMU6WXaqcoLzA,5670
29
+ pulumi_hcloud/get_primary_ip.py,sha256=FAohen24G2Btu0eLodbRRx8_CrG55EPIyoLFRbBQUX8,12678
30
+ pulumi_hcloud/get_primary_ips.py,sha256=M1PpkzPlG75-9gQDDZ31IA86V_j2uqSS4zt1OPIkOWU,4430
31
+ pulumi_hcloud/get_server.py,sha256=t2ykzxpH75hd6GrpaVDWkjnj1CHhJzeunPtjywLAPMA,17681
32
+ pulumi_hcloud/get_server_type.py,sha256=wuFpBRJRWDbujbdIHPO1ev6xqrLFlV5TQF1djW24UsM,10683
33
+ pulumi_hcloud/get_server_types.py,sha256=gbQ-YGjM7CRdmcISO9WgqgXfU9Vkf7aVPQ4CawMB5Is,4976
34
+ pulumi_hcloud/get_servers.py,sha256=AjZEPXhP1l2WQ9ym1oezJdL2cDf9_eL3k2-HuEMsZ88,5513
35
+ pulumi_hcloud/get_ssh_key.py,sha256=zHMuwB9kUSvXSkHotCosTA_cYPi4Ic-drpK0NtJ7d1k,8284
36
+ pulumi_hcloud/get_ssh_keys.py,sha256=kFgO3BNUPP8bLVPoZlx8TWHICjzgeE5CveL72ccKoE4,4673
37
+ pulumi_hcloud/get_volume.py,sha256=uyTQju2NTvZJYNj1Jr-LWO-IehTQGDkRN2GUFI3Tjz8,10933
38
+ pulumi_hcloud/get_volumes.py,sha256=rHwTl67wHvqhpwlfUYDFyY4bwYjtaqOqEpwwyRcSBEM,5383
39
+ pulumi_hcloud/load_balancer.py,sha256=p8Ghh3365OEH55mq-kWWoxc5yZurERIEde5NaQblwkI,28962
40
+ pulumi_hcloud/load_balancer_network.py,sha256=GUQbzjThcyWi4lWD9deAyEK1oy612ipzrclsrxy0lW4,22468
41
+ pulumi_hcloud/load_balancer_service.py,sha256=6dr-WIjeIFvSqHLVBommqKew0ch-F5tSS6RFj-6kZAU,23083
42
+ pulumi_hcloud/load_balancer_target.py,sha256=15UHjWmjdP9Guemt6UTGjMQ_zv9dZidnQkptLr5UrJo,20751
43
+ pulumi_hcloud/managed_certificate.py,sha256=ySUyCIVaPwnmMz6EHEPxZptVEkMcay-bEnqrCTGpjFI,18485
44
+ pulumi_hcloud/network.py,sha256=aW7bWQRjufLHHX8tr4zjUAyxIz_FHnNZSFmC7j5hIs8,16873
45
+ pulumi_hcloud/network_route.py,sha256=oKQacheZ-qZOEh6KFK5Qhr3gsdy_YvaXgLW60uzgQ-w,13540
46
+ pulumi_hcloud/network_subnet.py,sha256=dEBEGnqovwdu2szdpDYwHgJtYrst_yos-WCO3zil7v0,16327
47
+ pulumi_hcloud/outputs.py,sha256=g2XTfctv1hHFEbX0Vx1MgClkp6ET0jUhckq3gY6fmus,87168
48
+ pulumi_hcloud/placement_group.py,sha256=1Fsln7YuJrkngFDWu2DWyoCfVkYg-wY4x0_WLzXA3RM,11696
49
+ pulumi_hcloud/primary_ip.py,sha256=1aIh8vzTeZ83bcr9hQa6SSMGTBpBgZJ3gHqGHpMzWVM,27620
50
+ pulumi_hcloud/provider.py,sha256=Jw8xKT08pJiSbhWzqso4gLrWo54k1uvoCze5HIHZFjs,9091
51
+ pulumi_hcloud/pulumi-plugin.json,sha256=ScaKS54xszLIiWPVS8x4JB5v-nb1so7GJ9clq5q7euU,83
52
+ pulumi_hcloud/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ pulumi_hcloud/rdns.py,sha256=W3QJq44BKkbVvINzhnjcKWM8JrsHGI4OOiu4upwgYcM,21520
54
+ pulumi_hcloud/server.py,sha256=w6wXfMZaVxjp6lQgzCox21x87ufaROKIRk7Q-uZH6Vg,71410
55
+ pulumi_hcloud/server_network.py,sha256=YTN4YvDgWuRbBJ_n7ROJ0Y9VXsXylGt19MA539OMttw,21851
56
+ pulumi_hcloud/snapshot.py,sha256=pKcjoqfoFOdiNEz3h92fU-X843xQ8RpzuYIx7nEPdtM,11071
57
+ pulumi_hcloud/ssh_key.py,sha256=xCiTmRBVlwM3pKdgwH8l-tFpIIpjvwmb6yBtgvUPfiA,12110
58
+ pulumi_hcloud/uploaded_certificate.py,sha256=UfrjY3bxx-ay0Dgc1yp0GwBFRdgpMPPMa1g116IJ23A,21162
59
+ pulumi_hcloud/volume.py,sha256=5qNP0188kBbZCMZEfWHK5tOnp56mXiNCjFzuZnVWsXg,24536
60
+ pulumi_hcloud/volume_attachment.py,sha256=p_D_KUzbZKGzNG620GC49oVQd05YV7qge8XXwTgm6I0,11074
61
+ pulumi_hcloud/config/__init__.py,sha256=cfY0smRZD3fDVc93ZIAxEl_IM2pynmXB52n3Ahzi030,285
62
+ pulumi_hcloud/config/__init__.pyi,sha256=2EjDsBZ7-A0tF1fn3DHDv597aXmwwig2eLRtqSElp9Q,1048
63
+ pulumi_hcloud/config/vars.py,sha256=p-bMQxLGvw7_95R-cEOhkadIYqdZI6MXJwD5zkbLqHY,1547
64
+ pulumi_hcloud-1.22.0a1736849475.dist-info/METADATA,sha256=Mg3SZscLjw-b72IVxeaonBllCv9iHvcVS07UDXjAI-s,2120
65
+ pulumi_hcloud-1.22.0a1736849475.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
66
+ pulumi_hcloud-1.22.0a1736849475.dist-info/top_level.txt,sha256=1P62wdJ9bVotT2lSpU9iMUl24bR9TwEGl2JyhNg4Xy8,14
67
+ pulumi_hcloud-1.22.0a1736849475.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5