pulumi-hcloud 1.21.0__py3-none-any.whl → 1.21.0a1722922926__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 +0 -2
  2. pulumi_hcloud/_inputs.py +0 -234
  3. pulumi_hcloud/_utilities.py +1 -1
  4. pulumi_hcloud/certificate.py +10 -15
  5. pulumi_hcloud/config/__init__.pyi +0 -5
  6. pulumi_hcloud/config/vars.py +0 -5
  7. pulumi_hcloud/firewall.py +46 -51
  8. pulumi_hcloud/firewall_attachment.py +2 -7
  9. pulumi_hcloud/floating_ip.py +28 -33
  10. pulumi_hcloud/floating_ip_assignment.py +0 -5
  11. pulumi_hcloud/get_certificate.py +5 -24
  12. pulumi_hcloud/get_certificates.py +4 -13
  13. pulumi_hcloud/get_datacenter.py +5 -18
  14. pulumi_hcloud/get_datacenters.py +4 -18
  15. pulumi_hcloud/get_firewall.py +18 -37
  16. pulumi_hcloud/get_firewalls.py +4 -15
  17. pulumi_hcloud/get_floating_ip.py +5 -31
  18. pulumi_hcloud/get_floating_ips.py +4 -13
  19. pulumi_hcloud/get_image.py +5 -35
  20. pulumi_hcloud/get_images.py +4 -21
  21. pulumi_hcloud/get_load_balancer.py +6 -29
  22. pulumi_hcloud/get_load_balancers.py +4 -13
  23. pulumi_hcloud/get_location.py +4 -19
  24. pulumi_hcloud/get_locations.py +4 -18
  25. pulumi_hcloud/get_network.py +7 -26
  26. pulumi_hcloud/get_networks.py +4 -13
  27. pulumi_hcloud/get_placement_group.py +12 -30
  28. pulumi_hcloud/get_placement_groups.py +4 -15
  29. pulumi_hcloud/get_primary_ip.py +13 -35
  30. pulumi_hcloud/get_primary_ips.py +4 -13
  31. pulumi_hcloud/get_server.py +7 -41
  32. pulumi_hcloud/get_server_type.py +13 -35
  33. pulumi_hcloud/get_server_types.py +12 -32
  34. pulumi_hcloud/get_servers.py +4 -15
  35. pulumi_hcloud/get_ssh_key.py +4 -23
  36. pulumi_hcloud/get_ssh_keys.py +4 -14
  37. pulumi_hcloud/get_volume.py +8 -31
  38. pulumi_hcloud/get_volumes.py +6 -17
  39. pulumi_hcloud/load_balancer.py +29 -34
  40. pulumi_hcloud/load_balancer_network.py +7 -12
  41. pulumi_hcloud/load_balancer_service.py +44 -49
  42. pulumi_hcloud/load_balancer_target.py +0 -5
  43. pulumi_hcloud/managed_certificate.py +14 -19
  44. pulumi_hcloud/network.py +14 -19
  45. pulumi_hcloud/network_route.py +0 -5
  46. pulumi_hcloud/network_subnet.py +0 -5
  47. pulumi_hcloud/outputs.py +28 -88
  48. pulumi_hcloud/placement_group.py +14 -19
  49. pulumi_hcloud/primary_ip.py +37 -56
  50. pulumi_hcloud/provider.py +0 -5
  51. pulumi_hcloud/pulumi-plugin.json +1 -1
  52. pulumi_hcloud/rdns.py +0 -5
  53. pulumi_hcloud/server.py +74 -85
  54. pulumi_hcloud/server_network.py +7 -12
  55. pulumi_hcloud/snapshot.py +14 -19
  56. pulumi_hcloud/ssh_key.py +0 -5
  57. pulumi_hcloud/uploaded_certificate.py +14 -19
  58. pulumi_hcloud/volume.py +24 -29
  59. pulumi_hcloud/volume_attachment.py +0 -5
  60. {pulumi_hcloud-1.21.0.dist-info → pulumi_hcloud-1.21.0a1722922926.dist-info}/METADATA +2 -3
  61. pulumi_hcloud-1.21.0a1722922926.dist-info/RECORD +65 -0
  62. {pulumi_hcloud-1.21.0.dist-info → pulumi_hcloud-1.21.0a1722922926.dist-info}/WHEEL +1 -1
  63. pulumi_hcloud/get_load_balancer_type.py +0 -200
  64. pulumi_hcloud/get_load_balancer_types.py +0 -100
  65. pulumi_hcloud-1.21.0.dist-info/RECORD +0 -67
  66. {pulumi_hcloud-1.21.0.dist-info → pulumi_hcloud-1.21.0a1722922926.dist-info}/top_level.txt +0 -0
