pulumi-hcloud 1.20.4__py3-none-any.whl → 1.21.0__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 +234 -0
  3. pulumi_hcloud/_utilities.py +1 -1
  4. pulumi_hcloud/certificate.py +5 -0
  5. pulumi_hcloud/config/__init__.pyi +5 -0
  6. pulumi_hcloud/config/vars.py +5 -0
  7. pulumi_hcloud/firewall.py +5 -0
  8. pulumi_hcloud/firewall_attachment.py +7 -2
  9. pulumi_hcloud/floating_ip.py +5 -0
  10. pulumi_hcloud/floating_ip_assignment.py +5 -0
  11. pulumi_hcloud/get_certificate.py +23 -4
  12. pulumi_hcloud/get_certificates.py +13 -4
  13. pulumi_hcloud/get_datacenter.py +18 -5
  14. pulumi_hcloud/get_datacenters.py +18 -4
  15. pulumi_hcloud/get_firewall.py +26 -7
  16. pulumi_hcloud/get_firewalls.py +15 -4
  17. pulumi_hcloud/get_floating_ip.py +30 -4
  18. pulumi_hcloud/get_floating_ips.py +13 -4
  19. pulumi_hcloud/get_image.py +34 -4
  20. pulumi_hcloud/get_images.py +21 -4
  21. pulumi_hcloud/get_load_balancer.py +28 -5
  22. pulumi_hcloud/get_load_balancer_type.py +200 -0
  23. pulumi_hcloud/get_load_balancer_types.py +100 -0
  24. pulumi_hcloud/get_load_balancers.py +13 -4
  25. pulumi_hcloud/get_location.py +19 -4
  26. pulumi_hcloud/get_locations.py +18 -4
  27. pulumi_hcloud/get_network.py +23 -4
  28. pulumi_hcloud/get_networks.py +13 -4
  29. pulumi_hcloud/get_placement_group.py +25 -7
  30. pulumi_hcloud/get_placement_groups.py +15 -4
  31. pulumi_hcloud/get_primary_ip.py +28 -6
  32. pulumi_hcloud/get_primary_ips.py +13 -4
  33. pulumi_hcloud/get_server.py +40 -6
  34. pulumi_hcloud/get_server_type.py +35 -13
  35. pulumi_hcloud/get_server_types.py +32 -12
  36. pulumi_hcloud/get_servers.py +15 -4
  37. pulumi_hcloud/get_ssh_key.py +23 -4
  38. pulumi_hcloud/get_ssh_keys.py +14 -4
  39. pulumi_hcloud/get_volume.py +30 -7
  40. pulumi_hcloud/get_volumes.py +17 -6
  41. pulumi_hcloud/load_balancer.py +12 -7
  42. pulumi_hcloud/load_balancer_network.py +12 -7
  43. pulumi_hcloud/load_balancer_service.py +5 -0
  44. pulumi_hcloud/load_balancer_target.py +5 -0
  45. pulumi_hcloud/managed_certificate.py +5 -0
  46. pulumi_hcloud/network.py +5 -0
  47. pulumi_hcloud/network_route.py +5 -0
  48. pulumi_hcloud/network_subnet.py +5 -0
  49. pulumi_hcloud/outputs.py +68 -8
  50. pulumi_hcloud/placement_group.py +5 -0
  51. pulumi_hcloud/primary_ip.py +40 -21
  52. pulumi_hcloud/provider.py +5 -0
  53. pulumi_hcloud/pulumi-plugin.json +1 -1
  54. pulumi_hcloud/rdns.py +5 -0
  55. pulumi_hcloud/server.py +25 -14
  56. pulumi_hcloud/server_network.py +12 -7
  57. pulumi_hcloud/snapshot.py +5 -0
  58. pulumi_hcloud/ssh_key.py +5 -0
  59. pulumi_hcloud/uploaded_certificate.py +5 -0
  60. pulumi_hcloud/volume.py +19 -14
  61. pulumi_hcloud/volume_attachment.py +5 -0
  62. {pulumi_hcloud-1.20.4.dist-info → pulumi_hcloud-1.21.0.dist-info}/METADATA +3 -2
  63. pulumi_hcloud-1.21.0.dist-info/RECORD +67 -0
  64. {pulumi_hcloud-1.20.4.dist-info → pulumi_hcloud-1.21.0.dist-info}/WHEEL +1 -1
  65. pulumi_hcloud-1.20.4.dist-info/RECORD +0 -65
  66. {pulumi_hcloud-1.20.4.dist-info → pulumi_hcloud-1.21.0.dist-info}/top_level.txt +0 -0
