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
pulumi_hcloud/outputs.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
  from . import outputs
12
17
 
@@ -35,6 +40,7 @@ __all__ = [
35
40
  'GetLoadBalancerServiceHealthCheckHttpResult',
36
41
  'GetLoadBalancerServiceHttpResult',
37
42
  'GetLoadBalancerTargetResult',
43
+ 'GetLoadBalancerTypesLoadBalancerTypeResult',
38
44
  'GetLoadBalancersLoadBalancerResult',
39
45
  'GetLoadBalancersLoadBalancerAlgorithmResult',
40
46
  'GetLoadBalancersLoadBalancerServiceResult',
@@ -136,12 +142,12 @@ class FirewallRule(dict):
136
142
  :param str direction: Direction of the Firewall Rule. `in`
137
143
  :param str protocol: Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp`
138
144
  :param str description: Description of the firewall rule
139
- :param Sequence[str] destination_ips: (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction`
145
+ :param Sequence[str] destination_ips: List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
140
146
  is `out`)
141
147
  :param str port: Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`. You can use `any`
142
- to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and
143
- 85.
144
- :param Sequence[str] source_ips: List of CIDRs that are allowed within this Firewall Rule
148
+ to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and 85.
149
+ :param Sequence[str] source_ips: List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
150
+ is `in`)
145
151
  """
146
152
  pulumi.set(__self__, "direction", direction)
147
153
  pulumi.set(__self__, "protocol", protocol)
@@ -182,7 +188,7 @@ class FirewallRule(dict):
182
188
  @pulumi.getter(name="destinationIps")
183
189
  def destination_ips(self) -> Optional[Sequence[str]]:
184
190
  """
185
- (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction`
191
+ List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
186
192
  is `out`)
187
193
  """
188
194
  return pulumi.get(self, "destination_ips")
@@ -192,8 +198,7 @@ class FirewallRule(dict):
192
198
  def port(self) -> Optional[str]:
193
199
  """