pulumi_hcloud/server.py CHANGED
@@ -4,14 +4,9 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
- import sys
8
7
  import pulumi
9
8
  import pulumi.runtime
10
9
  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
10
  from . import _utilities
16
11
  from . import outputs
17
12
  from ._inputs import *
@@ -31,7 +26,7 @@ class ServerArgs:
31
26
  image: Optional[pulumi.Input[str]] = None,
32
27
  iso: Optional[pulumi.Input[str]] = None,
33
28
  keep_disk: Optional[pulumi.Input[bool]] = None,
34
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
29
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
35
30
  location: Optional[pulumi.Input[str]] = None,
36
31
  name: Optional[pulumi.Input[str]] = None,
37
32
  networks: Optional[pulumi.Input[Sequence[pulumi.Input['ServerNetworkArgs']]]] = None,
@@ -47,7 +42,7 @@ class ServerArgs:
47
42
  :param pulumi.Input[str] server_type: Name of the server type this server should be created with.
48
43
  :param pulumi.Input[bool] allow_deprecated_images: Enable the use of deprecated images (default: false). **Note** Deprecated images will be removed after three months. Using them is then no longer possible.
49
44
  :param pulumi.Input[bool] backups: Enable or disable backups.
50
- :param pulumi.Input[str] datacenter: The datacenter name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
45
+ :param pulumi.Input[str] datacenter: The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
51
46
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection (Needs to be the same as `rebuild_protection`). See "Delete Protection" in the Provider Docs for details.
52
47
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
53
48
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -57,8 +52,8 @@ class ServerArgs:
57
52
  argument.