pulumi_hcloud/network.py CHANGED
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['NetworkArgs', 'Network']
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['NetworkRouteArgs', 'NetworkRoute']
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['NetworkSubnetArgs', 'NetworkSubnet']
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',
@@ -1200,7 +1206,7 @@ class GetLoadBalancerServiceResult(dict):
1200
1206
  :param int destination_port: (int) Port the service connects to the targets on. Can be everything between `1` and `65535`.
1201
1207
  :param Sequence['GetLoadBalancerServiceHealthCheckArgs'] health_checks: (list) List of http configurations when `protocol` is `http` or `https`.
1202
1208
  :param Sequence['GetLoadBalancerServiceHttpArgs'] https: (list) List of http configurations when `protocol` is `http` or `https`.
1203
- :param int listen_port: (int) Port the service listen on`. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1209
+ :param int listen_port: (int) Port the service listen on. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1204
1210
  :param str protocol: (string) Protocol the health check uses. `http`, `https` or `tcp`
1205
1211
  :param bool proxyprotocol: (bool) Enable proxyprotocol.
1206
1212
  """
@@ -1239,7 +1245,7 @@ class GetLoadBalancerServiceResult(dict):
1239
1245
  @pulumi.getter(name="listenPort")
1240
1246
  def listen_port(self) -> int:
1241
1247
  """
1242
- (int) Port the service listen on`. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1248
+ (int) Port the service listen on. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
1243
1249
  """
1244
1250
  return pulumi.get(self, "listen_port")
1245
1251
 
@@ -1497,6 +1503,60 @@ class GetLoadBalancerTargetResult(dict):
1497
1503
  return pulumi.get(self, "type")
1498
1504
 
1499
1505
 
1506
+ @pulumi.output_type
1507
+ class GetLoadBalancerTypesLoadBalancerTypeResult(dict):
1508
+ def __init__(__self__, *,
1509
+ description: str,
1510
+ id: int,
1511
+ max_assigned_certificates: int,
1512
+ max_connections: int,
1513
+ max_services: int,
1514
+ max_targets: int,
1515
+ name: str):
1516
+ pulumi.set(__self__, "description", description)
1517
+ pulumi.set(__self__, "id", id)
1518
+ pulumi.set(__self__, "max_assigned_certificates", max_assigned_certificates)
1519
+ pulumi.set(__self__, "max_connections", max_connections)
1520
+ pulumi.set(__self__, "max_services", max_services)
1521
+ pulumi.set(__self__, "max_targets", max_targets)
1522
+ pulumi.set(__self__, "name", name)
1523
+
1524
+ @property
1525
+ @pulumi.getter
1526
+ def description(self) -> str:
1527
+ return pulumi.get(self, "description")
1528
+
1529
+ @property
1530
+ @pulumi.getter
1531
+ def id(self) -> int:
1532
+ return pulumi.get(self, "id")
1533
+
1534
+ @property
1535
+ @pulumi.getter(name="maxAssignedCertificates")
1536
+ def max_assigned_certificates(self) -> int:
1537
+ return pulumi.get(self, "max_assigned_certificates")
1538
+
1539
+ @property
1540
+ @pulumi.getter(name="maxConnections")
1541
+ def max_connections(self) -> int:
1542
+ return pulumi.get(self, "max_connections")
1543
+
1544
+ @property
1545
+ @pulumi.getter(name="maxServices")
1546
+ def max_services(self) -> int:
1547
+ return pulumi.get(self, "max_services")
1548
+
1549
+ @property
1550
+ @pulumi.getter(name="maxTargets")
1551
+ def max_targets(self) -> int:
1552
+ return pulumi.get(self, "max_targets")
1553
+
1554
+ @property
1555
+ @pulumi.getter
1556
+ def name(self) -> str:
1557
+ return pulumi.get(self, "name")
1558
+
1559
+
1500
1560
  @pulumi.output_type
1501
1561
  class GetLoadBalancersLoadBalancerResult(dict):
1502
1562
  def __init__(__self__, *,
@@ -2054,15 +2114,15 @@ class GetPrimaryIpsPrimaryIpResult(dict):
2054
2114
  class GetServerTypesServerTypeResult(dict):
2055
2115
  def __init__(__self__, *,
2056
2116
  architecture: str,
2057
- cores: int,
2117
+ cores: float,
2058
2118
  cpu_type: str,
2059
2119
  deprecation_announced: str,
2060
2120
  description: str,
2061
- disk: int,
2121
+ disk: float,
2062
2122
  id: int,
2063
2123
  included_traffic: int,
2064
2124
  is_deprecated: bool,
2065
- memory: int,
2125
+ memory: float,
2066
2126
  name: str,
2067
2127
  storage_type: str,
2068
2128
  unavailable_after: str):
@@ -2087,7 +2147,7 @@ class GetServerTypesServerTypeResult(dict):
2087
2147
 
2088
2148
  @property
2089
2149
  @pulumi.getter
2090
- def cores(self) -> int:
2150
+ def cores(self) -> float:
2091
2151
  return pulumi.get(self, "cores")
2092
2152
 
2093
2153
  @property
@@ -2107,7 +2167,7 @@ class GetServerTypesServerTypeResult(dict):
2107
2167
 
2108
2168
  @property
2109
2169
  @pulumi.getter
2110
- def disk(self) -> int:
2170
+ def disk(self) -> float:
2111
2171
  return pulumi.get(self, "disk")
2112
2172
 
2113
2173
  @property
@@ -2128,7 +2188,7 @@ class GetServerTypesServerTypeResult(dict):
2128
2188
 
2129
2189
  @property
2130
2190
  @pulumi.getter
2131
- def memory(self) -> int:
2191
+ def memory(self) -> float:
2132
2192
  return pulumi.get(self, "memory")
2133
2193
 
2134
2194
  @property
@@ -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__ = ['PlacementGroupArgs', 'PlacementGroup']
@@ -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__ = ['PrimaryIpArgs', 'PrimaryIp']
@@ -28,10 +33,12 @@ class PrimaryIpArgs:
28
33
  :param pulumi.Input[bool] auto_delete: Whether auto delete is enabled.
29
34
  `Important note:`It is recommended to set `auto_delete` to `false`, because if a server assigned to the managed ip is getting deleted, it will also delete the primary IP which will break the TF state.
30
35
  :param pulumi.Input[str] type: Type of the Primary IP. `ipv4` or `ipv6`
31
- :param pulumi.Input[int] assignee_id: ID of the assigned resource
32
- :param pulumi.Input[str] datacenter: The datacenter name to create the resource in.
36
+ :param pulumi.Input[int] assignee_id: ID of the assigned resource.
37
+ :param pulumi.Input[str] datacenter: The datacenter name to create the resource in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
33
38
  :param pulumi.Input[bool] delete_protection: Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
34
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Description of the Primary IP.
39
+
40
+ Note: At least one of `datacenter` or `assignee_id` is required.
41
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
35
42
  :param pulumi.Input[str] name: Name of the Primary IP.
36
43
  """