194
200
  Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`. You can use `any`
195
- to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and
196
- 85.
201
+ to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and 85.
197
202
  """
198
203
  return pulumi.get(self, "port")
199
204
 
@@ -201,7 +206,8 @@ class FirewallRule(dict):
201
206
  @pulumi.getter(name="sourceIps")
202
207
  def source_ips(self) -> Optional[Sequence[str]]:
203
208
  """
204
- List of CIDRs that are allowed within this Firewall Rule
209
+ List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
210
+ is `in`)
205
211
  """
206
212
  return pulumi.get(self, "source_ips")
207
213
 
@@ -500,7 +506,7 @@ class LoadBalancerTarget(dict):
500
506
  server_id: Optional[int] = None,
501
507
  use_private_ip: Optional[bool] = None):
502
508
  """
503
- :param str type: Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
509
+ :param str type: (string) Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
504
510
  """
505
511
  pulumi.set(__self__, "type", type)
506
512
  if server_id is not None:
@@ -512,7 +518,7 @@ class LoadBalancerTarget(dict):
512
518
  @pulumi.getter
513
519
  def type(self) -> str:
514
520
  """
515
- Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
521
+ (string) Type of the Load Balancer Algorithm. `round_robin` or `least_connections`
516
522
  """
517
523
  return pulumi.get(self, "type")
518
524
 
@@ -523,10 +529,8 @@ class LoadBalancerTarget(dict):
523
529
 
524
530
  @property
525
531
  @pulumi.getter(name="usePrivateIp")
532
+ @_utilities.deprecated("""Does not work. Use the LoadBalancerTarget resource instead.""")
526
533
  def use_private_ip(self) -> Optional[bool]:
527
- warnings.warn("""Does not work. Use the hcloud_load_balancer_target resource instead.""", DeprecationWarning)
528
- pulumi.log.warn("""use_private_ip is deprecated: Does not work. Use the hcloud_load_balancer_target resource instead.""")
529
-
530
534
  return pulumi.get(self, "use_private_ip")
531
535
 
532
536
 
@@ -665,7 +669,7 @@ class GetCertificatesCertificateResult(dict):
665
669
  domain_names: Sequence[str],
666
670
  fingerprint: str,
667
671
  id: int,
668
- labels: Mapping[str, Any],
672
+ labels: Mapping[str, str],
669
673
  not_valid_after: str,
670
674
  not_valid_before: str,
671
675
  type: str,
@@ -709,7 +713,7 @@ class GetCertificatesCertificateResult(dict):
709
713
 
710
714
  @property
711
715
  @pulumi.getter
712
- def labels(self) -> Mapping[str, Any]:
716
+ def labels(self) -> Mapping[str, str]:
713
717
  return pulumi.get(self, "labels")
714
718
 
715
719
  @property
@@ -742,6 +746,14 @@ class GetDatacentersDatacenterResult(dict):
742
746
  location: Mapping[str, str],
743
747
  name: str,
744
748
  supported_server_type_ids: Sequence[int]):
749
+ """
750
+ :param Sequence[int] available_server_type_ids: List of currently available Server Types in the Datacenter.
751
+ :param str description: Description of the Datacenter.
752
+ :param int id: ID of the Datacenter.
753
+ :param Mapping[str, str] location: Location of the Datacenter. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
754
+ :param str name: Name of the Datacenter.
755
+ :param Sequence[int] supported_server_type_ids: List of supported Server Types in the Datacenter.
756
+ """
745
757
  pulumi.set(__self__, "available_server_type_ids", available_server_type_ids)
746
758
  pulumi.set(__self__, "description", description)
747
759
  pulumi.set(__self__, "id", id)
@@ -752,31 +764,49 @@ class GetDatacentersDatacenterResult(dict):
752
764
  @property
753
765
  @pulumi.getter(name="availableServerTypeIds")
754
766
  def available_server_type_ids(self) -> Sequence[int]:
767
+ """
768
+ List of currently available Server Types in the Datacenter.
769
+ """
755
770
  return pulumi.get(self, "available_server_type_ids")
756
771
 
757
772
  @property
758
773
  @pulumi.getter
759
774
  def description(self) -> str:
775
+ """
776
+ Description of the Datacenter.
777
+ """
760
778
  return pulumi.get(self, "description")
761
779
 
762
780
  @property
763
781
  @pulumi.getter
764
782
  def id(self) -> int:
783
+ """
784
+ ID of the Datacenter.
785
+ """
765
786
  return pulumi.get(self, "id")
766
787
 
767
788
  @property
768
789
  @pulumi.getter
769
790
  def location(self) -> Mapping[str, str]:
791
+ """
792
+ Location of the Datacenter. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
793
+ """
770
794
  return pulumi.get(self, "location")
771
795
 
772
796
  @property
773
797
  @pulumi.getter
774
798
  def name(self) -> str:
799
+ """
800
+ Name of the Datacenter.
801
+ """
775
802
  return pulumi.get(self, "name")
776
803
 
777
804
  @property
778
805
  @pulumi.getter(name="supportedServerTypeIds")
779
806
  def supported_server_type_ids(self) -> Sequence[int]:
807
+ """
808
+ List of supported Server Types in the Datacenter.
809
+ """
780
810
  return pulumi.get(self, "supported_server_type_ids")
781
811
 
782
812
 
@@ -895,7 +925,7 @@ class GetFirewallsFirewallResult(dict):
895
925
  name: str,
896
926
  apply_tos: Optional[Sequence['outputs.GetFirewallsFirewallApplyToResult']] = None,
897
927
  id: Optional[int] = None,
898
- labels: Optional[Mapping[str, Any]] = None,
928
+ labels: Optional[Mapping[str, str]] = None,
899
929
  rules: Optional[Sequence['outputs.GetFirewallsFirewallRuleResult']] = None):
900
930
  pulumi.set(__self__, "name", name)
901
931
  if apply_tos is not None:
@@ -924,7 +954,7 @@ class GetFirewallsFirewallResult(dict):
924
954
 
925
955
  @property
926
956
  @pulumi.getter
927
- def labels(self) -> Optional[Mapping[str, Any]]:
957
+ def labels(self) -> Optional[Mapping[str, str]]:
928
958
  return pulumi.get(self, "labels")
929
959
 
930
960
  @property
@@ -1013,7 +1043,7 @@ class GetFloatingIpsFloatingIpResult(dict):
1013
1043
  id: int,
1014
1044
  ip_address: str,
1015
1045
  ip_network: str,
1016
- labels: Mapping[str, Any],
1046
+ labels: Mapping[str, str],
1017
1047
  server_id: int,
1018
1048
  type: str,
1019
1049
  name: Optional[str] = None):
@@ -1061,7 +1091,7 @@ class GetFloatingIpsFloatingIpResult(dict):
1061
1091
 
1062
1092
  @property
1063
1093
  @pulumi.getter
1064
- def labels(self) -> Mapping[str, Any]:
1094
+ def labels(self) -> Mapping[str, str]:
1065
1095
  return pulumi.get(self, "labels")
1066
1096
 
1067
1097
  @property
@@ -1088,7 +1118,7 @@ class GetImagesImageResult(dict):
1088
1118
  deprecated: str,
1089
1119
  description: str,
1090
1120
  id: int,
1091
- labels: Mapping[str, Any],
1121
+ labels: Mapping[str, str],
1092
1122
  name: str,
1093
1123
  os_flavor: str,
1094
1124
  os_version: str,
@@ -1136,7 +1166,7 @@ class GetImagesImageResult(dict):
1136
1166
 
1137
1167
  @property
1138
1168
  @pulumi.getter
1139
- def labels(self) -> Mapping[str, Any]:
1169
+ def labels(self) -> Mapping[str, str]:
1140
1170
  return pulumi.get(self, "labels")
1141
1171
 
1142
1172
  @property
@@ -1166,10 +1196,8 @@ class GetImagesImageResult(dict):
1166
1196
 
1167
1197
  @property
1168
1198
  @pulumi.getter
1199
+ @_utilities.deprecated("""Please use the with_selector property instead.""")
1169
1200
  def selector(self) -> Optional[str]:
1170
- warnings.warn("""Please use the with_selector property instead.""", DeprecationWarning)
1171
- pulumi.log.warn("""selector is deprecated: Please use the with_selector property instead.""")
1172
-
1173
1201
  return pulumi.get(self, "selector")
1174
1202
 
1175
1203
 
@@ -1204,7 +1232,7 @@ class GetLoadBalancerServiceResult(dict):
1204
1232
  :param int destination_port: (int) Port the service connects to the targets on. Can be everything between `1` and `65535`.
1205
1233
  :param Sequence['GetLoadBalancerServiceHealthCheckArgs'] health_checks: (list) List of http configurations when `protocol` is `http` or `https`.
1206
1234
  :param Sequence['GetLoadBalancerServiceHttpArgs'] https: (list) List of http configurations when `protocol` is `http` or `https`.
1207
- :param int listen_port: (int) Port the service listen on`. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1235
+ :param int listen_port: (int) Port the service listen on. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1208
1236
  :param str protocol: (string) Protocol the health check uses. `http`, `https` or `tcp`