58
53
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
59
54
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
60
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
61
- :param pulumi.Input[str] location: The location name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
55
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
56
+ :param pulumi.Input[str] location: The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
62
57
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
63
58
  :param pulumi.Input[Sequence[pulumi.Input['ServerNetworkArgs']]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
64
59
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
@@ -152,7 +147,7 @@ class ServerArgs:
152
147
  @pulumi.getter
153
148
  def datacenter(self) -> Optional[pulumi.Input[str]]:
154
149
  """
155
- The datacenter name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
150
+ The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
156
151
  """
157
152
  return pulumi.get(self, "datacenter")
158
153
 
@@ -235,21 +230,21 @@ class ServerArgs:
235
230
 
236
231
  @property
237
232
  @pulumi.getter
238
- def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
233
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
239
234
  """
240
235
  User-defined labels (key-value pairs) should be created with.
241
236
  """
242
237
  return pulumi.get(self, "labels")
243
238
 
244
239
  @labels.setter
245
- def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
240
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
246
241
  pulumi.set(self, "labels", value)
247
242
 
248
243
  @property
249
244
  @pulumi.getter
250
245
  def location(self) -> Optional[pulumi.Input[str]]:
251
246
  """
252
- The location name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
247
+ The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
253
248
  """
254
249
  return pulumi.get(self, "location")
255
250
 
@@ -383,7 +378,7 @@ class _ServerState:
383
378
  ipv6_network: Optional[pulumi.Input[str]] = None,
384
379
  iso: Optional[pulumi.Input[str]] = None,
385
380
  keep_disk: Optional[pulumi.Input[bool]] = None,
386
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
381
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
387
382
  location: Optional[pulumi.Input[str]] = None,
388
383
  name: Optional[pulumi.Input[str]] = None,
389
384
  networks: Optional[pulumi.Input[Sequence[pulumi.Input['ServerNetworkArgs']]]] = None,
@@ -402,7 +397,7 @@ class _ServerState:
402
397
  :param pulumi.Input[bool] allow_deprecated_images: Enable the use of deprecated images (default: false). **Note** Deprecated images will be removed after three months. Using them is then no longer possible.
403
398
  :param pulumi.Input[str] backup_window: (string) The backup window of the server, if enabled.
404
399
  :param pulumi.Input[bool] backups: Enable or disable backups.
405
- :param pulumi.Input[str] datacenter: The datacenter name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
400
+ :param pulumi.Input[str] datacenter: The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
406
401
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection (Needs to be the same as `rebuild_protection`). See "Delete Protection" in the Provider Docs for details.
407
402
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
408
403
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -415,8 +410,8 @@ class _ServerState:
415
410
  :param pulumi.Input[str] ipv6_network: (string) The IPv6 network.
416
411
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
417
412
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
418
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
419
- :param pulumi.Input[str] location: The location name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
413
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
414
+ :param pulumi.Input[str] location: The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
420
415
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
421
416
  :param pulumi.Input[Sequence[pulumi.Input['ServerNetworkArgs']]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
422
417
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
@@ -530,7 +525,7 @@ class _ServerState:
530
525
  @pulumi.getter
531
526
  def datacenter(self) -> Optional[pulumi.Input[str]]:
532
527
  """
533
- The datacenter name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
528
+ The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
534
529
  """
535
530
  return pulumi.get(self, "datacenter")
536
531
 
@@ -649,21 +644,21 @@ class _ServerState:
649
644
 
650
645
  @property
651
646
  @pulumi.getter
652
- def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
647
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
653
648
  """
654
649
  User-defined labels (key-value pairs) should be created with.
655
650
  """
656
651
  return pulumi.get(self, "labels")
657
652
 
658
653
  @labels.setter
659
- def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
654
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
660
655
  pulumi.set(self, "labels", value)
661
656
 
662
657
  @property
663
658
  @pulumi.getter
664
659
  def location(self) -> Optional[pulumi.Input[str]]:
665
660
  """
666
- The location name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
661
+ The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
667
662
  """
668
663
  return pulumi.get(self, "location")
669
664
 
@@ -831,12 +826,12 @@ class Server(pulumi.CustomResource):
831
826
  image: Optional[pulumi.Input[str]] = None,
832
827
  iso: Optional[pulumi.Input[str]] = None,
833
828
  keep_disk: Optional[pulumi.Input[bool]] = None,
834
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
829
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
835
830
  location: Optional[pulumi.Input[str]] = None,
836
831
  name: Optional[pulumi.Input[str]] = None,
837
- networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkArgs', 'ServerNetworkArgsDict']]]]] = None,
832
+ networks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkArgs']]]]] = None,
838
833
  placement_group_id: Optional[pulumi.Input[int]] = None,
839
- public_nets: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicNetArgs', 'ServerPublicNetArgsDict']]]]] = None,
834
+ public_nets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerPublicNetArgs']]]]] = None,
840
835
  rebuild_protection: Optional[pulumi.Input[bool]] = None,
841
836
  rescue: Optional[pulumi.Input[str]] = None,
842
837
  server_type: Optional[pulumi.Input[str]] = None,
@@ -860,12 +855,11 @@ class Server(pulumi.CustomResource):
860
855
  name="node1",
861
856
  image="debian-11",
862
857
  server_type="cx22",
863
- public_nets=[{
864
- "ipv4_enabled": True,
865
- "ipv6_enabled": True,
866
- }])
858
+ public_nets=[hcloud.ServerPublicNetArgs(
859
+ ipv4_enabled=True,
860
+ ipv6_enabled=True,
861
+ )])
867
862
  ```
868
-
869
863
  ```python
870
864
  import pulumi
871
865
  import pulumi_hcloud as hcloud
@@ -888,15 +882,13 @@ class Server(pulumi.CustomResource):
888
882
  labels={
889
883
  "test": "tessst1",
890
884
  },
891
- public_nets=[{
892
- "ipv4_enabled": True,
893
- "ipv4": primary_ip1.id,
894
- "ipv6_enabled": False,
895
- }])
885
+ public_nets=[hcloud.ServerPublicNetArgs(
886
+ ipv4_enabled=True,
887
+ ipv4=primary_ip1.id,
888
+ ipv6_enabled=False,
889
+ )])
896
890
  ```
897
-
898
891
  ### Server creation with network
899
-
900
892
  ```python