37
44
  pulumi.set(__self__, "assignee_type", assignee_type)
@@ -89,7 +96,7 @@ class PrimaryIpArgs:
89
96
  @pulumi.getter(name="assigneeId")
90
97
  def assignee_id(self) -> Optional[pulumi.Input[int]]:
91
98
  """
92
- ID of the assigned resource
99
+ ID of the assigned resource.
93
100
  """
94
101
  return pulumi.get(self, "assignee_id")
95
102
 
@@ -101,7 +108,7 @@ class PrimaryIpArgs:
101
108
  @pulumi.getter
102
109
  def datacenter(self) -> Optional[pulumi.Input[str]]:
103
110
  """
104
- The datacenter name to create the resource in.
111
+ The datacenter name to create the resource in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
105
112
  """
106
113
  return pulumi.get(self, "datacenter")
107
114
 
@@ -114,6 +121,8 @@ class PrimaryIpArgs:
114
121
  def delete_protection(self) -> Optional[pulumi.Input[bool]]:
115
122
  """
116
123
  Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
124
+
125
+ Note: At least one of `datacenter` or `assignee_id` is required.
117
126
  """
118
127
  return pulumi.get(self, "delete_protection")
119
128
 
@@ -125,7 +134,7 @@ class PrimaryIpArgs:
125
134
  @pulumi.getter