1209
1237
  :param bool proxyprotocol: (bool) Enable proxyprotocol.
1210
1238
  """
@@ -1243,7 +1271,7 @@ class GetLoadBalancerServiceResult(dict):
1243
1271
  @pulumi.getter(name="listenPort")
1244
1272
  def listen_port(self) -> int:
1245
1273
  """
1246
- (int) Port the service listen on`. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1274
+ (int) Port the service listen on. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1247
1275
  """
1248
1276
  return pulumi.get(self, "listen_port")
1249
1277
 
@@ -1501,6 +1529,90 @@ class GetLoadBalancerTargetResult(dict):
1501
1529
  return pulumi.get(self, "type")
1502
1530
 
1503
1531
 
1532
+ @pulumi.output_type
1533
+ class GetLoadBalancerTypesLoadBalancerTypeResult(dict):
1534
+ def __init__(__self__, *,
1535
+ description: str,
1536
+ id: int,
1537
+ max_assigned_certificates: int,
1538
+ max_connections: int,
1539
+ max_services: int,
1540
+ max_targets: int,
1541
+ name: str):
1542
+ """
1543
+ :param str description: Description of the Load Balancer Type.
1544
+ :param int id: ID of the Load Balancer Type.
1545
+ :param int max_assigned_certificates: Maximum number of certificates that can be assigned for the Load Balancer of this type.
1546
+ :param int max_connections: Maximum number of simultaneous open connections for the Load Balancer of this type.
1547
+ :param int max_services: Maximum number of services for the Load Balancer of this type.
1548
+ :param int max_targets: Maximum number of targets for the Load Balancer of this type.
1549
+ :param str name: Name of the Load Balancer Type.
1550
+ """
1551
+ pulumi.set(__self__, "description", description)
1552
+ pulumi.set(__self__, "id", id)
1553
+ pulumi.set(__self__, "max_assigned_certificates", max_assigned_certificates)
1554
+ pulumi.set(__self__, "max_connections", max_connections)
1555
+ pulumi.set(__self__, "max_services", max_services)
1556
+ pulumi.set(__self__, "max_targets", max_targets)
1557
+ pulumi.set(__self__, "name", name)
1558
+
1559
+ @property
1560
+ @pulumi.getter
1561
+ def description(self) -> str:
1562
+ """
1563
+ Description of the Load Balancer Type.
1564
+ """
1565
+ return pulumi.get(self, "description")
1566
+
1567
+ @property
1568
+ @pulumi.getter
1569
+ def id(self) -> int:
1570
+ """
1571
+ ID of the Load Balancer Type.
1572
+ """
1573
+ return pulumi.get(self, "id")
1574
+
1575
+ @property
1576
+ @pulumi.getter(name="maxAssignedCertificates")
1577
+ def max_assigned_certificates(self) -> int:
1578
+ """
1579
+ Maximum number of certificates that can be assigned for the Load Balancer of this type.
1580
+ """
1581
+ return pulumi.get(self, "max_assigned_certificates")
1582
+
1583
+ @property
1584
+ @pulumi.getter(name="maxConnections")
1585
+ def max_connections(self) -> int:
1586
+ """
1587
+ Maximum number of simultaneous open connections for the Load Balancer of this type.
1588
+ """
1589
+ return pulumi.get(self, "max_connections")
1590
+
1591
+ @property
1592
+ @pulumi.getter(name="maxServices")
1593
+ def max_services(self) -> int:
1594
+ """
1595
+ Maximum number of services for the Load Balancer of this type.
1596
+ """
1597
+ return pulumi.get(self, "max_services")
1598
+
1599
+ @property
1600
+ @pulumi.getter(name="maxTargets")
1601
+ def max_targets(self) -> int:
1602
+ """
1603
+ Maximum number of targets for the Load Balancer of this type.
1604
+ """
1605
+ return pulumi.get(self, "max_targets")
1606
+
1607
+ @property
1608
+ @pulumi.getter
1609
+ def name(self) -> str:
1610
+ """
1611
+ Name of the Load Balancer Type.
1612
+ """
1613
+ return pulumi.get(self, "name")
1614
+
1615
+
1504
1616
  @pulumi.output_type
1505
1617
  class GetLoadBalancersLoadBalancerResult(dict):
1506
1618
  def __init__(__self__, *,
@@ -1509,7 +1621,7 @@ class GetLoadBalancersLoadBalancerResult(dict):
1509
1621
  id: int,
1510
1622
  ipv4: str,
1511
1623
  ipv6: str,
1512
- labels: Mapping[str, Any],
1624
+ labels: Mapping[str, str],
1513
1625
  load_balancer_type: str,
1514
1626
  location: str,
1515
1627
  network_id: int,
@@ -1561,7 +1673,7 @@ class GetLoadBalancersLoadBalancerResult(dict):
1561
1673
 
1562
1674
  @property
1563
1675
  @pulumi.getter
1564
- def labels(self) -> Mapping[str, Any]:
1676
+ def labels(self) -> Mapping[str, str]:
1565
1677
  return pulumi.get(self, "labels")
1566
1678
 
1567
1679
  @property
@@ -1828,6 +1940,16 @@ class GetLocationsLocationResult(dict):
1828
1940
  longitude: float,
1829
1941
  name: str,
1830
1942
  network_zone: str):
1943
+ """
1944
+ :param str city: Name of the closest city to the Location. City name and optionally state in short form.
1945
+ :param str country: Country the Location resides in. ISO 3166-1 alpha-2 code of the country.
1946
+ :param str description: Description of the Location.
1947
+ :param int id: ID of the Location.
1948
+ :param float latitude: Latitude of the city closest to the Location.
1949
+ :param float longitude: Longitude of the city closest to the Location.
1950
+ :param str name: Name of the Location.
1951
+ :param str network_zone: Name of the Network Zone this Location resides in.
1952
+ """
1831
1953
  pulumi.set(__self__, "city", city)
1832
1954
  pulumi.set(__self__, "country", country)
1833
1955
  pulumi.set(__self__, "description", description)
@@ -1840,41 +1962,65 @@ class GetLocationsLocationResult(dict):
1840
1962
  @property
1841
1963
  @pulumi.getter
1842
1964
  def city(self) -> str:
1965
+ """
1966
+ Name of the closest city to the Location. City name and optionally state in short form.
1967
+ """
1843
1968
  return pulumi.get(self, "city")
1844
1969
 
1845
1970
  @property
1846
1971
  @pulumi.getter
1847
1972
  def country(self) -> str:
1973
+ """
1974
+ Country the Location resides in. ISO 3166-1 alpha-2 code of the country.
1975
+ """
1848
1976
  return pulumi.get(self, "country")
1849
1977
 
1850
1978
  @property
1851
1979
  @pulumi.getter
1852
1980
  def description(self) -> str:
1981
+ """
1982
+ Description of the Location.
1983
+ """
1853
1984
  return pulumi.get(self, "description")
1854
1985
 
1855
1986
  @property
1856
1987
  @pulumi.getter
1857
1988
  def id(self) -> int:
1989
+ """
1990
+ ID of the Location.
1991
+ """
1858
1992
  return pulumi.get(self, "id")
1859
1993
 
1860
1994
  @property
1861
1995
  @pulumi.getter
1862
1996
  def latitude(self) -> float:
1997
+ """
1998
+ Latitude of the city closest to the Location.
1999
+ """
1863
2000
  return pulumi.get(self, "latitude")
1864
2001
 
1865
2002
  @property
1866
2003
  @pulumi.getter
1867
2004
  def longitude(self) -> float:
2005
+ """
2006
+ Longitude of the city closest to the Location.
2007
+ """
1868
2008
  return pulumi.get(self, "longitude")
1869
2009
 
1870
2010
  @property
1871
2011
  @pulumi.getter
1872
2012
  def name(self) -> str:
2013
+ """
2014
+ Name of the Location.
2015
+ """
1873
2016
  return pulumi.get(self, "name")
1874
2017
 
1875
2018
  @property
1876
2019
  @pulumi.getter(name="networkZone")
1877
2020
  def network_zone(self) -> str:
2021
+ """
2022
+ Name of the Network Zone this Location resides in.
2023
+ """
1878
2024
  return pulumi.get(self, "network_zone")
1879
2025
 
1880
2026
 
@@ -1885,7 +2031,7 @@ class GetNetworksNetworkResult(dict):
1885
2031
  expose_routes_to_vswitch: bool,
1886
2032
  id: int,
1887
2033
  ip_range: str,
1888
- labels: Mapping[str, Any],
2034
+ labels: Mapping[str, str],
1889
2035
  name: str):
1890
2036
  """
1891
2037
  :param bool expose_routes_to_vswitch: Indicates if the routes from this network should be exposed to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active.
@@ -1922,7 +2068,7 @@ class GetNetworksNetworkResult(dict):
1922
2068
 
1923
2069
  @property
1924
2070
  @pulumi.getter
1925
- def labels(self) -> Mapping[str, Any]:
2071
+ def labels(self) -> Mapping[str, str]:
1926
2072
  return pulumi.get(self, "labels")
1927
2073
 
1928
2074
  @property
@@ -1935,7 +2081,7 @@ class GetNetworksNetworkResult(dict):
1935
2081
  class GetPlacementGroupsPlacementGroupResult(dict):
1936
2082
  def __init__(__self__, *,
1937
2083
  id: int,
1938
- labels: Mapping[str, Any],
2084
+ labels: Mapping[str, str],
1939
2085
  name: str,
1940
2086
  servers: Sequence[int],
1941
2087
  type: str):
@@ -1952,7 +2098,7 @@ class GetPlacementGroupsPlacementGroupResult(dict):
1952
2098
 
1953
2099
  @property
1954
2100
  @pulumi.getter
1955
- def labels(self) -> Mapping[str, Any]:
2101
+ def labels(self) -> Mapping[str, str]:
1956
2102
  return pulumi.get(self, "labels")
1957
2103
 
1958
2104
  @property
@@ -1982,7 +2128,7 @@ class GetPrimaryIpsPrimaryIpResult(dict):
1982
2128
  id: int,
1983
2129
  ip_address: str,
1984
2130
  ip_network: str,
1985
- labels: Mapping[str, Any],
2131
+ labels: Mapping[str, str],
1986
2132
  type: str,
1987
2133
  name: Optional[str] = None):
1988
2134
  pulumi.set(__self__, "assignee_id", assignee_id)
@@ -2040,7 +2186,7 @@ class GetPrimaryIpsPrimaryIpResult(dict):
2040
2186
 
2041
2187
  @property
2042
2188
  @pulumi.getter
2043
- def labels(self) -> Mapping[str, Any]:
2189
+ def labels(self) -> Mapping[str, str]:
2044
2190
  return pulumi.get(self, "labels")
2045
2191
 
2046
2192
  @property
@@ -2058,18 +2204,32 @@ class GetPrimaryIpsPrimaryIpResult(dict):
2058
2204
  class GetServerTypesServerTypeResult(dict):
2059
2205
  def __init__(__self__, *,
2060
2206
  architecture: str,
2061
- cores: int,
2207
+ cores: float,
2062
2208
  cpu_type: str,
2063
2209
  deprecation_announced: str,
2064
2210
  description: str,
2065
- disk: int,
2211
+ disk: float,
2066
2212
  id: int,
2067
2213
  included_traffic: int,
2068
2214
  is_deprecated: bool,
2069
- memory: int,
2215
+ memory: float,
2070
2216
  name: str,
2071
2217
  storage_type: str,
2072
2218
  unavailable_after: str):
2219
+ """
2220
+ :param str architecture: Architecture of the cpu for a Server of this type.
2221
+ :param float cores: Number of cpu cores for a Server of this type.
2222
+ :param str cpu_type: Type of cpu for a Server of this type.
2223
+ :param str deprecation_announced: Date of the Server Type deprecation announcement.
2224
+ :param str description: Description of the Server Type.
2225
+ :param float disk: Disk size in GB for a Server of this type.
2226
+ :param int id: ID of the Server Type.
2227
+ :param bool is_deprecated: Whether the Server Type is deprecated.
2228
+ :param float memory: Memory in GB for a Server of this type.
2229
+ :param str name: Name of the Server Type.
2230
+ :param str storage_type: Type of boot drive for a Server of this type.
2231
+ :param str unavailable_after: Date of the Server Type removal. After this date, the Server Type cannot be used anymore.
2232
+ """
2073
2233
  pulumi.set(__self__, "architecture", architecture)
2074
2234
  pulumi.set(__self__, "cores", cores)
2075
2235
  pulumi.set(__self__, "cpu_type", cpu_type)
@@ -2087,66 +2247,103 @@ class GetServerTypesServerTypeResult(dict):
2087
2247
  @property
2088
2248
  @pulumi.getter
2089
2249
  def architecture(self) -> str:
2250
+ """
2251
+ Architecture of the cpu for a Server of this type.
2252
+ """
2090
2253
  return pulumi.get(self, "architecture")
2091
2254
 
2092
2255
  @property
2093
2256
  @pulumi.getter
2094
- def cores(self) -> int:
2257
+ def cores(self) -> float:
2258
+ """
2259
+ Number of cpu cores for a Server of this type.
2260
+ """
2095
2261
  return pulumi.get(self, "cores")
2096
2262
 
2097
2263
  @property
2098
2264
  @pulumi.getter(name="cpuType")
2099
2265
  def cpu_type(self) -> str:
2266
+ """
2267
+ Type of cpu for a Server of this type.
2268
+ """
2100
2269
  return pulumi.get(self, "cpu_type")
2101
2270
 
2102
2271
  @property
2103
2272
  @pulumi.getter(name="deprecationAnnounced")
2104
2273
  def deprecation_announced(self) -> str:
2274
+ """
2275
+ Date of the Server Type deprecation announcement.
2276
+ """
2105
2277
  return pulumi.get(self, "deprecation_announced")
2106
2278
 
2107
2279
  @property
2108
2280
  @pulumi.getter
2109
2281
  def description(self) -> str:
2282
+ """
2283
+ Description of the Server Type.
2284
+ """
2110
2285
  return pulumi.get(self, "description")
2111
2286
 
2112
2287
  @property
2113
2288
  @pulumi.getter
2114
- def disk(self) -> int:
2289
+ def disk(self) -> float:
2290
+ """
2291
+ Disk size in GB for a Server of this type.
2292
+ """
2115
2293
  return pulumi.get(self, "disk")
2116
2294
 
2117
2295
  @property
2118
2296
  @pulumi.getter
2119
2297
  def id(self) -> int:
2298
+ """
2299
+ ID of the Server Type.
2300
+ """
2120
2301
  return pulumi.get(self, "id")
2121
2302
 
2122
2303
  @property
2123
2304
  @pulumi.getter(name="includedTraffic")
2305
+ @_utilities.deprecated("""The field is deprecated and will always report 0 after 2024-08-05.""")
2124
2306
  def included_traffic(self) -> int:
2125
2307
  return pulumi.get(self, "included_traffic")
2126
2308
 
2127
2309
  @property
2128
2310
  @pulumi.getter(name="isDeprecated")
2129
2311
  def is_deprecated(self) -> bool:
2312
+ """
2313
+ Whether the Server Type is deprecated.
2314
+ """
2130
2315
  return pulumi.get(self, "is_deprecated")
2131
2316
 
2132
2317
  @property
2133
2318
  @pulumi.getter
2134
- def memory(self) -> int:
2319
+ def memory(self) -> float:
2320
+ """
2321
+ Memory in GB for a Server of this type.
2322
+ """
2135
2323
  return pulumi.get(self, "memory")
2136
2324
 
2137
2325
  @property
2138
2326
  @pulumi.getter
2139
2327
  def name(self) -> str:
2328
+ """
2329
+ Name of the Server Type.
2330
+ """
2140
2331
  return pulumi.get(self, "name")
2141
2332
 
2142
2333
  @property
2143
2334
  @pulumi.getter(name="storageType")
2144
2335
  def storage_type(self) -> str:
2336
+ """
2337
+ Type of boot drive for a Server of this type.
2338
+ """
2145
2339
  return pulumi.get(self, "storage_type")
2146
2340
 
2147
2341
  @property
2148
2342
  @pulumi.getter(name="unavailableAfter")
2149
2343
  def unavailable_after(self) -> str:
2344
+ """
2345
+ Date of the Server Type removal. After this date, the Server Type cannot be used anymore.
2346
+ """
2150
2347
  return pulumi.get(self, "unavailable_after")
2151
2348
 
2152
2349
 
@@ -2164,7 +2361,7 @@ class GetServersServerResult(dict):
2164
2361
  ipv6_address: str,
2165
2362
  ipv6_network: str,
2166
2363
  iso: str,
2167
- labels: Mapping[str, Any],
2364
+ labels: Mapping[str, str],
2168
2365
  location: str,
2169
2366
  name: str,
2170
2367
  primary_disk_size: int,
@@ -2252,7 +2449,7 @@ class GetServersServerResult(dict):
2252
2449
 
2253
2450
  @property
2254
2451
  @pulumi.getter
2255
- def labels(self) -> Mapping[str, Any]:
2452
+ def labels(self) -> Mapping[str, str]:
2256
2453
  return pulumi.get(self, "labels")
2257
2454
 
2258
2455
  @property
@@ -2301,9 +2498,16 @@ class GetSshKeysSshKeyResult(dict):
2301
2498
  def __init__(__self__, *,
2302
2499
  fingerprint: str,
2303
2500
  id: int,
2304
- labels: Mapping[str, Any],
2501
+ labels: Mapping[str, str],
2305
2502
  name: str,
2306
2503
  public_key: str):
2504
+ """
2505
+ :param str fingerprint: Fingerprint of the SSH Key.
2506
+ :param int id: ID of the SSH Key.
2507
+ :param Mapping[str, str] labels: User-defined [labels](https://docs.hetzner.cloud/#labels) (key-value pairs) for the resource.
2508
+ :param str name: Name of the SSH Key.
2509
+ :param str public_key: Public key of the SSH Key pair.
2510
+ """
2307
2511
  pulumi.set(__self__, "fingerprint", fingerprint)
2308
2512
  pulumi.set(__self__, "id", id)
2309
2513
  pulumi.set(__self__, "labels", labels)
@@ -2313,26 +2517,41 @@ class GetSshKeysSshKeyResult(dict):
2313
2517
  @property
2314
2518
  @pulumi.getter
2315
2519
  def fingerprint(self) -> str:
2520
+ """
2521
+ Fingerprint of the SSH Key.
2522
+ """
2316
2523
  return pulumi.get(self, "fingerprint")
2317
2524
 
2318
2525
  @property
2319
2526
  @pulumi.getter
2320
2527
  def id(self) -> int:
2528
+ """
2529
+ ID of the SSH Key.
2530
+ """
2321
2531
  return pulumi.get(self, "id")
2322
2532
 
2323
2533
  @property
2324
2534
  @pulumi.getter
2325
- def labels(self) -> Mapping[str, Any]:
2535
+ def labels(self) -> Mapping[str, str]:
2536
+ """
2537
+ User-defined [labels](https://docs.hetzner.cloud/#labels) (key-value pairs) for the resource.
2538
+ """
2326
2539
  return pulumi.get(self, "labels")
2327
2540
 
2328
2541
  @property
2329
2542
  @pulumi.getter
2330
2543
  def name(self) -> str:
2544
+ """
2545
+ Name of the SSH Key.
2546
+ """
2331
2547
  return pulumi.get(self, "name")
2332
2548
 
2333
2549
  @property
2334
2550
  @pulumi.getter(name="publicKey")
2335
2551
  def public_key(self) -> str:
2552
+ """
2553
+ Public key of the SSH Key pair.
2554
+ """
2336
2555
  return pulumi.get(self, "public_key")
2337
2556
 
2338
2557
 
@@ -2341,7 +2560,7 @@ class GetVolumesVolumeResult(dict):
2341
2560
  def __init__(__self__, *,
2342
2561
  delete_protection: bool,
2343
2562
  id: int,
2344
- labels: Mapping[str, Any],
2563
+ labels: Mapping[str, str],
2345
2564
  linux_device: str,
2346
2565
  name: str,
2347
2566
  size: int,
@@ -2370,7 +2589,7 @@ class GetVolumesVolumeResult(dict):
2370
2589
 
2371
2590
  @property
2372
2591
  @pulumi.getter
2373
- def labels(self) -> Mapping[str, Any]:
2592
+ def labels(self) -> Mapping[str, str]:
2374
2593
  return pulumi.get(self, "labels")
2375
2594
 
2376
2595
  @property