901
893
  import pulumi
902
894
  import pulumi_hcloud as hcloud
@@ -914,14 +906,14 @@ class Server(pulumi.CustomResource):
914
906
  server_type="cx22",
915
907
  image="ubuntu-20.04",
916
908
  location="nbg1",
917
- networks=[{
918
- "network_id": network.id,
919
- "ip": "10.0.1.5",
920
- "alias_ips": [
909
+ networks=[hcloud.ServerNetworkArgs(
910
+ network_id=network.id,
911
+ ip="10.0.1.5",
912
+ alias_ips=[
921
913
  "10.0.1.6",
922
914
  "10.0.1.7",
923
915
  ],
924
- }],
916
+ )],
925
917
  opts = pulumi.ResourceOptions(depends_on=[network_subnet]))
926
918
  ```
927
919
 
@@ -939,10 +931,10 @@ class Server(pulumi.CustomResource):
939
931
  name="from-snapshot",
940
932
  image=packer_snapshot.id,
941
933
  server_type="cx22",
942
- public_nets=[{
943
- "ipv4_enabled": True,
944
- "ipv6_enabled": True,
945
- }])
934
+ public_nets=[hcloud.ServerPublicNetArgs(
935
+ ipv4_enabled=True,
936
+ ipv6_enabled=True,
937
+ )])
946
938
  ```
947
939
 
948
940
  ## Primary IPs
@@ -962,7 +954,7 @@ class Server(pulumi.CustomResource):
962
954
  :param pulumi.ResourceOptions opts: Options for the resource.
963
955
  :param pulumi.Input[bool] allow_deprecated_images: Enable the use of deprecated images (default: false). **Note** Deprecated images will be removed after three months. Using them is then no longer possible.
964
956
  :param pulumi.Input[bool] backups: Enable or disable backups.
965
- :param pulumi.Input[str] datacenter: The datacenter name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
957
+ :param pulumi.Input[str] datacenter: The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
966
958
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection (Needs to be the same as `rebuild_protection`). See "Delete Protection" in the Provider Docs for details.
967
959
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
968
960
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -972,12 +964,12 @@ class Server(pulumi.CustomResource):
972
964
  argument.
973
965
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
974
966
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
975
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
976
- :param pulumi.Input[str] location: The location name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
967
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
968
+ :param pulumi.Input[str] location: The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
977
969
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
978
- :param pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkArgs', 'ServerNetworkArgsDict']]]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
970
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkArgs']]]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
979
971
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
980
- :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicNetArgs', 'ServerPublicNetArgsDict']]]] public_nets: In this block you can either enable / disable ipv4 and ipv6 or link existing primary IPs (checkout the examples).
972
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerPublicNetArgs']]]] public_nets: In this block you can either enable / disable ipv4 and ipv6 or link existing primary IPs (checkout the examples).
981
973
  If this block is not defined, two primary (ipv4 & ipv6) ips getting auto generated.
982
974
  :param pulumi.Input[bool] rebuild_protection: Enable or disable rebuild protection (Needs to be the same as `delete_protection`).
983
975
  :param pulumi.Input[str] rescue: Enable and boot in to the specified rescue system. This enables simple installation of custom operating systems. `linux64` or `linux32`
@@ -1008,12 +1000,11 @@ class Server(pulumi.CustomResource):
1008
1000
  name="node1",
1009
1001
  image="debian-11",
1010
1002
  server_type="cx22",
1011
- public_nets=[{
1012
- "ipv4_enabled": True,
1013
- "ipv6_enabled": True,
1014
- }])
1003
+ public_nets=[hcloud.ServerPublicNetArgs(
1004
+ ipv4_enabled=True,
1005
+ ipv6_enabled=True,
1006
+ )])
1015
1007
  ```
1016
-
1017
1008
  ```python
1018
1009
  import pulumi
1019
1010
  import pulumi_hcloud as hcloud
@@ -1036,15 +1027,13 @@ class Server(pulumi.CustomResource):
1036
1027
  labels={
1037
1028
  "test": "tessst1",
1038
1029
  },