126
135
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
127
136
  """
128
- Description of the Primary IP.
137
+ User-defined labels (key-value pairs).
129
138
  """
130
139
  return pulumi.get(self, "labels")
131
140
 
@@ -161,15 +170,17 @@ class _PrimaryIpState:
161
170
  type: Optional[pulumi.Input[str]] = None):
162
171
  """
163
172
  Input properties used for looking up and filtering PrimaryIp resources.
164
- :param pulumi.Input[int] assignee_id: ID of the assigned resource
173
+ :param pulumi.Input[int] assignee_id: ID of the assigned resource.
165
174
  :param pulumi.Input[str] assignee_type: The type of the assigned resource. Currently supported: `server`
166
175
  :param pulumi.Input[bool] auto_delete: Whether auto delete is enabled.
167
176
  `Important note:`It is recommended to set `auto_delete` to `false`, because if a server assigned to the managed ip is getting deleted, it will also delete the primary IP which will break the TF state.
168
- :param pulumi.Input[str] datacenter: The datacenter name to create the resource in.
177
+ :param pulumi.Input[str] datacenter: The datacenter name to create the resource in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
169
178
  :param pulumi.Input[bool] delete_protection: Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
179
+
180
+ Note: At least one of `datacenter` or `assignee_id` is required.
170
181
  :param pulumi.Input[str] ip_address: (string) IP Address of the Primary IP.
171
182
  :param pulumi.Input[str] ip_network: (string) IPv6 subnet of the Primary IP for IPv6 addresses. (Only set if `type` is `ipv6`)
172
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Description of the Primary IP.
183
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
173
184
  :param pulumi.Input[str] name: Name of the Primary IP.
174
185
  :param pulumi.Input[str] type: Type of the Primary IP. `ipv4` or `ipv6`
175
186
  """
@@ -198,7 +209,7 @@ class _PrimaryIpState:
198
209
  @pulumi.getter(name="assigneeId")
199
210
  def assignee_id(self) -> Optional[pulumi.Input[int]]:
200
211
  """
201
- ID of the assigned resource
212
+ ID of the assigned resource.
202
213
  """
203
214
  return pulumi.get(self, "assignee_id")
204
215
 
@@ -235,7 +246,7 @@ class _PrimaryIpState:
235
246
  @pulumi.getter
236
247
  def datacenter(self) -> Optional[pulumi.Input[str]]:
237
248
  """
238
- The datacenter name to create the resource in.
249
+ The datacenter name to create the resource in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
239
250
  """
240
251
  return pulumi.get(self, "datacenter")
241
252
 
@@ -248,6 +259,8 @@ class _PrimaryIpState:
248
259
  def delete_protection(self) -> Optional[pulumi.Input[bool]]:
249
260
  """
250
261
  Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
262
+
263
+ Note: At least one of `datacenter` or `assignee_id` is required.
251
264
  """
252
265
  return pulumi.get(self, "delete_protection")
253
266
 
@@ -283,7 +296,7 @@ class _PrimaryIpState:
283
296
  @pulumi.getter
284
297
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
285
298
  """
286
- Description of the Primary IP.
299
+ User-defined labels (key-value pairs).
287
300
  """
288
301
  return pulumi.get(self, "labels")
289
302
 
@@ -375,13 +388,15 @@ class PrimaryIp(pulumi.CustomResource):
375
388
 
376
389
  :param str resource_name: The name of the resource.
377
390
  :param pulumi.ResourceOptions opts: Options for the resource.
378
- :param pulumi.Input[int] assignee_id: ID of the assigned resource
391
+ :param pulumi.Input[int] assignee_id: ID of the assigned resource.
379
392
  :param pulumi.Input[str] assignee_type: The type of the assigned resource. Currently supported: `server`
380
393
  :param pulumi.Input[bool] auto_delete: Whether auto delete is enabled.
381
394
  `Important note:`It is recommended to set `auto_delete` to `false`, because if a server assigned to the managed ip is getting deleted, it will also delete the primary IP which will break the TF state.
382
- :param pulumi.Input[str] datacenter: The datacenter name to create the resource in.
395
+ :param pulumi.Input[str] datacenter: The datacenter name to create the resource in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
383
396
  :param pulumi.Input[bool] delete_protection: Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
384
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Description of the Primary IP.
397
+
398
+ Note: At least one of `datacenter` or `assignee_id` is required.
399
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
385
400
  :param pulumi.Input[str] name: Name of the Primary IP.
386
401
  :param pulumi.Input[str] type: Type of the Primary IP. `ipv4` or `ipv6`
387
402
  """
@@ -509,15 +524,17 @@ class PrimaryIp(pulumi.CustomResource):
509
524
  :param str resource_name: The unique name of the resulting resource.
510
525
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
511
526
  :param pulumi.ResourceOptions opts: Options for the resource.
512
- :param pulumi.Input[int] assignee_id: ID of the assigned resource
527
+ :param pulumi.Input[int] assignee_id: ID of the assigned resource.
513
528
  :param pulumi.Input[str] assignee_type: The type of the assigned resource. Currently supported: `server`
514
529
  :param pulumi.Input[bool] auto_delete: Whether auto delete is enabled.
515
530
  `Important note:`It is recommended to set `auto_delete` to `false`, because if a server assigned to the managed ip is getting deleted, it will also delete the primary IP which will break the TF state.
516
- :param pulumi.Input[str] datacenter: The datacenter name to create the resource in.
531
+ :param pulumi.Input[str] datacenter: The datacenter name to create the resource in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
517
532
  :param pulumi.Input[bool] delete_protection: Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
533
+
534
+ Note: At least one of `datacenter` or `assignee_id` is required.
518
535
  :param pulumi.Input[str] ip_address: (string) IP Address of the Primary IP.
519
536
  :param pulumi.Input[str] ip_network: (string) IPv6 subnet of the Primary IP for IPv6 addresses. (Only set if `type` is `ipv6`)
520
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Description of the Primary IP.
537
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: User-defined labels (key-value pairs).
521
538
  :param pulumi.Input[str] name: Name of the Primary IP.
522
539
  :param pulumi.Input[str] type: Type of the Primary IP. `ipv4` or `ipv6`
523
540
  """
@@ -541,7 +558,7 @@ class PrimaryIp(pulumi.CustomResource):
541
558
  @pulumi.getter(name="assigneeId")
542
559
  def assignee_id(self) -> pulumi.Output[int]:
543
560
  """
544
- ID of the assigned resource
561
+ ID of the assigned resource.
545
562
  """
546
563
  return pulumi.get(self, "assignee_id")
547
564
 