1039
- public_nets=[{
1040
- "ipv4_enabled": True,
1041
- "ipv4": primary_ip1.id,
1042
- "ipv6_enabled": False,
1043
- }])
1030
+ public_nets=[hcloud.ServerPublicNetArgs(
1031
+ ipv4_enabled=True,
1032
+ ipv4=primary_ip1.id,
1033
+ ipv6_enabled=False,
1034
+ )])
1044
1035
  ```
1045
-
1046
1036
  ### Server creation with network
1047
-
1048
1037
  ```python
1049
1038
  import pulumi
1050
1039
  import pulumi_hcloud as hcloud
@@ -1062,14 +1051,14 @@ class Server(pulumi.CustomResource):
1062
1051
  server_type="cx22",
1063
1052
  image="ubuntu-20.04",
1064
1053
  location="nbg1",
1065
- networks=[{
1066
- "network_id": network.id,
1067
- "ip": "10.0.1.5",
1068
- "alias_ips": [
1054
+ networks=[hcloud.ServerNetworkArgs(
1055
+ network_id=network.id,
1056
+ ip="10.0.1.5",
1057
+ alias_ips=[
1069
1058
  "10.0.1.6",
1070
1059
  "10.0.1.7",
1071
1060
  ],
1072
- }],
1061
+ )],
1073
1062
  opts = pulumi.ResourceOptions(depends_on=[network_subnet]))
1074
1063
  ```
1075
1064
 
@@ -1087,10 +1076,10 @@ class Server(pulumi.CustomResource):
1087
1076
  name="from-snapshot",
1088
1077
  image=packer_snapshot.id,
1089
1078
  server_type="cx22",
1090
- public_nets=[{
1091
- "ipv4_enabled": True,
1092
- "ipv6_enabled": True,
1093
- }])
1079
+ public_nets=[hcloud.ServerPublicNetArgs(
1080
+ ipv4_enabled=True,
1081
+ ipv6_enabled=True,
1082
+ )])
1094
1083
  ```
1095
1084
 
1096
1085
  ## Primary IPs
@@ -1130,12 +1119,12 @@ class Server(pulumi.CustomResource):
1130
1119
  image: Optional[pulumi.Input[str]] = None,
1131
1120
  iso: Optional[pulumi.Input[str]] = None,
1132
1121
  keep_disk: Optional[pulumi.Input[bool]] = None,
1133
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1122
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
1134
1123
  location: Optional[pulumi.Input[str]] = None,
1135
1124
  name: Optional[pulumi.Input[str]] = None,
1136
- networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkArgs', 'ServerNetworkArgsDict']]]]] = None,
1125
+ networks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkArgs']]]]] = None,
1137
1126
  placement_group_id: Optional[pulumi.Input[int]] = None,
1138
- public_nets: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicNetArgs', 'ServerPublicNetArgsDict']]]]] = None,
1127
+ public_nets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerPublicNetArgs']]]]] = None,
1139
1128
  rebuild_protection: Optional[pulumi.Input[bool]] = None,
1140
1129
  rescue: Optional[pulumi.Input[str]] = None,
1141
1130
  server_type: Optional[pulumi.Input[str]] = None,
@@ -1203,13 +1192,13 @@ class Server(pulumi.CustomResource):
1203
1192
  ipv6_network: Optional[pulumi.Input[str]] = None,
1204
1193
  iso: Optional[pulumi.Input[str]] = None,
1205
1194
  keep_disk: Optional[pulumi.Input[bool]] = None,
1206
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1195
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
1207
1196
  location: Optional[pulumi.Input[str]] = None,
1208
1197
  name: Optional[pulumi.Input[str]] = None,
1209
- networks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkArgs', 'ServerNetworkArgsDict']]]]] = None,
1198
+ networks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkArgs']]]]] = None,
1210
1199
  placement_group_id: Optional[pulumi.Input[int]] = None,
1211
1200
  primary_disk_size: Optional[pulumi.Input[int]] = None,
1212
- public_nets: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicNetArgs', 'ServerPublicNetArgsDict']]]]] = None,
1201
+ public_nets: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerPublicNetArgs']]]]] = None,
1213
1202
  rebuild_protection: Optional[pulumi.Input[bool]] = None,
1214
1203
  rescue: Optional[pulumi.Input[str]] = None,
1215
1204
  server_type: Optional[pulumi.Input[str]] = None,
@@ -1227,7 +1216,7 @@ class Server(pulumi.CustomResource):
1227
1216
  :param pulumi.Input[bool] allow_deprecated_images: Enable the use of deprecated images (default: false). **Note** Deprecated images will be removed after three months. Using them is then no longer possible.
1228
1217
  :param pulumi.Input[str] backup_window: (string) The backup window of the server, if enabled.
1229
1218
  :param pulumi.Input[bool] backups: Enable or disable backups.
1230
- :param pulumi.Input[str] datacenter: The datacenter name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
1219
+ :param pulumi.Input[str] datacenter: The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
1231
1220
  :param pulumi.Input[bool] delete_protection: Enable or disable delete protection (Needs to be the same as `rebuild_protection`). See "Delete Protection" in the Provider Docs for details.
1232
1221
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
1233
1222
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -1240,13 +1229,13 @@ class Server(pulumi.CustomResource):
1240
1229
  :param pulumi.Input[str] ipv6_network: (string) The IPv6 network.
1241
1230
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
1242
1231
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
1243
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
1244
- :param pulumi.Input[str] location: The location name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
1232
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
1233
+ :param pulumi.Input[str] location: The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
1245
1234
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
1246
- :param pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkArgs', 'ServerNetworkArgsDict']]]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
1235
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkArgs']]]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
1247
1236
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
1248
1237
  :param pulumi.Input[int] primary_disk_size: (int) The size of the primary disk in GB.
1249
- :param pulumi.Input[Sequence[pulumi.Input[Union['ServerPublicNetArgs', 'ServerPublicNetArgsDict']]]] public_nets: In this block you can either enable / disable ipv4 and ipv6 or link existing primary IPs (checkout the examples).
1238
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerPublicNetArgs']]]] public_nets: In this block you can either enable / disable ipv4 and ipv6 or link existing primary IPs (checkout the examples).
1250
1239
  If this block is not defined, two primary (ipv4 & ipv6) ips getting auto generated.
1251
1240
  :param pulumi.Input[bool] rebuild_protection: Enable or disable rebuild protection (Needs to be the same as `delete_protection`).
1252
1241
  :param pulumi.Input[str] rescue: Enable and boot in to the specified rescue system. This enables simple installation of custom operating systems. `linux64` or `linux32`
@@ -1318,7 +1307,7 @@ class Server(pulumi.CustomResource):
1318
1307
  @pulumi.getter
1319
1308
  def datacenter(self) -> pulumi.Output[str]:
1320
1309
  """
1321
- The datacenter name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
1310
+ The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
1322
1311
  """
1323
1312
  return pulumi.get(self, "datacenter")
1324
1313
 
@@ -1397,7 +1386,7 @@ class Server(pulumi.CustomResource):
1397
1386
 
1398
1387
  @property
1399
1388
  @pulumi.getter
1400
- def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1389
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
1401
1390
  """
1402
1391
  User-defined labels (key-value pairs) should be created with.
1403
1392
  """
@@ -1407,7 +1396,7 @@ class Server(pulumi.CustomResource):
1407
1396
  @pulumi.getter
1408
1397
  def location(self) -> pulumi.Output[str]:
1409
1398
  """
1410
- The location name to create the server in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
1399
+ The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
1411
1400
  """
1412
1401
  return pulumi.get(self, "location")
1413
1402
 
@@ -4,14 +4,9 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
- import sys
8
7
  import pulumi
9
8
  import pulumi.runtime
10
9
  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
10
  from . import _utilities
16
11
 
17
12
  __all__ = ['ServerNetworkInitArgs', 'ServerNetwork']
@@ -42,7 +37,7 @@ class ServerNetworkInitArgs:
42
37
  the existence of a subnet.
43
38
  :param pulumi.Input[str] subnet_id: ID of the sub-network which should be
44
39
  added to the Server. Required if `network_id` is not set.
45
- _Note_: if the `ip` property is missing, the Server is currently added
40
+ *Note*: if the `ip` property is missing, the Server is currently added
46
41
  to the last created subnet.