@@ -566,7 +583,7 @@ class PrimaryIp(pulumi.CustomResource):
566
583
  @pulumi.getter
567
584
  def datacenter(self) -> pulumi.Output[str]:
568
585
  """
569
- The datacenter name to create the resource in.
586
+ The datacenter name to create the resource in. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-datacenters-are-there) for more details about datacenters.
570
587
  """
571
588
  return pulumi.get(self, "datacenter")
572
589
 
@@ -575,6 +592,8 @@ class PrimaryIp(pulumi.CustomResource):
575
592
  def delete_protection(self) -> pulumi.Output[Optional[bool]]:
576
593
  """
577
594
  Whether delete protection is enabled. See "Delete Protection" in the Provider Docs for details.
595
+
596
+ Note: At least one of `datacenter` or `assignee_id` is required.
578
597
  """
579
598
  return pulumi.get(self, "delete_protection")
580
599
 
@@ -598,7 +617,7 @@ class PrimaryIp(pulumi.CustomResource):
598
617
  @pulumi.getter
599
618
  def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
600
619
  """
601
- Description of the Primary IP.
620
+ User-defined labels (key-value pairs).
602
621
  """
603
622
  return pulumi.get(self, "labels")
604
623
 
pulumi_hcloud/provider.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__ = ['ProviderArgs', 'Provider']
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "hcloud",
4
- "version": "1.20.4"
4
+ "version": "1.21.0"
5
5
  }
pulumi_hcloud/rdns.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__ = ['RdnsArgs', 'Rdns']
pulumi_hcloud/server.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
  from ._inputs import *
@@ -42,7 +47,7 @@ class ServerArgs:
42
47
  :param pulumi.Input[str] server_type: Name of the server type this server should be created with.
43
48
  :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.
44
49
  :param pulumi.Input[bool] backups: Enable or disable backups.
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`
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.
46
51
  :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.
47
52
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
48
53
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -53,7 +58,7 @@ class ServerArgs:
53
58
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
54
59
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
55
60
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] 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`
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.
57
62
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
58
63
  :param pulumi.Input[Sequence[pulumi.Input['ServerNetworkArgs']]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
59
64
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
@@ -147,7 +152,7 @@ class ServerArgs:
147
152
  @pulumi.getter
148
153
  def datacenter(self) -> Optional[pulumi.Input[str]]:
149
154
  """
150
- The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
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.
151
156
  """
152
157
  return pulumi.get(self, "datacenter")
153
158
 
@@ -244,7 +249,7 @@ class ServerArgs:
244
249
  @pulumi.getter
245
250
  def location(self) -> Optional[pulumi.Input[str]]:
246
251
  """
247
- The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
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.
248
253
  """
249
254
  return pulumi.get(self, "location")
250
255
 
@@ -397,7 +402,7 @@ class _ServerState:
397
402
  :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.
398
403
  :param pulumi.Input[str] backup_window: (string) The backup window of the server, if enabled.
399
404
  :param pulumi.Input[bool] backups: Enable or disable backups.
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`
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.
401
406
  :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.
402
407
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
403
408
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -411,7 +416,7 @@ class _ServerState:
411
416
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
412
417
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
413
418
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] 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`
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.
415
420
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
416
421
  :param pulumi.Input[Sequence[pulumi.Input['ServerNetworkArgs']]] networks: Network the server should be attached to on creation. (Can be specified multiple times)
417
422
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
@@ -525,7 +530,7 @@ class _ServerState:
525
530
  @pulumi.getter
526
531
  def datacenter(self) -> Optional[pulumi.Input[str]]:
527
532
  """
528
- The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
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.
529
534
  """
530
535
  return pulumi.get(self, "datacenter")
531
536
 
@@ -658,7 +663,7 @@ class _ServerState:
658
663
  @pulumi.getter
659
664
  def location(self) -> Optional[pulumi.Input[str]]:
660
665
  """
661
- The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
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.
662
667
  """
663
668
  return pulumi.get(self, "location")
664
669
 
@@ -860,6 +865,7 @@ class Server(pulumi.CustomResource):
860
865
  "ipv6_enabled": True,
861
866
  }])