47
42
  """
48
43
  pulumi.set(__self__, "server_id", server_id)
@@ -119,7 +114,7 @@ class ServerNetworkInitArgs:
119
114
  """
120
115
  ID of the sub-network which should be
121
116
  added to the Server. Required if `network_id` is not set.
122
- _Note_: if the `ip` property is missing, the Server is currently added
117
+ *Note*: if the `ip` property is missing, the Server is currently added
123
118
  to the last created subnet.
124
119
  """
125
120
  return pulumi.get(self, "subnet_id")
@@ -156,7 +151,7 @@ class _ServerNetworkState:
156
151
  :param pulumi.Input[int] server_id: ID of the server.
157
152
  :param pulumi.Input[str] subnet_id: ID of the sub-network which should be
158
153
  added to the Server. Required if `network_id` is not set.
159
- _Note_: if the `ip` property is missing, the Server is currently added
154
+ *Note*: if the `ip` property is missing, the Server is currently added
160
155
  to the last created subnet.
161
156
  """
162
157
  if alias_ips is not None:
@@ -245,7 +240,7 @@ class _ServerNetworkState:
245
240
  """
246
241
  ID of the sub-network which should be
247
242
  added to the Server. Required if `network_id` is not set.
248
- _Note_: if the `ip` property is missing, the Server is currently added
243
+ *Note*: if the `ip` property is missing, the Server is currently added
249
244
  to the last created subnet.
250
245
  """
251
246
  return pulumi.get(self, "subnet_id")
@@ -321,7 +316,7 @@ class ServerNetwork(pulumi.CustomResource):
321
316
  :param pulumi.Input[int] server_id: ID of the server.
322
317
  :param pulumi.Input[str] subnet_id: ID of the sub-network which should be
323
318
  added to the Server. Required if `network_id` is not set.
324
- _Note_: if the `ip` property is missing, the Server is currently added
319
+ *Note*: if the `ip` property is missing, the Server is currently added
325
320
  to the last created subnet.
326
321
  """
327
322
  ...
@@ -443,7 +438,7 @@ class ServerNetwork(pulumi.CustomResource):
443
438
  :param pulumi.Input[int] server_id: ID of the server.
444
439
  :param pulumi.Input[str] subnet_id: ID of the sub-network which should be
445
440
  added to the Server. Required if `network_id` is not set.
446
- _Note_: if the `ip` property is missing, the Server is currently added
441
+ *Note*: if the `ip` property is missing, the Server is currently added
447
442
  to the last created subnet.
448
443
  """
449
444
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -511,7 +506,7 @@ class ServerNetwork(pulumi.CustomResource):
511
506
  """
512
507
  ID of the sub-network which should be
513
508
  added to the Server. Required if `network_id` is not set.
514
- _Note_: if the `ip` property is missing, the Server is currently added
509
+ *Note*: if the `ip` property is missing, the Server is currently added
515
510
  to the last created subnet.
516
511
  """
517
512
  return pulumi.get(self, "subnet_id")
pulumi_hcloud/snapshot.py CHANGED
@@ -4,14 +4,9 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
- import sys
8
7
  import pulumi
9
8
  import pulumi.runtime
10
9
  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
10
  from . import _utilities
16
11
 
17
12
  __all__ = ['SnapshotArgs', 'Snapshot']
@@ -21,12 +16,12 @@ class SnapshotArgs:
21
16
  def __init__(__self__, *,
22
17
  server_id: pulumi.Input[int],
23
18
  description: Optional[pulumi.Input[str]] = None,
24
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
19
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None):
25
20
  """
26
21
  The set of arguments for constructing a Snapshot resource.
27
22
  :param pulumi.Input[int] server_id: Server to the snapshot should be created from.
28
23
  :param pulumi.Input[str] description: Description of the snapshot.
29
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
24
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
30
25
  """
31
26
  pulumi.set(__self__, "server_id", server_id)
32
27
  if description is not None:
@@ -60,14 +55,14 @@ class SnapshotArgs:
60
55
 
61
56
  @property
62
57
  @pulumi.getter
63
- def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
58
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
64
59
  """
65
60
  User-defined labels (key-value pairs) should be created with.
66
61
  """