862
867
  ```
868
+
863
869
  ```python
864
870
  import pulumi
865
871
  import pulumi_hcloud as hcloud
@@ -888,7 +894,9 @@ class Server(pulumi.CustomResource):
888
894
  "ipv6_enabled": False,
889
895
  }])
890
896
  ```
897
+
891
898
  ### Server creation with network
899
+
892
900
  ```python
893
901
  import pulumi
894
902
  import pulumi_hcloud as hcloud
@@ -954,7 +962,7 @@ class Server(pulumi.CustomResource):
954
962
  :param pulumi.ResourceOptions opts: Options for the resource.
955
963
  :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.
956
964
  :param pulumi.Input[bool] backups: Enable or disable backups.
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`
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.
958
966
  :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.
959
967
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
960
968
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -965,7 +973,7 @@ class Server(pulumi.CustomResource):
965
973
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
966
974
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
967
975
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] 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`
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.
969
977
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
970
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)
971
979
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
@@ -1005,6 +1013,7 @@ class Server(pulumi.CustomResource):
1005
1013
  "ipv6_enabled": True,
1006
1014
  }])
1007
1015
  ```
1016
+
1008
1017
  ```python
1009
1018
  import pulumi
1010
1019
  import pulumi_hcloud as hcloud
@@ -1033,7 +1042,9 @@ class Server(pulumi.CustomResource):
1033
1042
  "ipv6_enabled": False,
1034
1043
  }])
1035
1044
  ```
1045
+
1036
1046
  ### Server creation with network
1047
+
1037
1048
  ```python
1038
1049
  import pulumi
1039
1050
  import pulumi_hcloud as hcloud
@@ -1216,7 +1227,7 @@ class Server(pulumi.CustomResource):
1216
1227
  :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.
1217
1228
  :param pulumi.Input[str] backup_window: (string) The backup window of the server, if enabled.
1218
1229
  :param pulumi.Input[bool] backups: Enable or disable backups.
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`
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.
1220
1231
  :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.
1221
1232
  :param pulumi.Input[Sequence[pulumi.Input[int]]] firewall_ids: Firewall IDs the server should be attached to on creation.
1222
1233
  :param pulumi.Input[bool] ignore_remote_firewall_ids: Ignores any updates
@@ -1230,7 +1241,7 @@ class Server(pulumi.CustomResource):
1230
1241
  :param pulumi.Input[str] iso: ID or Name of an ISO image to mount.
1231
1242
  :param pulumi.Input[bool] keep_disk: If true, do not upgrade the disk. This allows downgrading the server type later.
1232
1243
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] 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`
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.
1234
1245
  :param pulumi.Input[str] name: Name of the server to create (must be unique per project and a valid hostname as per RFC 1123).
1235
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)
1236
1247
  :param pulumi.Input[int] placement_group_id: Placement Group ID the server added to on creation.
@@ -1307,7 +1318,7 @@ class Server(pulumi.CustomResource):
1307
1318
  @pulumi.getter
1308
1319
  def datacenter(self) -> pulumi.Output[str]:
1309
1320
  """
1310
- The datacenter name to create the server in. `nbg1-dc3`, `fsn1-dc14`, `hel1-dc2`, `ash-dc1` or `hil-dc1`
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.
1311
1322
  """
1312
1323
  return pulumi.get(self, "datacenter")
1313
1324
 
@@ -1396,7 +1407,7 @@ class Server(pulumi.CustomResource):
1396
1407
  @pulumi.getter
1397
1408
  def location(self) -> pulumi.Output[str]:
1398
1409
  """
1399
- The location name to create the server in. `nbg1`, `fsn1`, `hel1`, `ash` or `hil`
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.
1400
1411
  """
1401
1412
  return pulumi.get(self, "location")
1402
1413