67
62
  return pulumi.get(self, "labels")
68
63
 
69
64
  @labels.setter
70
- def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
65
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
71
66
  pulumi.set(self, "labels", value)
72
67
 
73
68
 
@@ -75,12 +70,12 @@ class SnapshotArgs:
75
70
  class _SnapshotState:
76
71
  def __init__(__self__, *,
77
72
  description: Optional[pulumi.Input[str]] = None,
78
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
73
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
79
74
  server_id: Optional[pulumi.Input[int]] = None):
80
75
  """
81
76
  Input properties used for looking up and filtering Snapshot resources.
82
77
  :param pulumi.Input[str] description: Description of the snapshot.
83
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
78
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
84
79
  :param pulumi.Input[int] server_id: Server to the snapshot should be created from.
85
80
  """
86
81
  if description is not None:
@@ -104,14 +99,14 @@ class _SnapshotState:
104
99
 
105
100
  @property
106
101
  @pulumi.getter
107
- def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
102
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
108
103
  """
109
104
  User-defined labels (key-value pairs) should be created with.
110
105
  """
111
106
  return pulumi.get(self, "labels")
112
107
 
113
108
  @labels.setter
114
- def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
109
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
115
110
  pulumi.set(self, "labels", value)
116
111
 
117
112
  @property
@@ -133,7 +128,7 @@ class Snapshot(pulumi.CustomResource):
133
128
  resource_name: str,
134
129
  opts: Optional[pulumi.ResourceOptions] = None,
135
130
  description: Optional[pulumi.Input[str]] = None,
136
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
131
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
137
132
  server_id: Optional[pulumi.Input[int]] = None,
138
133
  __props__=None):
139
134
  """
@@ -163,7 +158,7 @@ class Snapshot(pulumi.CustomResource):
163
158
  :param str resource_name: The name of the resource.
164
159
  :param pulumi.ResourceOptions opts: Options for the resource.
165
160
  :param pulumi.Input[str] description: Description of the snapshot.
166
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
161
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
167
162
  :param pulumi.Input[int] server_id: Server to the snapshot should be created from.
168
163
  """
169
164
  ...
@@ -212,7 +207,7 @@ class Snapshot(pulumi.CustomResource):
212
207
  resource_name: str,
213
208
  opts: Optional[pulumi.ResourceOptions] = None,
214
209
  description: Optional[pulumi.Input[str]] = None,
215
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
210
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
216
211
  server_id: Optional[pulumi.Input[int]] = None,
217
212
  __props__=None):
218
213
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -239,7 +234,7 @@ class Snapshot(pulumi.CustomResource):
239
234
  id: pulumi.Input[str],
240
235
  opts: Optional[pulumi.ResourceOptions] = None,
241
236
  description: Optional[pulumi.Input[str]] = None,
242
- labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
237
+ labels: Optional[pulumi.Input[Mapping[str, Any]]] = None,
243
238
  server_id: Optional[pulumi.Input[int]] = None) -> 'Snapshot':
244
239
  """
245
240
  Get an existing Snapshot resource's state with the given name, id, and optional extra
@@ -249,7 +244,7 @@ class Snapshot(pulumi.CustomResource):
249
244
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
250
245
  :param pulumi.ResourceOptions opts: Options for the resource.
251
246
  :param pulumi.Input[str] description: Description of the snapshot.
252
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs) should be created with.
247
+ :param pulumi.Input[Mapping[str, Any]] labels: User-defined labels (key-value pairs) should be created with.
253
248
  :param pulumi.Input[int] server_id: Server to the snapshot should be created from.
254
249
  """
255
250
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -271,7 +266,7 @@ class Snapshot(pulumi.CustomResource):
271
266
 
272
267
  @property
273
268
  @pulumi.getter
274
- def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
269
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
275
270
  """
276
271
  User-defined labels (key-value pairs) should be created with.
277
272
  """
pulumi_hcloud/ssh_key.py CHANGED
@@ -4,14 +4,9 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
- import sys
8
7
  import pulumi
9
8
  import pulumi.runtime
10
9
  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
10
  from . import _utilities
16
11
 
17
12
  __all__ = ['SshKeyArgs', 'SshKey']